- 01 Mar, 2016 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org BUG=v8:3956 LOG=n Review URL: https://codereview.chromium.org/1731063007 Cr-Commit-Position: refs/heads/master@{#34398}
-
- 29 Feb, 2016 1 commit
-
-
verwaest authored
This gets rid of the JavaScript wrapper. That way we can more quickly handle non-JSReceivers and indexed properties; and don't need to optimize the JavaScript wrapper either. BUG= Review URL: https://codereview.chromium.org/1742283002 Cr-Commit-Position: refs/heads/master@{#34356}
-
- 17 Feb, 2016 2 commits
-
-
bmeurer authored
Also move Object.is implementation to C++ builtin, which is faster than the current implementation. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1695743003 Cr-Commit-Position: refs/heads/master@{#34069}
-
bmeurer authored
There's no point in having the setup or the toString/valueOf methods in JavaScript. The full setup can be done during bootstrapping when the Boolean constructor is created, and the prototype methods don't benefit from JS + %_ at all. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1701273003 Cr-Commit-Position: refs/heads/master@{#34068}
-
- 16 Feb, 2016 1 commit
-
-
bmeurer authored
Drive-by-fix: Remove the (now) unused %_SetValueOf and %_JSValueGetValue intrinsics from the various compilers and the runtime. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1698343002 Cr-Commit-Position: refs/heads/master@{#34037}
-
- 05 Feb, 2016 1 commit
-
-
bmeurer authored
The implementation of Object.getOwnPropertyDescriptor always called into C++ anyway, so there's no need to have this JavaScript wrapper around at all. CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_chromium_rel_ng R=yangguo@chromium.org Committed: https://crrev.com/3fdd37b028f4711d0f6dcb038f575ce08ef0cfa3 Cr-Commit-Position: refs/heads/master@{#33379} Review URL: https://codereview.chromium.org/1606783002 Cr-Commit-Position: refs/heads/master@{#33773}
-
- 20 Jan, 2016 3 commits
-
-
bmeurer authored
The Object.getOwnPropertyNames method always calls into C++ anyway, so there's no point in having the JavaScript wrapper around at all. Drive-by-fix: Inline GetOwnEnumerablePropertyNames into its single call site. CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_chromium_rel_ng R=yangguo@chromium.org Committed: https://crrev.com/bf027fe756f62b4abcac8aa08134c8c5ed055620 Cr-Commit-Position: refs/heads/master@{#33380} Review URL: https://codereview.chromium.org/1605803002 Cr-Commit-Position: refs/heads/master@{#33417}
-
hablich authored
Revert of [builtins] Migrate Object.getOwnPropertyDescriptor to C++. (patchset #1 id:1 of https://codereview.chromium.org/1606783002/ ) Reason for revert: Breaks roll: https://codereview.chromium.org/1603953002/ Original issue's description: > [builtins] Migrate Object.getOwnPropertyDescriptor to C++. > > The implementation of Object.getOwnPropertyDescriptor always called into > C++ anyway, so there's no need to have this JavaScript wrapper around at > all. > > R=yangguo@chromium.org > > Committed: https://crrev.com/3fdd37b028f4711d0f6dcb038f575ce08ef0cfa3 > Cr-Commit-Position: refs/heads/master@{#33379} TBR=yangguo@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1609023003 Cr-Commit-Position: refs/heads/master@{#33404}
-
hablich authored
Revert of [runtime] Migrate Object.getOwnPropertyNames to C++. (patchset #2 id:20001 of https://codereview.chromium.org/1605803002/ ) Reason for revert: Breaks roll: https://codereview.chromium.org/1603953002/ Original issue's description: > [runtime] Migrate Object.getOwnPropertyNames to C++. > > The Object.getOwnPropertyNames method always calls into C++ anyway, > so there's no point in having the JavaScript wrapper around at all. > > Drive-by-fix: Inline GetOwnEnumerablePropertyNames into its single > call site. > > R=yangguo@chromium.org > > Committed: https://crrev.com/bf027fe756f62b4abcac8aa08134c8c5ed055620 > Cr-Commit-Position: refs/heads/master@{#33380} TBR=yangguo@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1609173002 Cr-Commit-Position: refs/heads/master@{#33399}
-
- 19 Jan, 2016 2 commits
-
-
bmeurer authored
The Object.getOwnPropertyNames method always calls into C++ anyway, so there's no point in having the JavaScript wrapper around at all. Drive-by-fix: Inline GetOwnEnumerablePropertyNames into its single call site. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1605803002 Cr-Commit-Position: refs/heads/master@{#33380}
-
bmeurer authored
The implementation of Object.getOwnPropertyDescriptor always called into C++ anyway, so there's no need to have this JavaScript wrapper around at all. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1606783002 Cr-Commit-Position: refs/heads/master@{#33379}
-
- 18 Jan, 2016 1 commit
-
-
neis authored
R=bmeurer@chromium.org BUG=chromium:578775 LOG=n Review URL: https://codereview.chromium.org/1605483002 Cr-Commit-Position: refs/heads/master@{#33356}
-
- 13 Jan, 2016 1 commit
-
-
bmeurer authored
Also migrate the Number constructor to a native builtin, using the same mechanism already used by the String constructor. Otherwise just parsing and compiling the Number constructor to optimized code already eats 2ms on desktop for no good reason, and the resulting optimized code is not even close to awesome. Drive-by-fix: Use correct context for the [[Construct]] case of the String constructor as well, and share some code with it. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1573243009 Cr-Commit-Position: refs/heads/master@{#33265}
-
- 12 Jan, 2016 1 commit
-
-
bmeurer authored
No need to distribute the setup of the Function global property across three different places, instead do everything in a single place during bootstrapping. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1577703005 Cr-Commit-Position: refs/heads/master@{#33242}
-
- 08 Jan, 2016 1 commit
-
-
bmeurer authored
Everything necessary to implement Object.keys efficiently is already available in C++ land for quite some time now, and only the thin JavaScript wrapper was left, so get rid of that as well and move the whole builtin to C++ instead. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1567963002 Cr-Commit-Position: refs/heads/master@{#33167}
-
- 04 Jan, 2016 1 commit
-
-
bmeurer authored
The Object.freeze, Object.isExtensible, Object.isFrozen, Object.isSealed, Object.preventExtensions and Object.seal builtins were already implemented in C++, but they still had some funny JavaScript wrappers that just called into the C++ implementation on every (interesting) execution path. Review URL: https://codereview.chromium.org/1553043002 Cr-Commit-Position: refs/heads/master@{#33074}
-
- 30 Dec, 2015 1 commit
-
-
bmeurer authored
There's no point in keeping the ObjectCreate JavaScript wrapper function, which even does allocation site pretenuring for the instances created via Object.create (where ObjectCreate itself is the AllocationSite), and does not offer any sane way forward. Instead introduce a new ObjectCreate C++ builtin, which currently serves as a baseline implementation, on top of which we can think about ways to optimize Object.create for the common case (i.e. frameworks such as Ember.js make heavy use of Object.create). R=cbruni@chromium.org TBR=hpayer@chromium.org Review URL: https://codereview.chromium.org/1558433002 Cr-Commit-Position: refs/heads/master@{#33061}
-
- 27 Dec, 2015 2 commits
-
-
bmeurer authored
According to the ES2015 specification, bound functions are exotic objects, and thus don't need to be implemented as JSFunctions. So we introduce a new JSBoundFunction type to represent bound functions and make them optimizable. This already improves the performance of calling or constructing bound functions by 10-100x depending on the use case because we avoid the crazy dance between JavaScript and C++ that was implemented in v8natives.js previously. There's still room for improvement in the performance of actually creating bound functions, which is also relevant in practice, but we already have a plan how to accomplish that later. The mips/mips64 ports were contributed by akos.palfi@imgtec.com. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=chromium:535408, chromium:571299, v8:4629 LOG=n Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2 Cr-Commit-Position: refs/heads/master@{#33042} Review URL: https://codereview.chromium.org/1542963002 Cr-Commit-Position: refs/heads/master@{#33044}
-
bmeurer authored
Revert of [runtime] Introduce dedicated JSBoundFunction to represent bound functions. (patchset #14 id:260001 of https://codereview.chromium.org/1542963002/ ) Reason for revert: Breaks arm64 sim nosnap: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/805/steps/Check/logs/function-bind Original issue's description: > [runtime] Introduce dedicated JSBoundFunction to represent bound functions. > > According to the ES2015 specification, bound functions are exotic > objects, and thus don't need to be implemented as JSFunctions. So > we introduce a new JSBoundFunction type to represent bound functions > and make them optimizable. This already improves the performance of > calling or constructing bound functions by 10-100x depending on the > use case because we avoid the crazy dance between JavaScript and C++ > that was implemented in v8natives.js previously. > > There's still room for improvement in the performance of actually > creating bound functions, which is also relevant in practice, but > we already have a plan how to accomplish that later. > > The mips/mips64 ports were contributed by akos.palfi@imgtec.com. > > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel > BUG=chromium:535408, chromium:571299, v8:4629 > LOG=n > > Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2 > Cr-Commit-Position: refs/heads/master@{#33042} TBR=cbruni@chromium.org,hpayer@chromium.org,yangguo@chromium.org,akos.palfi@imgtec.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:535408, chromium:571299, v8:4629 Review URL: https://codereview.chromium.org/1552473002 Cr-Commit-Position: refs/heads/master@{#33043}
-
- 26 Dec, 2015 1 commit
-
-
bmeurer authored
According to the ES2015 specification, bound functions are exotic objects, and thus don't need to be implemented as JSFunctions. So we introduce a new JSBoundFunction type to represent bound functions and make them optimizable. This already improves the performance of calling or constructing bound functions by 10-100x depending on the use case because we avoid the crazy dance between JavaScript and C++ that was implemented in v8natives.js previously. There's still room for improvement in the performance of actually creating bound functions, which is also relevant in practice, but we already have a plan how to accomplish that later. The mips/mips64 ports were contributed by akos.palfi@imgtec.com. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=chromium:535408, chromium:571299, v8:4629 LOG=n Review URL: https://codereview.chromium.org/1542963002 Cr-Commit-Position: refs/heads/master@{#33042}
-
- 22 Dec, 2015 5 commits
-
-
bmeurer authored
These constructors always go through C++ at least twice anyway, so there's not really a point in trying to implement them in JavaScript. R=yangguo@chromium.org BUG=chromium:535408 LOG=n Review URL: https://codereview.chromium.org/1548623002 Cr-Commit-Position: refs/heads/master@{#33012}
-
cbruni authored
Function proxies would not be printed so far since they ended up in Function.prototype.toString which only works with Function as a receiver but no Proxy. Additionally added support for more gracefully dealing with recursive __proto__ structures introduced by proxies. drive-by-fix: use IS_PROXY if possible in .js files. BUG=v8:1543 LOG=n Committed: https://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847 Cr-Commit-Position: refs/heads/master@{#32985} Review URL: https://codereview.chromium.org/1530293004 Cr-Commit-Position: refs/heads/master@{#33010}
-
bmeurer authored
The GlobalEval JavaScript function was just a small driver for stuff implemented in C++ anyway, so there's no point in having it around at all. The next step will be to move the Function constructor to C++ as well, which is the other user of %CompileString. R=yangguo@chromium.org BUG=chromium:535408 LOG=n Review URL: https://codereview.chromium.org/1540893004 Cr-Commit-Position: refs/heads/master@{#33006}
-
cbruni authored
Revert of [proxies] Better print for proxies in d8 (patchset #6 id:100001 of https://codereview.chromium.org/1530293004/ ) Reason for revert: needs --allow-natives-syntax Original issue's description: > [proxies] Better print for proxies in d8 > > Function proxies would not be printed so far since they ended up in Function.prototype.toString which only works with Function as a receiver but no Proxy. Additionally added support for more gracefully dealing with recursive __proto__ structures introduced by proxies. > > BUG=v8:1543 > LOG=n > > Committed: https://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847 > Cr-Commit-Position: refs/heads/master@{#32985} TBR=neis@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:1543 Review URL: https://codereview.chromium.org/1543803002 Cr-Commit-Position: refs/heads/master@{#33001}
-
bmeurer authored
There's actually no point trying to do Function.prototype.toString in JavaScript, as it always calls into C++ at least once, so it only complicates things (esp. once we start optimizing bound functions). Drive-by-fix: Rename FunctionApply and FunctionCall builtins to also reflect the fact that these are builtins in the Function.prototype and not on Function itself. TBR=hpayer@chromium.org R=yangguo@chromium.org BUG=chromium:535408 LOG=n Review URL: https://codereview.chromium.org/1540953004 Cr-Commit-Position: refs/heads/master@{#32996}
-
- 21 Dec, 2015 1 commit
-
-
cbruni authored
Function proxies would not be printed so far since they ended up in Function.prototype.toString which only works with Function as a receiver but no Proxy. Additionally added support for more gracefully dealing with recursive __proto__ structures introduced by proxies. BUG=v8:1543 LOG=n Review URL: https://codereview.chromium.org/1530293004 Cr-Commit-Position: refs/heads/master@{#32985}
-
- 17 Dec, 2015 2 commits
-
-
neis authored
And remove confusing comment. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1531843003 Cr-Commit-Position: refs/heads/master@{#32935}
-
neis authored
- Before getting the length property, we must check for it using [[GetOwnProperty]]. Also, if the obtained length is a number, we must properly convert it to an integer. - In order to get the prototype we must use [[GetPrototypeOf]], and do so before checking the length. R=cbruni@chromium.org, jkummerow@chromium.org BUG=v8:1543 LOG=n Review URL: https://codereview.chromium.org/1530893002 Cr-Commit-Position: refs/heads/master@{#32934}
-
- 14 Dec, 2015 1 commit
-
-
neis authored
This CL makes proxy-related error messages more accurate and verbose. (Exception: those used in deprecated functions in v8natives.js.) Some of the old error messages were simply wrong. On the side, fix ShouldThrow semantics of JSProxy::SetPrototype and JSProxy::DefineOwnProperty. R=cbruni@chromium.org, jkummerow@chromium.org BUG=v8:1543 LOG=n Review URL: https://codereview.chromium.org/1527583002 Cr-Commit-Position: refs/heads/master@{#32836}
-
- 11 Dec, 2015 3 commits
-
-
cbruni authored
[proxy] fixing for-in for proxies, fixing harmony/proxy.js tests, improving error messages and some drive-by fixes BUG=v8:1543 LOG=n patch from issue 1519473002 at patchset 1 (http://crrev.com/1519473002#ps1) Review URL: https://codereview.chromium.org/1516843002 Cr-Commit-Position: refs/heads/master@{#32801}
-
jkummerow authored
This avoids a pair of super-high-degree polymorphic load/store ICs, and creates the opportunity to add more fast paths if needed. Review URL: https://codereview.chromium.org/1517963002 Cr-Commit-Position: refs/heads/master@{#32799}
-
adamk authored
The main impetus is to improve performance when --harmony-tostring is enabled, thanks to using a generic property load instead of a megamorphic IC. This also reduces duplication, as the API function v8::Object::ObjectProtoToString can share the runtime implementation. The only functional change in this patch is to drop an accidental difference between the JS and API implementations: the arguments object should toString as "[object Arguments]". The JS side was corrected in https://code.google.com/p/v8/source/detail?r=3279, but the API version was missed in that patch. BUG=chromium:555127, v8:3502 LOG=n CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1509533003 Cr-Commit-Position: refs/heads/master@{#32777}
-
- 10 Dec, 2015 2 commits
-
-
neis authored
When the reviver returns undefined, the property in question must be deleted even for arrays. So far this only happened for non-array objects. Also change the property enumeration to be spec-conformant, which is observable when the reviver modifies its "this" object directly. There are a few further issues that need to be addressed in a separate CL. R=yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/1506933003 Cr-Commit-Position: refs/heads/master@{#32750}
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1512903002 Cr-Commit-Position: refs/heads/master@{#32746}
-
- 08 Dec, 2015 1 commit
-
-
jkummerow authored
Use %DeleteProperty_Strict instead. Review URL: https://codereview.chromium.org/1508743002 Cr-Commit-Position: refs/heads/master@{#32673}
-
- 07 Dec, 2015 3 commits
-
-
neis authored
R=rossberg BUG= Review URL: https://codereview.chromium.org/1502983002 Cr-Commit-Position: refs/heads/master@{#32660}
-
neis authored
- Add JSReceiver::SetIntegrityLevel, with a fast path for regular objects. - Make Object.{freeze,seal} call this via %Object{Freeze,Seal}, thus no longer using broken or deprecated functions from v8natives.js. - Add JSReceiver::OwnPropertyKeys convenience function. - Reenable harmony/proxies-hash.js test. R=rossberg BUG=v8:1543 LOG=N Review URL: https://codereview.chromium.org/1489423002 Cr-Commit-Position: refs/heads/master@{#32651}
-
jkummerow authored
Also delete a bunch of dead code from src/js/. Review URL: https://codereview.chromium.org/1502593002 Cr-Commit-Position: refs/heads/master@{#32650}
-
- 04 Dec, 2015 2 commits
-
-
jkummerow authored
Having beefed up GetKeys() to support everything, use it for everything now. This fixes Object.getOwnPropertyNames and Object.getOwnPropertySymbols for Proxies, and gets rid of a bunch of code duplication. BUG=v8:1543 LOG=n Review URL: https://codereview.chromium.org/1498593006 Cr-Commit-Position: refs/heads/master@{#32620}
-
cbruni authored
BUG=v8:1543 LOG=N Review URL: https://codereview.chromium.org/1496503002 Cr-Commit-Position: refs/heads/master@{#32616}
-