- 29 Nov, 2016 2 commits
-
-
jgruber authored
Microbenchmarks show a 4x improvement on the fast path and 2.5x improvement on the slow path when compared to the CPP builtin implementation. Compared to the old JS implementation, the fast path is 20% faster and the slow path 35% slower. BUG=v8:5339,v8:5562 Review-Url: https://codereview.chromium.org/2527963002 Cr-Commit-Position: refs/heads/master@{#41338}
-
jgruber authored
If the prototype's map is not marked as fast, it is made fast after setup, breaking current RegExp fast path checks. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2537483002 Cr-Commit-Position: refs/heads/master@{#41336}
-
- 18 Nov, 2016 1 commit
-
-
bmeurer authored
This is the TurboFan counterpart of http://crrev.com/2504263004, but it is a bit more involved, since in TurboFan we always inline the appropriate call to the @@hasInstance handler, and by that we can optimize a lot more patterns of instanceof than Crankshaft, and even yield fast instanceof for custom @@hasInstance handlers (which we can now properly inline as well). Also we now properly optimize Function.prototype[@@hasInstance], even if the right hand side of an instanceof doesn't have the Function.prototype as its direct prototype. For the baseline case, we still rely on the global protector cell, but we can address that in a follow-up as well, and make it more robust in general. TEST=mjsunit/compiler/instanceof BUG=v8:5640 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2511223003 Cr-Commit-Position: refs/heads/master@{#41092}
-
- 17 Nov, 2016 2 commits
-
-
kozyatinskiy authored
After moving inspector from blink to V8, inspector can use DebugInterface to compile and mark internal scripts. BUG=v8:5530 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2502173002 Cr-Commit-Position: refs/heads/master@{#41087}
-
bmeurer authored
In Crankshaft we can actually do an abstract interpretation of the @@hasInstance lookup when optimizing instanceof and then use the normal machinery to protect the result instead of relying on the global @@hasInstance protector cell for optimizations. This recovers the 100x performance drop in Node.js v7 reported in https://github.com/nodejs/node/issues/9634. This patch should be easily back-mergable to Node.js v7. BUG=v8:5640 R=yangguo@chromium.org,franzih@chromium.org Review-Url: https://codereview.chromium.org/2504263004 Cr-Commit-Position: refs/heads/master@{#41059}
-
- 15 Nov, 2016 2 commits
-
-
jgruber authored
Implements upcoming changes to @@search according to https://github.com/tc39/ecma262/pull/627. This also adds SameValue to CodeStubAssembler and extracts a part of CSA::TruncateTaggedToFloat64. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2438683005 Cr-Commit-Position: refs/heads/master@{#41000}
-
petermarshall authored
Avoid using the iterator for arrays with fast elements where the iterator has not been modified. Only deals with the case where there is a single spread argument. Improves the six-speed "spread" benchmark to 1.5x slower than baseline es5 implementation, compared to 19x slower previously. BUG=v8:5511 Review-Url: https://codereview.chromium.org/2465253011 Cr-Commit-Position: refs/heads/master@{#40998}
-
- 14 Nov, 2016 1 commit
-
-
caitp authored
Adds a protector cell to prevent inlining (which will likely lead to deopt loops) when a JSArrayIterator's array transitions from a fast JSArray to a slow JSArray (such as, when the array is touched during iteration in a way which triggers a map transition). Also adds TODO comments relating to the spec update proposed by Dan at https://github.com/tc39/ecma262/pull/724 BUG=v8:5388 R=bmeurer@chromium.org, mstarzinger@chromium.org TBR=hpayer@chromium.org, ulan@chromium.org Review-Url: https://codereview.chromium.org/2484003002 Cr-Commit-Position: refs/heads/master@{#40970}
-
- 10 Nov, 2016 3 commits
-
-
gsathya authored
- A new runtime function (%create_resolving_functions) is installed to call the CreateResolvingFunctions builtin from JS. - Three new builtins are created - resolve and reject functions and a third function that creates a new JSFunctions from these resolve/reject builtins. - The promise reject function is installed on the context temporarily as internal_promise_reject. This should go away once we remove PromiseSet. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2459283004 Cr-Commit-Position: refs/heads/master@{#40903}
-
jgruber authored
line_ends is either undefined (if uninitialized) or a fixed array (after Script::InitLineEnds). All accesses from JS have been removed, therefore we can skip assigning a COW map and remove the accessor. Review-Url: https://codereview.chromium.org/2490903002 Cr-Commit-Position: refs/heads/master@{#40876}
-
gsathya authored
Previously we created a duplicate map because we couldn't set the correct ElementsKind when we created the function. This patch updates the ElementsKind field of the existing map directly instead of creating a new one. This patch also correctly sets the instance_size when we create the map the first time. Review-Url: https://codereview.chromium.org/2486193003 Cr-Commit-Position: refs/heads/master@{#40872}
-
- 08 Nov, 2016 1 commit
-
-
lpy authored
This patch is a follow-up patch to enable gc statistics to use TracingCategoryObserver. Previously we need to pass --track_gc_object_stats to v8 if we want to enable gc statistics in tracing. In this patch, we introducce an integer flag FLAG_gc_stats, and FLAG_track_gc_object_stats and FLAG_trace_gc_object_stats will set it to 0x01, tracing will set it to 0x10 when we start tracing and reset the bit when we stop tracing. BUG=v8:5590 Review-Url: https://codereview.chromium.org/2459903003 Cr-Commit-Position: refs/heads/master@{#40817}
-
- 07 Nov, 2016 1 commit
-
-
danno authored
Review-Url: https://codereview.chromium.org/2448993002 Cr-Commit-Position: refs/heads/master@{#40814}
-
- 05 Nov, 2016 1 commit
-
-
machenbach authored
Revert of [Tracing] Use TracingCategoryObserver in gc statistics (patchset #5 id:100001 of https://codereview.chromium.org/2459903003/ ) Reason for revert: Speculative revert for blocking roll: https://codereview.chromium.org/2473003006/ E.g.: https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/331898 Original issue's description: > [Tracing] Use TracingCategoryObserver in gc statistics > > This patch is a follow-up patch to enable gc statistics to use > TracingCategoryObserver. > > Previously we need to pass --track_gc_object_stats to v8 if we want to enable > gc statistics in tracing. In this patch, we introducce an integer flag > FLAG_gc_stats, and FLAG_track_gc_object_stats and FLAG_trace_gc_object_stats > will set it to 0x01, tracing will set it to 0x10 when we start tracing and > reset the bit when we stop tracing. > > BUG=v8:5590 TBR=fmeawad@chromium.org,mlippautz@chromium.org,lpy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5590 Review-Url: https://codereview.chromium.org/2477143002 Cr-Commit-Position: refs/heads/master@{#40785}
-
- 04 Nov, 2016 4 commits
-
-
adamk authored
The flag has been on since at least Chrome 53. R=littledan@chromium.org Review-Url: https://codereview.chromium.org/2478883002 Cr-Commit-Position: refs/heads/master@{#40780}
-
lpy authored
This patch is a follow-up patch to enable gc statistics to use TracingCategoryObserver. Previously we need to pass --track_gc_object_stats to v8 if we want to enable gc statistics in tracing. In this patch, we introducce an integer flag FLAG_gc_stats, and FLAG_track_gc_object_stats and FLAG_trace_gc_object_stats will set it to 0x01, tracing will set it to 0x10 when we start tracing and reset the bit when we stop tracing. BUG=v8:5590 Review-Url: https://codereview.chromium.org/2459903003 Cr-Commit-Position: refs/heads/master@{#40777}
-
henrique.ferreiro authored
This was removed from ECMAScript in the September 2016 TC39 meeting, see https://github.com/tc39/ecma262/issues/670. BUG=v8:5535 Review-Url: https://codereview.chromium.org/2430383004 Cr-Commit-Position: refs/heads/master@{#40770}
-
dcheng authored
BUG=v8:5588 R=jochen@chromium.org Review-Url: https://codereview.chromium.org/2475433008 Cr-Commit-Position: refs/heads/master@{#40755}
-
- 02 Nov, 2016 1 commit
-
-
jochen authored
Original CL description: > Create internal fields on global proxy objects > > BUG=v8:5588 > R=verwaest@chromium.org BUG=v8:5588 TBR=verwaest@chromium.org Review-Url: https://codereview.chromium.org/2472573004 Cr-Commit-Position: refs/heads/master@{#40705}
-
- 01 Nov, 2016 1 commit
-
-
machenbach authored
This reverts commit 26547761. Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/bui... See also: https://github.com/v8/v8/wiki/Blink-layout-tests BUG=v8:5588 TBR=jochen@chromium.org, verwaest@chromium.org, hablich@chromium.org Review-Url: https://codereview.chromium.org/2467073002 Cr-Commit-Position: refs/heads/master@{#40686}
-
- 31 Oct, 2016 2 commits
-
-
adamk authored
Both --harmony-object-values-entries and --harmony-object-own-property-descriptors are on by default in v8 5.4, which has now shipped to stable as Chrome 54. R=caitp@igalia.com Review-Url: https://codereview.chromium.org/2464733003 Cr-Commit-Position: refs/heads/master@{#40683}
-
jochen authored
BUG=v8:5588 R=verwaest@chromium.org Review-Url: https://codereview.chromium.org/2467463002 Cr-Commit-Position: refs/heads/master@{#40670}
-
- 27 Oct, 2016 2 commits
-
-
mstarzinger authored
This prepares the code-base so that Ignition can be enabled on a certain subset of compilations without setting the {FLAG_ignition} flag (which enables Ignition on all compilations). We should not check the flag in question explicitly anywhere outside of the compiler heuristics. R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2443573002 Cr-Commit-Position: refs/heads/master@{#40617}
-
jgruber authored
'[...] accessor properties who have the attributes { [[Enumerable]]: false, [[Configurable]]: true } [...]' BUG=v8:5566 Review-Url: https://codereview.chromium.org/2452913002 Cr-Commit-Position: refs/heads/master@{#40609}
-
- 26 Oct, 2016 1 commit
-
-
neis authored
R=adamk@chromium.org BUG= Review-Url: https://codereview.chromium.org/2452543003 Cr-Commit-Position: refs/heads/master@{#40584}
-
- 25 Oct, 2016 1 commit
-
-
cbruni authored
Object.create(null) is most likely to be used for dictionary-like objects. Hence it would be beneficial to directly create a slow-mode object and avoid additional overhead later-on. BUG= Review-Url: https://codereview.chromium.org/2430273007 Cr-Commit-Position: refs/heads/master@{#40551}
-
- 24 Oct, 2016 2 commits
-
-
mstarzinger authored
Revert of [compiler] Prepare for partially shipping Ignition. (patchset #1 id:1 of https://codereview.chromium.org/2443573002/ ) Reason for revert: Causes regressions: https://bugs.chromium.org/p/chromium/issues/detail?id=658711 Original issue's description: > [compiler] Prepare for partially shipping Ignition. > > This prepares the code-base so that Ignition can be enabled on a certain > subset of compilations without setting the {FLAG_ignition} flag (which > enables Ignition on all compilations). We should not check the flag in > question explicitly anywhere outside of the compiler heuristics. > > R=mvstanton@chromium.org BUG=chromium:658711 TBR=mvstanton@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review-Url: https://codereview.chromium.org/2448443002 Cr-Commit-Position: refs/heads/master@{#40534}
-
jgruber authored
This results in a speedup of around 2x. RegExpExec is also ported in this CL. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2441993002 Cr-Commit-Position: refs/heads/master@{#40532}
-
- 21 Oct, 2016 1 commit
-
-
mstarzinger authored
This prepares the code-base so that Ignition can be enabled on a certain subset of compilations without setting the {FLAG_ignition} flag (which enables Ignition on all compilations). We should not check the flag in question explicitly anywhere outside of the compiler heuristics. R=mvstanton@chromium.org Review-Url: https://chromiumcodereview.appspot.com/2443573002 Cr-Commit-Position: refs/heads/master@{#40507}
-
- 20 Oct, 2016 2 commits
-
-
mstarzinger authored
Breaks layout tests on Blink builders. TBR=machenbach@chromium.org Review-Url: https://chromiumcodereview.appspot.com/2428413004 Cr-Commit-Position: refs/heads/master@{#40471}
-
mstarzinger authored
This enables Ignition unconditionally for all code that is destined for optimization with TurboFan. This ensures all optimization attempts will go through the BytecodeGraphBuilder and that the AstGraphBuilder pipe is dried out in practice. R=mvstanton@chromium.org Review-Url: https://chromiumcodereview.appspot.com/2427953002 Cr-Commit-Position: refs/heads/master@{#40462}
-
- 19 Oct, 2016 1 commit
-
-
cbruni authored
BUG= Review-Url: https://chromiumcodereview.appspot.com/2385423005 Cr-Commit-Position: refs/heads/master@{#40429}
-
- 18 Oct, 2016 3 commits
-
-
jwolfe authored
BUG=v8:5388 Review-Url: https://codereview.chromium.org/2422383002 Cr-Commit-Position: refs/heads/master@{#40406}
-
bmeurer authored
R=epertoso@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2424403002 Cr-Commit-Position: refs/heads/master@{#40399}
-
caitp authored
Implements the variations of CreateArrayIterator() in TFJ builtins (ArrayPrototypeValues, ArrayPrototypeEntries and ArrayPrototypeKeys), and provides two new Object types with numerous maps which identify certain behaviours, which will be useful for inlining. Removes src/js/array-iterator.js entirely Also adds support for printing Symbol literals inserted by the Parser during desugaring when FLAG_print_builtin_ast is set to true. BUG=v8:5388 R=bmeurer@chromium.org, cbruni@chromium.org TBR=ulan@chromium.org Review-Url: https://codereview.chromium.org/2405253006 Cr-Commit-Position: refs/heads/master@{#40373}
-
- 14 Oct, 2016 5 commits
-
-
jgruber authored
Now that all accesses to the last match info are in C++ and TF code, we can finally turn the last match info into a FixedArray. Similar to the ArrayList, it uses its first field to store its length and grows dynamically in amortized O(1) time. Unlike previously, this means that the last match info pointer stored on the context can actually change (in case the FixedArray needs to grow). BUG=v8:5339 Review-Url: https://codereview.chromium.org/2415103002 Cr-Commit-Position: refs/heads/master@{#40308}
-
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}
-