chakra-core/ChakraCore

Hoisting a var declaration past a lexical declaration of the same name should be a SyntaxError

Open

#357 opened on Feb 19, 2016

View on GitHub
 (4 comments) (0 reactions) (0 assignees)JavaScript (9,000 stars) (1,374 forks)batch import
BugSeverity: 2help wanted

Description

Second bullet point of block static semantics and similarly for function body static semantics.

E.g.

let x;
{
    var x; // error (already works)
    let y;
    var y; // should be an error (doesn't work)
    {
        var y; // should also be an error (doesn't work)
    }
}

This applies for var declarations hoisting past all lexical declarations, i.e. let, const, class, function (and generators and async functions).

Contributor guide