• rossberg's avatar
    [es6] Scoping & initialization for var shadowing non-simple parameters · 2c2848dc
    rossberg authored
    Var-bindings may shadow parameters from a non-simple parameter list. When that happens: they create separate bindings, but are initialised with the respective parameter value. Thus:
    
    (function(x, f = () => x) { var x; var y = x; x = 2; return [x, y, f()] })(1) -->  [2, 1, 1]
    
    This CL implements that by inserting a suitable assignment for every shadwowing var-variable (e.g., x = outer_x above) at the beginning of the function's body block.
    
    R=adamk@chromium.org
    BUG=v8:4440,v8:811
    LOG=N
    
    Review URL: https://codereview.chromium.org/1371333004
    
    Cr-Commit-Position: refs/heads/master@{#31042}
    2c2848dc
parser.cc 223 KB