Skip to content

parser: redeclare var name with function declaration in BlockScope in non-strict mode should throw a SyntaxError #10055

@Dunqing

Description

@Dunqing

Test262 test | Babel Playground | OXC Playground

// This file was procedurally generated from the following sources:
// - src/declarations/function.case
// - src/declarations/redeclare-allow-sloppy-function/block-attempt-to-redeclare-var-declaration.template
/*---
description: redeclaration with FunctionDeclaration (VariableDeclaration in BlockStatement)
esid: sec-block-static-semantics-early-errors
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    Block : { StatementList }

    It is a Syntax Error if any element of the LexicallyDeclaredNames of
    StatementList also occurs in the VarDeclaredNames of StatementList.

---*/


$DONOTEVALUATE();

{ var f; function f() {} }

Expect

Both should throw a syntax error in non-strict mode and strict mode

Actual

Non-strict mode has no error, and strict mode has a syntax error

Metadata

Metadata

Assignees

Labels

Type

Priority

None yet

Effort

None yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions