mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 12:21:58 +00:00
feat(linter): check FunctionDeclaration in javascript
This commit is contained in:
parent
2fe8fba5b6
commit
f4c8cb2cde
3 changed files with 701 additions and 42 deletions
|
|
@ -18,7 +18,10 @@ pub struct EarlyErrorJavaScript;
|
|||
impl Rule for EarlyErrorJavaScript {
|
||||
#[allow(clippy::single_match)]
|
||||
fn run<'a>(&self, node: &AstNode<'a>, ctx: &LintContext<'a>) {
|
||||
match node.get().kind() {
|
||||
let kind = node.get().kind();
|
||||
check_function_declaration(kind, node, ctx);
|
||||
|
||||
match kind {
|
||||
AstKind::BindingIdentifier(ident) => {
|
||||
check_identifier(&ident.name, ident.span, node, ctx);
|
||||
check_binding_identifier(ident, node, ctx);
|
||||
|
|
@ -371,6 +374,52 @@ fn check_module_declaration<'a>(
|
|||
}
|
||||
}
|
||||
|
||||
fn check_function_declaration<'a>(kind: AstKind<'a>, node: &AstNode<'a>, ctx: &LintContext<'a>) {
|
||||
#[derive(Debug, Error, Diagnostic)]
|
||||
#[error("Invalid function declaration")]
|
||||
#[diagnostic(help(
|
||||
"In strict mode code, functions can only be declared at top level or inside a block"
|
||||
))]
|
||||
struct FunctionDeclarationStrict(#[label] Span);
|
||||
|
||||
#[derive(Debug, Error, Diagnostic)]
|
||||
#[error("Invalid function declaration")]
|
||||
#[diagnostic(help(
|
||||
"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement"
|
||||
))]
|
||||
struct FunctionDeclarationNonStrict(#[label] Span);
|
||||
|
||||
// Function declaration not allowed in statement position
|
||||
let check = |stmt: &Statement<'a>| {
|
||||
if let Statement::Declaration(Declaration::FunctionDeclaration(decl)) = stmt {
|
||||
if ctx.strict_mode(node) {
|
||||
ctx.diagnostic(FunctionDeclarationStrict(decl.span));
|
||||
} else if !matches!(kind, AstKind::IfStatement(_) | AstKind::LabeledStatement(_)) {
|
||||
ctx.diagnostic(FunctionDeclarationNonStrict(decl.span));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
match kind {
|
||||
AstKind::WithStatement(WithStatement { body, .. })
|
||||
| AstKind::WhileStatement(WhileStatement { body, .. })
|
||||
| AstKind::DoWhileStatement(DoWhileStatement { body, .. })
|
||||
| AstKind::ForStatement(ForStatement { body, .. })
|
||||
| AstKind::ForInStatement(ForInStatement { body, .. })
|
||||
| AstKind::ForOfStatement(ForOfStatement { body, .. })
|
||||
| AstKind::LabeledStatement(LabeledStatement { body, .. }) => {
|
||||
check(body);
|
||||
}
|
||||
AstKind::IfStatement(if_stmt) => {
|
||||
check(&if_stmt.consequent);
|
||||
if let Some(alternate) = &if_stmt.alternate {
|
||||
check(alternate);
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
||||
fn check_regexp_literal(lit: &RegExpLiteral, ctx: &LintContext) {
|
||||
#[derive(Debug, Error, Diagnostic)]
|
||||
#[error("The 'u' and 'v' regular expression flags cannot be enabled at the same time")]
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
Babel Summary:
|
||||
AST Parsed : 2051/2069 (99.13%)
|
||||
Positive Passed: 2051/2069 (99.13%)
|
||||
Negative Passed: 1120/1502 (74.57%)
|
||||
Negative Passed: 1122/1502 (74.70%)
|
||||
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"
|
||||
|
|
@ -11,7 +11,6 @@ Expect Syntax Error: "annex-b/disabled/3.2.5-duplicate-function-in-switch/input.
|
|||
Expect Syntax Error: "annex-b/disabled/3.3-function-in-if-body/input.js"
|
||||
Expect Syntax Error: "annex-b/disabled/3.5-for-in-initializer/input.js"
|
||||
Expect Syntax Error: "annex-b/enabled/3.1-sloppy-labeled-functions-if-body/input.js"
|
||||
Expect Syntax Error: "core/categorized/invalid-fn-decl-inside-loop/input.js"
|
||||
Expect Syntax Error: "core/categorized/invalid-fn-decl-labeled-inside-if/input.js"
|
||||
Expect Syntax Error: "core/categorized/invalid-fn-decl-labeled-inside-loop/input.js"
|
||||
Expect Syntax Error: "core/escape-string/invalid-decimal-escape-strict-directive-function/input.js"
|
||||
|
|
@ -29,7 +28,6 @@ Expect Syntax Error: "core/scope/undecl-export-as/input.js"
|
|||
Expect Syntax Error: "core/scope/undecl-export-block/input.js"
|
||||
Expect Syntax Error: "core/scope/undecl-export-builtin-as/input.js"
|
||||
Expect Syntax Error: "core/scope/undecl-export-builtin/input.js"
|
||||
Expect Syntax Error: "core/scope/undecl-export-if/input.js"
|
||||
Expect Syntax Error: "core/scope/undecl-export/input.js"
|
||||
Expect Syntax Error: "core/uncategorised/466/input.js"
|
||||
Expect Syntax Error: "core/uncategorised/467/input.js"
|
||||
|
|
@ -629,6 +627,13 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts"
|
|||
· ╰── Cannot assign to this expression
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[core/categorized/invalid-fn-decl-inside-loop/input.js:1:1]
|
||||
1 │ while (1) function foo(){}
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement
|
||||
|
||||
× Invalid assignment
|
||||
╭─[core/categorized/invalid-left-hand-side-in-postfix-operation/input.js:1:1]
|
||||
1 │ a++ = t
|
||||
|
|
@ -1041,6 +1046,14 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts"
|
|||
3 │ }
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[core/scope/undecl-export-if/input.js:1:1]
|
||||
1 │ export { encrypt };
|
||||
2 │ if (true) function encrypt() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× A 'get' accessor must not have any formal parameters.
|
||||
╭─[core/uncategorised/.542/input.js:1:1]
|
||||
1 │ ({ get prop(x) {} })
|
||||
|
|
@ -2368,6 +2381,13 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts"
|
|||
· ╰── Generators can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[es2015/generators/invalid-sloppy-function/input.js:1:1]
|
||||
1 │ while (1) function *foo() {}
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[es2015/generators/invalid-sloppy-function/input.js:1:1]
|
||||
1 │ while (1) function *foo() {}
|
||||
|
|
@ -4391,6 +4411,13 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts"
|
|||
· ╰── Expect `)` here, but found `;`
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[es2017/async-functions/invalid-generator-inside-loop/input.js:1:1]
|
||||
1 │ while (1) async function *foo(){}
|
||||
· ───────────────────────
|
||||
╰────
|
||||
help: In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[es2017/async-functions/invalid-generator-inside-loop/input.js:1:1]
|
||||
1 │ while (1) async function *foo(){}
|
||||
|
|
@ -4398,6 +4425,13 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[es2017/async-functions/invalid-inside-loop/input.js:1:1]
|
||||
1 │ while (1) async function foo(){}
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[es2017/async-functions/invalid-inside-loop/input.js:1:1]
|
||||
1 │ while (1) async function foo(){}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,7 @@
|
|||
Test262 Summary:
|
||||
AST Parsed : 44015/44034 (99.96%)
|
||||
Positive Passed: 44015/44034 (99.96%)
|
||||
Negative Passed: 3499/3917 (89.33%)
|
||||
Expect Syntax Error: "language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js"
|
||||
Expect Syntax Error: "language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js"
|
||||
Expect Syntax Error: "language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js"
|
||||
Expect Syntax Error: "language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js"
|
||||
Expect Syntax Error: "language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js"
|
||||
Negative Passed: 3536/3917 (90.27%)
|
||||
Expect Syntax Error: "language/directive-prologue/10.1.1-2gs.js"
|
||||
Expect Syntax Error: "language/directive-prologue/10.1.1-5gs.js"
|
||||
Expect Syntax Error: "language/directive-prologue/10.1.1-8gs.js"
|
||||
|
|
@ -297,8 +292,6 @@ Expect Syntax Error: "language/statements/class/static-init-invalid-await.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"
|
||||
Expect Syntax Error: "language/statements/do-while/decl-fun.js"
|
||||
Expect Syntax Error: "language/statements/do-while/labelled-fn-stmt.js"
|
||||
Expect Syntax Error: "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-ary.js"
|
||||
Expect Syntax Error: "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-id.js"
|
||||
Expect Syntax Error: "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-obj.js"
|
||||
|
|
@ -335,12 +328,6 @@ Expect Syntax Error: "language/statements/for-await-of/async-gen-dstr-var-ary-pt
|
|||
Expect Syntax Error: "language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-ary.js"
|
||||
Expect Syntax Error: "language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-id.js"
|
||||
Expect Syntax Error: "language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-obj.js"
|
||||
Expect Syntax Error: "language/statements/for-in/decl-fun.js"
|
||||
Expect Syntax Error: "language/statements/for-in/labelled-fn-stmt-const.js"
|
||||
Expect Syntax Error: "language/statements/for-in/labelled-fn-stmt-let.js"
|
||||
Expect Syntax Error: "language/statements/for-in/labelled-fn-stmt-lhs.js"
|
||||
Expect Syntax Error: "language/statements/for-in/labelled-fn-stmt-var.js"
|
||||
Expect Syntax Error: "language/statements/for-of/decl-fun.js"
|
||||
Expect Syntax Error: "language/statements/for-of/dstr/const-ary-ptrn-rest-init-ary.js"
|
||||
Expect Syntax Error: "language/statements/for-of/dstr/const-ary-ptrn-rest-init-id.js"
|
||||
Expect Syntax Error: "language/statements/for-of/dstr/const-ary-ptrn-rest-init-obj.js"
|
||||
|
|
@ -350,11 +337,6 @@ Expect Syntax Error: "language/statements/for-of/dstr/let-ary-ptrn-rest-init-obj
|
|||
Expect Syntax Error: "language/statements/for-of/dstr/var-ary-ptrn-rest-init-ary.js"
|
||||
Expect Syntax Error: "language/statements/for-of/dstr/var-ary-ptrn-rest-init-id.js"
|
||||
Expect Syntax Error: "language/statements/for-of/dstr/var-ary-ptrn-rest-init-obj.js"
|
||||
Expect Syntax Error: "language/statements/for-of/labelled-fn-stmt-const.js"
|
||||
Expect Syntax Error: "language/statements/for-of/labelled-fn-stmt-let.js"
|
||||
Expect Syntax Error: "language/statements/for-of/labelled-fn-stmt-lhs.js"
|
||||
Expect Syntax Error: "language/statements/for-of/labelled-fn-stmt-var.js"
|
||||
Expect Syntax Error: "language/statements/for/decl-fun.js"
|
||||
Expect Syntax Error: "language/statements/for/dstr/const-ary-ptrn-rest-init-ary.js"
|
||||
Expect Syntax Error: "language/statements/for/dstr/const-ary-ptrn-rest-init-id.js"
|
||||
Expect Syntax Error: "language/statements/for/dstr/const-ary-ptrn-rest-init-obj.js"
|
||||
|
|
@ -364,10 +346,6 @@ Expect Syntax Error: "language/statements/for/dstr/let-ary-ptrn-rest-init-obj.js
|
|||
Expect Syntax Error: "language/statements/for/dstr/var-ary-ptrn-rest-init-ary.js"
|
||||
Expect Syntax Error: "language/statements/for/dstr/var-ary-ptrn-rest-init-id.js"
|
||||
Expect Syntax Error: "language/statements/for/dstr/var-ary-ptrn-rest-init-obj.js"
|
||||
Expect Syntax Error: "language/statements/for/labelled-fn-stmt-const.js"
|
||||
Expect Syntax Error: "language/statements/for/labelled-fn-stmt-expr.js"
|
||||
Expect Syntax Error: "language/statements/for/labelled-fn-stmt-let.js"
|
||||
Expect Syntax Error: "language/statements/for/labelled-fn-stmt-var.js"
|
||||
Expect Syntax Error: "language/statements/function/dflt-params-rest.js"
|
||||
Expect Syntax Error: "language/statements/function/dstr/ary-ptrn-rest-init-ary.js"
|
||||
Expect Syntax Error: "language/statements/function/dstr/ary-ptrn-rest-init-id.js"
|
||||
|
|
@ -392,18 +370,6 @@ Expect Syntax Error: "language/statements/generators/dstr/ary-ptrn-rest-init-obj
|
|||
Expect Syntax Error: "language/statements/generators/dstr/dflt-ary-ptrn-rest-init-ary.js"
|
||||
Expect Syntax Error: "language/statements/generators/dstr/dflt-ary-ptrn-rest-init-id.js"
|
||||
Expect Syntax Error: "language/statements/generators/dstr/dflt-ary-ptrn-rest-init-obj.js"
|
||||
Expect Syntax Error: "language/statements/if/if-decl-else-decl-strict.js"
|
||||
Expect Syntax Error: "language/statements/if/if-decl-else-stmt-strict.js"
|
||||
Expect Syntax Error: "language/statements/if/if-decl-no-else-strict.js"
|
||||
Expect Syntax Error: "language/statements/if/if-fun-else-fun-strict.js"
|
||||
Expect Syntax Error: "language/statements/if/if-fun-else-stmt-strict.js"
|
||||
Expect Syntax Error: "language/statements/if/if-fun-no-else-strict.js"
|
||||
Expect Syntax Error: "language/statements/if/if-stmt-else-decl-strict.js"
|
||||
Expect Syntax Error: "language/statements/if/if-stmt-else-fun-strict.js"
|
||||
Expect Syntax Error: "language/statements/if/labelled-fn-stmt-first.js"
|
||||
Expect Syntax Error: "language/statements/if/labelled-fn-stmt-lone.js"
|
||||
Expect Syntax Error: "language/statements/if/labelled-fn-stmt-second.js"
|
||||
Expect Syntax Error: "language/statements/labeled/decl-fun-strict.js"
|
||||
Expect Syntax Error: "language/statements/let/dstr/ary-ptrn-rest-init-ary.js"
|
||||
Expect Syntax Error: "language/statements/let/dstr/ary-ptrn-rest-init-id.js"
|
||||
Expect Syntax Error: "language/statements/let/dstr/ary-ptrn-rest-init-obj.js"
|
||||
|
|
@ -414,9 +380,6 @@ Expect Syntax Error: "language/statements/variable/dstr/ary-ptrn-rest-init-ary.j
|
|||
Expect Syntax Error: "language/statements/variable/dstr/ary-ptrn-rest-init-id.js"
|
||||
Expect Syntax Error: "language/statements/variable/dstr/ary-ptrn-rest-init-obj.js"
|
||||
Expect Syntax Error: "language/statements/variable/dstr/obj-ptrn-elem-id-static-init-await-invalid.js"
|
||||
Expect Syntax Error: "language/statements/while/decl-fun.js"
|
||||
Expect Syntax Error: "language/statements/while/labelled-fn-stmt.js"
|
||||
Expect Syntax Error: "language/statements/with/decl-fun.js"
|
||||
Expect Syntax Error: "language/statements/with/strict-fn-decl-nested-1.js"
|
||||
Expect Syntax Error: "language/statements/with/strict-fn-decl-nested-2.js"
|
||||
Expect Syntax Error: "language/statements/with/strict-fn-decl.js"
|
||||
|
|
@ -1039,6 +1002,51 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
15 │
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js:13:1]
|
||||
13 │ $DONOTEVALUATE();
|
||||
14 │ do function g() {} while (false)
|
||||
· ───────────────
|
||||
15 │
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js:13:1]
|
||||
13 │ $DONOTEVALUATE();
|
||||
14 │ for (;false;) function g() {}
|
||||
· ───────────────
|
||||
15 │
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js:14:1]
|
||||
14 │ $DONOTEVALUATE();
|
||||
15 │ if (true) {} else function g() {}
|
||||
· ───────────────
|
||||
16 │
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js:14:1]
|
||||
14 │ $DONOTEVALUATE();
|
||||
15 │ if (true) function g() {}
|
||||
· ───────────────
|
||||
16 │
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js:13:1]
|
||||
13 │ $DONOTEVALUATE();
|
||||
14 │ while (false) function g() {}
|
||||
· ───────────────
|
||||
15 │
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Identifier `f` has already been declared
|
||||
╭─[language/block-scope/syntax/redeclaration/async-function-name-redeclaration-attempt-with-async-function.js:22:1]
|
||||
22 │
|
||||
|
|
@ -28145,6 +28153,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
18 │ //
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/do-while/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
20 │ do async function f() {} while (false)
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/do-while/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
|
|
@ -28153,6 +28169,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/do-while/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
20 │ do async function* g() {} while (false)
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/do-while/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
|
|
@ -28178,6 +28202,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Wrap this declaration in a block statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/do-while/decl-fun.js:13:1]
|
||||
13 │
|
||||
14 │ do function f() {} while (false)
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/do-while/decl-gen.js:14:1]
|
||||
14 │
|
||||
15 │ do function* g() {} while (false)
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/do-while/decl-gen.js:14:1]
|
||||
14 │
|
||||
|
|
@ -28195,6 +28235,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Try insert a semicolon here
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/do-while/labelled-fn-stmt.js:17:1]
|
||||
17 │
|
||||
18 │ do label1: label2: function f() {} while (false)
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Lexical declaration cannot appear in a single-statement context
|
||||
╭─[language/statements/do-while/let-array-with-newline.js:19:1]
|
||||
19 │
|
||||
|
|
@ -28694,6 +28742,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
20 │ break ;
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-in/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
20 │ for (var x in {}) async function f() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/for-in/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
|
|
@ -28702,6 +28758,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-in/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
20 │ for (var x in {}) async function* g() {}
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/for-in/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
|
|
@ -28727,6 +28791,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Wrap this declaration in a block statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-in/decl-fun.js:13:1]
|
||||
13 │
|
||||
14 │ for (var x in {}) function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-in/decl-gen.js:14:1]
|
||||
14 │
|
||||
15 │ for (var x in {}) function* g() {}
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/for-in/decl-gen.js:14:1]
|
||||
14 │
|
||||
|
|
@ -29073,6 +29153,38 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ────
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-in/labelled-fn-stmt-const.js:17:1]
|
||||
17 │
|
||||
18 │ for (const x in {}) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-in/labelled-fn-stmt-let.js:17:1]
|
||||
17 │
|
||||
18 │ for (let x in {}) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-in/labelled-fn-stmt-lhs.js:17:1]
|
||||
17 │
|
||||
18 │ for (x in {}) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-in/labelled-fn-stmt-var.js:17:1]
|
||||
17 │
|
||||
18 │ for (var x in {}) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Lexical declaration cannot appear in a single-statement context
|
||||
╭─[language/statements/for-in/let-array-with-newline.js:19:1]
|
||||
19 │
|
||||
|
|
@ -29148,6 +29260,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ────
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-of/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
20 │ for (var x of []) async function f() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/for-of/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
|
|
@ -29156,6 +29276,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-of/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
20 │ for (var x of []) async function* g() {}
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/for-of/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
|
|
@ -29181,6 +29309,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Wrap this declaration in a block statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-of/decl-fun.js:13:1]
|
||||
13 │
|
||||
14 │ for (var x of []) function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-of/decl-gen.js:14:1]
|
||||
14 │
|
||||
15 │ for (var x of []) function* g() {}
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/for-of/decl-gen.js:14:1]
|
||||
14 │
|
||||
|
|
@ -29719,6 +29863,38 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Expect `)` here, but found `,`
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-of/labelled-fn-stmt-const.js:17:1]
|
||||
17 │
|
||||
18 │ for (const x of []) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-of/labelled-fn-stmt-let.js:17:1]
|
||||
17 │
|
||||
18 │ for (let x of []) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-of/labelled-fn-stmt-lhs.js:17:1]
|
||||
17 │
|
||||
18 │ for (x of []) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for-of/labelled-fn-stmt-var.js:17:1]
|
||||
17 │
|
||||
18 │ for (var x of []) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Lexical declaration cannot appear in a single-statement context
|
||||
╭─[language/statements/for-of/let-array-with-newline.js:19:1]
|
||||
19 │
|
||||
|
|
@ -29879,6 +30055,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
22 │ //
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
20 │ for ( ; false; ) async function f() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/for/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
|
|
@ -29887,6 +30071,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
20 │ for ( ; false; ) async function* g() {}
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/for/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
|
|
@ -29912,6 +30104,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Wrap this declaration in a block statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for/decl-fun.js:13:1]
|
||||
13 │
|
||||
14 │ for ( ; false; ) function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for/decl-gen.js:14:1]
|
||||
14 │
|
||||
15 │ for ( ; false; ) function* g() {}
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/for/decl-gen.js:14:1]
|
||||
14 │
|
||||
|
|
@ -30034,6 +30242,38 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
22 │ }
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for/labelled-fn-stmt-const.js:17:1]
|
||||
17 │
|
||||
18 │ for (const x = 0; false; ) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for/labelled-fn-stmt-expr.js:17:1]
|
||||
17 │
|
||||
18 │ for ( ; false; ) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for/labelled-fn-stmt-let.js:17:1]
|
||||
17 │
|
||||
18 │ for (let x; false; ) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/for/labelled-fn-stmt-var.js:17:1]
|
||||
17 │
|
||||
18 │ for (var x; false; ) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Lexical declaration cannot appear in a single-statement context
|
||||
╭─[language/statements/for/let-array-with-newline.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30717,6 +30957,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
18 │ //
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-async-fun-else-async-fun.js:19:1]
|
||||
19 │
|
||||
20 │ if (true) async function f() { } else async function _f() {}
|
||||
· ───────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-async-fun-else-async-fun.js:19:1]
|
||||
19 │
|
||||
20 │ if (true) async function f() { } else async function _f() {}
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-async-fun-else-async-fun.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30733,6 +30989,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-async-fun-else-stmt.js:19:1]
|
||||
19 │
|
||||
20 │ if (true) async function f() { } else ;
|
||||
· ───────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-async-fun-else-stmt.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30741,6 +31005,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-async-fun-no-else.js:19:1]
|
||||
19 │
|
||||
20 │ if (true) async function f() { }
|
||||
· ───────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-async-fun-no-else.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30749,6 +31021,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-async-gen-else-async-gen.js:19:1]
|
||||
19 │
|
||||
20 │ if (true) async function* f() { } else async function* _f() {}
|
||||
· ────────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-async-gen-else-async-gen.js:19:1]
|
||||
19 │
|
||||
20 │ if (true) async function* f() { } else async function* _f() {}
|
||||
· ───────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-async-gen-else-async-gen.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30765,6 +31053,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-async-gen-else-stmt.js:19:1]
|
||||
19 │
|
||||
20 │ if (true) async function* f() { } else ;
|
||||
· ────────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-async-gen-else-stmt.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30773,6 +31069,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-async-gen-no-else.js:19:1]
|
||||
19 │
|
||||
20 │ if (true) async function* f() { }
|
||||
· ────────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-async-gen-no-else.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30849,6 +31153,86 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Wrap this declaration in a block statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-decl-else-decl-strict.js:23:1]
|
||||
23 │
|
||||
24 │ if (true) function f() { } else function _f() {}
|
||||
· ─────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-decl-else-decl-strict.js:23:1]
|
||||
23 │
|
||||
24 │ if (true) function f() { } else function _f() {}
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-decl-else-stmt-strict.js:23:1]
|
||||
23 │
|
||||
24 │ if (true) function f() { } else ;
|
||||
· ─────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-decl-no-else-strict.js:23:1]
|
||||
23 │
|
||||
24 │ if (true) function f() { }
|
||||
· ─────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-fun-else-fun-strict.js:24:1]
|
||||
24 │
|
||||
25 │ if (true) function f() {} else function _f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-fun-else-fun-strict.js:24:1]
|
||||
24 │
|
||||
25 │ if (true) function f() {} else function _f() {}
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-fun-else-stmt-strict.js:24:1]
|
||||
24 │
|
||||
25 │ if (true) function f() {} else ;
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-fun-no-else-strict.js:24:1]
|
||||
24 │
|
||||
25 │ if (true) function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-gen-else-gen.js:14:1]
|
||||
14 │
|
||||
15 │ if (true) function* g() { } else function* _g() {}
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-gen-else-gen.js:14:1]
|
||||
14 │
|
||||
15 │ if (true) function* g() { } else function* _g() {}
|
||||
· ─────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-gen-else-gen.js:14:1]
|
||||
14 │
|
||||
|
|
@ -30865,6 +31249,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Generators can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-gen-else-stmt.js:14:1]
|
||||
14 │
|
||||
15 │ if (true) function* g() { } else ;
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-gen-else-stmt.js:14:1]
|
||||
14 │
|
||||
|
|
@ -30873,6 +31265,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Generators can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-gen-no-else.js:14:1]
|
||||
14 │
|
||||
15 │ if (true) function* g() { }
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-gen-no-else.js:14:1]
|
||||
14 │
|
||||
|
|
@ -30908,6 +31308,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Try insert a semicolon here
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-stmt-else-async-fun.js:19:1]
|
||||
19 │
|
||||
20 │ if (false) ; else async function f() { }
|
||||
· ───────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-stmt-else-async-fun.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30916,6 +31324,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-stmt-else-async-gen.js:19:1]
|
||||
19 │
|
||||
20 │ if (false) ; else async function* f() { }
|
||||
· ────────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-stmt-else-async-gen.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30941,6 +31357,30 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Wrap this declaration in a block statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-stmt-else-decl-strict.js:27:1]
|
||||
27 │
|
||||
28 │ if (false) ; else function f() { }
|
||||
· ─────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-stmt-else-fun-strict.js:28:1]
|
||||
28 │
|
||||
29 │ if (false) ; else function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/if-stmt-else-gen.js:14:1]
|
||||
14 │
|
||||
15 │ if (false) ; else function* g() { }
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/if/if-stmt-else-gen.js:14:1]
|
||||
14 │
|
||||
|
|
@ -30958,6 +31398,30 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Try insert a semicolon here
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/labelled-fn-stmt-first.js:28:1]
|
||||
28 │
|
||||
29 │ if (false) label1: label2: function test262() {} else ;
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/labelled-fn-stmt-lone.js:28:1]
|
||||
28 │
|
||||
29 │ if (false) label1: label2: function test262() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/if/labelled-fn-stmt-second.js:28:1]
|
||||
28 │
|
||||
29 │ if (true) ; else label1: label2: function test262() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Lexical declaration cannot appear in a single-statement context
|
||||
╭─[language/statements/if/let-array-with-newline.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30979,6 +31443,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
26 │ }
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/labeled/decl-async-function.js:19:1]
|
||||
19 │
|
||||
20 │ label: async function f() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/labeled/decl-async-function.js:19:1]
|
||||
19 │
|
||||
|
|
@ -30987,6 +31459,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/labeled/decl-async-generator.js:19:1]
|
||||
19 │
|
||||
20 │ label: async function* g() {}
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/labeled/decl-async-generator.js:19:1]
|
||||
19 │
|
||||
|
|
@ -31012,6 +31492,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Wrap this declaration in a block statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/labeled/decl-fun-strict.js:16:1]
|
||||
16 │
|
||||
17 │ label: function g() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/labeled/decl-gen.js:14:1]
|
||||
14 │
|
||||
15 │ label: function* g() {}
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/labeled/decl-gen.js:14:1]
|
||||
14 │
|
||||
|
|
@ -32660,6 +33156,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
18 │ //
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/while/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
20 │ while (false) async function f() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/while/decl-async-fun.js:19:1]
|
||||
19 │
|
||||
|
|
@ -32668,6 +33172,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/while/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
20 │ while (false) async function* g() {}
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/while/decl-async-gen.js:19:1]
|
||||
19 │
|
||||
|
|
@ -32693,6 +33205,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Wrap this declaration in a block statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/while/decl-fun.js:13:1]
|
||||
13 │
|
||||
14 │ while (false) function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/while/decl-gen.js:14:1]
|
||||
14 │
|
||||
15 │ while (false) function* g() {}
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/while/decl-gen.js:14:1]
|
||||
14 │
|
||||
|
|
@ -32710,6 +33238,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Try insert a semicolon here
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/while/labelled-fn-stmt.js:17:1]
|
||||
17 │
|
||||
18 │ while (false) label1: label2: function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Lexical declaration cannot appear in a single-statement context
|
||||
╭─[language/statements/while/let-array-with-newline.js:19:1]
|
||||
19 │
|
||||
|
|
@ -32726,6 +33262,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ────
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/with/decl-async-fun.js:20:1]
|
||||
20 │
|
||||
21 │ with ({}) async function f() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/with/decl-async-fun.js:20:1]
|
||||
20 │
|
||||
|
|
@ -32734,6 +33278,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ╰── Async functions can only be declared at the top level or inside a block
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/with/decl-async-gen.js:20:1]
|
||||
20 │
|
||||
21 │ with ({}) async function* g() {}
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement
|
||||
|
||||
× Async functions can only be declared at the top level or inside a block
|
||||
╭─[language/statements/with/decl-async-gen.js:20:1]
|
||||
20 │
|
||||
|
|
@ -32759,6 +33311,22 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
╰────
|
||||
help: Wrap this declaration in a block statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/with/decl-fun.js:14:1]
|
||||
14 │
|
||||
15 │ with ({}) function f() {}
|
||||
· ───────────────
|
||||
╰────
|
||||
help: In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/with/decl-gen.js:15:1]
|
||||
15 │
|
||||
16 │ with ({}) function* g() {}
|
||||
· ────────────────
|
||||
╰────
|
||||
help: In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement
|
||||
|
||||
× Generators can only be declared at the top level or inside a block
|
||||
╭─[language/statements/with/decl-gen.js:15:1]
|
||||
15 │
|
||||
|
|
@ -32783,6 +33351,14 @@ Expect to Parse: "language/statements/function/S14_A5_T2.js"
|
|||
· ────
|
||||
╰────
|
||||
|
||||
× Invalid function declaration
|
||||
╭─[language/statements/with/labelled-fn-stmt.js:25:1]
|
||||
25 │
|
||||
26 │ with ({}) label1: label2: function test262() {}
|
||||
· ─────────────────────
|
||||
╰────
|
||||
help: In strict mode code, functions can only be declared at top level or inside a block
|
||||
|
||||
× Lexical declaration cannot appear in a single-statement context
|
||||
╭─[language/statements/with/let-array-with-newline.js:21:1]
|
||||
21 │ if (false) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue