• adamk's avatar
    Sloppy eval declarations should not shadow lexical function declarations · 83b63c30
    adamk authored
    This was being allowed due to the use of BindingFlags instead of VariableMode
    to determine whether a looked-up binding was lexical. Because function
    declarations are hoisted, they never need hole checks, and so were being
    miscategorized as non-lexical.
    
    This patch augments Context::Lookup with a VariableMode out param, which
    allows this check to determine precisely whether the binding is lexical.
    
    BUG=v8:4454, v8:5256
    
    Review-Url: https://codereview.chromium.org/2206483004
    Cr-Commit-Position: refs/heads/master@{#38260}
    83b63c30
block-eval-var-over-let.js 2.68 KB