- 24 Jun, 2020 1 commit
-
-
Camillo Bruni authored
With this CL d8 exits with an error code if there is an unhandled promise rejection, e.g. due tue a failed assertion in a promise. Up until now these assertions were just ignored. Bug: v8:10556 Change-Id: I25f20e4be45a2de130562deb15f6a144f0ac976f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238569Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#68503}
-
- 01 Aug, 2018 1 commit
-
-
Andreas Haas authored
The original implementation of 'testAsync' in mjsunit.js required to put the call to '%AbortJS' into an 'eval' statement. The reason is that this call requires the flag --allow-natives-syntax to be set, but the flag is not set in all mjsunit tests. With the use of 'eval' compilation errors can be avoided. The problem with this approach was that the fuzzer started to produce test cases which include the line 'eval("%AbortJS(message)");', and this line crashes intentionally. Different to the line '%Abort(message)', however, the 'eval' statement cannot be filtered so easily in the fuzzer. Therefore I pulled the implementation of 'testAsync' into a separate file to avoid the 'eval'. Additional changes: I use '===' now instead of 'deepEquals' in AsyncAssertion.equals because 'deepEquals' is not available outside mjsunit.js. Using '===' seems more appropriate anyways because for all tests but one it is sufficient, and it is more precise than deepEquals. R=gsathya@chromium.org Bug: chromium:774841 Change-Id: I47270aa63ff5a1d6aa76a771f9276eaaf579c5ac Reviewed-on: https://chromium-review.googlesource.com/1156598Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54833}
-
- 04 Jun, 2018 1 commit
-
-
Mathias Bynens authored
It was shipped in Chrome 63. Bug: v8:5967 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I1ade30d7ba3cf012f4d0c898f868192972aac726 Reviewed-on: https://chromium-review.googlesource.com/1085289 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#53505}
-
- 14 Dec, 2017 1 commit
-
-
Sathya Gunasekaran authored
The IsPromise brand check is now replaced with an IsObject check. The spec was changed here: https://github.com/tc39/proposal-promise-finally/commit/a1628886f85a897df5cd967ea36f025e8f89cb7a Bug: v8:7095 Change-Id: I5668083c888f9efcdfc1491c919c810c75d73ac7 Reviewed-on: https://chromium-review.googlesource.com/826606Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#50108}
-
- 07 Sep, 2017 1 commit
-
-
Sathya Gunasekaran authored
The spec calls out to Promise.prototype.then and also passes around the constructor of the receiver to Promise.prototype.finally. Adds a new constructor slot to PromiseFinallyContext enum and this is used to create a new promise in the thenFinally/catchFinally callbacks. Created a new PromiseResolve TFS builtin refactored from the existing PromiseResolve builtin. PromiseResolveWrapper calls out to this TFS Builtin and is now exposed as Promise.resolve. The thenFinally and catchFinally callbacks also call out to the PromiseResolve TFS builtin. Spec -- https://tc39.github.io/proposal-promise-finally/ Bug: v8:5967 Change-Id: I2ce89f14d3b149619d11e424b6e37062e466c4d5 Reviewed-on: https://chromium-review.googlesource.com/652026Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#47898}
-
- 26 Jul, 2017 1 commit
-
-
Sathya Gunasekaran authored
- No need for multiple assertAsyncRan() calls, just do t.plan(count) - Previously, if you forget to call assertAsyncRan(), the test will still pass, which is no longer true. - No longer hold global state (with asyncAssertsExpected). Previously if one assert wasn't hit then there's no way to find out which test failed. You'd have to comment each test and try again. - Each test runs independently in the microtask queue. - Better failure reporting by printing the entire function. Example error : === mjsunit/harmony/promise-prototype-finally === abort: Expected asserts: 2, Actual asserts: 1 in test: reject/finally/then assert => { assert.plan(2); Promise.reject(3).finally().then( assert.unreachable, x => { assert.equals(3, x); }); } Change-Id: Ic3f6272e1e87b8b0121b8c8c7cce19cf90d1f1be Reviewed-on: https://chromium-review.googlesource.com/455555 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Reviewed-by: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#46910}
-
- 17 Feb, 2017 1 commit
-
-
gsathya authored
Adds five new TF builtins for the spec defined functions/closures. This follows mechanism similar to promise resolving functions approach where we store the closure variables in a custom context. Adds a new --harmony-promise-finally flag. BUG=v8:5967 Review-Url: https://codereview.chromium.org/2695753002 Cr-Commit-Position: refs/heads/master@{#43294}
-