• Shiyu Zhang's avatar
    [ic] Do not convert undefined key to undefined_string. · ffcb51b2
    Shiyu Zhang authored
    In the special case of KeyedLoadIC, where the key is always undefined,
    LowerCheckEqualsInternalizedString fails and triggers deoptimization
    loops. It's because {exp}, which is undefined_string, does not match
    {val}, which is undefined_value.
    
    This patch drops the convertion from undefined_value to undefined_string
    for undefined key in KeyedLoadIC. It makes undefined key be able to pass
    LowerCheckEqualsInternalizedString and avoids the deoptimization loops.
    
    Bug: 
    Change-Id: Ie15358e705490fb2e4907f4d37a3ef7921f74844
    Reviewed-on: https://chromium-review.googlesource.com/789613
    Commit-Queue: Igor Sheludko <ishell@chromium.org>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#49779}
    ffcb51b2
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...