• 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
..
OWNERS Loading commit data...
duplicate-finder.h Loading commit data...
expression-classifier.h Loading commit data...
func-name-inferrer.cc Loading commit data...
func-name-inferrer.h Loading commit data...
parameter-initializer-rewriter.cc Loading commit data...
parameter-initializer-rewriter.h Loading commit data...
parse-info.cc Loading commit data...
parse-info.h Loading commit data...
parser-base.h Loading commit data...
parser.cc Loading commit data...
parser.h Loading commit data...
parsing.cc Loading commit data...
parsing.h Loading commit data...
pattern-rewriter.cc Loading commit data...
preparse-data-format.h Loading commit data...
preparse-data.cc Loading commit data...
preparse-data.h Loading commit data...
preparsed-scope-data.cc Loading commit data...
preparsed-scope-data.h Loading commit data...
preparser.cc Loading commit data...
preparser.h Loading commit data...
rewriter.cc Loading commit data...
rewriter.h Loading commit data...
scanner-character-streams.cc Loading commit data...
scanner-character-streams.h Loading commit data...
scanner.cc Loading commit data...
scanner.h Loading commit data...
token.cc Loading commit data...
token.h Loading commit data...