• bjaideep's avatar
    PPC: Use a different map to distinguish eval contexts · cc48d2b1
    bjaideep authored
    Port 53fdf9d1
    
    Original Commit Message:
    
        eval() may introduce a scope which needs to be represented as a context at
        runtime, e.g.,
    
          eval('var x; let y; ()=>y')
    
        introduces a variable y which needs to have a context allocated for it. However,
        when traversing upwards to find the declaration context for a variable which leaks,
        as the declaration of x does above, this context has to be understood to not be
        a declaration context in sloppy mode.
    
        This patch makes that distinction by introducing a different map for eval-introduced
        contexts. A dynamic search for the appropriate context will continue past an eval
        context to find the appropriate context. Marking contexts as eval contexts rather
        than function contexts required updates in each compiler backend.
    
    R=littledan@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
    BUG=v8:5295, chromium:648719
    LOG=N
    
    Review-Url: https://codereview.chromium.org/2590343002
    Cr-Commit-Position: refs/heads/master@{#41872}
    cc48d2b1
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...