• Ross McIlroy's avatar
    [Interpreter] Remove new.target from fixed frame slot. · c820b89b
    Ross McIlroy authored
    Removes the new.target slot from the interpreter's fixed frame. Instead
    adds a field to BytecodeArray to get the bytecode's incoming
    new.target or generator object register. The InterpreterEntryTrampoline
    then sets this register with the incoming new.target (or generator object)
    when the function is called. This register can be directly the new.target
    or generator object variable if they are LOCAL location, otherwise it is a
    temporary register which is then moved to the variable's location during the
    function prologue.
    
    This fixes a hack in the deoptimizer where we would set the new.target fixed
    slot to undefined in order to avoid extending it's lifetime through the
    optimized code - now it's just a standard register and can be optimized away
    as normal.
    
    Bug=v8:6644
    
    Change-Id: Ieb8cc34cccefd9fb6634a90cbc77c6002a54f2ae
    Reviewed-on: https://chromium-review.googlesource.com/608966
    Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47320}
    c820b89b
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
bot_default.gyp Loading commit data...
bot_default.isolate Loading commit data...
default.gyp Loading commit data...
default.isolate Loading commit data...
optimize_for_size.gyp Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.gyp Loading commit data...
perf.isolate Loading commit data...