- 15 May, 2017 2 commits
-
-
Clemens Hammacher authored
This reverts commit 7ef1df85. Reason for revert: Breaks inspector/debugger/get-possible-breakpoints-restrict-to-function: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/13191/steps/Check/logs/get-possible-breakpoi.. Original change's description: > [builtins] port Promise.all to CSA > > Introduces CodeStubAssembler helpers for common Iterator operations > (GetIterator, IteratorStep, IteratorClose). > > Moves the Promise.all resolveElement closure and it's caller to > builtins-promise-gen.cc. > > Instead of creating an internal array (and copying its elements into a result > array), a single JSArray is allocated, and appended with BuildAppendJSArray(), > falling back to %CreateDataProperty(), and elements are updated in the resolve > closure the same way. This should always be unobservable. > > This CL increases the size of snapshot_blob.bin on an x64.debug build by 11.44kb > > BUG=v8:5343 > R=cbruni@chromium.org, gsathysa@chromium.org, jgruber@chromium.org > > Change-Id: Id69b7f76866b29caccd97f35870154c4be85f418 > Reviewed-on: https://chromium-review.googlesource.com/497974 > Commit-Queue: Caitlin Potter <caitp@igalia.com> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45306} TBR=adamk@chromium.org,cbruni@chromium.org,gsathya@chromium.org,caitp@igalia.com,jgruber@chromium.org,ishell@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5343 Change-Id: I831738003643561fa628266af2bcebbb18000e55 Reviewed-on: https://chromium-review.googlesource.com/506014Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45313}
-
Caitlin Potter authored
Introduces CodeStubAssembler helpers for common Iterator operations (GetIterator, IteratorStep, IteratorClose). Moves the Promise.all resolveElement closure and it's caller to builtins-promise-gen.cc. Instead of creating an internal array (and copying its elements into a result array), a single JSArray is allocated, and appended with BuildAppendJSArray(), falling back to %CreateDataProperty(), and elements are updated in the resolve closure the same way. This should always be unobservable. This CL increases the size of snapshot_blob.bin on an x64.debug build by 11.44kb BUG=v8:5343 R=cbruni@chromium.org, gsathysa@chromium.org, jgruber@chromium.org Change-Id: Id69b7f76866b29caccd97f35870154c4be85f418 Reviewed-on: https://chromium-review.googlesource.com/497974 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#45306}
-
- 13 Feb, 2017 1 commit
-
-
gsathya authored
Use private symbols to mark default promise handler, instead of calling out to default handlers defined in JS. We check for this symbol in PromiseHandle and perform the appropriate behavior as the default handlers. Catch prediction logic is updated to account for a symbol. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2695593002 Cr-Commit-Position: refs/heads/master@{#43135}
-
- 17 Jan, 2017 1 commit
-
-
gsathya authored
Also moves some functions to prologue.js BUG=v8:5343 Review-Url: https://codereview.chromium.org/2630593004 Cr-Commit-Position: refs/heads/master@{#42417}
-
- 12 Jan, 2017 1 commit
-
-
adamk authored
This function was only needed for extrasUtils. Since it was simply calling a builtin function, just expose that builtin instead. This requires an arguments adapter frame for the builtin. As a drive-by fix, also added an arguments adapter for the extrasUtils.resolvePromise (and a regression test). Other cleanup: removed unused native context slot for PROMISE_SET_AND_CREATE. R=gsathya@chromium.org BUG=v8:5343 Review-Url: https://codereview.chromium.org/2626793003 Cr-Commit-Position: refs/heads/master@{#42284}
-
- 10 Jan, 2017 1 commit
-
-
jgruber authored
Instead of exporting/importing PromiseCreate and RejectPromise and going through them, just call the runtime function / the TF builtin on the context directly. BUG=v8:5639 Review-Url: https://codereview.chromium.org/2599003002 Cr-Commit-Position: refs/heads/master@{#42160}
-
- 06 Jan, 2017 1 commit
-
-
gsathya authored
BUG=v8:5343 Review-Url: https://codereview.chromium.org/2616673003 Cr-Commit-Position: refs/heads/master@{#42113}
-
- 04 Jan, 2017 1 commit
-
-
gsathya authored
Add a more low level BranchIfFastPath to take the native_context and promise_fun as args and change the existing one to use this. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2592933004 Cr-Commit-Position: refs/heads/master@{#42075}
-
- 03 Jan, 2017 1 commit
-
-
gsathya authored
-- Removes remaning debug from promise.js and moves it to c++ -- Changes debug_id to be a smi in PromiseReactionJobInfo and PromiseResolveThenableJobInfo. -- Changes debug_name to be a smi in PromiseReactionJobInfo and PromiseResolveThenableJobInfo. -- Adds PromiseDebugActionName and PromiseDebugActionType enums -- Adds PromiseDebugActionNameToString and PromiseDebugActionTypeToString helper methods -- Changes variable `status` to be int in runtime functions. -- Changes debug_id to start from 1, not 0 for easier bookkeeping. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2606093002 Cr-Commit-Position: refs/heads/master@{#42052}
-
- 02 Jan, 2017 1 commit
-
-
caitp authored
- Adds CodeAssembler::ConstructJS() to simplify calling JS functions as constructors, used by NewPromiseCapability() - Defines PromiseCapability as a special JSObject subclass, with a non-exensible Map, and read-only non-configurable DataDescriptors which point to its in-object fields. This allows its fields to be used by JS builtins until there is no longer any need. Currently, the performance benefit comes from https://codereview.chromium.org/2567033003/, but does not appear to regress performance in any significant way. BUG=v8:5343 TBR=ulan@chromium.org Review-Url: https://codereview.chromium.org/2567333002 Cr-Commit-Position: refs/heads/master@{#42014}
-
- 29 Dec, 2016 1 commit
-
-
gsathya authored
This patch stores the promise, resolve, reject properties of the deferred object created by CreateInternalPromiseCapability and NewPromiseCapability directly on the promise (if the promise hasn't been fulfilled), otherwise they are stored on the PromiseReactionJobInfo. This patch removes the currently unused CreateInternalPromiseCapability and inlines the call to create the deferred promise object. NewPromiseCapability is the only function that works with a deferred. This patch results in a 8.5% improvement in benchmarks over 5 runs. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2590563003 Cr-Commit-Position: refs/heads/master@{#41991}
-
- 23 Dec, 2016 1 commit
-
-
gsathya authored
BUG=v8:5343 Review-Url: https://codereview.chromium.org/2604483002 Cr-Commit-Position: refs/heads/master@{#41947}
-
- 21 Dec, 2016 4 commits
-
-
gsathya authored
R=adamk@chromium.org Review-Url: https://codereview.chromium.org/2593243002 Cr-Commit-Position: refs/heads/master@{#41905}
-
gsathya authored
This patch also refactors most of PromiseThen into InternalPromiseThen to be reused with PromiseCatch and also changes InternalResolvePromise to return and not branch. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2596553002 Cr-Commit-Position: refs/heads/master@{#41902}
-
gsathya authored
BUG=v8:5343 Review-Url: https://codereview.chromium.org/2591033002 Cr-Commit-Position: refs/heads/master@{#41880}
-
gsathya authored
This removes RegExpPrototypeSpeciesGetter and IteratorPrototypeIterator and uses ReturnReceiver builtin instead. This patch also ports the PromiseSpecies to TF by reusing this builtin. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2590373002 Cr-Commit-Position: refs/heads/master@{#41879}
-
- 16 Dec, 2016 1 commit
-
-
gsathya authored
This adds kInit, kResolve, kBefore and kAfter lifecycle hooks to promises. This also exposes an API to set the PromiseHook. BUG=v8:4643 Review-Url: https://codereview.chromium.org/2575313002 Cr-Commit-Position: refs/heads/master@{#41775}
-
- 15 Dec, 2016 1 commit
-
-
jochen authored
Original CL description: > Store SharedFunctionInfos of a Script in a FixedArray indexed by their ID > > Now that SharedFunctionInfos have a unique ID (and the IDs are dense), > we can use them as an index into an array, instead of using a > WeakFixedArray where we have to do a linear scan. > > Hooking up liveedit is a bit more involved, see > https://docs.google.com/presentation/d/1FtNa3U7WsF5bPhY9uGoJG5Y9hnz5VBDabfOWpb4unWI/edit > for an overview > > BUG=v8:5589 > R=verwaest@chromium.org,jgruber@chromium.org > > Review-Url: https://codereview.chromium.org/2547483002 BUG=v8:5589 TBR=verwaest@chromium.org,jgruber@chromium.org Review-Url: https://codereview.chromium.org/2577063002 Cr-Commit-Position: refs/heads/master@{#41734}
-
- 14 Dec, 2016 1 commit
-
-
kozyatinskiy authored
Revert of Store SharedFunctionInfos of a Script in a FixedArray indexed by their ID (patchset #11 id:190001 of https://codereview.chromium.org/2547483002/ ) Reason for revert: LiveEdit is broken in some cases. Original issue's description: > Store SharedFunctionInfos of a Script in a FixedArray indexed by their ID > > Now that SharedFunctionInfos have a unique ID (and the IDs are dense), > we can use them as an index into an array, instead of using a > WeakFixedArray where we have to do a linear scan. > > Hooking up liveedit is a bit more involved, see > https://docs.google.com/presentation/d/1FtNa3U7WsF5bPhY9uGoJG5Y9hnz5VBDabfOWpb4unWI/edit > for an overview > > BUG=v8:5589 > R=verwaest@chromium.org,jgruber@chromium.org > > Committed: https://crrev.com/6595e7405769dc9d49e9568d61485efc6d468baf > Cr-Commit-Position: refs/heads/master@{#41600} TBR=jgruber@chromium.org,verwaest@chromium.org,yangguo@chromium.org,jochen@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:5589,chromium:673950 NOPRESUBMIT=true Review-Url: https://codereview.chromium.org/2578433002 Cr-Commit-Position: refs/heads/master@{#41684}
-
- 13 Dec, 2016 1 commit
-
-
gsathya authored
Splits PromiseHandle into two TF builtins to account for catch prediction. An exception in PromiseHandleReject builtin results in a "caught" prediction whereas an expception in PromiseHandle results in a "promise rejection" prediction. An extra is_exception_caught bit is added to Code to mark this catch prediction behavior. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2572623002 Cr-Commit-Position: refs/heads/master@{#41683}
-
- 08 Dec, 2016 2 commits
-
-
jochen authored
Now that SharedFunctionInfos have a unique ID (and the IDs are dense), we can use them as an index into an array, instead of using a WeakFixedArray where we have to do a linear scan. Hooking up liveedit is a bit more involved, see https://docs.google.com/presentation/d/1FtNa3U7WsF5bPhY9uGoJG5Y9hnz5VBDabfOWpb4unWI/edit for an overview BUG=v8:5589 R=verwaest@chromium.org,jgruber@chromium.org Review-Url: https://codereview.chromium.org/2547483002 Cr-Commit-Position: refs/heads/master@{#41600}
-
gsathya authored
-- Moves promiseHasHandlerSymbol to inobject property -- Ports PromiseResolveClosure to TF -- Fix a non spec async-await test which fails now because we do a map check for native promise check (instead of IsPromise). Changing the constructor (in the test) invalidates the map check. This patch results in a 7.1% performance improvement in the bluebird benchmark (over 5 runs). BUG=v8:5343 Review-Url: https://codereview.chromium.org/2541283002 Cr-Commit-Position: refs/heads/master@{#41569}
-
- 06 Dec, 2016 2 commits
-
-
https://codereview.chromium.org/2536463002/gsathya authored
This reverts commit 4c7cccf9. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2554943002 Cr-Commit-Position: refs/heads/master@{#41534}
-
https://codereview.chromium.org/2536463002/machenbach authored
Reason for revert: Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/11861 See: https://github.com/v8/v8/wiki/Blink-layout-tests Original issue's description: > Object > -- New JSObject for promises: JSPromise > > Builtins > -- PromiseThen TFJ > -- PromiseCreateAndSet TFJ for internal use > -- PerformPromiseThen TFJ for internal use > -- PromiseInit for initial promise setup > -- SpeciesConstructor for use in PromiseThen > -- ThrowIfNotJSReceiver for use in SpeciesConstructor > -- AppendPromiseCallback to update FixedArray with new callback > -- InternalPerformPromiseThen > > Promises.js > -- Cleanup unused symbols > -- Remove PerformPromiseThen > -- Remove PromiseThen > -- Remove PromiseSet > -- Remove PromiseAttachCallbacks > > Runtime > -- PromiseSet to set promise inobject values > -- Refactor functions to use FixedArrays for callbacks instead of > JSArray > -- Runtime_PromiseStatus to return promise status > -- Runtime_PromiseResult to return promise result > -- Runtime_PromiseDeferred to return deferred attached to promise > -- Runtime_PromiseRejectReactions to return reject reactions attached > to promise > > This CL results in a 13.07% improvement in the promises benchmark > (over 5 runs). > > BUG=v8:5343 > > Committed: https://crrev.com/30b564c76f490f8f6b311a74b25b26cf0a96be2d > Cr-Commit-Position: refs/heads/master@{#41503} TBR=bmeurer@chromium.org,jgruber@chromium.org,caitp@igalia.com,gsathya@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5343 Review-Url: https://codereview.chromium.org/2554013002 Cr-Commit-Position: refs/heads/master@{#41512}
-
- 05 Dec, 2016 1 commit
-
-
gsathya authored
-- New JSObject for promises: JSPromise Builtins -- PromiseThen TFJ -- PromiseCreateAndSet TFJ for internal use -- PerformPromiseThen TFJ for internal use -- PromiseInit for initial promise setup -- SpeciesConstructor for use in PromiseThen -- ThrowIfNotJSReceiver for use in SpeciesConstructor -- AppendPromiseCallback to update FixedArray with new callback -- InternalPerformPromiseThen Promises.js -- Cleanup unused symbols -- Remove PerformPromiseThen -- Remove PromiseThen -- Remove PromiseSet -- Remove PromiseAttachCallbacks Runtime -- PromiseSet to set promise inobject values -- Refactor functions to use FixedArrays for callbacks instead of JSArray -- Runtime_PromiseStatus to return promise status -- Runtime_PromiseResult to return promise result -- Runtime_PromiseDeferred to return deferred attached to promise -- Runtime_PromiseRejectReactions to return reject reactions attached to promise This CL results in a 13.07% improvement in the promises benchmark (over 5 runs). BUG=v8:5343 Review-Url: https://codereview.chromium.org/2536463002 Cr-Commit-Position: refs/heads/master@{#41503}
-
- 04 Dec, 2016 1 commit
-
-
bmeurer authored
This should recover part of the Bluebird regression caused by sending let/const to TurboFan+Ignition. R=gsathya@chromium.org Review-Url: https://codereview.chromium.org/2552583002 Cr-Commit-Position: refs/heads/master@{#41467}
-
- 01 Dec, 2016 2 commits
-
-
gsathya authored
Use %is_promise instead BUG=v8:5343 Review-Url: https://codereview.chromium.org/2521723003 Cr-Commit-Position: refs/heads/master@{#41440}
-
gsathya authored
BUG=v8:5343,chromium:660947,chromium:658194 Review-Url: https://codereview.chromium.org/2497523002 Cr-Commit-Position: refs/heads/master@{#41438}
-
- 21 Nov, 2016 1 commit
-
-
gsathya authored
This is unused. BUG=v8:5343 TBR=littledan@chromium.org Review-Url: https://codereview.chromium.org/2513413002 Cr-Commit-Position: refs/heads/master@{#41148}
-
- 18 Nov, 2016 1 commit
-
-
gsathya authored
This patch also cleans up NewPromiseCapability. This patch results in a 20% improvement over 4 runs with the following micro benchmark - var x = Promise.resolve(); async function bar() { return x; } async function foo() { await bar(); } var start = performance.now(); var count = 0; var max = 10000; for(var i = 0; i <= max; i++) { foo().then(() => { count++; if(count === max) print( performance.now() - start ); }) } BUG=v8:5639 Review-Url: https://codereview.chromium.org/2512103002 Cr-Commit-Position: refs/heads/master@{#41116}
-
- 15 Nov, 2016 1 commit
-
-
domenic authored
This will allow V8 extra consumers to mark a promise as handled without adding redundant empty onRejected handlers. This is needed by streams as discussed in https://github.com/whatwg/streams/issues/547. BUG=chromium:654701 Review-Url: https://codereview.chromium.org/2498143002 Cr-Commit-Position: refs/heads/master@{#41012}
-
- 11 Nov, 2016 1 commit
-
-
gsathya authored
- Creates a new promise-utils.{h, cc} which refactors out the logic to create resolving functions. This is shared between the runtime functions and builtins. - Changes PromiseResolveThenableJobInfo to store the context since we no longer create the resolving functions in JS. - Changes EnqueuPromiseResolveThenableJob to take in the promise and not the callbacks. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2487053002 Cr-Commit-Position: refs/heads/master@{#40941}
-
- 10 Nov, 2016 1 commit
-
-
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}
-
- 27 Oct, 2016 1 commit
-
-
gsathya authored
This patch refactors most of FulfillPromise runtime call out to a separate function so that we can to it from PromiseReject runtime call. This patch adds a PromiseStatus enum. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2451163003 Cr-Commit-Position: refs/heads/master@{#40615}
-
- 26 Oct, 2016 2 commits
-
-
gsathya authored
RejectPromise is always called on a pending promise making this a redundant check. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2446113007 Cr-Commit-Position: refs/heads/master@{#40591}
-
gsathya authored
This patch replaces it with calls to the runtime function and PromiseSet. This allows us to move PromiseReject to C++ without regressions. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2451133002 Cr-Commit-Position: refs/heads/master@{#40589}
-
- 25 Oct, 2016 3 commits
-
-
gsathya authored
This causes a 3.1% regression because we unconditionally call out to a runtime function. This patch refactors out most of EnqueuePromiseReactionJob runtime function into a separate function. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2449053003 Cr-Commit-Position: refs/heads/master@{#40570}
-
gsathya authored
Removes PromiseEnqueue and moves debugging code to a separate function which gets called when the debugger is active. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2450763002 Cr-Commit-Position: refs/heads/master@{#40562}
-
gsathya authored
FulfillPromise is always called when a promise is in a pending state which makes this check redundant. Review-Url: https://codereview.chromium.org/2442373002 Cr-Commit-Position: refs/heads/master@{#40556}
-
- 19 Oct, 2016 1 commit
-
-
gsathya authored
Moving the rest of the debugging code is blocked on making IsPromise inlinable. BUG=v8:5343 Review-Url: https://chromiumcodereview.appspot.com/2431793003 Cr-Commit-Position: refs/heads/master@{#40440}
-