diff --git a/crates/oxc_linter/src/rules/early_error/javascript.rs b/crates/oxc_linter/src/rules/early_error/javascript.rs index de34f2234..3e7131503 100644 --- a/crates/oxc_linter/src/rules/early_error/javascript.rs +++ b/crates/oxc_linter/src/rules/early_error/javascript.rs @@ -20,6 +20,7 @@ impl Rule for EarlyErrorJavaScript { } AstKind::IdentifierReference(ident) => { check_identifier(&ident.name, ident.span, node, ctx); + check_identifier_reference(ident, node, ctx); } AstKind::LabelIdentifier(ident) => check_identifier(&ident.name, ident.span, node, ctx), AstKind::PrivateIdentifier(ident) => check_private_identifier(ident, node, ctx), @@ -110,6 +111,61 @@ fn check_binding_identifier<'a>( } } +fn check_identifier_reference<'a>( + ident: &IdentifierReference, + node: &AstNode<'a>, + ctx: &LintContext<'a>, +) { + #[derive(Debug, Error, Diagnostic)] + #[error("Cannot assign to '{0:?}' in strict mode")] + #[diagnostic()] + struct UnexpectedIdentifierAssign(Atom, #[label] Span); + + #[derive(Debug, Error, Diagnostic)] + #[error("'arguments' is not allowed in {0:?}")] + #[diagnostic()] + struct UnexpectedArguments(&'static str, #[label] Span); + + // Static Semantics: AssignmentTargetType + // 1. If this IdentifierReference is contained in strict mode code and StringValue of Identifier is "eval" or "arguments", return invalid. + if ctx.strict_mode(node) && matches!(ident.name.as_str(), "arguments" | "eval") { + for node_id in ctx.ancestors(node).skip(1) { + match ctx.kind(node_id) { + AstKind::AssignmentTarget(_) | AstKind::SimpleAssignmentTarget(_) => { + return ctx + .diagnostic(UnexpectedIdentifierAssign(ident.name.clone(), ident.span)); + } + AstKind::MemberExpression(_) => break, + _ => {} + } + } + } + + // FieldDefinition : ClassElementName Initializeropt + // It is a Syntax Error if Initializer is present and ContainsArguments of Initializer is true. + // ClassStaticBlockBody : ClassStaticBlockStatementList + // It is a Syntax Error if ContainsArguments of ClassStaticBlockStatementList is true. + + if ident.name == "arguments" { + for node_id in ctx.ancestors(node).skip(1) { + match ctx.kind(node_id) { + AstKind::Function(_) => break, + AstKind::PropertyDefinition(_) => { + return ctx + .diagnostic(UnexpectedArguments("class field initializer", ident.span)); + } + AstKind::StaticBlock(_) => { + return ctx.diagnostic(UnexpectedArguments( + "static initialization block", + ident.span, + )); + } + _ => {} + } + } + } +} + fn check_private_identifier<'a>( ident: &PrivateIdentifier, node: &AstNode<'a>, diff --git a/tasks/coverage/babel.snap b/tasks/coverage/babel.snap index db2535e56..be4e44245 100644 --- a/tasks/coverage/babel.snap +++ b/tasks/coverage/babel.snap @@ -1,7 +1,7 @@ Babel Summary: AST Parsed : 2056/2069 (99.37%) Positive Passed: 2056/2069 (99.37%) -Negative Passed: 935/1502 (62.25%) +Negative Passed: 936/1502 (62.32%) Expect Syntax Error: "annex-b/disabled/1.1-html-comments-close/input.js" Expect Syntax Error: "annex-b/disabled/3.1-sloppy-labeled-functions-if-body/input.js" Expect Syntax Error: "annex-b/disabled/3.1-sloppy-labeled-functions-multiple-labels/input.js" @@ -200,7 +200,6 @@ Expect Syntax Error: "es2015/uncategorised/291/input.js" Expect Syntax Error: "es2015/uncategorised/296/input.js" Expect Syntax Error: "es2015/uncategorised/297/input.js" Expect Syntax Error: "es2015/uncategorised/332/input.js" -Expect Syntax Error: "es2015/uncategorised/334/input.js" Expect Syntax Error: "es2015/uncategorised/349/input.js" Expect Syntax Error: "es2015/yield/function-name-function-declaration-inside-generator/input.js" Expect Syntax Error: "es2015/yield/function-name-generator-expression/input.js" @@ -2913,6 +2912,12 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ╰── Classes can only be declared at top level or inside a block ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[es2015/uncategorised/334/input.js:1:1] + 1 │ [...eval] = arr + · ──── + ╰──── + × Bad escape sequence in untagged template literal ╭─[es2015/uncategorised/339/input.js:1:1] 1 │ `\07` diff --git a/tasks/coverage/test262.snap b/tasks/coverage/test262.snap index c0857f867..829c67b60 100644 --- a/tasks/coverage/test262.snap +++ b/tasks/coverage/test262.snap @@ -1,13 +1,12 @@ Test262 Summary: AST Parsed : 43997/44009 (99.97%) Positive Passed: 43997/44009 (99.97%) -Negative Passed: 2509/3917 (64.05%) +Negative Passed: 2626/3917 (67.04%) Expect Syntax Error: "annexB/language/statements/for-in/const-initializer.js" Expect Syntax Error: "annexB/language/statements/for-in/let-initializer.js" Expect Syntax Error: "annexB/language/statements/for-in/strict-initializer.js" Expect Syntax Error: "annexB/language/statements/for-in/var-arraybindingpattern-initializer.js" Expect Syntax Error: "annexB/language/statements/for-in/var-objectbindingpattern-initializer.js" -Expect Syntax Error: "language/arguments-object/10.5-1gs.js" Expect Syntax Error: "language/block-scope/syntax/for-in/disallow-initialization-assignment.js" Expect Syntax Error: "language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-and-without-initializer.js" Expect Syntax Error: "language/block-scope/syntax/for-in/disallow-multiple-lexical-bindings-with-initializer.js" @@ -151,17 +150,8 @@ Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/ar Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js" Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js" Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js" -Expect Syntax Error: "language/expressions/assignment/dstr/array-elem-target-simple-strict.js" Expect Syntax Error: "language/expressions/assignment/dstr/obj-id-identifier-yield-expr.js" -Expect Syntax Error: "language/expressions/assignment/dstr/obj-id-init-simple-strict.js" -Expect Syntax Error: "language/expressions/assignment/dstr/obj-id-simple-strict.js" -Expect Syntax Error: "language/expressions/assignment/id-arguments-strict.js" -Expect Syntax Error: "language/expressions/assignment/id-eval-strict.js" -Expect Syntax Error: "language/expressions/assignmenttargettype/direct-identifierreference-arguments-strict.js" -Expect Syntax Error: "language/expressions/assignmenttargettype/direct-identifierreference-eval-strict.js" Expect Syntax Error: "language/expressions/assignmenttargettype/direct-yieldexpression-0.js" -Expect Syntax Error: "language/expressions/assignmenttargettype/parenthesized-identifierreference-arguments-strict.js" -Expect Syntax Error: "language/expressions/assignmenttargettype/parenthesized-identifierreference-eval-strict.js" Expect Syntax Error: "language/expressions/async-arrow-function/array-destructuring-param-strict-body.js" Expect Syntax Error: "language/expressions/async-arrow-function/await-as-binding-identifier-escaped.js" Expect Syntax Error: "language/expressions/async-arrow-function/await-as-binding-identifier.js" @@ -348,7 +338,6 @@ Expect Syntax Error: "language/expressions/class/dstr/private-meth-static-ary-pt Expect Syntax Error: "language/expressions/class/dstr/private-meth-static-dflt-ary-ptrn-rest-init-ary.js" Expect Syntax Error: "language/expressions/class/dstr/private-meth-static-dflt-ary-ptrn-rest-init-id.js" Expect Syntax Error: "language/expressions/class/dstr/private-meth-static-dflt-ary-ptrn-rest-init-obj.js" -Expect Syntax Error: "language/expressions/class/elements/arrow-fnc-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/arrow-fnc-init-err-contains-super.js" Expect Syntax Error: "language/expressions/class/elements/async-gen-private-method-static/await-as-binding-identifier-escaped.js" Expect Syntax Error: "language/expressions/class/elements/async-gen-private-method-static/await-as-binding-identifier.js" @@ -358,57 +347,31 @@ Expect Syntax Error: "language/expressions/class/elements/async-private-method-s Expect Syntax Error: "language/expressions/class/elements/async-private-method-static/await-as-binding-identifier.js" Expect Syntax Error: "language/expressions/class/elements/async-private-method/await-as-binding-identifier-escaped.js" Expect Syntax Error: "language/expressions/class/elements/async-private-method/await-as-binding-identifier.js" -Expect Syntax Error: "language/expressions/class/elements/comp-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/comp-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/equality-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/equality-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-arrow-fnc-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-arrow-fnc-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-comp-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-comp-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-private-arrow-fnc-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-private-arrow-fnc-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-private-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-private-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-private-ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-private-ternary-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-private-typeof-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-private-typeof-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-static-comp-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-static-comp-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-static-literal-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-static-literal-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-static-private-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-static-private-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-static-string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-static-string-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-string-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-ternary-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/nested-typeof-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/nested-typeof-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/private-arrow-fnc-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/private-arrow-fnc-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/private-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/private-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/private-ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/private-ternary-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/private-typeof-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/private-typeof-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/static-comp-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/static-comp-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/static-literal-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/static-literal-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/static-private-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/static-private-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/static-string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/static-string-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/string-literal-name-init-err-contains-super.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-privatename.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-async-gen.js" @@ -464,9 +427,7 @@ Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/gr Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-private-meth-super.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-set-meth-super.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/super-private-access-invalid.js" -Expect Syntax Error: "language/expressions/class/elements/ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/ternary-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/typeof-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/typeof-init-err-contains-super.js" Expect Syntax Error: "language/expressions/class/gen-method-param-dflt-yield.js" Expect Syntax Error: "language/expressions/class/gen-method-static/array-destructuring-param-strict-body.js" @@ -495,29 +456,6 @@ Expect Syntax Error: "language/expressions/coalesce/cannot-chain-head-with-logic Expect Syntax Error: "language/expressions/coalesce/cannot-chain-head-with-logical-or.js" Expect Syntax Error: "language/expressions/coalesce/cannot-chain-tail-with-logical-and.js" Expect Syntax Error: "language/expressions/coalesce/cannot-chain-tail-with-logical-or.js" -Expect Syntax Error: "language/expressions/compound-assignment/11.13.2-6-1gs.js" -Expect Syntax Error: "language/expressions/compound-assignment/add-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/add-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/and-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/and-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/div-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/div-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/lshift-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/lshift-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/mod-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/mod-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/mult-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/mult-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/or-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/or-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/srshift-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/srshift-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/sub-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/sub-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/urshift-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/urshift-eval-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/xor-arguments-strict.js" -Expect Syntax Error: "language/expressions/compound-assignment/xor-eval-strict.js" Expect Syntax Error: "language/expressions/delete/identifier-strict-recursive.js" Expect Syntax Error: "language/expressions/delete/identifier-strict.js" Expect Syntax Error: "language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js" @@ -569,12 +507,6 @@ Expect Syntax Error: "language/expressions/generators/rest-param-strict-body.js" Expect Syntax Error: "language/expressions/generators/use-strict-with-non-simple-param.js" Expect Syntax Error: "language/expressions/generators/yield-as-generator-expression-binding-identifier.js" Expect Syntax Error: "language/expressions/import.meta/syntax/goal-script.js" -Expect Syntax Error: "language/expressions/logical-assignment/lgcl-and-arguments-strict.js" -Expect Syntax Error: "language/expressions/logical-assignment/lgcl-and-eval-strict.js" -Expect Syntax Error: "language/expressions/logical-assignment/lgcl-nullish-arguments-strict.js" -Expect Syntax Error: "language/expressions/logical-assignment/lgcl-nullish-eval-strict.js" -Expect Syntax Error: "language/expressions/logical-assignment/lgcl-or-arguments-strict.js" -Expect Syntax Error: "language/expressions/logical-assignment/lgcl-or-eval-strict.js" Expect Syntax Error: "language/expressions/object/11.1.5-1gs.js" Expect Syntax Error: "language/expressions/object/__proto__-duplicate.js" Expect Syntax Error: "language/expressions/object/cover-initialized-name.js" @@ -657,16 +589,6 @@ Expect Syntax Error: "language/expressions/object/setter-param-arguments-strict- Expect Syntax Error: "language/expressions/object/setter-param-eval-strict-inside.js" Expect Syntax Error: "language/expressions/object/setter-param-eval-strict-outside.js" Expect Syntax Error: "language/expressions/optional-chaining/call-expression-super-no-base.js" -Expect Syntax Error: "language/expressions/postfix-decrement/arguments.js" -Expect Syntax Error: "language/expressions/postfix-decrement/eval.js" -Expect Syntax Error: "language/expressions/postfix-increment/11.3.1-2-1gs.js" -Expect Syntax Error: "language/expressions/postfix-increment/arguments.js" -Expect Syntax Error: "language/expressions/postfix-increment/eval.js" -Expect Syntax Error: "language/expressions/prefix-decrement/11.4.5-2-2gs.js" -Expect Syntax Error: "language/expressions/prefix-decrement/arguments.js" -Expect Syntax Error: "language/expressions/prefix-decrement/eval.js" -Expect Syntax Error: "language/expressions/prefix-increment/arguments.js" -Expect Syntax Error: "language/expressions/prefix-increment/eval.js" Expect Syntax Error: "language/global-code/export.js" Expect Syntax Error: "language/global-code/import.js" Expect Syntax Error: "language/global-code/new.target-arrow.js" @@ -944,7 +866,6 @@ Expect Syntax Error: "language/statements/class/dstr/private-meth-static-ary-ptr Expect Syntax Error: "language/statements/class/dstr/private-meth-static-dflt-ary-ptrn-rest-init-ary.js" Expect Syntax Error: "language/statements/class/dstr/private-meth-static-dflt-ary-ptrn-rest-init-id.js" Expect Syntax Error: "language/statements/class/dstr/private-meth-static-dflt-ary-ptrn-rest-init-obj.js" -Expect Syntax Error: "language/statements/class/elements/arrow-fnc-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/arrow-fnc-init-err-contains-super.js" Expect Syntax Error: "language/statements/class/elements/async-gen-private-method-static/await-as-binding-identifier-escaped.js" Expect Syntax Error: "language/statements/class/elements/async-gen-private-method-static/await-as-binding-identifier.js" @@ -954,57 +875,31 @@ Expect Syntax Error: "language/statements/class/elements/async-private-method-st Expect Syntax Error: "language/statements/class/elements/async-private-method-static/await-as-binding-identifier.js" Expect Syntax Error: "language/statements/class/elements/async-private-method/await-as-binding-identifier-escaped.js" Expect Syntax Error: "language/statements/class/elements/async-private-method/await-as-binding-identifier.js" -Expect Syntax Error: "language/statements/class/elements/comp-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/comp-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/equality-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/equality-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-arrow-fnc-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-arrow-fnc-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-comp-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-comp-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-private-arrow-fnc-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-private-arrow-fnc-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-private-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-private-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-private-ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-private-ternary-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-private-typeof-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-private-typeof-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-static-comp-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-static-comp-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-static-literal-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-static-literal-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-static-private-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-static-private-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-static-string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-static-string-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-string-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-ternary-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/nested-typeof-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/nested-typeof-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/private-arrow-fnc-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/private-arrow-fnc-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/private-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/private-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/private-ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/private-ternary-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/private-typeof-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/private-typeof-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/static-comp-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/static-comp-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/static-literal-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/static-literal-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/static-private-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/static-private-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/static-string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/static-string-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/string-literal-name-init-err-contains-super.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-privatename.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-async-gen.js" @@ -1060,9 +955,7 @@ Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/gra Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-private-meth-super.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-set-meth-super.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/super-private-access-invalid.js" -Expect Syntax Error: "language/statements/class/elements/ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/ternary-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/typeof-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/typeof-init-err-contains-super.js" Expect Syntax Error: "language/statements/class/gen-method-param-dflt-yield.js" Expect Syntax Error: "language/statements/class/gen-method-static/array-destructuring-param-strict-body.js" @@ -1087,7 +980,6 @@ Expect Syntax Error: "language/statements/class/method/object-destructuring-para Expect Syntax Error: "language/statements/class/method/rest-param-strict-body.js" Expect Syntax Error: "language/statements/class/static-gen-method-param-dflt-yield.js" Expect Syntax Error: "language/statements/class/static-init-await-binding-invalid.js" -Expect Syntax Error: "language/statements/class/static-init-invalid-arguments.js" Expect Syntax Error: "language/statements/class/static-init-invalid-await.js" Expect Syntax Error: "language/statements/class/static-init-invalid-lex-dup.js" Expect Syntax Error: "language/statements/class/static-init-invalid-lex-var.js" @@ -1102,7 +994,6 @@ Expect Syntax Error: "language/statements/const/redeclaration-error-from-within- Expect Syntax Error: "language/statements/const/static-init-await-binding-invalid.js" Expect Syntax Error: "language/statements/do-while/decl-fun.js" Expect Syntax Error: "language/statements/do-while/labelled-fn-stmt.js" -Expect Syntax Error: "language/statements/for-await-of/async-func-decl-dstr-array-elem-target-simple-strict.js" Expect Syntax Error: "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-ary.js" Expect Syntax Error: "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-id.js" Expect Syntax Error: "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-obj.js" @@ -1149,10 +1040,7 @@ Expect Syntax Error: "language/statements/for-await-of/head-const-init.js" Expect Syntax Error: "language/statements/for-await-of/head-let-init.js" Expect Syntax Error: "language/statements/for-await-of/head-var-init.js" Expect Syntax Error: "language/statements/for-in/decl-fun.js" -Expect Syntax Error: "language/statements/for-in/dstr/array-elem-target-simple-strict.js" Expect Syntax Error: "language/statements/for-in/dstr/obj-id-identifier-yield-expr.js" -Expect Syntax Error: "language/statements/for-in/dstr/obj-id-init-simple-strict.js" -Expect Syntax Error: "language/statements/for-in/dstr/obj-id-simple-strict.js" Expect Syntax Error: "language/statements/for-in/head-const-bound-names-dup.js" Expect Syntax Error: "language/statements/for-in/head-const-bound-names-in-stmt.js" Expect Syntax Error: "language/statements/for-in/head-let-bound-names-dup.js" @@ -1168,7 +1056,6 @@ Expect Syntax Error: "language/statements/for-in/var-arguments-strict.js" Expect Syntax Error: "language/statements/for-in/var-eval-strict-init.js" Expect Syntax Error: "language/statements/for-in/var-eval-strict.js" Expect Syntax Error: "language/statements/for-of/decl-fun.js" -Expect Syntax Error: "language/statements/for-of/dstr/array-elem-target-simple-strict.js" Expect Syntax Error: "language/statements/for-of/dstr/const-ary-ptrn-init-err.js" Expect Syntax Error: "language/statements/for-of/dstr/const-ary-ptrn-rest-init-ary.js" Expect Syntax Error: "language/statements/for-of/dstr/const-ary-ptrn-rest-init-id.js" @@ -1180,8 +1067,6 @@ Expect Syntax Error: "language/statements/for-of/dstr/let-ary-ptrn-rest-init-id. Expect Syntax Error: "language/statements/for-of/dstr/let-ary-ptrn-rest-init-obj.js" Expect Syntax Error: "language/statements/for-of/dstr/let-obj-ptrn-init-err.js" Expect Syntax Error: "language/statements/for-of/dstr/obj-id-identifier-yield-expr.js" -Expect Syntax Error: "language/statements/for-of/dstr/obj-id-init-simple-strict.js" -Expect Syntax Error: "language/statements/for-of/dstr/obj-id-simple-strict.js" Expect Syntax Error: "language/statements/for-of/dstr/var-ary-ptrn-init-err.js" Expect Syntax Error: "language/statements/for-of/dstr/var-ary-ptrn-rest-init-ary.js" Expect Syntax Error: "language/statements/for-of/dstr/var-ary-ptrn-rest-init-id.js" @@ -1214,7 +1099,6 @@ Expect Syntax Error: "language/statements/for/labelled-fn-stmt-const.js" Expect Syntax Error: "language/statements/for/labelled-fn-stmt-expr.js" Expect Syntax Error: "language/statements/for/labelled-fn-stmt-let.js" Expect Syntax Error: "language/statements/for/labelled-fn-stmt-var.js" -Expect Syntax Error: "language/statements/function/13.0_4-5gs.js" Expect Syntax Error: "language/statements/function/13.1-13gs.js" Expect Syntax Error: "language/statements/function/13.1-1gs.js" Expect Syntax Error: "language/statements/function/13.1-4gs.js" @@ -1235,7 +1119,6 @@ Expect Syntax Error: "language/statements/function/early-params-super-call.js" Expect Syntax Error: "language/statements/function/early-params-super-prop.js" Expect Syntax Error: "language/statements/function/enable-strict-via-body.js" Expect Syntax Error: "language/statements/function/enable-strict-via-outer-body.js" -Expect Syntax Error: "language/statements/function/enable-strict-via-outer-script.js" Expect Syntax Error: "language/statements/function/name-arguments-strict-body.js" Expect Syntax Error: "language/statements/function/name-arguments-strict.js" Expect Syntax Error: "language/statements/function/name-eval-strict-body.js" @@ -1535,6 +1418,14 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ───── ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/arguments-object/10.5-1gs.js:16:1] + 16 │ function f_10_5_1_gs(){ + 17 │ arguments = 7; + · ───────── + 18 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[language/asi/S7.9.2_A1_T1.js:15:1] 15 │ //CHECK#1 @@ -2653,6 +2544,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰──── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/assignment/dstr/array-elem-target-simple-strict.js:22:1] + 22 │ + 23 │ 0, [arguments] = []; + · ───────── + ╰──── + × The keyword '"yield"' is reserved ╭─[language/expressions/assignment/dstr/array-elem-target-yield-invalid.js:22:1] 22 │ @@ -2744,6 +2642,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ───── ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/assignment/dstr/obj-id-init-simple-strict.js:22:1] + 22 │ + 23 │ 0, { eval = 0 } = {}; + · ──── + ╰──── + × The keyword '"yield"' is reserved ╭─[language/expressions/assignment/dstr/obj-id-init-yield-ident-invalid.js:22:1] 22 │ @@ -2751,6 +2656,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ───── ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/assignment/dstr/obj-id-simple-strict.js:22:1] + 22 │ + 23 │ 0, { eval } = {}; + · ──── + ╰──── + × The keyword '"yield"' is reserved ╭─[language/expressions/assignment/dstr/obj-prop-elem-init-yield-ident-invalid.js:22:1] 22 │ @@ -3138,6 +3050,20 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ─ ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/assignment/id-arguments-strict.js:15:1] + 15 │ + 16 │ (arguments) = 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/assignment/id-eval-strict.js:15:1] + 15 │ + 16 │ (eval) = 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/assignment/non-simple-target.js:17:1] 17 │ @@ -3616,6 +3542,20 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/assignmenttargettype/direct-identifierreference-arguments-strict.js:15:1] + 15 │ + 16 │ arguments = 1; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/assignmenttargettype/direct-identifierreference-eval-strict.js:15:1] + 15 │ + 16 │ eval = 1; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/assignmenttargettype/direct-import.meta.js:19:1] 19 │ @@ -4801,6 +4741,20 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/assignmenttargettype/parenthesized-identifierreference-arguments-strict.js:18:1] + 18 │ + 19 │ (arguments) = 1; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/assignmenttargettype/parenthesized-identifierreference-eval-strict.js:18:1] + 18 │ + 19 │ (eval) = 1; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/assignmenttargettype/parenthesized-import.meta.js:22:1] 22 │ @@ -7381,6 +7335,14 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 74 │ ╰──── + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/arrow-fnc-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ x = () => arguments; + · ───────── + 34 │ } + ╰──── + × Keywords cannot contain escape characters ╭─[language/expressions/class/elements/async-gen-private-method-static/await-as-identifier-reference-escaped.js:34:1] 34 │ var C = class { static async *#gen() { @@ -7735,6 +7697,22 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 37 │ } ╰──── + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/comp-name-init-err-contains-arguments.js:33:1] + 33 │ var C = class { + 34 │ [x] = arguments; + · ───────── + 35 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/equality-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ x = {} == arguments; + · ───────── + 34 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[language/expressions/class/elements/fields-asi-3.js:16:1] 16 │ x = "string" @@ -7995,6 +7973,30 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 34 │ throw new Test262Error(); ╰──── + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/literal-name-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ x = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-arrow-fnc-init-err-contains-arguments.js:33:1] + 33 │ x = () => { + 34 │ var t = () => arguments; + · ───────── + 35 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-comp-name-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ [x] = () => arguments; + · ───────── + 34 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[language/expressions/class/elements/nested-equality-init-err-contains-arguments.js:31:1] 31 │ var C = class { @@ -8015,6 +8017,174 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par ╰──── help: Try insert a semicolon here + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-literal-name-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ x = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-private-arrow-fnc-init-err-contains-arguments.js:33:1] + 33 │ #x = () => { + 34 │ var t = () => arguments; + · ───────── + 35 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-private-literal-name-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ #x = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-private-ternary-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ #x = () => true ? {} : arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-private-typeof-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ #x = () => typeof arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-static-comp-name-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ static [x] = () => arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-static-literal-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ static x = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-static-private-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ static #x = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-static-string-literal-name-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ static 'x' = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-string-literal-name-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ 'x' = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-ternary-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ x = () => true ? {} : arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/nested-typeof-init-err-contains-arguments.js:31:1] + 31 │ var C = class { + 32 │ x = () => typeof arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/private-arrow-fnc-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ #x = () => arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/private-literal-name-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ #x = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/private-ternary-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ #x = true ? {} : arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/private-typeof-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ #x = typeof arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/static-comp-name-init-err-contains-arguments.js:33:1] + 33 │ var C = class { + 34 │ static [x] = arguments; + · ───────── + 35 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/static-literal-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ static x = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/static-private-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ static #x = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/static-string-literal-name-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ static 'x' = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/string-literal-name-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ 'x' = arguments; + · ───────── + 34 │ } + ╰──── + × Empty parenthesized expression ╭─[language/expressions/class/elements/syntax/early-errors/class-heritage-array-literal-arrow-heritage.js:22:1] 22 │ @@ -9592,6 +9762,22 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 25 │ }; ╰──── + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/ternary-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ x = true ? {} : arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/expressions/class/elements/typeof-init-err-contains-arguments.js:32:1] + 32 │ var C = class { + 33 │ x = typeof arguments; + · ───────── + 34 │ } + ╰──── + × Rest element must be last element ╭─[language/expressions/class/gen-method-static/rest-params-trailing-comma-early-error.js:80:1] 80 │ 0, class { @@ -9806,6 +9992,27 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 22 │ }; ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/11.13.2-6-1gs.js:16:1] + 16 │ + 17 │ eval *= 20; + · ──── + ╰──── + + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/add-arguments-strict.js:18:1] + 18 │ + 19 │ arguments += 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/add-eval-strict.js:17:1] + 17 │ + 18 │ eval += 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/compound-assignment/add-non-simple.js:16:1] 16 │ @@ -9814,6 +10021,20 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/and-arguments-strict.js:18:1] + 18 │ + 19 │ arguments &= 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/and-eval-strict.js:17:1] + 17 │ + 18 │ eval &= 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/compound-assignment/btws-and-non-simple.js:16:1] 16 │ @@ -9838,6 +10059,20 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/div-arguments-strict.js:18:1] + 18 │ + 19 │ arguments /= 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/div-eval-strict.js:17:1] + 17 │ + 18 │ eval /= 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/compound-assignment/div-non-simple.js:16:1] 16 │ @@ -9854,6 +10089,27 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/lshift-arguments-strict.js:18:1] + 18 │ + 19 │ arguments <<= 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/lshift-eval-strict.js:18:1] + 18 │ + 19 │ eval <<= 20; + · ──── + ╰──── + + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/mod-arguments-strict.js:18:1] + 18 │ + 19 │ arguments %= 20; + · ───────── + ╰──── + × Invalid assignment ╭─[language/expressions/compound-assignment/mod-div-non-simple.js:16:1] 16 │ @@ -9862,6 +10118,27 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/mod-eval-strict.js:17:1] + 17 │ + 18 │ eval %= 20; + · ──── + ╰──── + + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/mult-arguments-strict.js:18:1] + 18 │ + 19 │ arguments *= 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/mult-eval-strict.js:17:1] + 17 │ + 18 │ eval *= 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/compound-assignment/mult-non-simple.js:16:1] 16 │ @@ -9870,6 +10147,20 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/or-arguments-strict.js:18:1] + 18 │ + 19 │ arguments |= 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/or-eval-strict.js:17:1] + 17 │ + 18 │ eval |= 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/compound-assignment/right-shift-non-simple.js:16:1] 16 │ @@ -9878,6 +10169,34 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/srshift-arguments-strict.js:18:1] + 18 │ + 19 │ arguments >>= 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/srshift-eval-strict.js:18:1] + 18 │ + 19 │ eval >>= 20; + · ──── + ╰──── + + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/sub-arguments-strict.js:18:1] + 18 │ + 19 │ arguments -= 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/sub-eval-strict.js:17:1] + 17 │ + 18 │ eval -= 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/compound-assignment/subtract-non-simple.js:16:1] 16 │ @@ -9894,6 +10213,34 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/urshift-arguments-strict.js:18:1] + 18 │ + 19 │ arguments >>>= 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/urshift-eval-strict.js:18:1] + 18 │ + 19 │ eval >>>= 20; + · ──── + ╰──── + + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/compound-assignment/xor-arguments-strict.js:18:1] + 18 │ + 19 │ arguments ^= 20; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/compound-assignment/xor-eval-strict.js:17:1] + 17 │ + 18 │ eval ^= 20; + · ──── + ╰──── + × Unexpected token ╭─[language/expressions/conditional/in-branch-2.js:21:1] 21 │ @@ -11271,6 +11618,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ───── ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/logical-assignment/lgcl-and-arguments-strict.js:17:1] + 17 │ + 18 │ arguments &&= 20; + · ───────── + ╰──── + × Invalid assignment ╭─[language/expressions/logical-assignment/lgcl-and-assignment-operator-non-simple-lhs.js:18:1] 18 │ function test() {} @@ -11279,6 +11633,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/logical-assignment/lgcl-and-eval-strict.js:16:1] + 16 │ + 17 │ eval &&= 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/logical-assignment/lgcl-and-non-simple.js:16:1] 16 │ @@ -11287,6 +11648,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/logical-assignment/lgcl-nullish-arguments-strict.js:17:1] + 17 │ + 18 │ arguments ??= 20; + · ───────── + ╰──── + × Invalid assignment ╭─[language/expressions/logical-assignment/lgcl-nullish-assignment-operator-non-simple-lhs.js:18:1] 18 │ function test() {} @@ -11295,6 +11663,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/logical-assignment/lgcl-nullish-eval-strict.js:16:1] + 16 │ + 17 │ eval ??= 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/logical-assignment/lgcl-nullish-non-simple.js:16:1] 16 │ @@ -11303,6 +11678,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/logical-assignment/lgcl-or-arguments-strict.js:17:1] + 17 │ + 18 │ arguments ||= 20; + · ───────── + ╰──── + × Invalid assignment ╭─[language/expressions/logical-assignment/lgcl-or-assignment-operator-non-simple-lhs.js:18:1] 18 │ function test() {} @@ -11311,6 +11693,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/logical-assignment/lgcl-or-eval-strict.js:16:1] + 16 │ + 17 │ eval ||= 20; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/logical-assignment/lgcl-or-non-simple.js:16:1] 16 │ @@ -12177,6 +12566,20 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/postfix-decrement/arguments.js:25:1] + 25 │ + 26 │ arguments--; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/postfix-decrement/eval.js:25:1] + 25 │ + 26 │ eval--; + · ──── + ╰──── + × Unexpected token ╭─[language/expressions/postfix-decrement/line-terminator-carriage-return.js:16:1] 16 │ x @@ -12235,6 +12638,27 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 31 │ } ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/postfix-increment/11.3.1-2-1gs.js:16:1] + 16 │ + 17 │ arguments++; + · ───────── + ╰──── + + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/postfix-increment/arguments.js:21:1] + 21 │ + 22 │ arguments++; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/postfix-increment/eval.js:21:1] + 21 │ + 22 │ eval++; + · ──── + ╰──── + × Unexpected token ╭─[language/expressions/postfix-increment/line-terminator-carriage-return.js:16:1] 16 │ x @@ -12293,6 +12717,27 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 31 │ } ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/prefix-decrement/11.4.5-2-2gs.js:16:1] + 16 │ + 17 │ --arguments; + · ───────── + ╰──── + + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/prefix-decrement/arguments.js:25:1] + 25 │ + 26 │ --arguments; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/prefix-decrement/eval.js:25:1] + 25 │ + 26 │ --eval; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/prefix-decrement/target-cover-newtarget.js:29:1] 29 │ function f() { @@ -12320,6 +12765,20 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 31 │ } ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/expressions/prefix-increment/arguments.js:25:1] + 25 │ + 26 │ ++arguments; + · ───────── + ╰──── + + × Cannot assign to '"eval"' in strict mode + ╭─[language/expressions/prefix-increment/eval.js:26:1] + 26 │ + 27 │ ++eval; + · ──── + ╰──── + × Invalid assignment ╭─[language/expressions/prefix-increment/target-cover-newtarget.js:29:1] 29 │ function f() { @@ -17387,6 +17846,14 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 73 │ ╰──── + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/arrow-fnc-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ x = () => arguments; + · ───────── + 34 │ } + ╰──── + × Keywords cannot contain escape characters ╭─[language/statements/class/elements/async-gen-private-method-static/await-as-identifier-reference-escaped.js:34:1] 34 │ class C { static async *#gen() { @@ -17741,6 +18208,22 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 37 │ } ╰──── + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/comp-name-init-err-contains-arguments.js:33:1] + 33 │ class C { + 34 │ [x] = arguments; + · ───────── + 35 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/equality-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ x = {} == arguments; + · ───────── + 34 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[language/statements/class/elements/fields-asi-3.js:16:1] 16 │ x = "string" @@ -18001,6 +18484,30 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 34 │ throw new Test262Error(); ╰──── + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/literal-name-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ x = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-arrow-fnc-init-err-contains-arguments.js:33:1] + 33 │ x = () => { + 34 │ var t = () => arguments; + · ───────── + 35 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-comp-name-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ [x] = () => arguments; + · ───────── + 34 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[language/statements/class/elements/nested-equality-init-err-contains-arguments.js:31:1] 31 │ class C { @@ -18021,6 +18528,134 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par ╰──── help: Try insert a semicolon here + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-literal-name-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ x = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-private-arrow-fnc-init-err-contains-arguments.js:33:1] + 33 │ #x = () => { + 34 │ var t = () => arguments; + · ───────── + 35 │ t(); + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-private-literal-name-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ #x = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-private-ternary-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ #x = () => false ? {} : arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-private-typeof-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ #x = () => typeof arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-static-comp-name-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ static [x] = () => arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-static-literal-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ static x = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-static-private-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ static #x = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-static-string-literal-name-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ static 'x' = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-string-literal-name-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ 'x' = () => arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-ternary-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ x = () => false ? {} : arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/nested-typeof-init-err-contains-arguments.js:31:1] + 31 │ class C { + 32 │ x = () => typeof arguments; + · ───────── + 33 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/private-arrow-fnc-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ #x = () => arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/private-literal-name-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ #x = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/private-ternary-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ #x = false ? {} : arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/private-typeof-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ #x = typeof arguments; + · ───────── + 34 │ } + ╰──── + × Private field '"x"' must be declared in an enclosing class ╭─[language/statements/class/elements/privatename-not-valid-earlyerr-script-1.js:21:1] 21 │ constructor() { @@ -18082,6 +18717,46 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 22 │ } ╰──── + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/static-comp-name-init-err-contains-arguments.js:33:1] + 33 │ class C { + 34 │ static [x] = arguments; + · ───────── + 35 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/static-literal-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ static x = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/static-private-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ static #x = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/static-string-literal-name-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ static 'x' = arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/string-literal-name-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ 'x' = arguments; + · ───────── + 34 │ } + ╰──── + × Empty parenthesized expression ╭─[language/statements/class/elements/syntax/early-errors/class-heritage-array-literal-arrow-heritage.js:22:1] 22 │ @@ -19659,6 +20334,22 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 25 │ } ╰──── + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/ternary-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ x = false ? {} : arguments; + · ───────── + 34 │ } + ╰──── + + × 'arguments' is not allowed in "class field initializer" + ╭─[language/statements/class/elements/typeof-init-err-contains-arguments.js:32:1] + 32 │ class C { + 33 │ x = typeof arguments; + · ───────── + 34 │ } + ╰──── + × Rest element must be last element ╭─[language/statements/class/gen-method-static/rest-params-trailing-comma-early-error.js:78:1] 78 │ class C { @@ -19913,6 +20604,14 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 18 │ } ╰──── + × 'arguments' is not allowed in "static initialization block" + ╭─[language/statements/class/static-init-invalid-arguments.js:20:1] + 20 │ static { + 21 │ (class { [argument\u0073]() {} }); + · ────────────── + 22 │ } + ╰──── + × Identifier `"x"` has already been declared ╭─[language/statements/class/static-init-invalid-label-dup.js:20:1] 20 │ static { @@ -20498,6 +21197,14 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par 34 │ } ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/statements/for-await-of/async-func-decl-dstr-array-elem-target-simple-strict.js:32:1] + 32 │ async function fn() { + 33 │ for await ([arguments] of [[]]) {} + · ───────── + 34 │ } + ╰──── + × The keyword '"yield"' is reserved ╭─[language/statements/for-await-of/async-func-decl-dstr-array-elem-target-yield-invalid.js:32:1] 32 │ async function fn() { @@ -20962,6 +21669,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰──── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/statements/for-in/dstr/array-elem-target-simple-strict.js:31:1] + 31 │ + 32 │ for ([arguments] in [[]]) ; + · ───────── + ╰──── + × The keyword '"yield"' is reserved ╭─[language/statements/for-in/dstr/array-elem-target-yield-invalid.js:31:1] 31 │ @@ -21048,6 +21762,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ───── ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/statements/for-in/dstr/obj-id-init-simple-strict.js:31:1] + 31 │ + 32 │ for ({ eval = 0 } in [{}]) ; + · ──── + ╰──── + × The keyword '"yield"' is reserved ╭─[language/statements/for-in/dstr/obj-id-init-yield-ident-invalid.js:31:1] 31 │ @@ -21055,6 +21776,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ───── ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/statements/for-in/dstr/obj-id-simple-strict.js:31:1] + 31 │ + 32 │ for ({ eval } in [{}]) ; + · ──── + ╰──── + × The keyword '"yield"' is reserved ╭─[language/statements/for-in/dstr/obj-prop-elem-init-yield-ident-invalid.js:31:1] 31 │ @@ -21279,6 +22007,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ╰──── Cannot assign to this expression ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[language/statements/for-of/dstr/array-elem-target-simple-strict.js:31:1] + 31 │ + 32 │ for ([arguments] of [[]]) ; + · ───────── + ╰──── + × The keyword '"yield"' is reserved ╭─[language/statements/for-of/dstr/array-elem-target-yield-invalid.js:31:1] 31 │ @@ -21419,6 +22154,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ───── ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/statements/for-of/dstr/obj-id-init-simple-strict.js:31:1] + 31 │ + 32 │ for ({ eval = 0 } of [{}]) ; + · ──── + ╰──── + × The keyword '"yield"' is reserved ╭─[language/statements/for-of/dstr/obj-id-init-yield-ident-invalid.js:31:1] 31 │ @@ -21426,6 +22168,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ───── ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/statements/for-of/dstr/obj-id-simple-strict.js:31:1] + 31 │ + 32 │ for ({ eval } of [{}]) ; + · ──── + ╰──── + × The keyword '"yield"' is reserved ╭─[language/statements/for-of/dstr/obj-prop-elem-init-yield-ident-invalid.js:31:1] 31 │ @@ -21912,6 +22661,13 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par ╰──── help: Wrap this declaration in a block statement + × Cannot assign to '"eval"' in strict mode + ╭─[language/statements/function/13.0_4-5gs.js:16:1] + 16 │ + 17 │ function _13_0_4_5_fun() { eval = 42; }; + · ──── + ╰──── + × Invalid Unicode escape sequence ╭─[language/statements/function/S13_A7_T3.js:14:1] 14 │ @@ -22018,6 +22774,14 @@ Expect to Parse: "language/statements/class/decorator/syntax/valid/decorator-par · ── ╰──── + × Cannot assign to '"eval"' in strict mode + ╭─[language/statements/function/enable-strict-via-outer-script.js:22:1] + 22 │ function _13_0_9_inner() { + 23 │ eval = 42; + · ──── + 24 │ } + ╰──── + × Expect token ╭─[language/statements/function/invalid-2-names.js:15:1] 15 │ diff --git a/tasks/coverage/typescript.snap b/tasks/coverage/typescript.snap index 776c1361c..ce4626e94 100644 --- a/tasks/coverage/typescript.snap +++ b/tasks/coverage/typescript.snap @@ -1,7 +1,7 @@ TypeScript Summary: AST Parsed : 2308/2338 (98.72%) Positive Passed: 2308/2338 (98.72%) -Negative Passed: 577/2531 (22.80%) +Negative Passed: 578/2531 (22.84%) Expect Syntax Error: "Symbols/ES5SymbolProperty2.ts" Expect Syntax Error: "Symbols/ES5SymbolProperty6.ts" Expect Syntax Error: "additionalChecks/noPropertyAccessFromIndexSignature1.ts" @@ -408,7 +408,6 @@ Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments16.ts Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments17.ts" Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments18.ts" Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments19.ts" -Expect Syntax Error: "es6/classDeclaration/parseClassDeclarationInStrictModeByDefaultInES6.ts" Expect Syntax Error: "es6/classDeclaration/superCallBeforeThisAccessing3.ts" Expect Syntax Error: "es6/classDeclaration/superCallBeforeThisAccessing4.ts" Expect Syntax Error: "es6/classDeclaration/superCallBeforeThisAccessing6.ts" @@ -4339,6 +4338,14 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 3 │ var oct2 = 0o34318592; ╰──── + × Cannot assign to '"arguments"' in strict mode + ╭─[es6/classDeclaration/parseClassDeclarationInStrictModeByDefaultInES6.ts:6:1] + 6 │ private bar(eval:any) { + 7 │ arguments = "hello"; + · ───────── + 8 │ } + ╰──── + × A 'set' accessor must have exactly one parameter. ╭─[es6/computedProperties/computedPropertyNames49_ES5.ts:9:1] 9 │ },