• 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
ic.cc 91.9 KB