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 (1,374 forks)batch import
BugSeverity: 2help wanted

Repository metrics

Stars
 (9,000 stars)
PR merge metrics
 (No merged PRs in 30d)

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