• bmeurer's avatar
    [crankshaft] Make the for-in slow path compatible with the other compilers. · 3251a03e
    bmeurer authored
    So far the for-in slow path in Crankshaft unconditionally called
    %ForInFilter for every iteration of the for-in loop, without paying
    attention to the possible enum cache equipped receiver map. So even
    though we iterate the enum cache FixedArray associated with the map
    we don't check the map, but always go to %ForInFilter. This would be
    perfectly fine if the enum cache FixedArray would be immutable, but
    due to some funny GC/runtime interaction kicking in, the enum cache
    can be right trimmed while we are iterating it, and the only way to
    detect this is to ensure that we check the map when accessing the
    enum cache.
    
    BUG=v8:3650,v8:4715
    LOG=n
    
    Review URL: https://codereview.chromium.org/1650493002
    
    Cr-Commit-Position: refs/heads/master@{#33599}
    3251a03e
regress-4715.js 1.1 KB