feat(linter): check eval and arguments in JavaScript

This commit is contained in:
Boshen 2023-03-12 23:25:57 +08:00
parent 93b06e948a
commit 84eaa0b7e3
No known key found for this signature in database
GPG key ID: 6AC90C77AAAA6ABC
4 changed files with 646 additions and 88 deletions

View file

@ -71,6 +71,11 @@ fn check_identifier<'a>(name: &Atom, span: Span, node: &AstNode<'a>, ctx: &LintC
}
}
#[derive(Debug, Error, Diagnostic)]
#[error("Cannot assign to '{0}' in strict mode")]
#[diagnostic()]
struct UnexpectedIdentifierAssign(Atom, #[label] Span);
fn check_binding_identifier<'a>(
ident: &BindingIdentifier,
node: &AstNode<'a>,
@ -78,9 +83,9 @@ fn check_binding_identifier<'a>(
) {
let strict_mode = ctx.strict_mode(node);
// It is a Diagnostic if the StringValue of a BindingIdentifier is "eval" or "arguments" within strict mode code.
// if strict_mode && !span.ctx.has_ambient() && matches!(name.as_str(), "eval" | "arguments") {
// return Some(Diagnostic::UnexpectedIdentifierAssign(name.clone(), span.range()));
// }
if strict_mode && matches!(ident.name.as_str(), "eval" | "arguments") {
return ctx.diagnostic(UnexpectedIdentifierAssign(ident.name.clone(), ident.span));
}
// LexicalDeclaration : LetOrConst BindingList ;
// * It is a Syntax Error if the BoundNames of BindingList contains "let".
@ -111,11 +116,6 @@ fn check_identifier_reference<'a>(
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()]

View file

@ -1,7 +1,7 @@
Babel Summary:
AST Parsed : 2053/2069 (99.23%)
Positive Passed: 2053/2069 (99.23%)
Negative Passed: 1059/1502 (70.51%)
Negative Passed: 1061/1502 (70.64%)
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"
@ -91,7 +91,6 @@ Expect Syntax Error: "core/uncategorised/550/input.js"
Expect Syntax Error: "core/uncategorised/552/input.js"
Expect Syntax Error: "es2015/class-methods/direct-super-in-object-method/input.js"
Expect Syntax Error: "es2015/class-methods/disallow-duplicate-method-params/input.js"
Expect Syntax Error: "es2015/destructuring/binding-arguments-module/input.js"
Expect Syntax Error: "es2015/destructuring/binding-arguments-strict/input.js"
Expect Syntax Error: "es2015/destructuring/binding-eval/input.js"
Expect Syntax Error: "es2015/destructuring/error-operator-for-default/input.js"
@ -195,7 +194,6 @@ Expect Syntax Error: "esprima/es2015-array-pattern/dupe-param-3/input.js"
Expect Syntax Error: "esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/input.js"
Expect Syntax Error: "esprima/es2015-arrow-function/invalid-duplicated-params/input.js"
Expect Syntax Error: "esprima/es2015-arrow-function/invalid-param-strict-mode/input.js"
Expect Syntax Error: "esprima/es2015-class/.migrated_0026/input.js"
Expect Syntax Error: "esprima/es2015-export-declaration/invalid-export-named-default/input.js"
Expect Syntax Error: "esprima/es2015-generator/.generator-parameter-binding-property-reserved/input.js"
Expect Syntax Error: "esprima/es2015-generator/generator-method-with-invalid-computed-name/input.js"
@ -2263,6 +2261,12 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts"
· ╰── keyword cannot contain escape characters
╰────
× Cannot assign to 'arguments' in strict mode
╭─[es2015/destructuring/binding-arguments-module/input.js:1:1]
1 │ const { arguments } = foo();
· ─────────
╰────
× Expect token
╭─[es2015/destructuring/binding-this/input.js:1:1]
1 │ var { this } = {};
@ -6128,6 +6132,12 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts"
· ╰── Expect `=>` here, but found `+`
╰────
× Cannot assign to 'eval' in strict mode
╭─[esprima/es2015-class/.migrated_0026/input.js:1:1]
1 │ class A {a(eval){}}
· ────
╰────
× Invalid assignment
╭─[esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/input.js:1:1]
1 │ ({a:this}=0)

View file

@ -1,7 +1,7 @@
Test262 Summary:
AST Parsed : 44015/44034 (99.96%)
Positive Passed: 44015/44034 (99.96%)
Negative Passed: 3229/3917 (82.44%)
Negative Passed: 3302/3917 (84.30%)
Expect Syntax Error: "language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js"
Expect Syntax Error: "language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js"
Expect Syntax Error: "language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js"
@ -31,9 +31,6 @@ Expect Syntax Error: "language/expressions/arrow-function/object-destructuring-p
Expect Syntax Error: "language/expressions/arrow-function/param-dflt-yield-expr.js"
Expect Syntax Error: "language/expressions/arrow-function/params-duplicate.js"
Expect Syntax Error: "language/expressions/arrow-function/rest-param-strict-body.js"
Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js"
Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js"
Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js"
Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js"
Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js"
Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js"
@ -45,7 +42,6 @@ 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-binding-object-6.js"
Expect Syntax Error: "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js"
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/assignmenttargettype/direct-yieldexpression-0.js"
Expect Syntax Error: "language/expressions/async-arrow-function/array-destructuring-param-strict-body.js"
@ -53,15 +49,10 @@ Expect Syntax Error: "language/expressions/async-arrow-function/await-as-param-n
Expect Syntax Error: "language/expressions/async-arrow-function/dflt-params-duplicates.js"
Expect Syntax Error: "language/expressions/async-arrow-function/dflt-params-rest.js"
Expect Syntax Error: "language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js"
Expect Syntax Error: "language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js"
Expect Syntax Error: "language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js"
Expect Syntax Error: "language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js"
Expect Syntax Error: "language/expressions/async-arrow-function/object-destructuring-param-strict-body.js"
Expect Syntax Error: "language/expressions/async-arrow-function/rest-param-strict-body.js"
Expect Syntax Error: "language/expressions/async-function/early-errors-expression-NSPL-with-USD.js"
Expect Syntax Error: "language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js"
Expect Syntax Error: "language/expressions/async-function/early-errors-expression-binding-identifier-eval.js"
Expect Syntax Error: "language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js"
Expect Syntax Error: "language/expressions/async-function/named-array-destructuring-param-strict-body.js"
Expect Syntax Error: "language/expressions/async-function/named-dflt-params-duplicates.js"
Expect Syntax Error: "language/expressions/async-function/named-dflt-params-rest.js"
@ -88,11 +79,7 @@ Expect Syntax Error: "language/expressions/async-generator/dstr/named-dflt-ary-p
Expect Syntax Error: "language/expressions/async-generator/dstr/named-dflt-ary-ptrn-rest-init-id.js"
Expect Syntax Error: "language/expressions/async-generator/dstr/named-dflt-ary-ptrn-rest-init-obj.js"
Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js"
Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js"
Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js"
Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js"
Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js"
Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js"
Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js"
Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js"
Expect Syntax Error: "language/expressions/async-generator/named-array-destructuring-param-strict-body.js"
@ -227,9 +214,7 @@ Expect Syntax Error: "language/expressions/function/dstr/dflt-ary-ptrn-rest-init
Expect Syntax Error: "language/expressions/function/dstr/dflt-ary-ptrn-rest-init-id.js"
Expect Syntax Error: "language/expressions/function/dstr/dflt-ary-ptrn-rest-init-obj.js"
Expect Syntax Error: "language/expressions/function/name-arguments-strict-body.js"
Expect Syntax Error: "language/expressions/function/name-arguments-strict.js"
Expect Syntax Error: "language/expressions/function/name-eval-strict-body.js"
Expect Syntax Error: "language/expressions/function/name-eval-strict.js"
Expect Syntax Error: "language/expressions/function/object-destructuring-param-strict-body.js"
Expect Syntax Error: "language/expressions/function/param-duplicated-strict-1.js"
Expect Syntax Error: "language/expressions/function/param-duplicated-strict-2.js"
@ -255,7 +240,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/object/11.1.5-1gs.js"
Expect Syntax Error: "language/expressions/object/dstr/async-gen-meth-ary-ptrn-rest-init-ary.js"
Expect Syntax Error: "language/expressions/object/dstr/async-gen-meth-ary-ptrn-rest-init-id.js"
Expect Syntax Error: "language/expressions/object/dstr/async-gen-meth-ary-ptrn-rest-init-obj.js"
@ -296,9 +280,7 @@ Expect Syntax Error: "language/expressions/object/method-definition/async-meth-o
Expect Syntax Error: "language/expressions/object/method-definition/async-meth-rest-param-strict-body.js"
Expect Syntax Error: "language/expressions/object/method-definition/early-errors-object-async-method-duplicate-parameters.js"
Expect Syntax Error: "language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js"
Expect Syntax Error: "language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js"
Expect Syntax Error: "language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js"
Expect Syntax Error: "language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js"
Expect Syntax Error: "language/expressions/object/method-definition/gen-meth-array-destructuring-param-strict-body.js"
Expect Syntax Error: "language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js"
Expect Syntax Error: "language/expressions/object/method-definition/gen-meth-dflt-params-rest.js"
@ -315,9 +297,7 @@ Expect Syntax Error: "language/expressions/object/method-definition/setter-use-s
Expect Syntax Error: "language/expressions/object/method-definition/use-strict-with-non-simple-param.js"
Expect Syntax Error: "language/expressions/object/setter-body-strict-inside.js"
Expect Syntax Error: "language/expressions/object/setter-param-arguments-strict-inside.js"
Expect Syntax Error: "language/expressions/object/setter-param-arguments-strict-outside.js"
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/global-code/export.js"
Expect Syntax Error: "language/global-code/import.js"
Expect Syntax Error: "language/global-code/new.target-arrow.js"
@ -342,10 +322,6 @@ Expect Syntax Error: "language/module-code/early-dup-export-id.js"
Expect Syntax Error: "language/module-code/early-dup-export-star-as-dflt.js"
Expect Syntax Error: "language/module-code/early-export-global.js"
Expect Syntax Error: "language/module-code/early-export-unresolvable.js"
Expect Syntax Error: "language/module-code/early-import-arguments.js"
Expect Syntax Error: "language/module-code/early-import-as-arguments.js"
Expect Syntax Error: "language/module-code/early-import-as-eval.js"
Expect Syntax Error: "language/module-code/early-import-eval.js"
Expect Syntax Error: "language/module-code/early-new-target.js"
Expect Syntax Error: "language/module-code/parse-err-return.js"
Expect Syntax Error: "language/module-code/top-level-await/syntax/early-does-not-propagate-to-fn-declaration-body.js"
@ -356,11 +332,7 @@ Expect Syntax Error: "language/statements/async-function/array-destructuring-par
Expect Syntax Error: "language/statements/async-function/dflt-params-duplicates.js"
Expect Syntax Error: "language/statements/async-function/dflt-params-rest.js"
Expect Syntax Error: "language/statements/async-function/early-errors-declaration-NSPL-with-USD.js"
Expect Syntax Error: "language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js"
Expect Syntax Error: "language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js"
Expect Syntax Error: "language/statements/async-function/early-errors-declaration-binding-identifier-eval.js"
Expect Syntax Error: "language/statements/async-function/early-errors-declaration-duplicate-parameters.js"
Expect Syntax Error: "language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js"
Expect Syntax Error: "language/statements/async-function/object-destructuring-param-strict-body.js"
Expect Syntax Error: "language/statements/async-function/rest-param-strict-body.js"
Expect Syntax Error: "language/statements/async-generator/array-destructuring-param-strict-body.js"
@ -396,9 +368,7 @@ Expect Syntax Error: "language/statements/class/async-method/object-destructurin
Expect Syntax Error: "language/statements/class/async-method/rest-param-strict-body.js"
Expect Syntax Error: "language/statements/class/definition/early-errors-class-async-method-duplicate-parameters.js"
Expect Syntax Error: "language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js"
Expect Syntax Error: "language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js"
Expect Syntax Error: "language/statements/class/definition/early-errors-class-method-duplicate-parameters.js"
Expect Syntax Error: "language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js"
Expect Syntax Error: "language/statements/class/dstr/async-gen-meth-ary-ptrn-rest-init-ary.js"
Expect Syntax Error: "language/statements/class/dstr/async-gen-meth-ary-ptrn-rest-init-id.js"
Expect Syntax Error: "language/statements/class/dstr/async-gen-meth-ary-ptrn-rest-init-obj.js"
@ -541,9 +511,6 @@ Expect Syntax Error: "language/statements/for-in/labelled-fn-stmt-const.js"
Expect Syntax Error: "language/statements/for-in/labelled-fn-stmt-let.js"
Expect Syntax Error: "language/statements/for-in/labelled-fn-stmt-lhs.js"
Expect Syntax Error: "language/statements/for-in/labelled-fn-stmt-var.js"
Expect Syntax Error: "language/statements/for-in/var-arguments-fn-strict.js"
Expect Syntax Error: "language/statements/for-in/var-arguments-strict.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/const-ary-ptrn-rest-init-ary.js"
Expect Syntax Error: "language/statements/for-of/dstr/const-ary-ptrn-rest-init-id.js"
@ -572,9 +539,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.1-13gs.js"
Expect Syntax Error: "language/statements/function/13.1-1gs.js"
Expect Syntax Error: "language/statements/function/13.1-4gs.js"
Expect Syntax Error: "language/statements/function/13.1-5gs.js"
Expect Syntax Error: "language/statements/function/13.1-8gs.js"
Expect Syntax Error: "language/statements/function/array-destructuring-param-strict-body.js"
@ -589,12 +553,9 @@ Expect Syntax Error: "language/statements/function/dstr/dflt-ary-ptrn-rest-init-
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/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"
Expect Syntax Error: "language/statements/function/name-eval-strict.js"
Expect Syntax Error: "language/statements/function/object-destructuring-param-strict-body.js"
Expect Syntax Error: "language/statements/function/param-arguments-strict-body.js"
Expect Syntax Error: "language/statements/function/param-arguments-strict.js"
Expect Syntax Error: "language/statements/function/param-duplicated-strict-1.js"
Expect Syntax Error: "language/statements/function/param-duplicated-strict-2.js"
Expect Syntax Error: "language/statements/function/param-duplicated-strict-3.js"
@ -602,7 +563,6 @@ Expect Syntax Error: "language/statements/function/param-duplicated-strict-body-
Expect Syntax Error: "language/statements/function/param-duplicated-strict-body-2.js"
Expect Syntax Error: "language/statements/function/param-duplicated-strict-body-3.js"
Expect Syntax Error: "language/statements/function/param-eval-strict-body.js"
Expect Syntax Error: "language/statements/function/param-eval-strict.js"
Expect Syntax Error: "language/statements/function/rest-param-strict-body.js"
Expect Syntax Error: "language/statements/function/static-init-await-binding-invalid.js"
Expect Syntax Error: "language/statements/function/use-strict-with-non-simple-param.js"
@ -644,46 +604,13 @@ Expect Syntax Error: "language/statements/return/S12.9_A1_T6.js"
Expect Syntax Error: "language/statements/return/S12.9_A1_T7.js"
Expect Syntax Error: "language/statements/return/S12.9_A1_T8.js"
Expect Syntax Error: "language/statements/return/S12.9_A1_T9.js"
Expect Syntax Error: "language/statements/try/catch-parameter-boundnames-restriction-arguments-negative-early.js"
Expect Syntax Error: "language/statements/try/catch-parameter-boundnames-restriction-eval-negative-early.js"
Expect Syntax Error: "language/statements/try/dstr/ary-ptrn-rest-init-ary.js"
Expect Syntax Error: "language/statements/try/dstr/ary-ptrn-rest-init-id.js"
Expect Syntax Error: "language/statements/try/dstr/ary-ptrn-rest-init-obj.js"
Expect Syntax Error: "language/statements/variable/12.2.1-1gs.js"
Expect Syntax Error: "language/statements/variable/12.2.1-4gs.js"
Expect Syntax Error: "language/statements/variable/arguments-fn-strict-list-final-init.js"
Expect Syntax Error: "language/statements/variable/arguments-fn-strict-list-final.js"
Expect Syntax Error: "language/statements/variable/arguments-fn-strict-list-first-init.js"
Expect Syntax Error: "language/statements/variable/arguments-fn-strict-list-first.js"
Expect Syntax Error: "language/statements/variable/arguments-fn-strict-list-middle-init.js"
Expect Syntax Error: "language/statements/variable/arguments-fn-strict-list-middle.js"
Expect Syntax Error: "language/statements/variable/arguments-fn-strict-list-repeated.js"
Expect Syntax Error: "language/statements/variable/arguments-fn-strict-single-init.js"
Expect Syntax Error: "language/statements/variable/arguments-fn-strict-single.js"
Expect Syntax Error: "language/statements/variable/arguments-strict-list-final-init.js"
Expect Syntax Error: "language/statements/variable/arguments-strict-list-final.js"
Expect Syntax Error: "language/statements/variable/arguments-strict-list-first-init.js"
Expect Syntax Error: "language/statements/variable/arguments-strict-list-first.js"
Expect Syntax Error: "language/statements/variable/arguments-strict-list-middle-init.js"
Expect Syntax Error: "language/statements/variable/arguments-strict-list-middle.js"
Expect Syntax Error: "language/statements/variable/arguments-strict-list-repeated.js"
Expect Syntax Error: "language/statements/variable/arguments-strict-single-init.js"
Expect Syntax Error: "language/statements/variable/arguments-strict-single.js"
Expect Syntax Error: "language/statements/variable/dstr/ary-ptrn-rest-init-ary.js"
Expect Syntax Error: "language/statements/variable/dstr/ary-ptrn-rest-init-id.js"
Expect Syntax Error: "language/statements/variable/dstr/ary-ptrn-rest-init-obj.js"
Expect Syntax Error: "language/statements/variable/dstr/obj-ptrn-elem-id-static-init-await-invalid.js"
Expect Syntax Error: "language/statements/variable/eval-strict-list-final-init.js"
Expect Syntax Error: "language/statements/variable/eval-strict-list-final.js"
Expect Syntax Error: "language/statements/variable/eval-strict-list-first-init.js"
Expect Syntax Error: "language/statements/variable/eval-strict-list-first.js"
Expect Syntax Error: "language/statements/variable/eval-strict-list-middle-init.js"
Expect Syntax Error: "language/statements/variable/eval-strict-list-middle.js"
Expect Syntax Error: "language/statements/variable/eval-strict-list-repeated.js"
Expect Syntax Error: "language/statements/variable/eval-strict-single-init.js"
Expect Syntax Error: "language/statements/variable/eval-strict-single.js"
Expect Syntax Error: "language/statements/variable/id-arguments-strict.js"
Expect Syntax Error: "language/statements/variable/id-eval-strict.js"
Expect Syntax Error: "language/statements/while/decl-fun.js"
Expect Syntax Error: "language/statements/while/labelled-fn-stmt.js"
Expect Syntax Error: "language/statements/with/decl-fun.js"
@ -2881,6 +2808,20 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ──────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js:18:1]
18 │ $DONOTEVALUATE();
19 │ var af = arguments => 1;
· ─────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js:19:1]
19 │ $DONOTEVALUATE();
20 │ var af = eval => 1;
· ────
╰────
× The keyword 'yield' is reserved
╭─[language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js:19:1]
19 │ $DONOTEVALUATE();
@ -2895,6 +2836,20 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ───
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js:23:1]
23 │ $DONOTEVALUATE();
24 │ var af = (arguments) => 1;
· ─────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js:23:1]
23 │ $DONOTEVALUATE();
24 │ var af = (eval) => 1;
· ────
╰────
× The keyword 'yield' is reserved
╭─[language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js:18:1]
18 │ $DONOTEVALUATE();
@ -6093,6 +6048,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ─────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js:15:1]
15 │
16 │ async(arguments) => { }
· ─────────
17 │
╰────
× Automatic Semicolon Insertion
╭─[language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js:13:1]
13 │ $DONOTEVALUATE();
@ -6125,6 +6088,13 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ─────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js:15:1]
15 │
16 │ async(eval) => { }
· ────
╰────
× Identifier `bar` has already been declared
╭─[language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js:14:1]
14 │
@ -6242,6 +6212,21 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
30 │ };
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js:15:1]
15 │ $DONOTEVALUATE();
16 │ (async function arguments () { })
· ─────────
17 │
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/async-function/early-errors-expression-binding-identifier-eval.js:15:1]
15 │ $DONOTEVALUATE();
16 │ (async function eval () { })
· ────
╰────
× Super calls are not permitted outside constructors or in nested functions inside constructors.
╭─[language/expressions/async-function/early-errors-expression-body-contains-super-call.js:14:1]
@ -6259,6 +6244,13 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
16 │
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js:15:1]
15 │
16 │ (async function foo (eval) { })
· ────
╰────
× Identifier `bar` has already been declared
╭─[language/expressions/async-function/early-errors-expression-formals-body-duplicate.js:14:1]
14 │
@ -6558,6 +6550,27 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
34 │
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js:17:1]
17 │
18 │ (async function*(arguments) { });
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js:18:1]
18 │
19 │ (async function* arguments() { });
· ─────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js:18:1]
18 │
19 │ (async function* eval() { });
· ────
╰────
× Super calls are not permitted outside constructors or in nested functions inside constructors.
╭─[language/expressions/async-generator/early-errors-expression-body-contains-super-call.js:16:1]
@ -6574,6 +6587,13 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ─────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js:17:1]
17 │
18 │ (async function*(eval) { });
· ────
╰────
× Identifier `a` has already been declared
╭─[language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js:20:1]
20 │
@ -13747,6 +13767,20 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ─────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/expressions/function/name-arguments-strict.js:16:1]
16 │
17 │ (function arguments() {});
· ─────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/function/name-eval-strict.js:16:1]
16 │
17 │ (function eval() {});
· ────
╰────
× The keyword 'yield' is reserved
╭─[language/expressions/function/param-dflt-yield-strict.js:21:1]
21 │ function *g() {
@ -14367,6 +14401,13 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
25 │ }
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/object/11.1.5-1gs.js:17:1]
17 │
18 │ var obj = { set _11_1_5_1_fun(eval) {}};
· ────
╰────
× Identifier `__proto__` has already been declared
╭─[language/expressions/object/__proto__-duplicate.js:19:1]
19 │ ({
@ -14865,6 +14906,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
35 │
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js:16:1]
16 │ ({
17 │ async foo (arguments) { }
· ─────────
18 │ })
╰────
× Expect token
╭─[language/expressions/object/method-definition/early-errors-object-method-async-lineterminator.js:20:1]
20 │ async
@ -14899,6 +14948,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
17 │ })
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js:16:1]
16 │ ({
17 │ async foo(eval) { }
· ────
18 │ })
╰────
× Expect token
╭─[language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js:16:1]
16 │ ({
@ -15366,6 +15423,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
19 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/expressions/object/setter-param-arguments-strict-outside.js:17:1]
17 │ void {
18 │ set x(arguments) {}
· ─────────
19 │ };
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/expressions/object/setter-param-eval-strict-outside.js:17:1]
17 │ void {
18 │ set x(eval) {}
· ────
19 │ };
╰────
× 'super' can only be referenced in a derived class.
╭─[language/expressions/optional-chaining/call-expression-super-no-base.js:18:1]
18 │
@ -18527,6 +18600,34 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
24 │
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/module-code/early-import-arguments.js:34:1]
34 │
35 │ import { arguments } from './early-import-arguments.js';
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/module-code/early-import-as-arguments.js:34:1]
34 │
35 │ import { x as arguments } from './early-import-as-arguments.js';
· ─────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/module-code/early-import-as-eval.js:34:1]
34 │
35 │ import { x as eval } from './early-import-as-eval.js';
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/module-code/early-import-eval.js:34:1]
34 │
35 │ import { eval } from './early-import-eval.js';
· ────
╰────
× Identifier `x` has already been declared
╭─[language/module-code/early-lex-and-var.js:16:1]
16 │
@ -19939,6 +20040,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
30 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js:15:1]
15 │
16 │ async function foo (arguments) { }
· ─────────
17 │
╰────
× Unexpected token
╭─[language/statements/async-function/early-errors-declaration-await-in-formals-default.js:13:1]
13 │ $DONOTEVALUATE();
@ -19953,6 +20062,21 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ─────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js:15:1]
15 │ $DONOTEVALUATE();
16 │ async function arguments () { }
· ─────────
17 │
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/async-function/early-errors-declaration-binding-identifier-eval.js:15:1]
15 │ $DONOTEVALUATE();
16 │ async function eval () { }
· ────
╰────
× Super calls are not permitted outside constructors or in nested functions inside constructors.
╭─[language/statements/async-function/early-errors-declaration-body-contains-super-call.js:14:1]
@ -19969,6 +20093,13 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ─────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js:15:1]
15 │
16 │ async function foo (eval) { }
· ────
╰────
× Identifier `bar` has already been declared
╭─[language/statements/async-function/early-errors-declaration-formals-body-duplicate.js:14:1]
14 │
@ -21112,6 +21243,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ─────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js:14:1]
14 │ class Foo {
15 │ async foo (arguments) { }
· ─────────
16 │ }
╰────
× Unexpected token
╭─[language/statements/class/definition/early-errors-class-method-await-in-formals-default.js:14:1]
14 │ class Foo {
@ -21137,6 +21276,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
16 │ }
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js:14:1]
14 │ class Foo {
15 │ async foo(eval) { }
· ────
16 │ }
╰────
× Expect token
╭─[language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js:16:1]
16 │ class Foo {
@ -27652,6 +27799,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
19 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/for-in/var-arguments-fn-strict-init.js:17:1]
17 │ function f() {
18 │ for (var arguments = 42 in null) {}
· ─────────
19 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/for-in/var-arguments-fn-strict.js:17:1]
17 │ function f() {
18 │ for (var arguments in null) {}
· ─────────
19 │ }
╰────
× for-in loop variable declaration may not have an initializer
╭─[language/statements/for-in/var-arguments-strict-init.js:16:1]
16 │
@ -27659,6 +27822,20 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ──────────────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/for-in/var-arguments-strict-init.js:16:1]
16 │
17 │ for (var arguments = 42 in null) {}
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/for-in/var-arguments-strict.js:14:1]
14 │
15 │ for (var arguments in null) {}
· ─────────
╰────
× for-in loop variable declaration may not have an initializer
╭─[language/statements/for-in/var-eval-strict-init.js:14:1]
14 │
@ -27666,6 +27843,20 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ─────────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/for-in/var-eval-strict-init.js:14:1]
14 │
15 │ for (var eval = 42 in null) {}
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/for-in/var-eval-strict.js:14:1]
14 │
15 │ for (var eval in null) {}
· ────
╰────
× Async functions can only be declared at the top level or inside a block
╭─[language/statements/for-of/decl-async-fun.js:19:1]
19 │
@ -28568,6 +28759,27 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/function/13.1-13gs.js:16:1]
16 │
17 │ function arguments() { };
· ─────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/function/13.1-1gs.js:17:1]
17 │
18 │ function _13_1_1_fun(eval) { }
· ────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/function/13.1-4gs.js:17:1]
17 │
18 │ var _13_1_4_fun = function (arguments) { };
· ─────────
╰────
× Invalid Unicode escape sequence
╭─[language/statements/function/S13_A7_T3.js:14:1]
14 │
@ -28771,6 +28983,27 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
· ╰── Expect `(` here, but found `.`
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/function/name-arguments-strict.js:16:1]
16 │
17 │ function arguments() { }
· ─────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/function/name-eval-strict.js:16:1]
16 │
17 │ function eval() { }
· ────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/function/param-arguments-strict.js:21:1]
21 │
22 │ function _13_1_3_fun(arguments) { }
· ─────────
╰────
× The keyword 'yield' is reserved
╭─[language/statements/function/param-dflt-yield-strict.js:21:1]
21 │ function *g() {
@ -28779,6 +29012,13 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
23 │ paramValue = x;
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/function/param-eval-strict.js:21:1]
21 │
22 │ function _13_1_1_fun(eval) { }
· ────
╰────
× Rest element must be last element
╭─[language/statements/function/rest-params-trailing-comma-early-error.js:55:1]
55 │
@ -30366,6 +30606,20 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
19 │ finally{}
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/try/catch-parameter-boundnames-restriction-arguments-negative-early.js:15:1]
15 │
16 │ try { } catch (arguments) { }
· ─────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/try/catch-parameter-boundnames-restriction-eval-negative-early.js:15:1]
15 │
16 │ try { } catch (eval) { }
· ────
╰────
× Rest element must be last element
╭─[language/statements/try/dstr/ary-ptrn-rest-not-final-ary.js:31:1]
31 │ throw [1, 2, 3];
@ -30439,6 +30693,20 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
25 │ }
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/12.2.1-1gs.js:16:1]
16 │
17 │ for (var eval in arrObj) { }
· ────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/12.2.1-4gs.js:16:1]
16 │
17 │ var arguments;
· ─────────
╰────
× Automatic Semicolon Insertion
╭─[language/statements/variable/S12.2_A8_T1.js:16:1]
16 │ //CHECK#1
@ -30517,6 +30785,156 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
╰────
help: Try insert a semicolon here
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-list-final-init.js:18:1]
18 │ function f() {
19 │ var a, arguments = 42;
· ─────────
20 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-list-final.js:18:1]
18 │ function f() {
19 │ var a = 42, arguments;
· ─────────
20 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-list-first-init.js:17:1]
17 │ function f() {
18 │ var arguments = 42, a;
· ─────────
19 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-list-first.js:18:1]
18 │ function f() {
19 │ var arguments, a;
· ─────────
20 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-list-middle-init.js:17:1]
17 │ function f() {
18 │ var a, arguments = 42, b;
· ─────────
19 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-list-middle.js:18:1]
18 │ function f() {
19 │ var a, arguments, b;
· ─────────
20 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-list-repeated.js:18:1]
18 │ function f() {
19 │ var arguments, arguments = 42;
· ─────────
20 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-list-repeated.js:18:1]
18 │ function f() {
19 │ var arguments, arguments = 42;
· ─────────
20 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-single-init.js:18:1]
18 │ function f() {
19 │ var arguments = 42;
· ─────────
20 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-fn-strict-single.js:18:1]
18 │ function f() {
19 │ var arguments;
· ─────────
20 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-list-final-init.js:17:1]
17 │
18 │ var a, arguments = 42;
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-list-final.js:15:1]
15 │
16 │ var a = 42, arguments;
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-list-first-init.js:14:1]
14 │
15 │ var arguments = 42, a;
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-list-first.js:15:1]
15 │
16 │ var arguments, a;
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-list-middle-init.js:14:1]
14 │
15 │ var a, arguments = 42, b;
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-list-middle.js:15:1]
15 │
16 │ var a, arguments, b;
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-list-repeated.js:17:1]
17 │
18 │ var arguments, arguments = 42;
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-list-repeated.js:17:1]
17 │
18 │ var arguments, arguments = 42;
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-single-init.js:17:1]
17 │
18 │ var arguments = 42;
· ─────────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/arguments-strict-single.js:15:1]
15 │
16 │ var arguments;
· ─────────
╰────
× Cannot use `await` as an identifier in an async context
╭─[language/statements/variable/dstr/ary-ptrn-elem-id-static-init-await-invalid.js:23:1]
23 │ static {
@ -30552,6 +30970,90 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
30 │
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-list-final-init.js:14:1]
14 │
15 │ var a, eval = 42;
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-list-final.js:15:1]
15 │
16 │ var a, eval;
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-list-first-init.js:17:1]
17 │
18 │ var eval = 42, a;
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-list-first.js:15:1]
15 │
16 │ var eval, a = 42;
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-list-middle-init.js:14:1]
14 │
15 │ var a, eval = 42, b;
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-list-middle.js:14:1]
14 │
15 │ var a, eval, b;
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-list-repeated.js:17:1]
17 │
18 │ var eval, eval;
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-list-repeated.js:17:1]
17 │
18 │ var eval, eval;
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-single-init.js:17:1]
17 │
18 │ var eval = 42;
· ────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/eval-strict-single.js:17:1]
17 │
18 │ var eval;
· ────
╰────
× Cannot assign to 'arguments' in strict mode
╭─[language/statements/variable/id-arguments-strict.js:15:1]
15 │
16 │ var arguments;
· ─────────
╰────
× Cannot assign to 'eval' in strict mode
╭─[language/statements/variable/id-eval-strict.js:15:1]
15 │
16 │ var eval;
· ────
╰────
× Cannot use `await` as an identifier in an async context
╭─[language/statements/variable/static-init-await-binding-invalid.js:23:1]
23 │ static {

View file

@ -1,7 +1,7 @@
TypeScript Summary:
AST Parsed : 2305/2338 (98.59%)
Positive Passed: 2305/2338 (98.59%)
Negative Passed: 635/2532 (25.08%)
Negative Passed: 637/2532 (25.16%)
Expect Syntax Error: "Symbols/ES5SymbolProperty2.ts"
Expect Syntax Error: "Symbols/ES5SymbolProperty6.ts"
Expect Syntax Error: "additionalChecks/noPropertyAccessFromIndexSignature1.ts"
@ -381,8 +381,6 @@ Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments07.ts
Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments09.ts"
Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments10.ts"
Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments11.ts"
Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments12.ts"
Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments12_ES6.ts"
Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments14.ts"
Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments15.ts"
Expect Syntax Error: "es6/arrowFunction/emitArrowFunctionWhenUsingArguments16.ts"
@ -4594,6 +4592,22 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts"
73 │ }
╰────
× Cannot assign to 'arguments' in strict mode
╭─[es6/arrowFunction/emitArrowFunctionWhenUsingArguments12.ts:3:1]
3 │ class C {
4 │ f(arguments) {
· ─────────
5 │ var a = () => arguments;
╰────
× Cannot assign to 'arguments' in strict mode
╭─[es6/arrowFunction/emitArrowFunctionWhenUsingArguments12_ES6.ts:3:1]
3 │ class C {
4 │ f(arguments) {
· ─────────
5 │ var a = () => arguments;
╰────
× Invalid characters after number
╭─[es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts:1:1]
1 │ // error
@ -4621,6 +4635,22 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts"
3 │ var oct2 = 0o34318592;
╰────
× Cannot assign to 'arguments' in strict mode
╭─[es6/classDeclaration/parseClassDeclarationInStrictModeByDefaultInES6.ts:4:1]
4 │ public implements() { }
5 │ public foo(arguments: any) { }
· ─────────
6 │ private bar(eval:any) {
╰────
× Cannot assign to 'eval' in strict mode
╭─[es6/classDeclaration/parseClassDeclarationInStrictModeByDefaultInES6.ts:5:1]
5 │ public foo(arguments: any) { }
6 │ private bar(eval:any) {
· ────
7 │ arguments = "hello";
╰────
× Cannot assign to 'arguments' in strict mode
╭─[es6/classDeclaration/parseClassDeclarationInStrictModeByDefaultInES6.ts:6:1]
6 │ private bar(eval:any) {
@ -10429,6 +10459,22 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts"
24 │ }
╰────
× Cannot assign to 'eval' in strict mode
╭─[salsa/plainJSBinderErrors.ts:25:1]
25 │ evalArguments() {
26 │ const eval = 7
· ────
27 │ const arguments = 8
╰────
× Cannot assign to 'arguments' in strict mode
╭─[salsa/plainJSBinderErrors.ts:26:1]
26 │ const eval = 7
27 │ const arguments = 8
· ─────────
28 │ }
╰────
× '0'-prefixed octal literals and octal escape sequences are deprecated
╭─[salsa/plainJSBinderErrors.ts:29:1]
29 │ withOctal() {