diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index 565d75e77a52..5fd5c402efc9 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -2066,6 +2066,11 @@ export default class ExpressionParser extends LValParser { if (this.match(tt.name)) { name = this.state.value; + + // An escaped identifier whose value is the same as a keyword + if (!liberal && this.state.containsEsc && isKeyword(name)) { + this.raise(this.state.pos, `Escape sequence in keyword ${name}`); + } } else if (this.state.type.keyword) { name = this.state.type.keyword; diff --git a/packages/babel-parser/src/tokenizer/index.js b/packages/babel-parser/src/tokenizer/index.js index f3e9a0438023..c8773f9bbe2a 100644 --- a/packages/babel-parser/src/tokenizer/index.js +++ b/packages/babel-parser/src/tokenizer/index.js @@ -1326,11 +1326,7 @@ export default class Tokenizer extends LocationParser { readWord(): void { const word = this.readWord1(); - const type = keywordTypes.get(word) || tt.name; - - if (type.keyword && this.state.containsEsc) { - this.raise(this.state.pos, `Escape sequence in keyword ${word}`); - } + const type = (!this.state.containsEsc && keywordTypes.get(word)) || tt.name; // Allow @@iterator and @@asyncIterator as a identifier only inside type if ( diff --git a/packages/babel-parser/test/fixtures/core/valid-escape/async/input.js b/packages/babel-parser/test/fixtures/core/escape-keyword/async/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/core/valid-escape/async/input.js rename to packages/babel-parser/test/fixtures/core/escape-keyword/async/input.js diff --git a/packages/babel-parser/test/fixtures/core/valid-escape/async/output.json b/packages/babel-parser/test/fixtures/core/escape-keyword/async/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/core/valid-escape/async/output.json rename to packages/babel-parser/test/fixtures/core/escape-keyword/async/output.json diff --git a/packages/babel-parser/test/fixtures/core/escape-keyword/invalid/input.js b/packages/babel-parser/test/fixtures/core/escape-keyword/invalid/input.js new file mode 100644 index 000000000000..d3f6f142b83a --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-keyword/invalid/input.js @@ -0,0 +1,3 @@ +var a = { + br\u{65}ak +}; diff --git a/packages/babel-parser/test/fixtures/core/escape-keyword/invalid/options.json b/packages/babel-parser/test/fixtures/core/escape-keyword/invalid/options.json new file mode 100644 index 000000000000..3ef90d2032d2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-keyword/invalid/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected keyword 'break' (2:2)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/core/escape-keyword/used-as-property/input.js b/packages/babel-parser/test/fixtures/core/escape-keyword/used-as-property/input.js new file mode 100644 index 000000000000..d5faad627616 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-keyword/used-as-property/input.js @@ -0,0 +1,3 @@ +var a = { + br\u{65}ak: 2 +}; diff --git a/packages/babel-parser/test/fixtures/core/escape-keyword/used-as-property/output.json b/packages/babel-parser/test/fixtures/core/escape-keyword/used-as-property/output.json new file mode 100644 index 000000000000..894aebee85f1 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-keyword/used-as-property/output.json @@ -0,0 +1,157 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 2 + } + }, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 2 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + }, + "identifierName": "a" + }, + "name": "a" + }, + "init": { + "type": "ObjectExpression", + "start": 8, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "properties": [ + { + "type": "ObjectProperty", + "start": 12, + "end": 25, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "method": false, + "key": { + "type": "Identifier", + "start": 12, + "end": 22, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 12 + }, + "identifierName": "break" + }, + "name": "break" + }, + "computed": false, + "shorthand": false, + "value": { + "type": "NumericLiteral", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 2, + "column": 14 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 + } + } + ] + } + } + ], + "kind": "var" + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/scripts/tests/test262/test262_whitelist.txt b/scripts/tests/test262/test262_whitelist.txt index 8f929fd51b80..34967767298a 100644 --- a/scripts/tests/test262/test262_whitelist.txt +++ b/scripts/tests/test262/test262_whitelist.txt @@ -284,108 +284,6 @@ built-ins/RegExp/property-escapes/unsupported-property-Line_Break.js(default) built-ins/RegExp/property-escapes/unsupported-property-Line_Break.js(strict mode) language/expressions/assignment/destructuring/obj-prop-__proto__dup.js(default) language/expressions/assignment/destructuring/obj-prop-__proto__dup.js(strict mode) -language/expressions/assignment/dstr/ident-name-prop-name-literal-break-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-case-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-catch-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-class-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-const-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-continue-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-debugger-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-default-escaped-ext.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-default-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-delete-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-do-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-else-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-export-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-extends-escaped-ext.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-extends-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-finally-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-for-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-function-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-if-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-import-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-in-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-instanceof-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-new-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-return-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-super-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-switch-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-this-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-throw-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-try-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-typeof-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-var-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-void-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-while-escaped.js(default) -language/expressions/assignment/dstr/ident-name-prop-name-literal-with-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-break-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-break-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-case-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-case-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-catch-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-catch-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-class-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-class-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-const-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-const-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-continue-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-continue-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-debugger-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-debugger-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-default-escaped-ext.js(default) -language/expressions/assignment/member-expr-ident-name-default-escaped-ext.js(strict mode) -language/expressions/assignment/member-expr-ident-name-default-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-default-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-delete-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-delete-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-do-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-do-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-else-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-else-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-export-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-export-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-extends-escaped-ext.js(default) -language/expressions/assignment/member-expr-ident-name-extends-escaped-ext.js(strict mode) -language/expressions/assignment/member-expr-ident-name-extends-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-extends-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-finally-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-finally-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-for-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-for-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-function-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-function-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-if-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-if-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-import-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-import-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-in-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-in-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-instanceof-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-instanceof-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-new-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-new-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-return-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-return-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-super-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-super-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-switch-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-switch-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-this-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-this-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-throw-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-throw-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-try-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-try-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-typeof-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-typeof-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-var-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-var-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-void-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-void-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-while-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-while-escaped.js(strict mode) -language/expressions/assignment/member-expr-ident-name-with-escaped.js(default) -language/expressions/assignment/member-expr-ident-name-with-escaped.js(strict mode) language/expressions/async-arrow-function/await-as-param-ident-nested-arrow-parameter-position.js(default) language/expressions/async-arrow-function/await-as-param-ident-nested-arrow-parameter-position.js(strict mode) language/expressions/async-arrow-function/await-as-param-nested-arrow-parameter-position.js(default) @@ -490,278 +388,6 @@ language/expressions/class/elements/syntax/early-errors/invalid-names/method-out language/expressions/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-this.js(strict mode) language/expressions/class/elements/syntax/early-errors/super-private-access-invalid.js(default) language/expressions/class/elements/syntax/early-errors/super-private-access-invalid.js(strict mode) -language/expressions/class/ident-name-method-def-break-escaped.js(default) -language/expressions/class/ident-name-method-def-break-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-case-escaped.js(default) -language/expressions/class/ident-name-method-def-case-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-catch-escaped.js(default) -language/expressions/class/ident-name-method-def-catch-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-class-escaped.js(default) -language/expressions/class/ident-name-method-def-class-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-const-escaped.js(default) -language/expressions/class/ident-name-method-def-const-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-continue-escaped.js(default) -language/expressions/class/ident-name-method-def-continue-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-debugger-escaped.js(default) -language/expressions/class/ident-name-method-def-debugger-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-default-escaped-ext.js(default) -language/expressions/class/ident-name-method-def-default-escaped-ext.js(strict mode) -language/expressions/class/ident-name-method-def-default-escaped.js(default) -language/expressions/class/ident-name-method-def-default-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-delete-escaped.js(default) -language/expressions/class/ident-name-method-def-delete-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-do-escaped.js(default) -language/expressions/class/ident-name-method-def-do-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-else-escaped.js(default) -language/expressions/class/ident-name-method-def-else-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-export-escaped.js(default) -language/expressions/class/ident-name-method-def-export-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-extends-escaped-ext.js(default) -language/expressions/class/ident-name-method-def-extends-escaped-ext.js(strict mode) -language/expressions/class/ident-name-method-def-extends-escaped.js(default) -language/expressions/class/ident-name-method-def-extends-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-finally-escaped.js(default) -language/expressions/class/ident-name-method-def-finally-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-for-escaped.js(default) -language/expressions/class/ident-name-method-def-for-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-function-escaped.js(default) -language/expressions/class/ident-name-method-def-function-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-if-escaped.js(default) -language/expressions/class/ident-name-method-def-if-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-import-escaped.js(default) -language/expressions/class/ident-name-method-def-import-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-in-escaped.js(default) -language/expressions/class/ident-name-method-def-in-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-instanceof-escaped.js(default) -language/expressions/class/ident-name-method-def-instanceof-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-new-escaped.js(default) -language/expressions/class/ident-name-method-def-new-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-return-escaped.js(default) -language/expressions/class/ident-name-method-def-return-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-super-escaped.js(default) -language/expressions/class/ident-name-method-def-super-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-switch-escaped.js(default) -language/expressions/class/ident-name-method-def-switch-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-this-escaped.js(default) -language/expressions/class/ident-name-method-def-this-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-throw-escaped.js(default) -language/expressions/class/ident-name-method-def-throw-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-try-escaped.js(default) -language/expressions/class/ident-name-method-def-try-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-typeof-escaped.js(default) -language/expressions/class/ident-name-method-def-typeof-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-var-escaped.js(default) -language/expressions/class/ident-name-method-def-var-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-void-escaped.js(default) -language/expressions/class/ident-name-method-def-void-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-while-escaped.js(default) -language/expressions/class/ident-name-method-def-while-escaped.js(strict mode) -language/expressions/class/ident-name-method-def-with-escaped.js(default) -language/expressions/class/ident-name-method-def-with-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-break-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-break-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-case-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-case-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-catch-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-catch-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-class-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-class-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-const-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-const-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-continue-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-continue-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-debugger-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-debugger-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-default-escaped-ext.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-default-escaped-ext.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-default-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-default-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-delete-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-delete-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-do-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-do-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-else-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-else-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-export-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-export-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-extends-escaped-ext.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-extends-escaped-ext.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-extends-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-extends-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-finally-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-finally-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-for-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-for-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-function-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-function-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-if-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-if-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-import-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-import-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-in-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-in-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-instanceof-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-instanceof-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-new-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-new-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-return-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-return-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-super-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-super-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-switch-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-switch-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-this-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-this-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-throw-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-throw-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-try-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-try-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-typeof-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-typeof-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-var-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-var-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-void-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-void-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-while-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-while-escaped.js(strict mode) -language/expressions/object/covered-ident-name-prop-name-literal-with-escaped.js(default) -language/expressions/object/covered-ident-name-prop-name-literal-with-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-break-escaped.js(default) -language/expressions/object/ident-name-method-def-break-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-case-escaped.js(default) -language/expressions/object/ident-name-method-def-case-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-catch-escaped.js(default) -language/expressions/object/ident-name-method-def-catch-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-class-escaped.js(default) -language/expressions/object/ident-name-method-def-class-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-const-escaped.js(default) -language/expressions/object/ident-name-method-def-const-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-continue-escaped.js(default) -language/expressions/object/ident-name-method-def-continue-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-debugger-escaped.js(default) -language/expressions/object/ident-name-method-def-debugger-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-default-escaped-ext.js(default) -language/expressions/object/ident-name-method-def-default-escaped-ext.js(strict mode) -language/expressions/object/ident-name-method-def-default-escaped.js(default) -language/expressions/object/ident-name-method-def-default-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-delete-escaped.js(default) -language/expressions/object/ident-name-method-def-delete-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-do-escaped.js(default) -language/expressions/object/ident-name-method-def-do-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-else-escaped.js(default) -language/expressions/object/ident-name-method-def-else-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-export-escaped.js(default) -language/expressions/object/ident-name-method-def-export-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-extends-escaped-ext.js(default) -language/expressions/object/ident-name-method-def-extends-escaped-ext.js(strict mode) -language/expressions/object/ident-name-method-def-extends-escaped.js(default) -language/expressions/object/ident-name-method-def-extends-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-finally-escaped.js(default) -language/expressions/object/ident-name-method-def-finally-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-for-escaped.js(default) -language/expressions/object/ident-name-method-def-for-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-function-escaped.js(default) -language/expressions/object/ident-name-method-def-function-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-if-escaped.js(default) -language/expressions/object/ident-name-method-def-if-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-import-escaped.js(default) -language/expressions/object/ident-name-method-def-import-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-in-escaped.js(default) -language/expressions/object/ident-name-method-def-in-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-instanceof-escaped.js(default) -language/expressions/object/ident-name-method-def-instanceof-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-new-escaped.js(default) -language/expressions/object/ident-name-method-def-new-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-return-escaped.js(default) -language/expressions/object/ident-name-method-def-return-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-super-escaped.js(default) -language/expressions/object/ident-name-method-def-super-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-switch-escaped.js(default) -language/expressions/object/ident-name-method-def-switch-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-this-escaped.js(default) -language/expressions/object/ident-name-method-def-this-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-throw-escaped.js(default) -language/expressions/object/ident-name-method-def-throw-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-try-escaped.js(default) -language/expressions/object/ident-name-method-def-try-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-typeof-escaped.js(default) -language/expressions/object/ident-name-method-def-typeof-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-var-escaped.js(default) -language/expressions/object/ident-name-method-def-var-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-void-escaped.js(default) -language/expressions/object/ident-name-method-def-void-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-while-escaped.js(default) -language/expressions/object/ident-name-method-def-while-escaped.js(strict mode) -language/expressions/object/ident-name-method-def-with-escaped.js(default) -language/expressions/object/ident-name-method-def-with-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-break-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-break-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-case-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-case-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-catch-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-catch-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-class-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-class-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-const-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-const-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-continue-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-continue-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-debugger-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-debugger-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-default-escaped-ext.js(default) -language/expressions/object/ident-name-prop-name-literal-default-escaped-ext.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-default-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-default-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-delete-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-delete-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-do-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-do-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-else-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-else-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-export-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-export-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-extends-escaped-ext.js(default) -language/expressions/object/ident-name-prop-name-literal-extends-escaped-ext.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-extends-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-extends-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-finally-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-finally-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-for-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-for-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-function-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-function-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-if-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-if-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-import-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-import-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-in-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-in-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-instanceof-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-instanceof-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-new-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-new-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-return-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-return-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-super-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-super-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-switch-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-switch-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-this-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-this-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-throw-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-throw-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-try-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-try-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-typeof-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-typeof-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-var-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-var-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-void-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-void-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-while-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-while-escaped.js(strict mode) -language/expressions/object/ident-name-prop-name-literal-with-escaped.js(default) -language/expressions/object/ident-name-prop-name-literal-with-escaped.js(strict mode) language/expressions/object/method-definition/private-name-early-error-async-gen-inside-class.js(default) language/expressions/object/method-definition/private-name-early-error-async-gen-inside-class.js(strict mode) language/expressions/object/method-definition/private-name-early-error-gen-inside-class.js(default) @@ -1134,74 +760,6 @@ language/statements/class/elements/syntax/early-errors/invalid-names/method-outt language/statements/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-this.js(strict mode) language/statements/class/elements/syntax/early-errors/super-private-access-invalid.js(default) language/statements/class/elements/syntax/early-errors/super-private-access-invalid.js(strict mode) -language/statements/class/ident-name-method-def-break-escaped.js(default) -language/statements/class/ident-name-method-def-break-escaped.js(strict mode) -language/statements/class/ident-name-method-def-case-escaped.js(default) -language/statements/class/ident-name-method-def-case-escaped.js(strict mode) -language/statements/class/ident-name-method-def-catch-escaped.js(default) -language/statements/class/ident-name-method-def-catch-escaped.js(strict mode) -language/statements/class/ident-name-method-def-class-escaped.js(default) -language/statements/class/ident-name-method-def-class-escaped.js(strict mode) -language/statements/class/ident-name-method-def-const-escaped.js(default) -language/statements/class/ident-name-method-def-const-escaped.js(strict mode) -language/statements/class/ident-name-method-def-continue-escaped.js(default) -language/statements/class/ident-name-method-def-continue-escaped.js(strict mode) -language/statements/class/ident-name-method-def-debugger-escaped.js(default) -language/statements/class/ident-name-method-def-debugger-escaped.js(strict mode) -language/statements/class/ident-name-method-def-default-escaped-ext.js(default) -language/statements/class/ident-name-method-def-default-escaped-ext.js(strict mode) -language/statements/class/ident-name-method-def-default-escaped.js(default) -language/statements/class/ident-name-method-def-default-escaped.js(strict mode) -language/statements/class/ident-name-method-def-delete-escaped.js(default) -language/statements/class/ident-name-method-def-delete-escaped.js(strict mode) -language/statements/class/ident-name-method-def-do-escaped.js(default) -language/statements/class/ident-name-method-def-do-escaped.js(strict mode) -language/statements/class/ident-name-method-def-else-escaped.js(default) -language/statements/class/ident-name-method-def-else-escaped.js(strict mode) -language/statements/class/ident-name-method-def-export-escaped.js(default) -language/statements/class/ident-name-method-def-export-escaped.js(strict mode) -language/statements/class/ident-name-method-def-extends-escaped-ext.js(default) -language/statements/class/ident-name-method-def-extends-escaped-ext.js(strict mode) -language/statements/class/ident-name-method-def-extends-escaped.js(default) -language/statements/class/ident-name-method-def-extends-escaped.js(strict mode) -language/statements/class/ident-name-method-def-finally-escaped.js(default) -language/statements/class/ident-name-method-def-finally-escaped.js(strict mode) -language/statements/class/ident-name-method-def-for-escaped.js(default) -language/statements/class/ident-name-method-def-for-escaped.js(strict mode) -language/statements/class/ident-name-method-def-function-escaped.js(default) -language/statements/class/ident-name-method-def-function-escaped.js(strict mode) -language/statements/class/ident-name-method-def-if-escaped.js(default) -language/statements/class/ident-name-method-def-if-escaped.js(strict mode) -language/statements/class/ident-name-method-def-import-escaped.js(default) -language/statements/class/ident-name-method-def-import-escaped.js(strict mode) -language/statements/class/ident-name-method-def-in-escaped.js(default) -language/statements/class/ident-name-method-def-in-escaped.js(strict mode) -language/statements/class/ident-name-method-def-instanceof-escaped.js(default) -language/statements/class/ident-name-method-def-instanceof-escaped.js(strict mode) -language/statements/class/ident-name-method-def-new-escaped.js(default) -language/statements/class/ident-name-method-def-new-escaped.js(strict mode) -language/statements/class/ident-name-method-def-return-escaped.js(default) -language/statements/class/ident-name-method-def-return-escaped.js(strict mode) -language/statements/class/ident-name-method-def-super-escaped.js(default) -language/statements/class/ident-name-method-def-super-escaped.js(strict mode) -language/statements/class/ident-name-method-def-switch-escaped.js(default) -language/statements/class/ident-name-method-def-switch-escaped.js(strict mode) -language/statements/class/ident-name-method-def-this-escaped.js(default) -language/statements/class/ident-name-method-def-this-escaped.js(strict mode) -language/statements/class/ident-name-method-def-throw-escaped.js(default) -language/statements/class/ident-name-method-def-throw-escaped.js(strict mode) -language/statements/class/ident-name-method-def-try-escaped.js(default) -language/statements/class/ident-name-method-def-try-escaped.js(strict mode) -language/statements/class/ident-name-method-def-typeof-escaped.js(default) -language/statements/class/ident-name-method-def-typeof-escaped.js(strict mode) -language/statements/class/ident-name-method-def-var-escaped.js(default) -language/statements/class/ident-name-method-def-var-escaped.js(strict mode) -language/statements/class/ident-name-method-def-void-escaped.js(default) -language/statements/class/ident-name-method-def-void-escaped.js(strict mode) -language/statements/class/ident-name-method-def-while-escaped.js(default) -language/statements/class/ident-name-method-def-while-escaped.js(strict mode) -language/statements/class/ident-name-method-def-with-escaped.js(default) -language/statements/class/ident-name-method-def-with-escaped.js(strict mode) language/statements/for-in/dstr/array-rest-before-elision.js(default) language/statements/for-in/dstr/array-rest-before-elision.js(strict mode) language/statements/for-in/dstr/array-rest-elision-invalid.js(default)