diff --git a/crates/oxc_linter/src/rules/early_error/javascript.rs b/crates/oxc_linter/src/rules/early_error/javascript.rs index 13cb6d56d..b9e895227 100644 --- a/crates/oxc_linter/src/rules/early_error/javascript.rs +++ b/crates/oxc_linter/src/rules/early_error/javascript.rs @@ -33,6 +33,7 @@ impl Rule for EarlyErrorJavaScript { AstKind::ContinueStatement(stmt) => check_continue_statement(stmt, node, ctx), AstKind::LabeledStatement(stmt) => check_labeled_statement(stmt, node, ctx), AstKind::Class(class) => check_class(class, ctx), + AstKind::Super(sup) => check_super(sup, node, ctx), _ => {} } } @@ -475,3 +476,99 @@ fn check_class(class: &Class, ctx: &LintContext) { prev_constructor = Some(new_span); } } + +fn check_super<'a>(sup: &Super, node: &AstNode<'a>, ctx: &LintContext<'a>) { + #[derive(Debug, Error, Diagnostic)] + #[error("'super' can only be referenced in a derived class.")] + #[diagnostic(help("either remove this super, or extend the class"))] + struct SuperWithoutDerivedClass(#[label] Span, #[label("class does not have `extends`")] Span); + + #[derive(Debug, Error, Diagnostic)] + #[error("Super calls are not permitted outside constructors or in nested functions inside constructors. +")] + #[diagnostic()] + struct UnexpectedSuperCall(#[label] Span); + + #[derive(Debug, Error, Diagnostic)] + #[error("'super' can only be referenced in members of derived classes or object literal expressions. +")] + #[diagnostic()] + struct UnexpectedSuperReference(#[label] Span); + + let super_call_span = match ctx.parent_kind(node) { + AstKind::CallExpression(expr) => Some(expr.span), + AstKind::NewExpression(expr) => Some(expr.span), + _ => None, + }; + + // skip(1) is the self `Super` + // skip(2) is the parent `CallExpression` or `NewExpression` + for node_id in ctx.ancestors(node).skip(2) { + match ctx.kind(node_id) { + AstKind::Class(class) => { + // ClassTail : ClassHeritageopt { ClassBody } + // It is a Syntax Error if ClassHeritage is not present and the following algorithm returns true: + // 1. Let constructor be ConstructorMethod of ClassBody. + // 2. If constructor is empty, return false. + // 3. Return HasDirectSuper of constructor. + if class.super_class.is_none() { + return ctx.diagnostic(SuperWithoutDerivedClass(sup.span, class.span)); + } + break; + } + AstKind::MethodDefinition(def) => { + // ClassElement : MethodDefinition + // It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper of MethodDefinition is true. + if let Some(super_call_span) = super_call_span { + if def.kind == MethodDefinitionKind::Constructor { + // pass through and let AstKind::Class check ClassHeritage + } else { + return ctx.diagnostic(UnexpectedSuperCall(super_call_span)); + } + } else { + // super references are allowed in method + break; + } + } + // FieldDefinition : ClassElementName Initializer opt + // * It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. + // PropertyDefinition : MethodDefinition + // * It is a Syntax Error if HasDirectSuper of MethodDefinition is true. + AstKind::PropertyDefinition(_) => { + if let Some(super_call_span) = super_call_span { + return ctx.diagnostic(UnexpectedSuperCall(super_call_span)); + } + break; + } + AstKind::PropertyValue(value) => { + if let PropertyValue::Expression( + Expression::FunctionExpression(_) | Expression::ArrowFunctionExpression(_), + ) = value + { + if let Some(super_call_span) = super_call_span { + return ctx.diagnostic(UnexpectedSuperCall(super_call_span)); + } + break; + } + } + // ClassStaticBlockBody : ClassStaticBlockStatementList + // * It is a Syntax Error if ClassStaticBlockStatementList Contains SuperCall is true. + AstKind::StaticBlock(_) => { + if let Some(super_call_span) = super_call_span { + return ctx.diagnostic(UnexpectedSuperCall(super_call_span)); + } + } + // ModuleBody : ModuleItemList + // * It is a Syntax Error if ModuleItemList Contains super. + // ScriptBody : StatementList + // * It is a Syntax Error if StatementList Contains super + AstKind::Program(_) => { + return super_call_span.map_or_else( + || ctx.diagnostic(UnexpectedSuperReference(sup.span)), + |super_call_span| ctx.diagnostic(UnexpectedSuperCall(super_call_span)), + ); + } + _ => {} + } + } +} diff --git a/tasks/coverage/babel.snap b/tasks/coverage/babel.snap index 8fbe83c2c..aadc7caf5 100644 --- a/tasks/coverage/babel.snap +++ b/tasks/coverage/babel.snap @@ -1,7 +1,7 @@ Babel Summary: AST Parsed : 2053/2069 (99.23%) Positive Passed: 2053/2069 (99.23%) -Negative Passed: 989/1502 (65.85%) +Negative Passed: 992/1502 (66.05%) 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" @@ -92,7 +92,6 @@ Expect Syntax Error: "core/uncategorised/544/input.js" 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/direct-super-outside-constructor/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" @@ -130,7 +129,6 @@ Expect Syntax Error: "es2015/uncategorised/.260/input.js" Expect Syntax Error: "es2015/uncategorised/.335/input.js" Expect Syntax Error: "es2015/uncategorised/.343/input.js" Expect Syntax Error: "es2015/uncategorised/109/input.js" -Expect Syntax Error: "es2015/uncategorised/123/input.js" Expect Syntax Error: "es2015/uncategorised/166/input.js" Expect Syntax Error: "es2015/uncategorised/220/input.js" Expect Syntax Error: "es2015/uncategorised/227/input.js" @@ -265,7 +263,6 @@ Expect Syntax Error: "esprima/es2015-object-initialiser/invalid-proto-identifier Expect Syntax Error: "esprima/es2015-object-initialiser/invalid-proto-literal-identifier/input.js" Expect Syntax Error: "esprima/es2015-object-initialiser/invalid-proto-literals/input.js" Expect Syntax Error: "esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/input.js" -Expect Syntax Error: "esprima/es2015-super-property/invalid_super_not_inside_function/input.js" Expect Syntax Error: "esprima/es2015-yield/invalid-yield-binding-property/input.js" Expect Syntax Error: "esprima/es2015-yield/invalid-yield-expression/input.js" Expect Syntax Error: "esprima/es2015-yield/invalid-yield-generator-arrow-default/input.js" @@ -2184,6 +2181,15 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[es2015/class-methods/direct-super-outside-constructor/input.js:1:1] + 1 │ class A { + 2 │ x () {super()} + · ─────── + 3 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[es2015/class-methods/disallow-computed-async-identifier/input.js:1:1] 1 │ class A { @@ -2871,6 +2877,14 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ╰── A 'set' accessor must have exactly one parameter. ╰──── + × 'super' can only be referenced in a derived class. + ╭─[es2015/uncategorised/123/input.js:1:1] + 1 │ "use strict"; (class A {constructor() { super() }}) + · ─────────────────┬────────────────── + · ╰── class does not have `extends` + ╰──── + help: either remove this super, or extend the class + × Multiple constructor implementations are not allowed. ╭─[es2015/uncategorised/125/input.js:1:1] 1 │ class A { constructor() {} 'constructor'() {} } @@ -3394,6 +3408,13 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─ ╰──── + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[es2015/uncategorised/344/input.js:1:1] + 1 │ super + · ───── + ╰──── + × 'super' can only be used with function calls or in property accesses ╭─[es2015/uncategorised/344/input.js:1:1] 1 │ super @@ -6145,6 +6166,15 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: replace with `super()` or `super.prop` or `super[prop]` + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[esprima/es2015-super-property/.invalid_super_id/input.js:1:1] + 1 │ class A { + 2 │ foo() { new super + 3 } + · ───────── + 3 │ } + ╰──── + × 'super' can only be used with function calls or in property accesses ╭─[esprima/es2015-super-property/.invalid_super_id/input.js:1:1] 1 │ class A { @@ -6155,6 +6185,13 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: replace with `super()` or `super.prop` or `super[prop]` + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[esprima/es2015-super-property/invalid_super_not_inside_function/input.js:1:1] + 1 │ var x = super(); + · ─────── + ╰──── + × Bad escape sequence in untagged template literal ╭─[esprima/es2015-template-literals/.octal-literal/input.js:1:1] 1 │ `\00`; diff --git a/tasks/coverage/test262.snap b/tasks/coverage/test262.snap index f52e1d445..9d0656d96 100644 --- a/tasks/coverage/test262.snap +++ b/tasks/coverage/test262.snap @@ -1,7 +1,7 @@ Test262 Summary: AST Parsed : 44015/44034 (99.96%) Positive Passed: 44015/44034 (99.96%) -Negative Passed: 2823/3917 (72.07%) +Negative Passed: 2961/3917 (75.59%) 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" @@ -72,12 +72,8 @@ Expect Syntax Error: "language/expressions/async-arrow-function/dflt-params-rest 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-await-in-formals.js" -Expect Syntax Error: "language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js" -Expect Syntax Error: "language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.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/early-errors-arrow-formals-contains-super-call.js" -Expect Syntax Error: "language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.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/await-as-binding-identifier-escaped.js" @@ -85,11 +81,7 @@ Expect Syntax Error: "language/expressions/async-function/await-as-binding-ident 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-body-contains-super-call.js" -Expect Syntax Error: "language/expressions/async-function/early-errors-expression-body-contains-super-property.js" Expect Syntax Error: "language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js" -Expect Syntax Error: "language/expressions/async-function/early-errors-expression-formals-contains-super-call.js" -Expect Syntax Error: "language/expressions/async-function/early-errors-expression-formals-contains-super-property.js" Expect Syntax Error: "language/expressions/async-function/named-array-destructuring-param-strict-body.js" Expect Syntax Error: "language/expressions/async-function/named-await-as-binding-identifier-escaped.js" Expect Syntax Error: "language/expressions/async-function/named-await-as-binding-identifier.js" @@ -124,13 +116,9 @@ Expect Syntax Error: "language/expressions/async-generator/early-errors-expressi 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-body-contains-super-call.js" -Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-body-contains-super-property.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-await.js" -Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js" -Expect Syntax Error: "language/expressions/async-generator/early-errors-expression-formals-contains-super-property.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" Expect Syntax Error: "language/expressions/async-generator/named-await-as-binding-identifier-escaped.js" @@ -242,7 +230,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-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" Expect Syntax Error: "language/expressions/class/elements/async-gen-private-method/await-as-binding-identifier-escaped.js" @@ -251,32 +238,6 @@ 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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-async.js" @@ -307,31 +268,8 @@ Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/de Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-gen.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-ctor-super-no-heritage.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-private-field-super-access.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-async-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-async.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-set.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-async-gen-meth-super.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-async-meth-super.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-gen-meth-super.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-get-meth-super.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-meth-super.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-private-async-gen-meth-super.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-private-async-meth-super.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-private-gen-meth-super.js" -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-super.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" Expect Syntax Error: "language/expressions/class/gen-method-static/dflt-params-duplicates.js" @@ -377,10 +315,6 @@ Expect Syntax Error: "language/expressions/function/dstr/ary-ptrn-rest-init-obj. Expect Syntax Error: "language/expressions/function/dstr/dflt-ary-ptrn-rest-init-ary.js" 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/early-body-super-call.js" -Expect Syntax Error: "language/expressions/function/early-body-super-prop.js" -Expect Syntax Error: "language/expressions/function/early-params-super-call.js" -Expect Syntax Error: "language/expressions/function/early-params-super-prop.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" @@ -460,10 +394,8 @@ Expect Syntax Error: "language/expressions/object/method-definition/early-errors 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-await-in-formals.js" -Expect Syntax Error: "language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.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/early-errors-object-method-formals-contains-super-call.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" @@ -471,16 +403,12 @@ Expect Syntax Error: "language/expressions/object/method-definition/gen-meth-obj Expect Syntax Error: "language/expressions/object/method-definition/gen-meth-rest-param-strict-body.js" Expect Syntax Error: "language/expressions/object/method-definition/generator-param-id-yield.js" Expect Syntax Error: "language/expressions/object/method-definition/generator-param-init-yield.js" -Expect Syntax Error: "language/expressions/object/method-definition/generator-super-call-body.js" -Expect Syntax Error: "language/expressions/object/method-definition/generator-super-call-param.js" Expect Syntax Error: "language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js" Expect Syntax Error: "language/expressions/object/method-definition/meth-array-destructuring-param-strict-body.js" Expect Syntax Error: "language/expressions/object/method-definition/meth-dflt-params-duplicates.js" Expect Syntax Error: "language/expressions/object/method-definition/meth-dflt-params-rest.js" Expect Syntax Error: "language/expressions/object/method-definition/meth-object-destructuring-param-strict-body.js" Expect Syntax Error: "language/expressions/object/method-definition/meth-rest-param-strict-body.js" -Expect Syntax Error: "language/expressions/object/method-definition/name-super-call-body.js" -Expect Syntax Error: "language/expressions/object/method-definition/name-super-call-param.js" Expect Syntax Error: "language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js" 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" @@ -488,16 +416,11 @@ Expect Syntax Error: "language/expressions/object/setter-param-arguments-strict- 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/expressions/optional-chaining/call-expression-super-no-base.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" Expect Syntax Error: "language/global-code/new.target.js" Expect Syntax Error: "language/global-code/return.js" -Expect Syntax Error: "language/global-code/super-call-arrow.js" -Expect Syntax Error: "language/global-code/super-call.js" -Expect Syntax Error: "language/global-code/super-prop-arrow.js" -Expect Syntax Error: "language/global-code/super-prop.js" Expect Syntax Error: "language/import/dup-bound-names.js" Expect Syntax Error: "language/import/json-invalid.js" Expect Syntax Error: "language/import/json-named-bindings.js" @@ -623,12 +546,8 @@ Expect Syntax Error: "language/statements/async-function/early-errors-declaratio Expect Syntax Error: "language/statements/async-function/early-errors-declaration-await-in-formals.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-body-contains-super-call.js" -Expect Syntax Error: "language/statements/async-function/early-errors-declaration-body-contains-super-property.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/early-errors-declaration-formals-contains-super-call.js" -Expect Syntax Error: "language/statements/async-function/early-errors-declaration-formals-contains-super-property.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" @@ -676,10 +595,8 @@ Expect Syntax Error: "language/statements/class/definition/early-errors-class-as 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-await-in-formals.js" -Expect Syntax Error: "language/statements/class/definition/early-errors-class-method-body-contains-super-call.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/definition/early-errors-class-method-formals-contains-super-call.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" @@ -752,7 +669,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-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" Expect Syntax Error: "language/statements/class/elements/async-gen-private-method/await-as-binding-identifier-escaped.js" @@ -761,32 +677,6 @@ 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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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-super.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" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-async.js" @@ -817,31 +707,8 @@ Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/del Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-gen.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-ctor-super-no-heritage.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-private-field-super-access.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-async-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-async.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-set.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-async-gen-meth-super.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-async-meth-super.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-gen-meth-super.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-get-meth-super.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-meth-super.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-private-async-gen-meth-super.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-private-async-meth-super.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-private-gen-meth-super.js" -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-super.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" Expect Syntax Error: "language/statements/class/gen-method-static/dflt-params-duplicates.js" @@ -867,7 +734,6 @@ Expect Syntax Error: "language/statements/class/static-gen-method-param-dflt-yie Expect Syntax Error: "language/statements/class/static-init-await-binding-invalid.js" Expect Syntax Error: "language/statements/class/static-init-invalid-await.js" Expect Syntax Error: "language/statements/class/static-init-invalid-return.js" -Expect Syntax Error: "language/statements/class/static-init-invalid-super-call.js" Expect Syntax Error: "language/statements/const/dstr/ary-ptrn-rest-init-ary.js" Expect Syntax Error: "language/statements/const/dstr/ary-ptrn-rest-init-id.js" Expect Syntax Error: "language/statements/const/dstr/ary-ptrn-rest-init-obj.js" @@ -983,10 +849,6 @@ Expect Syntax Error: "language/statements/function/dstr/ary-ptrn-rest-init-obj.j Expect Syntax Error: "language/statements/function/dstr/dflt-ary-ptrn-rest-init-ary.js" Expect Syntax Error: "language/statements/function/dstr/dflt-ary-ptrn-rest-init-id.js" Expect Syntax Error: "language/statements/function/dstr/dflt-ary-ptrn-rest-init-obj.js" -Expect Syntax Error: "language/statements/function/early-body-super-call.js" -Expect Syntax Error: "language/statements/function/early-body-super-prop.js" -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/name-arguments-strict-body.js" @@ -6377,6 +6239,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" ╰──── help: Try insert a semicolon here + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js:14:1] + 14 │ + 15 │ async(foo) => { super() }; + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js:14:1] + 14 │ + 15 │ async(foo) => { super.prop }; + · ───── + ╰──── + × Identifier `bar` has already been declared ╭─[language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js:14:1] 14 │ @@ -6386,6 +6264,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" · ╰── `bar` has already been declared here ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js:14:1] + 14 │ + 15 │ async(foo = super()) => {} + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js:14:1] + 14 │ + 15 │ async (foo = super.foo) => { } + · ───── + ╰──── + × Automatic Semicolon Insertion ╭─[language/expressions/async-arrow-function/early-errors-arrow-formals-lineterminator.js:32:1] 32 │ async @@ -6462,6 +6356,23 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 30 │ }; ╰──── + × 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] + 14 │ + 15 │ (async function foo (foo) { super() }) + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/expressions/async-function/early-errors-expression-body-contains-super-property.js:14:1] + 14 │ + 15 │ (async function foo (foo) { super.prop }); + · ───── + 16 │ + ╰──── + × Identifier `bar` has already been declared ╭─[language/expressions/async-function/early-errors-expression-formals-body-duplicate.js:14:1] 14 │ @@ -6471,6 +6382,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" · ╰── `bar` has already been declared here ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/async-function/early-errors-expression-formals-contains-super-call.js:14:1] + 14 │ + 15 │ (async function foo (foo = super()) { var bar; }); + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/expressions/async-function/early-errors-expression-formals-contains-super-property.js:14:1] + 14 │ + 15 │ (async function foo (foo = super.foo) { var bar; }); + · ───── + ╰──── + × Invalid assignment ╭─[language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js:15:1] 15 │ @@ -6713,6 +6640,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ ╰──── + × 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] + 16 │ + 17 │ (async function*() { super(); }); + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/expressions/async-generator/early-errors-expression-body-contains-super-property.js:16:1] + 16 │ + 17 │ (async function*() { super.prop; }); + · ───── + ╰──── + × Identifier `a` has already been declared ╭─[language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js:20:1] 20 │ @@ -6731,6 +6674,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" · ╰── `a` has already been declared here ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js:16:1] + 16 │ + 17 │ (async function*(a = super()) { }); + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js:16:1] + 16 │ + 17 │ (async function*(a = super.prop) { }); + · ───── + ╰──── + × The keyword 'yield' is reserved ╭─[language/expressions/async-generator/early-errors-expression-formals-contains-yield.js:17:1] 17 │ @@ -8135,6 +8094,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/arrow-fnc-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ x = () => super(); + · ─────── + 27 │ } + ╰──── + × 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() { @@ -8497,6 +8465,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 35 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/comp-name-init-err-contains-super.js:26:1] + 26 │ var C = class { + 27 │ [x] = super(); + · ─────── + 28 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/expressions/class/elements/equality-init-err-contains-arguments.js:32:1] 32 │ var C = class { @@ -8505,6 +8482,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/equality-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ x = {} == super(); + · ─────── + 27 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[language/expressions/class/elements/fields-asi-3.js:16:1] 16 │ x = "string" @@ -8773,6 +8759,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/literal-name-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ x = super(); + · ─────── + 27 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/expressions/class/elements/nested-arrow-fnc-init-err-contains-arguments.js:33:1] 33 │ x = () => { @@ -8781,6 +8776,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 35 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-arrow-fnc-init-err-contains-super.js:26:1] + 26 │ x = () => { + 27 │ var t = () => super(); + · ─────── + 28 │ } + ╰──── + × '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 { @@ -8789,6 +8793,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-comp-name-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ [x] = () => super(); + · ─────── + 27 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[language/expressions/class/elements/nested-equality-init-err-contains-arguments.js:31:1] 31 │ var C = class { @@ -8817,6 +8830,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-literal-name-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ x = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 = () => { @@ -8825,6 +8847,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 35 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-private-arrow-fnc-init-err-contains-super.js:26:1] + 26 │ #x = () => { + 27 │ var t = () => super(); + · ─────── + 28 │ } + ╰──── + × '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 { @@ -8833,6 +8864,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-private-literal-name-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ #x = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -8841,6 +8881,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-private-ternary-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ #x = () => true ? {} : super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -8849,6 +8898,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-private-typeof-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ #x = () => typeof super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -8857,6 +8915,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-static-comp-name-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ static [x] = () => super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -8865,6 +8932,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-static-literal-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ static x = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -8873,6 +8949,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-static-private-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ static #x = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -8881,6 +8966,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-static-string-literal-name-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ static 'x' = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -8889,6 +8983,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-string-literal-name-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ 'x' = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -8897,6 +9000,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-ternary-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ x = () => true ? {} : super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -8905,6 +9017,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/nested-typeof-init-err-contains-super.js:24:1] + 24 │ var C = class { + 25 │ x = () => typeof super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -8913,6 +9034,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/private-arrow-fnc-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ #x = () => super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -8921,6 +9051,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/private-literal-name-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ #x = super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -8929,6 +9068,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/private-ternary-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ #x = true ? {} : super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -8937,6 +9085,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/private-typeof-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ #x = typeof super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -8945,6 +9102,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 35 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/static-comp-name-init-err-contains-super.js:26:1] + 26 │ var C = class { + 27 │ static [x] = super(); + · ─────── + 28 │ } + ╰──── + × '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 { @@ -8953,6 +9119,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/static-literal-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ static x = super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -8961,6 +9136,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/static-private-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ static #x = super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -8969,6 +9153,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/static-string-literal-name-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ static 'x' = super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -8977,6 +9170,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/string-literal-name-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ 'x' = super(); + · ─────── + 27 │ } + ╰──── + × Empty parenthesized expression ╭─[language/expressions/class/elements/syntax/early-errors/class-heritage-array-literal-arrow-heritage.js:22:1] 22 │ @@ -9544,6 +9746,19 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × 'super' can only be referenced in a derived class. + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-ctor-super-no-heritage.js:24:1] + 24 │ + 25 │ ╭─▶ var C = class { + 26 │ │ constructor() { + 27 │ │╭▶ super(); + · ││ ───── + 28 │ │ } + 29 │ ├─▶ }; + · ╰──── class does not have `extends` + ╰──── + help: either remove this super, or extend the class + × Invalid Character `` ╭─[language/expressions/class/elements/syntax/early-errors/grammar-field-identifier-invalid-ues-error.js:68:1] 68 │ var C = class { @@ -10126,6 +10341,96 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" ╰──── help: Try insert a semicolon here + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async-gen.js:24:1] + 24 │ async * method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async.js:24:1] + 24 │ async method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-gen.js:24:1] + 24 │ * method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-get.js:24:1] + 24 │ get method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-method.js:24:1] + 24 │ method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-async-gen.js:24:1] + 24 │ async * #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-async.js:24:1] + 24 │ async #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-gen.js:24:1] + 24 │ * #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-method.js:24:1] + 24 │ #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-set.js:24:1] + 24 │ set method(_) { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Constructor can't be an async method ╭─[language/expressions/class/elements/syntax/early-errors/grammar-special-meth-ctor-async-gen.js:23:1] 23 │ var C = class { @@ -10189,6 +10494,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-async-gen-meth-super.js:24:1] + 24 │ static async * method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes may not have a static property named prototype ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-async-meth-prototype.js:23:1] 23 │ var C = class { @@ -10198,6 +10512,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-async-meth-super.js:24:1] + 24 │ static async method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes may not have a static property named prototype ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-gen-meth-prototype.js:23:1] 23 │ var C = class { @@ -10207,6 +10530,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-gen-meth-super.js:24:1] + 24 │ static * method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes may not have a static property named prototype ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-get-meth-prototype.js:23:1] 23 │ var C = class { @@ -10216,6 +10548,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-get-meth-super.js:24:1] + 24 │ static get method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes may not have a static property named prototype ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-meth-prototype.js:23:1] 23 │ var C = class { @@ -10225,6 +10566,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-meth-super.js:24:1] + 24 │ static method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-private-async-gen-meth-constructor.js:23:1] 23 │ var C = class { @@ -10234,6 +10584,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-private-async-gen-meth-super.js:24:1] + 24 │ static async * #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-private-async-meth-constructor.js:23:1] 23 │ var C = class { @@ -10243,6 +10602,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-private-async-meth-super.js:24:1] + 24 │ static async #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-private-gen-meth-constructor.js:23:1] 23 │ var C = class { @@ -10252,6 +10620,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-private-gen-meth-super.js:24:1] + 24 │ static * #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-private-meth-constructor.js:23:1] 23 │ var C = class { @@ -10261,6 +10638,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-private-meth-super.js:24:1] + 24 │ static #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-privatename-constructor.js:23:1] 23 │ var C = class { @@ -10279,6 +10665,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ }; ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-static-set-meth-super.js:24:1] + 24 │ static set method(_) { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Private field 'x' must be declared in an enclosing class ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-bad-reference.js:50:1] 50 │ var C = class { @@ -10574,6 +10969,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/ternary-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ x = true ? {} : super(); + · ─────── + 27 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/expressions/class/elements/typeof-init-err-contains-arguments.js:32:1] 32 │ var C = class { @@ -10582,6 +10986,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/class/elements/typeof-init-err-contains-super.js:25:1] + 25 │ var C = class { + 26 │ x = typeof super(); + · ─────── + 27 │ } + ╰──── + × Rest element must be last element ╭─[language/expressions/class/gen-method-static/rest-params-trailing-comma-early-error.js:80:1] 80 │ 0, class { @@ -11960,6 +12373,24 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 54 │ ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/function/early-body-super-call.js:16:1] + 16 │ 0, function() { + 17 │ super(); + · ─────── + 18 │ }; + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/expressions/function/early-body-super-prop.js:16:1] + 16 │ 0, function() { + 17 │ super.x; + · ───── + 18 │ }; + ╰──── + × Private identifier '#x' is not allowed outside class bodies ╭─[language/expressions/function/early-errors/invalid-names-call-expression-bad-reference.js:39:1] 39 │ @@ -11988,6 +12419,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" · ── ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/function/early-params-super-call.js:15:1] + 15 │ + 16 │ 0, function(x = super()) {}; + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/expressions/function/early-params-super-prop.js:15:1] + 15 │ + 16 │ 0, function(x = super.x) {}; + · ───── + ╰──── + × The keyword 'yield' is reserved ╭─[language/expressions/function/param-dflt-yield-strict.js:21:1] 21 │ function *g() { @@ -12952,6 +13399,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 17 │ }) ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js:15:1] + 15 │ ({ + 16 │ async foo () { super() } + · ─────── + 17 │ }) + ╰──── + × Expect token ╭─[language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js:16:1] 16 │ ({ @@ -12961,6 +13417,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 18 │ }) ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js:14:1] + 14 │ ({ + 15 │ async foo(foo = super()) { } + · ─────── + 16 │ }) + ╰──── + × Keywords cannot contain escape characters ╭─[language/expressions/object/method-definition/escaped-get-e.js:23:1] 23 │ ({ @@ -13143,6 +13608,24 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 22 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/object/method-definition/generator-super-call-body.js:20:1] + 20 │ *foo(a) { + 21 │ super(); + · ─────── + 22 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/object/method-definition/generator-super-call-param.js:19:1] + 19 │ var obj = { + 20 │ *foo(a = super()) { + · ─────── + 21 │ } + ╰──── + × Rest element must be last element ╭─[language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js:57:1] 57 │ 0, { @@ -13164,6 +13647,24 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 20 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/object/method-definition/name-super-call-body.js:16:1] + 16 │ method() { + 17 │ super(); + · ─────── + 18 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/expressions/object/method-definition/name-super-call-param.js:15:1] + 15 │ ({ + 16 │ method(param = super()) {} + · ─────── + 17 │ }); + ╰──── + × Unexpected token ╭─[language/expressions/object/method-definition/private-name-early-error-async-fn-inside-class.js:23:1] 23 │ field = { @@ -13318,6 +13819,19 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 19 │ } ╰──── + × 'super' can only be referenced in a derived class. + ╭─[language/expressions/optional-chaining/call-expression-super-no-base.js:18:1] + 18 │ + 19 │ ╭─▶ class C { + 20 │ │ constructor () { + 21 │ │╭▶ super()?.a; + · ││ ───── + 22 │ │ } + 23 │ ├─▶ } + · ╰──── class does not have `extends` + ╰──── + help: either remove this super, or extend the class + × Tagged template expressions are not permitted in an optional chain ╭─[language/expressions/optional-chaining/early-errors-tail-position-null-op-template-string-esi.js:24:1] 24 │ null?. @@ -14023,6 +14537,40 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" · ── ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/global-code/super-call-arrow.js:35:1] + 35 │ () => { + 36 │ super(); + · ─────── + 37 │ }; + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/global-code/super-call.js:19:1] + 19 │ + 20 │ super(); + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/global-code/super-prop-arrow.js:35:1] + 35 │ () => { + 36 │ super.property; + · ───── + 37 │ }; + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/global-code/super-prop.js:19:1] + 19 │ + 20 │ super.property; + · ───── + ╰──── + × The keyword 'yield' is reserved ╭─[language/global-code/yield-strict.js:24:1] 24 │ @@ -16450,6 +16998,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" · ────── ╰──── + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/module-code/early-super.js:14:1] + 14 │ + 15 │ super; + · ───── + ╰──── + × 'super' can only be used with function calls or in property accesses ╭─[language/module-code/early-super.js:14:1] 14 │ @@ -17203,6 +17759,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" · ─ ╰──── + × 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] + 14 │ + 15 │ async function foo (foo) { super() }; + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/statements/async-function/early-errors-declaration-body-contains-super-property.js:14:1] + 14 │ + 15 │ async function foo (foo) { super.prop }; + · ───── + ╰──── + × Identifier `bar` has already been declared ╭─[language/statements/async-function/early-errors-declaration-formals-body-duplicate.js:14:1] 14 │ @@ -17212,6 +17784,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" · ╰── `bar` has already been declared here ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/async-function/early-errors-declaration-formals-contains-super-call.js:14:1] + 14 │ + 15 │ async function foo (foo = super()) { let bar; } + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/statements/async-function/early-errors-declaration-formals-contains-super-property.js:14:1] + 14 │ + 15 │ async function foo (foo = super.foo) { let bar; } + · ───── + ╰──── + × Keywords cannot contain escape characters ╭─[language/statements/async-function/escaped-async.js:23:1] 23 │ @@ -18140,6 +18728,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 16 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/definition/early-errors-class-method-body-contains-super-call.js:14:1] + 14 │ class Foo { + 15 │ async foo () { super() } + · ─────── + 16 │ } + ╰──── + × Expect token ╭─[language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js:16:1] 16 │ class Foo { @@ -18149,6 +18746,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 18 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js:14:1] + 14 │ class Foo { + 15 │ async foo(foo = super()) { } + · ─────── + 16 │ } + ╰──── + × The keyword 'yield' is reserved ╭─[language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js:18:1] 18 │ *g() { @@ -18855,6 +19461,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/arrow-fnc-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ x = () => super(); + · ─────── + 27 │ } + ╰──── + × 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() { @@ -19217,6 +19832,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 35 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/comp-name-init-err-contains-super.js:26:1] + 26 │ class C { + 27 │ [x] = super(); + · ─────── + 28 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/statements/class/elements/equality-init-err-contains-arguments.js:32:1] 32 │ class C { @@ -19225,6 +19849,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/equality-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ x = {} == super(); + · ─────── + 27 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[language/statements/class/elements/fields-asi-3.js:16:1] 16 │ x = "string" @@ -19493,6 +20126,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/literal-name-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ x = super(); + · ─────── + 27 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/statements/class/elements/nested-arrow-fnc-init-err-contains-arguments.js:33:1] 33 │ x = () => { @@ -19501,6 +20143,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 35 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-arrow-fnc-init-err-contains-super.js:26:1] + 26 │ x = () => { + 27 │ var t = () => super(); + · ─────── + 28 │ } + ╰──── + × '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 { @@ -19509,6 +20160,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-comp-name-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ [x] = () => super(); + · ─────── + 27 │ } + ╰──── + × Automatic Semicolon Insertion ╭─[language/statements/class/elements/nested-equality-init-err-contains-arguments.js:31:1] 31 │ class C { @@ -19537,6 +20197,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-literal-name-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ x = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 = () => { @@ -19545,6 +20214,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 35 │ t(); ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-private-arrow-fnc-init-err-contains-super.js:26:1] + 26 │ #x = () => { + 27 │ var t = () => super(); + · ─────── + 28 │ 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 { @@ -19553,6 +20231,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-private-literal-name-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ #x = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -19561,6 +20248,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-private-ternary-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ #x = () => false ? {} : super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -19569,6 +20265,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-private-typeof-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ #x = () => typeof super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -19577,6 +20282,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-static-comp-name-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ static [x] = () => super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -19585,6 +20299,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-static-literal-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ static x = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -19593,6 +20316,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-static-private-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ static #x = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -19601,6 +20333,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-static-string-literal-name-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ static 'x' = () => super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -19609,6 +20350,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-string-literal-name-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ 'x' = () => super(); + · ─────── + 26 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/statements/class/elements/nested-ternary-init-err-contains-arguments.js:31:1] 31 │ class C { @@ -19617,6 +20367,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-ternary-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ x = () => false ? {} : super(); + · ─────── + 26 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/statements/class/elements/nested-typeof-init-err-contains-arguments.js:31:1] 31 │ class C { @@ -19625,6 +20384,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 33 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/nested-typeof-init-err-contains-super.js:24:1] + 24 │ class C { + 25 │ x = () => typeof super(); + · ─────── + 26 │ } + ╰──── + × '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 { @@ -19633,6 +20401,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/private-arrow-fnc-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ #x = () => super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -19641,6 +20418,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/private-literal-name-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ #x = super(); + · ─────── + 27 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/statements/class/elements/private-ternary-init-err-contains-arguments.js:32:1] 32 │ class C { @@ -19649,6 +20435,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/private-ternary-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ #x = false ? {} : super(); + · ─────── + 27 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/statements/class/elements/private-typeof-init-err-contains-arguments.js:32:1] 32 │ class C { @@ -19657,6 +20452,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/private-typeof-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ #x = typeof super(); + · ─────── + 27 │ } + ╰──── + × 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() { @@ -19726,6 +20530,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 35 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/static-comp-name-init-err-contains-super.js:26:1] + 26 │ class C { + 27 │ static [x] = super(); + · ─────── + 28 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/statements/class/elements/static-literal-init-err-contains-arguments.js:32:1] 32 │ class C { @@ -19734,6 +20547,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/static-literal-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ static x = super(); + · ─────── + 27 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/statements/class/elements/static-private-init-err-contains-arguments.js:32:1] 32 │ class C { @@ -19742,6 +20564,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/static-private-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ static #x = super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -19750,6 +20581,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/static-string-literal-name-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ static 'x' = super(); + · ─────── + 27 │ } + ╰──── + × '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 { @@ -19758,6 +20598,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/string-literal-name-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ 'x' = super(); + · ─────── + 27 │ } + ╰──── + × Empty parenthesized expression ╭─[language/statements/class/elements/syntax/early-errors/class-heritage-array-literal-arrow-heritage.js:22:1] 22 │ @@ -20325,6 +21174,19 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × 'super' can only be referenced in a derived class. + ╭─[language/statements/class/elements/syntax/early-errors/grammar-ctor-super-no-heritage.js:24:1] + 24 │ + 25 │ ╭─▶ class C { + 26 │ │ constructor() { + 27 │ │╭▶ super(); + · ││ ───── + 28 │ │ } + 29 │ ├─▶ } + · ╰──── class does not have `extends` + ╰──── + help: either remove this super, or extend the class + × Invalid Character `` ╭─[language/statements/class/elements/syntax/early-errors/grammar-field-identifier-invalid-ues-error.js:68:1] 68 │ class C { @@ -20907,6 +21769,96 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" ╰──── help: Try insert a semicolon here + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async-gen.js:24:1] + 24 │ async * method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async.js:24:1] + 24 │ async method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-gen.js:24:1] + 24 │ * method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-get.js:24:1] + 24 │ get method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-method.js:24:1] + 24 │ method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-async-gen.js:24:1] + 24 │ async * #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-async.js:24:1] + 24 │ async #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-gen.js:24:1] + 24 │ * #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-private-method.js:24:1] + 24 │ #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-set.js:24:1] + 24 │ set method(_) { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Constructor can't be an async method ╭─[language/statements/class/elements/syntax/early-errors/grammar-special-meth-ctor-async-gen.js:23:1] 23 │ class C { @@ -20970,6 +21922,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-async-gen-meth-super.js:24:1] + 24 │ static async * method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes may not have a static property named prototype ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-async-meth-prototype.js:23:1] 23 │ class C { @@ -20979,6 +21940,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-async-meth-super.js:24:1] + 24 │ static async method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes may not have a static property named prototype ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-gen-meth-prototype.js:23:1] 23 │ class C { @@ -20988,6 +21958,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-gen-meth-super.js:24:1] + 24 │ static * method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes may not have a static property named prototype ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-get-meth-prototype.js:23:1] 23 │ class C { @@ -20997,6 +21976,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-get-meth-super.js:24:1] + 24 │ static get method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes may not have a static property named prototype ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-meth-prototype.js:23:1] 23 │ class C { @@ -21006,6 +21994,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-meth-super.js:24:1] + 24 │ static method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-private-async-gen-meth-constructor.js:23:1] 23 │ class C { @@ -21015,6 +22012,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-private-async-gen-meth-super.js:24:1] + 24 │ static async * #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-private-async-meth-constructor.js:23:1] 23 │ class C { @@ -21024,6 +22030,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-private-async-meth-super.js:24:1] + 24 │ static async #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-private-gen-meth-constructor.js:23:1] 23 │ class C { @@ -21033,6 +22048,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-private-gen-meth-super.js:24:1] + 24 │ static * #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-private-meth-constructor.js:23:1] 23 │ class C { @@ -21042,6 +22066,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-private-meth-super.js:24:1] + 24 │ static #method() { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Classes can't have an element named '#constructor' ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-privatename-constructor.js:23:1] 23 │ class C { @@ -21060,6 +22093,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 25 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/syntax/early-errors/grammar-static-set-meth-super.js:24:1] + 24 │ static set method(_) { + 25 │ super(); + · ─────── + 26 │ } + ╰──── + × Private field 'x' must be declared in an enclosing class ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-bad-reference.js:40:1] 40 │ class C { @@ -21355,6 +22397,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/ternary-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ x = false ? {} : super(); + · ─────── + 27 │ } + ╰──── + × 'arguments' is not allowed in class field initializer ╭─[language/statements/class/elements/typeof-init-err-contains-arguments.js:32:1] 32 │ class C { @@ -21363,6 +22414,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 34 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/elements/typeof-init-err-contains-super.js:25:1] + 25 │ class C { + 26 │ x = typeof super(); + · ─────── + 27 │ } + ╰──── + × Rest element must be last element ╭─[language/statements/class/gen-method-static/rest-params-trailing-comma-early-error.js:78:1] 78 │ class C { @@ -21659,6 +22719,15 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 24 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/class/static-init-invalid-super-call.js:19:1] + 19 │ static { + 20 │ super(); + · ─────── + 21 │ } + ╰──── + × Jump target cannot cross function boundary. ╭─[language/statements/class/static-init-invalid-undefined-break-target.js:21:1] 21 │ x: while (false) { @@ -23924,6 +24993,24 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" 54 │ ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/function/early-body-super-call.js:16:1] + 16 │ function f() { + 17 │ super(); + · ─────── + 18 │ } + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/statements/function/early-body-super-prop.js:16:1] + 16 │ function f() { + 17 │ super.x; + · ───── + 18 │ } + ╰──── + × Private identifier '#x' is not allowed outside class bodies ╭─[language/statements/function/early-errors/invalid-names-call-expression-bad-reference.js:39:1] 39 │ @@ -23952,6 +25039,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js" · ── ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[language/statements/function/early-params-super-call.js:15:1] + 15 │ + 16 │ function f(x = super()) {} + · ─────── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[language/statements/function/early-params-super-prop.js:15:1] + 15 │ + 16 │ function f(x = super.x) {} + · ───── + ╰──── + × Cannot assign to 'eval' in strict mode ╭─[language/statements/function/enable-strict-via-outer-script.js:22:1] 22 │ function _13_0_9_inner() { diff --git a/tasks/coverage/typescript.snap b/tasks/coverage/typescript.snap index e12768f77..bedc11b2b 100644 --- a/tasks/coverage/typescript.snap +++ b/tasks/coverage/typescript.snap @@ -1,7 +1,7 @@ TypeScript Summary: AST Parsed : 2305/2338 (98.59%) Positive Passed: 2305/2338 (98.59%) -Negative Passed: 591/2532 (23.34%) +Negative Passed: 597/2532 (23.58%) Expect Syntax Error: "Symbols/ES5SymbolProperty2.ts" Expect Syntax Error: "Symbols/ES5SymbolProperty6.ts" Expect Syntax Error: "additionalChecks/noPropertyAccessFromIndexSignature1.ts" @@ -137,7 +137,6 @@ Expect Syntax Error: "classes/constructorDeclarations/superCalls/derivedClassPar Expect Syntax Error: "classes/constructorDeclarations/superCalls/derivedClassSuperCallsWithThisArg.ts" Expect Syntax Error: "classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts" Expect Syntax Error: "classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts" -Expect Syntax Error: "classes/constructorDeclarations/superCalls/superCallInConstructorWithNoBaseType.ts" Expect Syntax Error: "classes/constructorDeclarations/superCalls/superPropertyInConstructorBeforeSuperCall.ts" Expect Syntax Error: "classes/indexMemberDeclarations/privateIndexer.ts" Expect Syntax Error: "classes/indexMemberDeclarations/publicIndexer.ts" @@ -181,7 +180,6 @@ Expect Syntax Error: "classes/members/instanceAndStaticMembers/typeOfThisInStati Expect Syntax Error: "classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts" Expect Syntax Error: "classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts" Expect Syntax Error: "classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts" -Expect Syntax Error: "classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts" Expect Syntax Error: "classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts" Expect Syntax Error: "classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts" Expect Syntax Error: "classes/members/instanceAndStaticMembers/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.ts" @@ -409,7 +407,6 @@ Expect Syntax Error: "es6/classDeclaration/superCallBeforeThisAccessing3.ts" Expect Syntax Error: "es6/classDeclaration/superCallBeforeThisAccessing4.ts" Expect Syntax Error: "es6/classDeclaration/superCallBeforeThisAccessing6.ts" Expect Syntax Error: "es6/classDeclaration/superCallBeforeThisAccessing7.ts" -Expect Syntax Error: "es6/classDeclaration/superCallFromClassThatHasNoBaseTypeButWithSameSymbolInterface.ts" Expect Syntax Error: "es6/classExpressions/typeArgumentInferenceWithClassExpression2.ts" Expect Syntax Error: "es6/computedProperties/computedPropertyNames12_ES5.ts" Expect Syntax Error: "es6/computedProperties/computedPropertyNames12_ES6.ts" @@ -429,8 +426,6 @@ Expect Syntax Error: "es6/computedProperties/computedPropertyNames24_ES5.ts" Expect Syntax Error: "es6/computedProperties/computedPropertyNames24_ES6.ts" Expect Syntax Error: "es6/computedProperties/computedPropertyNames26_ES5.ts" Expect Syntax Error: "es6/computedProperties/computedPropertyNames26_ES6.ts" -Expect Syntax Error: "es6/computedProperties/computedPropertyNames27_ES5.ts" -Expect Syntax Error: "es6/computedProperties/computedPropertyNames27_ES6.ts" Expect Syntax Error: "es6/computedProperties/computedPropertyNames2_ES5.ts" Expect Syntax Error: "es6/computedProperties/computedPropertyNames2_ES6.ts" Expect Syntax Error: "es6/computedProperties/computedPropertyNames30_ES5.ts" @@ -798,7 +793,6 @@ Expect Syntax Error: "expressions/propertyAccess/propertyAccessNumericLiterals.t Expect Syntax Error: "expressions/propertyAccess/propertyAccessStringIndexSignature.ts" Expect Syntax Error: "expressions/propertyAccess/propertyAccessStringIndexSignatureNoImplicitAny.ts" Expect Syntax Error: "expressions/propertyAccess/propertyAccessWidening.ts" -Expect Syntax Error: "expressions/superPropertyAccess/errorSuperPropertyAccess.ts" Expect Syntax Error: "expressions/superPropertyAccess/superSymbolIndexedAccess3.ts" Expect Syntax Error: "expressions/superPropertyAccess/superSymbolIndexedAccess4.ts" Expect Syntax Error: "expressions/thisKeyword/thisInInvalidContexts.ts" @@ -2760,6 +2754,32 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╰──── help: Try insert a semicolon here + × 'super' can only be referenced in a derived class. + ╭─[classes/constructorDeclarations/superCalls/superCallInConstructorWithNoBaseType.ts:1:1] + 1 │ ╭─▶ class C { + 2 │ │ constructor() { + 3 │ │╭▶ super(); // error + · ││ ───── + 4 │ │ } + 5 │ ├─▶ } + · ╰──── class does not have `extends` + 6 │ + ╰──── + help: either remove this super, or extend the class + + × 'super' can only be referenced in a derived class. + ╭─[classes/constructorDeclarations/superCalls/superCallInConstructorWithNoBaseType.ts:6:1] + 6 │ + 7 │ ╭─▶ class D { + 8 │ │ public constructor(public x: T) { + 9 │ │╭▶ super(); // error + · ││ ───── + 10 │ │ } + 11 │ ├─▶ } + · ╰──── class does not have `extends` + ╰──── + help: either remove this super, or extend the class + × Expect token ╭─[classes/indexMemberDeclarations/privateIndexer2.ts:3:1] 3 │ var x = { @@ -2779,6 +2799,15 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╰──── help: Try insert a semicolon here + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts:5:1] + 5 │ class D extends C { + 6 │ static c = super(); + · ─────── + 7 │ } + ╰──── + × Private identifier '#prop' is not allowed outside class bodies ╭─[classes/members/privateNames/privateNameAccessorsAccess.ts:15:1] 15 │ } @@ -4447,6 +4476,37 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 8 │ } ╰──── + × 'super' can only be referenced in a derived class. + ╭─[es6/classDeclaration/superCallFromClassThatHasNoBaseTypeButWithSameSymbolInterface.ts:2:1] + 2 │ + 3 │ ╭─▶ class Foo { + 4 │ │ constructor() { + 5 │ │╭▶ super(); // error + · ││ ───── + 6 │ │ } + 7 │ ├─▶ } + · ╰──── class does not have `extends` + ╰──── + help: either remove this super, or extend the class + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[es6/computedProperties/computedPropertyNames27_ES5.ts:4:1] + 4 │ class C extends Base { + 5 │ [(super(), "prop")]() { } + · ─────── + 6 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[es6/computedProperties/computedPropertyNames27_ES6.ts:4:1] + 4 │ class C extends Base { + 5 │ [(super(), "prop")]() { } + · ─────── + 6 │ } + ╰──── + × A 'set' accessor must have exactly one parameter. ╭─[es6/computedProperties/computedPropertyNames49_ES5.ts:9:1] 9 │ }, @@ -5662,6 +5722,162 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ╰── Tagged template expressions are not permitted in an optional chain ╰──── + × 'super' can only be referenced in a derived class. + ╭─[expressions/superCalls/errorSuperCalls.ts:1:1] + 1 │ //super call in class constructor with no base type + 2 │ ╭─▶ class NoBase { + 3 │ │ constructor() { + 4 │ │╭▶ super(); + · ││ ───── + 5 │ │ } + 6 │ │ + 7 │ │ //super call in class member function with no base type + 8 │ │ fn() { + 9 │ │ super(); + 10 │ │ } + 11 │ │ + 12 │ │ //super call in class accessor (get and set) with no base type + 13 │ │ get foo() { + 14 │ │ super(); + 15 │ │ return null; + 16 │ │ } + 17 │ │ set foo(v) { + 18 │ │ super(); + 19 │ │ } + 20 │ │ + 21 │ │ //super call in class member initializer with no base type + 22 │ │ p = super(); + 23 │ │ + 24 │ │ //super call in static class member function with no base type + 25 │ │ static fn() { + 26 │ │ super(); + 27 │ │ } + 28 │ │ + 29 │ │ //super call in static class member initializer with no base type + 30 │ │ static k = super(); + 31 │ │ + 32 │ │ //super call in static class accessor (get and set) with no base type + 33 │ │ static get q() { + 34 │ │ super(); + 35 │ │ return null; + 36 │ │ } + 37 │ │ static set q(n) { + 38 │ │ super(); + 39 │ │ } + 40 │ ├─▶ } + · ╰──── class does not have `extends` + 41 │ + ╰──── + help: either remove this super, or extend the class + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:8:1] + 8 │ fn() { + 9 │ super(); + · ─────── + 10 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:13:1] + 13 │ get foo() { + 14 │ super(); + · ─────── + 15 │ return null; + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:17:1] + 17 │ set foo(v) { + 18 │ super(); + · ─────── + 19 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:21:1] + 21 │ //super call in class member initializer with no base type + 22 │ p = super(); + · ─────── + 23 │ + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:25:1] + 25 │ static fn() { + 26 │ super(); + · ─────── + 27 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:29:1] + 29 │ //super call in static class member initializer with no base type + 30 │ static k = super(); + · ─────── + 31 │ + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:33:1] + 33 │ static get q() { + 34 │ super(); + · ─────── + 35 │ return null; + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:37:1] + 37 │ static set q(n) { + 38 │ super(); + · ─────── + 39 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:57:1] + 57 │ //super call in class member initializer of derived type + 58 │ t = super(); + · ─────── + 59 │ + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:61:1] + 61 │ //super call in class member function of derived type + 62 │ super(); + · ─────── + 63 │ } + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:66:1] + 66 │ get foo() { + 67 │ super(); + · ─────── + 68 │ return null; + ╰──── + + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[expressions/superCalls/errorSuperCalls.ts:70:1] + 70 │ set foo(n) { + 71 │ super(); + · ─────── + 72 │ } + ╰──── + × 'super' can only be used with function calls or in property accesses ╭─[expressions/superCalls/errorSuperCalls.ts:45:1] 45 │ constructor() { @@ -5672,6 +5888,22 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╰──── help: replace with `super()` or `super.prop` or `super[prop]` + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[expressions/superPropertyAccess/errorSuperPropertyAccess.ts:126:1] + 126 │ // In object literal + 127 │ var obj = { n: super.wat, p: super.foo() }; + · ───── + ╰──── + + × 'super' can only be referenced in members of derived classes or object literal expressions. + │ + ╭─[expressions/superPropertyAccess/errorSuperPropertyAccess.ts:126:1] + 126 │ // In object literal + 127 │ var obj = { n: super.wat, p: super.foo() }; + · ───── + ╰──── + × Expect token ╭─[expressions/typeAssertions/typeAssertions.ts:43:1] 43 │ var str: string; @@ -7962,6 +8194,15 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 3 │ } ╰──── + × Super calls are not permitted outside constructors or in nested functions inside constructors. + │ + ╭─[parser/ecmascript5/SuperExpressions/parserSuperExpression2.ts:2:1] + 2 │ M() { + 3 │ super(0); + · ─────────── + 4 │ } + ╰──── + × 'super' can only be used with function calls or in property accesses ╭─[parser/ecmascript5/SuperExpressions/parserSuperExpression2.ts:2:1] 2 │ M() {