Source code

Revision control

Copy as Markdown

Other Tools

// |reftest| shell-option(--enable-promise-allkeyed) skip-if(!Promise.allKeyed||!xulRuntime.shell) async -- await-dictionary is not enabled unconditionally, requires shell-options
// Copyright (C) 2026 Danial Asaria (Bloomberg LP). All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-promise.allkeyed
description: >
Error retrieving the constructor's `resolve` method rejects the promise
info: |
Promise.allKeyed ( promises )
...
3. Let promiseResolve be Completion(GetPromiseResolve(C)).
4. IfAbruptRejectPromise(promiseResolve, promiseCapability).
GetPromiseResolve ( promiseConstructor )
1. Let promiseResolve be ? Get(promiseConstructor, "resolve").
...
includes: [asyncHelpers.js]
flags: [async]
features: [await-dictionary]
---*/
var error = new Test262Error();
Object.defineProperty(Promise, 'resolve', {
get: function() {
throw error;
}
});
asyncTest(function() {
return Promise.allKeyed({ key: 1 }).then(function() {
throw new Test262Error('The promise should be rejected.');
}, function(reason) {
assert.sameValue(reason, error);
});
});