Description[crankshaft] Make the for-in slow path compatible with the other compilers.
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
Committed: https://crrev.com/3251a03e81b99bcab20d9d2a7c3fb899b0b64ffb
Cr-Commit-Position: refs/heads/master@{#33599}
Patch Set 1 #
Messages
Total messages: 10 (5 generated)
|