From 2aa4a82499d4becd2284cdb482213d541b8804dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 16:29:10 +0200 Subject: Adding upstream version 86.0.1. Signed-off-by: Daniel Baumann --- .../test262/built-ins/Promise/reject-via-abrupt.js | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 js/src/tests/test262/built-ins/Promise/reject-via-abrupt.js (limited to 'js/src/tests/test262/built-ins/Promise/reject-via-abrupt.js') diff --git a/js/src/tests/test262/built-ins/Promise/reject-via-abrupt.js b/js/src/tests/test262/built-ins/Promise/reject-via-abrupt.js new file mode 100644 index 0000000000..49e6760849 --- /dev/null +++ b/js/src/tests/test262/built-ins/Promise/reject-via-abrupt.js @@ -0,0 +1,37 @@ +// |reftest| async +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: Rejecting through an abrupt completion +es6id: 25.4.3.1 +info: | + [...] + 9. Let completion be Call(executor, undefined, + «resolvingFunctions.[[Resolve]], resolvingFunctions.[[Reject]]»). + 10. If completion is an abrupt completion, then + a. Let status be Call(resolvingFunctions.[[Reject]], undefined, + «completion.[[value]]»). + b. ReturnIfAbrupt(status). + 11. Return promise. + + 25.4.1.3.1 Promise Reject Functions + [...] + 6. Return RejectPromise(promise, reason). +flags: [async] +---*/ + +var thenable = new Promise(function() {}); +var p = new Promise(function() { + throw thenable; +}); + +p.then(function() { + $DONE('The promise should not be fulfilled.'); +}, function(x) { + if (x !== thenable) { + $DONE('The promise should be rejected with the resolution value.'); + return; + } + + $DONE(); +}); -- cgit v1.2.3