• Caitlin Potter's avatar
    [parser] avoid complex for-loop desugaring when possible · 267115da
    Caitlin Potter authored
    let/const declarations in "standard" C-style for-loops have
    some complex desugaring to accommodate the case where loop
    loop variables may be captured. This slows down the baseline
    performance of for-loops with let variables.
    
    This change attempts to avoid this desugaring if it's known that
    the loop variable is not captured at any point. A side effect of
    this change is that let/const loop variables, when not captured
    within the loop body, are not necessarily shown in the debugger,
    similar to other stack-allocated vars.
    
    BUG=v8:4762, v8:5460
    R=marja@chromium.org, adamk@chromium.org, yangguo@chromium.org
    
    Change-Id: I8dbe545a12c086f675972bdba60c94998268311a
    Reviewed-on: https://chromium-review.googlesource.com/472247
    Commit-Queue: Caitlin Potter <caitp@igalia.com>
    Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
    Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#44731}
    267115da
Name
Last commit
Last update
..
bugs/harmony Loading commit data...
debug Loading commit data...
protocol Loading commit data...
regress Loading commit data...
wrapper Loading commit data...
debugger.gyp Loading commit data...
debugger.isolate Loading commit data...
debugger.status Loading commit data...
test-api.js Loading commit data...
testcfg.py Loading commit data...