- 08 Jun, 2016 1 commit
-
-
jkummerow authored
Adding properties to prototypes is faster when we don't force their maps into fast mode yet. Once a prototype shows up in the IC system, its setup phase is likely over, and it makes sense to transition it to fast properties. This patch speeds up the microbenchmark in the bug by 20x. Octane-Typescript sees a 3% improvement. BUG=chromium:607010 Review-Url: https://codereview.chromium.org/2036493006 Cr-Commit-Position: refs/heads/master@{#36828}
-
- 07 Jun, 2016 1 commit
-
-
cbruni authored
Without the boundary prototypes we have to keep track of all shadowing properties throughout the complete prototype chain. This contradicts the finding that most objects have a rather large number of non-enumerable properties on the prototype chain. BUG=v8:705, v8:4905, v8:4706 Review-Url: https://codereview.chromium.org/2038043002 Cr-Commit-Position: refs/heads/master@{#36776}
-
- 06 Jun, 2016 1 commit
-
-
cbruni authored
Passing in the isolate and pointer compare the instnance against the corresponding constant is always faster than decoding the instance types. BUG= Review-Url: https://codereview.chromium.org/2028983002 Cr-Commit-Position: refs/heads/master@{#36744}
-
- 30 May, 2016 1 commit
-
-
cbruni authored
Expose more or less the full functionality of the KeyAccumulator in the API: - use the PropertyFilter introduced for GetOwnPropertyNames - use KeyCollectionLimit for OWN_ONLY or INLCUDE_PROTOS - use IndexFilter to eithe SKIP_INDICES or INCLUDE_INDICES Rewire Object::GetOwnPropertyNames to use GetPropertyNames. BUG=chromium:148757 Review-Url: https://codereview.chromium.org/2002203002 Cr-Commit-Position: refs/heads/master@{#36595}
-
- 25 May, 2016 1 commit
-
-
cbruni authored
Reland of [keys] Simplify KeyAccumulator (patchset #1 id:1 of https://codereview.chromium.org/2010593002/ ) Reason for revert: relanding, fixed handle dereferencing Original issue's description: > Revert of [keys] Simplify KeyAccumulator (patchset #15 id:280001 of https://codereview.chromium.org/1995263002/ ) > > Reason for revert: > https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/6248 > > Original issue's description: > > [keys] Simplify KeyAccumulator > > > > - Use KeyAccumulator::GetKeys directly instead of JSReceiver::GetKeys > > - Revert KeyAccumulator to single OrderedHashSet implementation. > > - Convert the OrderedHashSet in-place to a FixedArray > > - IndexedInterceptor indices are no longer combined and sorted with the object indices > > > > BUG= > > > > Committed: https://crrev.com/d3324df017046bcde247a5aef6d1b59bfae5908f > > Cr-Commit-Position: refs/heads/master@{#36485} > > TBR=jkummerow@chromium.org,verwaest@chromium.org,cbruni@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/893524b53d43df63bca6cb9b7244d21771fadb0b > Cr-Commit-Position: refs/heads/master@{#36486} TBR=jkummerow@chromium.org,verwaest@chromium.org,machenbach@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2014523002 Cr-Commit-Position: refs/heads/master@{#36502}
-
- 24 May, 2016 2 commits
-
-
machenbach authored
Revert of [keys] Simplify KeyAccumulator (patchset #15 id:280001 of https://codereview.chromium.org/1995263002/ ) Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/6248 Original issue's description: > [keys] Simplify KeyAccumulator > > - Use KeyAccumulator::GetKeys directly instead of JSReceiver::GetKeys > - Revert KeyAccumulator to single OrderedHashSet implementation. > - Convert the OrderedHashSet in-place to a FixedArray > - IndexedInterceptor indices are no longer combined and sorted with the object indices > > BUG= > > Committed: https://crrev.com/d3324df017046bcde247a5aef6d1b59bfae5908f > Cr-Commit-Position: refs/heads/master@{#36485} TBR=jkummerow@chromium.org,verwaest@chromium.org,cbruni@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2010593002 Cr-Commit-Position: refs/heads/master@{#36486}
-
cbruni authored
- Use KeyAccumulator::GetKeys directly instead of JSReceiver::GetKeys - Revert KeyAccumulator to single OrderedHashSet implementation. - Convert the OrderedHashSet in-place to a FixedArray - IndexedInterceptor indices are no longer combined and sorted with the object indices BUG= Review-Url: https://codereview.chromium.org/1995263002 Cr-Commit-Position: refs/heads/master@{#36485}
-
- 18 May, 2016 1 commit
-
-
cbruni authored
Move most of JSReceiver::GetKeys to the KeyAccumulator BUG= Review-Url: https://codereview.chromium.org/1989263002 Cr-Commit-Position: refs/heads/master@{#36321}
-
- 10 May, 2016 1 commit
-
-
cbruni authored
BUG=chromium:610210 LOG=N Review-Url: https://codereview.chromium.org/1963633002 Cr-Commit-Position: refs/heads/master@{#36144}
-
- 06 May, 2016 1 commit
-
-
cbruni authored
- Cleanup CL to remove unused parameters in elements.cc. Additionally use fields from the KeyAccumulator wherever possible. - Make method names in KeyAccumulator more consistent BUG= Review-Url: https://codereview.chromium.org/1944703002 Cr-Commit-Position: refs/heads/master@{#36073}
-
- 03 May, 2016 1 commit
-
-
cbruni authored
The Great Keys Migration: This is part of a bigger effort to centralize optimizations for key collections in a central place. This necessary to avoid the penalty that would be introduced by fixing shadowed property iteration. BUG=v8:4758, v8:705 LOG=N Review-Url: https://codereview.chromium.org/1938413002 Cr-Commit-Position: refs/heads/master@{#35991}
-
- 30 Mar, 2016 1 commit
-
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1831783002 Cr-Commit-Position: refs/heads/master@{#35138}
-
- 23 Mar, 2016 1 commit
-
-
cbruni authored
With the recent spec change removing the [[Enumerate]] internal method, we now have to walk the complete prototype chain. This implies that we call the [[GetPrototypeOf]] trap on proxies. As a secondary change we now trigger the [[GetOwnProperty]] trap for the for-in filter step to see whether the properties are still enumerable. Before we did this in the key-accumulation phase. This way we slightly reduce the number of traps invoked. Whilst this is not ideal, it comes closer to the Spec's example implementation. BUG=v8:1543, v8:4768 LOG=n Review URL: https://codereview.chromium.org/1748923003 Cr-Commit-Position: refs/heads/master@{#35017}
-
- 10 Mar, 2016 1 commit
-
-
cbruni authored
With the flag enables we print the keys found on each prototype and the number of prototypes. BUG= Review URL: https://codereview.chromium.org/1779523002 Cr-Commit-Position: refs/heads/master@{#34680}
-
- 07 Mar, 2016 5 commits
-
-
cbruni authored
Introducing the KeyAccumulator accidentally removed some crucial fast-paths. This CL starts rewriting the KeyAccumulator, step-by-step introducing the special cases again. BUG=chromium:545503, v8:4758 LOG=y Committed: https://crrev.com/9c61327ecb2ee41f34232632e0cac93202bae6b7 Cr-Commit-Position: refs/heads/master@{#34532} Committed: https://crrev.com/b954c872aac60657b400079b7333216ea658dc8a Cr-Commit-Position: refs/heads/master@{#34548} Review URL: https://codereview.chromium.org/1707743002 Cr-Commit-Position: refs/heads/master@{#34558}
-
cbruni authored
Revert of [key-accumulator] Starting to reimplement the key-accumulator (patchset #15 id:280001 of https://codereview.chromium.org/1707743002/ ) Reason for revert: gcmole again Original issue's description: > [key-accumulator] Starting to reimplement the key-accumulator > > Introducing the KeyAccumulator accidentally removed some crucial fast-paths. > This CL starts rewriting the KeyAccumulator, step-by-step introducing the > special cases again. > > BUG=chromium:545503, v8:4758 > LOG=y > > Committed: https://crrev.com/9c61327ecb2ee41f34232632e0cac93202bae6b7 > Cr-Commit-Position: refs/heads/master@{#34532} > > Committed: https://crrev.com/b954c872aac60657b400079b7333216ea658dc8a > Cr-Commit-Position: refs/heads/master@{#34548} TBR=verwaest@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:545503, v8:4758 Review URL: https://codereview.chromium.org/1769043003 Cr-Commit-Position: refs/heads/master@{#34551}
-
cbruni authored
Introducing the KeyAccumulator accidentally removed some crucial fast-paths. This CL starts rewriting the KeyAccumulator, step-by-step introducing the special cases again. BUG=chromium:545503, v8:4758 LOG=y Committed: https://crrev.com/9c61327ecb2ee41f34232632e0cac93202bae6b7 Cr-Commit-Position: refs/heads/master@{#34532} Review URL: https://codereview.chromium.org/1707743002 Cr-Commit-Position: refs/heads/master@{#34548}
-
cbruni authored
Revert of [key-accumulator] Starting to reimplement the key-accumulator (patchset #14 id:260001 of https://codereview.chromium.org/1707743002/ ) Reason for revert: gcmole failure https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/8598 Original issue's description: > [key-accumulator] Starting to reimplement the key-accumulator > > Introducing the KeyAccumulator accidentally removed some crucial fast-paths. > This CL starts rewriting the KeyAccumulator, step-by-step introducing the > special cases again. > > BUG=chromium:545503, v8:4758 > LOG=y > > Committed: https://crrev.com/9c61327ecb2ee41f34232632e0cac93202bae6b7 > Cr-Commit-Position: refs/heads/master@{#34532} TBR=verwaest@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:545503, v8:4758 Review URL: https://codereview.chromium.org/1773593003 Cr-Commit-Position: refs/heads/master@{#34537}
-
cbruni authored
Introducing the KeyAccumulator accidentally removed some crucial fast-paths. This CL starts rewriting the KeyAccumulator, step-by-step introducing the special cases again. BUG=chromium:545503, v8:4758 LOG=y Review URL: https://codereview.chromium.org/1707743002 Cr-Commit-Position: refs/heads/master@{#34532}
-
- 04 Feb, 2016 1 commit
-
-
cbruni authored
BUG=v8:4724, v8:1543 LOG=N Review URL: https://codereview.chromium.org/1668853002 Cr-Commit-Position: refs/heads/master@{#33747}
-
- 22 Jan, 2016 2 commits
-
-
cbruni authored
Revert of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #1 id:1 of https://codereview.chromium.org/1612413003/ ) Reason for revert: let me quickly revert the revert, wut? Goal: my CL should not be in the tree! Original issue's description: > Reland of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #1 id:1 of https://codereview.chromium.org/1619803003/ ) > > Reason for revert: > the deopt issues have been taken care of by benedikt > > Original issue's description: > > Revert of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #10 id:180001 of https://codereview.chromium.org/1608523002/ ) > > > > Reason for revert: > > tanks for-in significantly > > > > Original issue's 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} > > > > TBR=jkummerow@chromium.org,bmeurer@chromium.org > > # Not skipping CQ checks because original CL landed more than 1 days ago. > > BUG=v8:705 > > LOG=n > > > > Committed: https://crrev.com/6e0573c6fff1c3041bab106d1197ab1b64aa9a6a > > Cr-Commit-Position: refs/heads/master@{#33443} > > TBR=jkummerow@chromium.org,bmeurer@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:705 > > Committed: https://crrev.com/5569e270eda517b5ea74e3a7676b3230cbe2f7a9 > Cr-Commit-Position: refs/heads/master@{#33458} TBR=jkummerow@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:705 Review URL: https://codereview.chromium.org/1614313003 Cr-Commit-Position: refs/heads/master@{#33459}
-
cbruni authored
Reland of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #1 id:1 of https://codereview.chromium.org/1619803003/ ) Reason for revert: the deopt issues have been taken care of by benedikt Original issue's description: > Revert of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #10 id:180001 of https://codereview.chromium.org/1608523002/ ) > > Reason for revert: > tanks for-in significantly > > Original issue's 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} > > TBR=jkummerow@chromium.org,bmeurer@chromium.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG=v8:705 > LOG=n > > Committed: https://crrev.com/6e0573c6fff1c3041bab106d1197ab1b64aa9a6a > Cr-Commit-Position: refs/heads/master@{#33443} TBR=jkummerow@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:705 Review URL: https://codereview.chromium.org/1612413003 Cr-Commit-Position: refs/heads/master@{#33458}
-
- 21 Jan, 2016 1 commit
-
-
cbruni authored
Revert of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #10 id:180001 of https://codereview.chromium.org/1608523002/ ) Reason for revert: tanks for-in significantly Original issue's 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} TBR=jkummerow@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:705 LOG=n Review URL: https://codereview.chromium.org/1619803003 Cr-Commit-Position: refs/heads/master@{#33443}
-
- 20 Jan, 2016 1 commit
-
-
cbruni authored
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 Review URL: https://codereview.chromium.org/1608523002 Cr-Commit-Position: refs/heads/master@{#33405}
-
- 09 Dec, 2015 2 commits
-
-
jkummerow authored
In particular, return Maybe<bool> from any function that can throw, and use MAYBE_RETURN and RETURN_FAILURE macros consistently where applicable. No change in behavior intended. Review URL: https://codereview.chromium.org/1513713002 Cr-Commit-Position: refs/heads/master@{#32723}
-
jkummerow authored
JSProxy::HasProperty was missing an early "return Nothing<bool>". KeyAccumulator's FilterProxyKeys() didn't handle SKIP_STRINGS correctly. BUG=v8:1543 LOG=n R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1505253002 Cr-Commit-Position: refs/heads/master@{#32699}
-
- 03 Dec, 2015 1 commit
-
-
jkummerow authored
Not exposed/used yet, therefore also not testable yet. Review URL: https://codereview.chromium.org/1491743008 Cr-Commit-Position: refs/heads/master@{#32571}
-
- 02 Dec, 2015 2 commits
-
-
jkummerow authored
Split out of PropertyAttributes, and used for all filtering purposes. Also moved PropertyAttributes into the v8::internal:: namespace. No change in behavior intended. Review URL: https://codereview.chromium.org/1492653004 Cr-Commit-Position: refs/heads/master@{#32525}
-
jkummerow authored
And use it to fix Object.keys() for proxies. BUG=v8:1543 LOG=n R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1488873003 Cr-Commit-Position: refs/heads/master@{#32496}
-
- 28 Nov, 2015 3 commits
-
-
jkummerow authored
Both are integrated into JSReceiver::GetKeys(). For now, the implementation ignores Symbol/DONT_ENUM filtering. BUG=v8:1543 LOG=n Committed: https://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97 Cr-Commit-Position: refs/heads/master@{#32384} Review URL: https://codereview.chromium.org/1474083003 Cr-Commit-Position: refs/heads/master@{#32386}
-
machenbach authored
Revert of [proxies] Implement [[Enumerate]] and [[OwnPropertyKeys]] (patchset #3 id:40001 of https://codereview.chromium.org/1474083003/ ) Reason for revert: [Sheriff] Speculative revert for gc mole: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gcmole/builds/5164 Original issue's description: > [proxies] Implement [[Enumerate]] and [[OwnPropertyKeys]] > > Both are integrated into JSReceiver::GetKeys(). > > For now, the implementation ignores Symbol/DONT_ENUM filtering. > > BUG=v8:1543 > LOG=n > > Committed: https://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97 > Cr-Commit-Position: refs/heads/master@{#32384} TBR=verwaest@chromium.org,bmeurer@chromium.org,jkummerow@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:1543 Review URL: https://codereview.chromium.org/1482113002 Cr-Commit-Position: refs/heads/master@{#32385}
-
jkummerow authored
Both are integrated into JSReceiver::GetKeys(). For now, the implementation ignores Symbol/DONT_ENUM filtering. BUG=v8:1543 LOG=n Review URL: https://codereview.chromium.org/1474083003 Cr-Commit-Position: refs/heads/master@{#32384}
-
- 04 Nov, 2015 1 commit
-
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1425403002 Cr-Commit-Position: refs/heads/master@{#31788}
-