Description[runtime] Do not use the enum-cache for keys retrieval.
Currently we fail to properly handle shadowed properties. If the
receiver defines a non-enumerable property that reappears on the
prototype as enumerable it incorrectly shows up in [[Enumerate]].
By extending the KeyAccumulator to track non-enumerable properties
we can now properly filter them out when seeing them further up in
the prototype-chain.
BUG=v8:705
LOG=y
Committed: https://crrev.com/ed24dfe80d1da0827b8571839ee52c03ad09c9c7
Cr-Commit-Position: refs/heads/master@{#33405}
Patch Set 1 #Patch Set 2 : adding support for shadowed element keys #Patch Set 3 : moar #Patch Set 4 : removing dead code #Patch Set 5 : removing dead code for realz #Patch Set 6 : using <set> instead of <unordered_set> #Patch Set 7 : pass filter along #
Total comments: 4
Patch Set 8 : addressing nits + cleanups #Patch Set 9 : restore original behavior #Patch Set 10 : signed unsigned missmatch #
Messages
Total messages: 26 (11 generated)
|