• Caitlin Potter's avatar
    [CloneObjectIC] add CSA implementation of slow case · fbcf0221
    Caitlin Potter authored
    The CSA implementation is a separate handler so that TF has the
    opportunity to reduce to a direct call, skipping some of the dispatching
    in the CloneObjectIC stub.
    
    This patch moves the looping over a source object's keys and values into the
    base CodeStubAssembler, so that it can be shared between ObjectAssignFast
    and CloneObjectIC_Slow.
    
    During each step of the loop, storing is delegated to a new SetPropertyInLiteral
    helper in KeyedStoreGenericGenerator, which performs a store without consulting
    the prototype chain, and automatically reconfigures accessors into data
    properties regardless of their attributes.
    
    BUG=v8:8067, v8:7611
    R=ishell@chromium.org, jkummerow@chromium.org
    
    Change-Id: I06ae89f37e9b4265aab67389cf68a96529f90578
    Reviewed-on: https://chromium-review.googlesource.com/1182122
    Commit-Queue: Caitlin Potter <caitp@igalia.com>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#55806}
    fbcf0221
Name
Last commit
Last update
..
OWNERS Loading commit data...
accessor-assembler.cc Loading commit data...
accessor-assembler.h Loading commit data...
binary-op-assembler.cc Loading commit data...
binary-op-assembler.h Loading commit data...
call-optimization.cc Loading commit data...
call-optimization.h Loading commit data...
handler-configuration-inl.h Loading commit data...
handler-configuration.cc Loading commit data...
handler-configuration.h Loading commit data...
ic-inl.h Loading commit data...
ic-stats.cc Loading commit data...
ic-stats.h Loading commit data...
ic.cc Loading commit data...
ic.h Loading commit data...
keyed-store-generic.cc Loading commit data...
keyed-store-generic.h Loading commit data...
stub-cache.cc Loading commit data...
stub-cache.h Loading commit data...