diff --git a/tests/format/js/commonjs/__snapshots__/format.test.js.snap b/tests/format/js/commonjs/__snapshots__/format.test.js.snap index 011372f1b..02a73cbb2 100644 --- a/tests/format/js/commonjs/__snapshots__/format.test.js.snap +++ b/tests/format/js/commonjs/__snapshots__/format.test.js.snap @@ -117,7 +117,253 @@ new.target ^~~~~~~~~~" `; -exports[`snippet: return.cjs format 1`] = ` +exports[`snippet: return/in-static-block.cjs format 1`] = ` +====================================options===================================== +parsers: ["babel", "flow", "typescript"] + printWidth: 80 (default) | +=====================================input====================================== +class X { static { return; } } +=====================================output===================================== +class X { + static { + return; + } +} + +================================================================================ +`; + +exports[`snippet: return/in-static-block.cjs format[__babel_estree] 1`] = ` +"'return' outside of function. (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function. (1:19)" +`; + +exports[`snippet: return/in-static-block.cjs format[acorn] 1`] = ` +"'return' outside of function (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function (1:19)" +`; + +exports[`snippet: return/in-static-block.cjs format[babel] 1`] = ` +"'return' outside of function. (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function. (1:19)" +`; + +exports[`snippet: return/in-static-block.cjs format[babel-ts] 1`] = ` +"'return' outside of function. (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function. (1:19)" +`; + +exports[`snippet: return/in-static-block.cjs format[espree] 1`] = ` +"'return' outside of function (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function" +`; + +exports[`snippet: return/in-static-block.cjs format[meriyah] 1`] = ` +"Illegal return statement (1:20) +> 1 | class X { static { return; } } + | ^^^^^^ +Cause: [1:19-1:25]: Illegal return statement" +`; + +exports[`snippet: return/in-static-block.cjs format[oxc] 1`] = ` +"A 'return' statement cannot be used inside a class static block. (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.cjs format[oxc-ts] 1`] = ` +"A 'return' statement cannot be used inside a class static block. (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.cjs format[yuku] 1`] = ` +"'return' statement is only valid inside a function (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.cjs format[yuku-ts] 1`] = ` +"'return' statement is only valid inside a function (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.mjs format 1`] = ` +====================================options===================================== +parsers: ["babel", "flow", "typescript"] + printWidth: 80 (default) | +=====================================input====================================== +class X { static { return; } } +=====================================output===================================== +class X { + static { + return; + } +} + +================================================================================ +`; + +exports[`snippet: return/in-static-block.mjs format[__babel_estree] 1`] = ` +"'return' outside of function. (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function. (1:19)" +`; + +exports[`snippet: return/in-static-block.mjs format[acorn] 1`] = ` +"'return' outside of function (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function (1:19)" +`; + +exports[`snippet: return/in-static-block.mjs format[babel] 1`] = ` +"'return' outside of function. (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function. (1:19)" +`; + +exports[`snippet: return/in-static-block.mjs format[babel-ts] 1`] = ` +"'return' outside of function. (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function. (1:19)" +`; + +exports[`snippet: return/in-static-block.mjs format[espree] 1`] = ` +"'return' outside of function (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function" +`; + +exports[`snippet: return/in-static-block.mjs format[meriyah] 1`] = ` +"Illegal return statement (1:20) +> 1 | class X { static { return; } } + | ^^^^^^ +Cause: [1:19-1:25]: Illegal return statement" +`; + +exports[`snippet: return/in-static-block.mjs format[oxc] 1`] = ` +"A 'return' statement cannot be used inside a class static block. (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.mjs format[oxc-ts] 1`] = ` +"A 'return' statement cannot be used inside a class static block. (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.mjs format[yuku] 1`] = ` +"'return' statement is only valid inside a function (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.mjs format[yuku-ts] 1`] = ` +"'return' statement is only valid inside a function (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.unknown format 1`] = ` +====================================options===================================== +parsers: ["babel", "flow", "typescript"] + printWidth: 80 (default) | +=====================================input====================================== +class X { static { return; } } +=====================================output===================================== +class X { + static { + return; + } +} + +================================================================================ +`; + +exports[`snippet: return/in-static-block.unknown format[__babel_estree] 1`] = ` +"'return' outside of function. (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function. (1:19)" +`; + +exports[`snippet: return/in-static-block.unknown format[acorn] 1`] = ` +"'return' outside of function (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function (1:19)" +`; + +exports[`snippet: return/in-static-block.unknown format[babel] 1`] = ` +"'return' outside of function. (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function. (1:19)" +`; + +exports[`snippet: return/in-static-block.unknown format[babel-ts] 1`] = ` +"'return' outside of function. (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function. (1:19)" +`; + +exports[`snippet: return/in-static-block.unknown format[espree] 1`] = ` +"'return' outside of function (1:20) +> 1 | class X { static { return; } } + | ^ +Cause: 'return' outside of function" +`; + +exports[`snippet: return/in-static-block.unknown format[meriyah] 1`] = ` +"Illegal return statement (1:20) +> 1 | class X { static { return; } } + | ^^^^^^ +Cause: [1:19-1:25]: Illegal return statement" +`; + +exports[`snippet: return/in-static-block.unknown format[oxc] 1`] = ` +"A 'return' statement cannot be used inside a class static block. (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.unknown format[oxc-ts] 1`] = ` +"A 'return' statement cannot be used inside a class static block. (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.unknown format[yuku] 1`] = ` +"'return' statement is only valid inside a function (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/in-static-block.unknown format[yuku-ts] 1`] = ` +"'return' statement is only valid inside a function (1:20) +> 1 | class X { static { return; } } + | ^^^^^^" +`; + +exports[`snippet: return/top-level.cjs format 1`] = ` ====================================options===================================== parsers: ["babel", "flow", "typescript"] printWidth: 80 (default) | @@ -129,7 +375,7 @@ return; ================================================================================ `; -exports[`snippet: return.mjs format 1`] = ` +exports[`snippet: return/top-level.mjs format 1`] = ` ====================================options===================================== parsers: ["babel", "flow", "typescript"] printWidth: 80 (default) | @@ -141,33 +387,33 @@ return; ================================================================================ `; -exports[`snippet: return.mjs format[espree] 1`] = ` +exports[`snippet: return/top-level.mjs format[espree] 1`] = ` "'return' outside of function (1:1) > 1 | return | ^ Cause: 'return' outside of function" `; -exports[`snippet: return.mjs format[meriyah] 1`] = ` +exports[`snippet: return/top-level.mjs format[meriyah] 1`] = ` "Illegal return statement (1:1) > 1 | return | ^^^^^^ Cause: [1:0-1:6]: Illegal return statement" `; -exports[`snippet: return.mjs format[yuku] 1`] = ` +exports[`snippet: return/top-level.mjs format[yuku] 1`] = ` "'return' statement is only valid inside a function (1:1) > 1 | return | ^^^^^^" `; -exports[`snippet: return.mjs format[yuku-ts] 1`] = ` +exports[`snippet: return/top-level.mjs format[yuku-ts] 1`] = ` "'return' statement is only valid inside a function (1:1) > 1 | return | ^^^^^^" `; -exports[`snippet: return.unknown format 1`] = ` +exports[`snippet: return/top-level.unknown format 1`] = ` ====================================options===================================== parsers: ["babel", "flow", "typescript"] printWidth: 80 (default) | diff --git a/tests/format/js/commonjs/format.test.js b/tests/format/js/commonjs/format.test.js index 5635fb99b..91821cd85 100644 --- a/tests/format/js/commonjs/format.test.js +++ b/tests/format/js/commonjs/format.test.js @@ -1,7 +1,12 @@ const tests = [ { code: "return", - baseFilename: "return", + baseFilename: "return/top-level", + }, + // https://github.com/acornjs/acorn/issues/1376#issuecomment-2960924476 + { + code: "class X { static { return; } }", + baseFilename: "return/in-static-block", }, { code: "new.target", @@ -23,9 +28,42 @@ runFormatTest( ["babel", "flow", "typescript"], { errors: { - acorn: ["new-target.mjs"], - espree: ["return.mjs", "new-target.mjs"], - meriyah: ["using.cjs", "return.mjs", "new-target.mjs"], + babel: [ + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], + "babel-ts": [ + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], + __babel_estree: [ + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], + acorn: [ + "new-target.mjs", + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], + espree: [ + "return/top-level.mjs", + "new-target.mjs", + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], + meriyah: [ + "using.cjs", + "return/top-level.mjs", + "new-target.mjs", + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], flow: [ "new-target.cjs", "new-target.mjs", @@ -35,10 +73,30 @@ runFormatTest( "using.unknown", ], hermes: ["new-target.cjs", "new-target.mjs", "new-target.unknown"], - oxc: ["new-target.mjs"], - "oxc-ts": ["new-target.mjs"], - yuku: ["return.mjs"], - "yuku-ts": ["return.mjs"], + oxc: [ + "new-target.mjs", + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], + "oxc-ts": [ + "new-target.mjs", + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], + yuku: [ + "return/top-level.mjs", + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], + "yuku-ts": [ + "return/top-level.mjs", + "return/in-static-block.cjs", + "return/in-static-block.mjs", + "return/in-static-block.unknown", + ], }, }, );