• jwolfe's avatar
    change most cases of variable redeclaration from TypeError to SyntaxError. · 2b787561
    jwolfe authored
    Code like `let a; eval("var a;");` should throw a SyntaxError, not a TypeError
    (this caused a test262 failure.). However, the code `eval("function NaN() {}");`
    should actually throw a TypeError. This patch changes most cases of
    redeclaration errors from TypeError to SyntaxError. See the test
    mjsunit/regress/redeclaration-error-types for a thorough analysis with spec
    references.
    
    The relevant sections of the spec are ES#sec-globaldeclarationinstantiation and
    ES#sec-evaldeclarationinstantiation
    
    BUG=v8:4955
    LOG=y
    
    Review-Url: https://codereview.chromium.org/2048703002
    Cr-Commit-Position: refs/heads/master@{#36940}
    2b787561
block-eval-var-over-let.js 2.48 KB