- 07 Sep, 2017 1 commit
-
-
Toon Verwaest authored
This speeds up the baseline performance of Object by 20%. With this change, the callViaObject when run with --noopt goes from 10718ms to 8577ms on the benchmark from: http://benediktmeurer.de/2017/08/31/object-constructor-calls-in-webpack-bundles Bug: v8:6772 Change-Id: Id0e54ba44204a1700885185ec360e1c56834fb73 Reviewed-on: https://chromium-review.googlesource.com/654900Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#47888}
-
- 28 Jun, 2017 1 commit
-
-
Igor Sheludko authored
This CL replaces usages of utils.InstallFunctions and utils.InstallGetter() with the DEFINE_METHOD* macros that ensure that the native function is created in proper form from the beginning. Thus the function will not require further reconfiguring like adding a computed name or removing of 'prototype' property. This CL is one of a series of cleanup CL which are the preliminary steps for improving function closures creation. Bug: v8:6459 Change-Id: Iebee37861fbe026b421aeac19dc838302a9e106d Reviewed-on: https://chromium-review.googlesource.com/548136 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#46284}
-
- 27 Jun, 2017 3 commits
-
-
Igor Sheludko authored
This is a reland of 72b88fda Original change's description: > [runtime] Make all built-in functions strict. > > According to ES#sec-built-in-function-objects all built-in functions > must be strict. > > This is a preliminary CL before changing the way we define built-in > functions in native JS files. > > Bug: v8:6529, v8:6459 > Change-Id: I8e60b342f04ea1b0843fe1990334cbb9b26ebac4 > Reviewed-on: https://chromium-review.googlesource.com/546215 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Adam Klein <adamk@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46237} Bug: v8:6529, v8:6459 Change-Id: Ic0eb3d7925ed63dd716c4a114601415f92627ca5 Reviewed-on: https://chromium-review.googlesource.com/550156Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46262}
-
Michael Achenbach authored
This reverts commit 72b88fda. Reason for revert: Changes a layout test: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/16595 Original change's description: > [runtime] Make all built-in functions strict. > > According to ES#sec-built-in-function-objects all built-in functions > must be strict. > > This is a preliminary CL before changing the way we define built-in > functions in native JS files. > > Bug: v8:6459 > Change-Id: I8e60b342f04ea1b0843fe1990334cbb9b26ebac4 > Reviewed-on: https://chromium-review.googlesource.com/546215 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Adam Klein <adamk@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46237} TBR=adamk@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: Ic458b478b2dd23aae7ea2a51aa6052c1f5931c56 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6459 Reviewed-on: https://chromium-review.googlesource.com/549322Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46242}
-
Igor Sheludko authored
According to ES#sec-built-in-function-objects all built-in functions must be strict. This is a preliminary CL before changing the way we define built-in functions in native JS files. Bug: v8:6459 Change-Id: I8e60b342f04ea1b0843fe1990334cbb9b26ebac4 Reviewed-on: https://chromium-review.googlesource.com/546215Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46237}
-
- 13 Jun, 2017 1 commit
-
-
bmeurer authored
Port the baseline implementation of Object.prototype.isPrototypeOf to the CodeStubAssembler, sharing the existing prototype chain lookup logic with the instanceof / OrdinaryHasInstance implementation. Based on that, do the same in TurboFan, introducing a new JSHasInPrototypeChain operator, which encapsulates the central prototype chain walk logic. This speeds up Object.prototype.isPrototypeOf by more than a factor of four, so that the code A.prototype.isPrototypeOf(a) is now performance-wise on par with a instanceof A for the case where A is a regular constructor function and a is an instance of A. Since instanceof does more than just the fundamental prototype chain lookup, it was discovered in Node core that O.p.isPrototypeOf would be a more appropriate alternative for certain sanity checks, since it's less vulnerable to monkey-patching. In addition, the Object builtin would also avoid the performance-cliff associated with instanceof (due to the Symbol.hasInstance hook), as for example hit by https://github.com/nodejs/node/pull/13403#issuecomment-305915874. The main blocker was the missing performance of isPrototypeOf, since it was still a JS builtin backed by a runtime call. This CL also adds more test coverage for the Object.prototype.isPrototypeOf builtin, especially when called from optimized code. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng BUG=v8:5269,v8:5989,v8:6483 R=jgruber@chromium.org Review-Url: https://codereview.chromium.org/2934893002 Cr-Commit-Position: refs/heads/master@{#45925}
-
- 14 Apr, 2017 1 commit
-
-
Adam Klein authored
Also simplify usage of Object.prototype methods in JS natives: now that they're added in bootstrapper, no need to import them. Change-Id: I0db53dd5acaed3aa0a5b46f730b31baa376e282d Reviewed-on: https://chromium-review.googlesource.com/478574 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#44659}
-
- 03 Mar, 2017 1 commit
-
-
loorongjie authored
Original issue: https://codereview.chromium.org/2724833002/ BUG=v8:6005 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel R=bmeurer@chromium.org,yangguo@chromium.org Review-Url: https://codereview.chromium.org/2725053007 Cr-Commit-Position: refs/heads/master@{#43566}
-
- 02 Mar, 2017 3 commits
-
-
machenbach authored
Revert of Migrate Object.prototype.valueOf to CSA (patchset #4 id:80001 of https://codereview.chromium.org/2724833002/ ) Reason for revert: Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/13900 See also: https://github.com/v8/v8/wiki/Blink-layout-tests Original issue's description: > Migrate Object.prototype.valueOf to CSA > > BUG=v8:6005 > > Review-Url: https://codereview.chromium.org/2724833002 > Cr-Commit-Position: refs/heads/master@{#43539} > Committed: https://chromium.googlesource.com/v8/v8/+/f93b27e639cca6a93ce9b6c535ece9b6cc399a01 TBR=bmeurer@chromium.org,yangguo@chromium.org,loorongjie@gmail.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6005 Review-Url: https://codereview.chromium.org/2730573004 Cr-Commit-Position: refs/heads/master@{#43547}
-
loorongjie authored
BUG=v8:6005 Review-Url: https://codereview.chromium.org/2724833002 Cr-Commit-Position: refs/heads/master@{#43539}
-
loorongjie authored
BUG=v8:6005 Review-Url: https://codereview.chromium.org/2726853006 Cr-Commit-Position: refs/heads/master@{#43531}
-
- 27 Feb, 2017 1 commit
-
-
loorongjie authored
BUG=v8:6005 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2715793004 Cr-Commit-Position: refs/heads/master@{#43438}
-
- 18 Oct, 2016 1 commit
-
-
bmeurer authored
R=epertoso@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2424403002 Cr-Commit-Position: refs/heads/master@{#40399}
-
- 14 Oct, 2016 4 commits
-
-
bmeurer authored
These accessors also always call into C++ anyways, so there's no point in having the JavaScript wrappers. R=yangguo@chromium.org BUG=v8:5049, chromium:655963 Committed: https://crrev.com/ede69cfabd790fe9f171b5d1f426ea0fc55e3c98 Review-Url: https://codereview.chromium.org/2417183002 Cr-Original-Commit-Position: refs/heads/master@{#40298} Cr-Commit-Position: refs/heads/master@{#40306}
-
machenbach authored
Revert of [builtins] Also port the Object.prototype.__proto__ accessors to C++. (patchset #1 id:1 of https://codereview.chromium.org/2417183002/ ) Reason for revert: [Sheriff] Speculative revert for webkit tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10656 Was broken before, but this one test failure started with this CL: inspector/console/console-dir.htm All other errors stopped after another revert. See also: https://github.com/v8/v8/wiki/Blink-layout-tests Original issue's description: > [builtins] Also port the Object.prototype.__proto__ accessors to C++. > > These accessors also always call into C++ anyways, so there's no point > in having the JavaScript wrappers. > > R=yangguo@chromium.org > BUG=v8:5049 > > Committed: https://crrev.com/ede69cfabd790fe9f171b5d1f426ea0fc55e3c98 > Cr-Commit-Position: refs/heads/master@{#40298} TBR=yangguo@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:5049 Review-Url: https://codereview.chromium.org/2415173003 Cr-Commit-Position: refs/heads/master@{#40303}
-
bmeurer authored
These accessors also always call into C++ anyways, so there's no point in having the JavaScript wrappers. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2417183002 Cr-Commit-Position: refs/heads/master@{#40298}
-
bmeurer authored
This calls into C++ anyways, so no need to add the JavaScript wrapper around it. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2421803002 Cr-Commit-Position: refs/heads/master@{#40293}
-
- 07 Oct, 2016 1 commit
-
-
bmeurer authored
This implicitly convers parseFloat on the global object as well, since it's the same function. This is mostly straight-forward, but adds another fast case for HeapNumbers as well. R=ishell@chromium.org Review-Url: https://codereview.chromium.org/2395373002 Cr-Commit-Position: refs/heads/master@{#40072}
-
- 07 Sep, 2016 1 commit
-
-
bmeurer authored
Migrate the isNaN, isFinite, Number.isFinite, Number.isInteger, Number.isSafeInteger and Number.isNaN predicates to TurboFan builtins and make them optimizable (for certain input types) in JavaScript callees being optimized by TurboFan. That means both the baseline and the optimized version is now always at maximum, consistent performance. Especially TurboFan suffered from poor baseline (and optimized) performance because it cannot play the same weird tricks that Crankshaft plays for %_IsSmi. This also adds a bunch of new tests to properly cover the use of the Harmony predicates in optimized code. R=franzih@chromium.org BUG=v8:5049,v8:5267 Review-Url: https://codereview.chromium.org/2313073002 Cr-Commit-Position: refs/heads/master@{#39242}
-
- 09 Aug, 2016 1 commit
-
-
jgruber authored
These were the final remnants of error code written in JavaScript. BUG= Review-Url: https://codereview.chromium.org/2222893002 Cr-Commit-Position: refs/heads/master@{#38475}
-
- 12 Jul, 2016 1 commit
-
-
bmeurer authored
Remove obsolete definitions from macros.py, and drop the now obsolete %_ToPrimitive, %_ToPrimitive_Number, %_ToPrimitive_String, %_ToName and the %ToPrimitive_String intrinsics/runtime entries. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2137203002 Cr-Commit-Position: refs/heads/master@{#37665}
-
- 05 Jul, 2016 3 commits
-
-
bmeurer authored
This drops the %_ValueOf intrinsic, but keeps the runtime entry %ValueOf for now, by either migrating the functionality (mostly Debug mirror or toString/valueOf methods) to C++ or TurboFan builtins, or switching to the %ValueOf runtime call when it's not performance critical anyways. The %_ValueOf intrinsic was one of the last blockers for fixing the unsound machine operator typing in TurboFan. R=yangguo@chromium.org BUG=v8:5049 Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2 Review-Url: https://codereview.chromium.org/2126453002 Cr-Original-Commit-Position: refs/heads/master@{#37512} Cr-Commit-Position: refs/heads/master@{#37519}
-
machenbach authored
Revert of [intrinsic] Drop the %_ValueOf intrinsic. (patchset #2 id:20001 of https://codereview.chromium.org/2126453002/ ) Reason for revert: [Sheriff] Breaks without i18n: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%20debug/builds/8466 Original issue's description: > [intrinsic] Drop the %_ValueOf intrinsic. > > This drops the %_ValueOf intrinsic, but keeps the runtime entry > %ValueOf for now, by either migrating the functionality (mostly > Debug mirror or toString/valueOf methods) to C++ or TurboFan > builtins, or switching to the %ValueOf runtime call when it's > not performance critical anyways. > > The %_ValueOf intrinsic was one of the last blockers for fixing > the unsound machine operator typing in TurboFan. > > R=yangguo@chromium.org > BUG=v8:5049 > > Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2 > Cr-Commit-Position: refs/heads/master@{#37512} TBR=yangguo@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:5049 Review-Url: https://codereview.chromium.org/2117273002 Cr-Commit-Position: refs/heads/master@{#37514}
-
bmeurer authored
This drops the %_ValueOf intrinsic, but keeps the runtime entry %ValueOf for now, by either migrating the functionality (mostly Debug mirror or toString/valueOf methods) to C++ or TurboFan builtins, or switching to the %ValueOf runtime call when it's not performance critical anyways. The %_ValueOf intrinsic was one of the last blockers for fixing the unsound machine operator typing in TurboFan. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2126453002 Cr-Commit-Position: refs/heads/master@{#37512}
-
- 01 Jul, 2016 1 commit
-
-
bmeurer authored
Import fdlibm versions of acos, acosh, asin and asinh, which are more precise and produce the same result across platforms (we were using libm versions for asin and acos so far, where both speed and precision depended on the operating system so far). Introduce appropriate TurboFan operators for these functions and use them both for inlining and for the generic builtin. Also migrate the Math.imul and Math.fround builtins to TurboFan builtins to ensure that their behavior is always exactly the same as the inlined TurboFan version (i.e. C++ truncation semantics for double to float don't necessarily meet the JavaScript semantics). For completeness, also migrate Math.sign, which can even get some nice love in TurboFan. Drive-by-fix: Some alpha-sorting on the Math related functions, and cleanup the list of Math intrinsics that we have to export via the native context currently. BUG=v8:3266,v8:3496,v8:3509,v8:3952,v8:5169,v8:5170,v8:5171,v8:5172 TBR=rossberg@chromium.org R=franzih@chromium.org Review-Url: https://codereview.chromium.org/2116753002 Cr-Commit-Position: refs/heads/master@{#37476}
-
- 30 Jun, 2016 1 commit
-
-
franzih authored
Like the other Math builtins, Math.abs() is now a TurboFan builtin. It uses RawMachineAssembler::Float64Abs(). R=bmeurer@chromium.org BUG=v8:5163, v8:5086 LOG=N Review-Url: https://codereview.chromium.org/2115493002 Cr-Commit-Position: refs/heads/master@{#37433}
-
- 28 Jun, 2016 1 commit
-
-
bmeurer authored
Introduce a new machine operator Float64Pow that for now is backed by the existing MathPowStub to start the unification of Math.pow, and at the same time address the main performance issue that TurboFan still has with the imaging-darkroom benchmark in Kraken. Also migrate the Math.pow builtin itself to a TurboFan builtin and remove a few hundred lines of hand-written platform code for special handling of the fullcodegen Math.pow version. BUG=v8:3599,v8:5086,v8:5157 Review-Url: https://codereview.chromium.org/2103733003 Cr-Commit-Position: refs/heads/master@{#37323}
-
- 30 May, 2016 1 commit
-
-
yangguo authored
R=littledan@chromium.org Review-Url: https://codereview.chromium.org/2021053002 Cr-Commit-Position: refs/heads/master@{#36598}
-
- 24 May, 2016 1 commit
-
-
bmeurer authored
R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2004933003 Cr-Commit-Position: refs/heads/master@{#36457}
-
- 29 Apr, 2016 2 commits
-
-
jkummerow authored
Reland of Remove more dead code after Object.observe removal (patchset #1 id:1 of https://codereview.chromium.org/1929293002/ ) This moves __{define,lookup}{Getter,Setter}__ to builtins.cc. Compared to the first attempt, this patch now preserves non-spec-compliant legacy behavior and does not throw on failure. Original review: https://codereview.chromium.org/1904313004 Review-Url: https://codereview.chromium.org/1932163002 Cr-Commit-Position: refs/heads/master@{#35899}
-
machenbach authored
Revert of Remove more dead code after Object.observe removal (patchset #5 id:80001 of https://codereview.chromium.org/1904313004/ ) Reason for revert: [Sheriff] Looks like this breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/6442 Original issue's description: > Remove more dead code after Object.observe removal > > This moves __{define,lookup}{Getter,Setter}__ to builtins.cc to free up the JavaScript implementation of DefineOwnProperty for deletion. TBR=verwaest@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1929293002 Cr-Commit-Position: refs/heads/master@{#35886}
-
- 28 Apr, 2016 1 commit
-
-
jkummerow authored
This moves __{define,lookup}{Getter,Setter}__ to builtins.cc to free up the JavaScript implementation of DefineOwnProperty for deletion. Review-Url: https://codereview.chromium.org/1904313004 Cr-Commit-Position: refs/heads/master@{#35876}
-
- 25 Apr, 2016 3 commits
-
-
neis authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1918783002 Cr-Commit-Position: refs/heads/master@{#35763}
-
neis authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1919763002 Cr-Commit-Position: refs/heads/master@{#35761}
-
neis authored
More v8natives cleanup to come... R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1922453002 Cr-Commit-Position: refs/heads/master@{#35759}
-
- 22 Apr, 2016 1 commit
-
-
adamk authored
The feature was deprecated in M49 and flagged off in M50. This patch removes it entirely from the codebase. Review URL: https://codereview.chromium.org/1909433003 Cr-Commit-Position: refs/heads/master@{#35714}
-
- 25 Mar, 2016 1 commit
-
-
binji authored
BUG=v8:4737 LOG=n R=jarin@chromium.org Review URL: https://codereview.chromium.org/1676613002 Cr-Commit-Position: refs/heads/master@{#35074}
-
- 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 1 commit
-
-
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}
-