• 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
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...