Name Description Size
browser.js 0
capability-executor-called-twice.js --- es6id: 25.4.4.3 description: > Throws a TypeError if capabilities executor already called with non-undefined values. info: | Promise.race ( iterable ) ... 6. Let promiseCapability be NewPromiseCapability(C). 7. ReturnIfAbrupt(promiseCapability). ... 25.4.1.5.1 GetCapabilitiesExecutor Functions ... 3. If promiseCapability.[[Resolve]] is not undefined, throw a TypeError exception. 4. If promiseCapability.[[Reject]] is not undefined, throw a TypeError exception. 5. Set promiseCapability.[[Resolve]] to resolve. 6. Set promiseCapability.[[Reject]] to reject. ... --- 2932
capability-executor-not-callable.js --- es6id: 25.4.4.3 description: > Throws a TypeError if either resolve or reject capability is not callable. info: | Promise.race ( iterable ) ... 6. Let promiseCapability be NewPromiseCapability(C). 7. ReturnIfAbrupt(promiseCapability). ... 25.4.1.5 NewPromiseCapability ( C ) ... 4. Let executor be a new built-in function object as defined in GetCapabilitiesExecutor Functions (25.4.1.5.1). 5. Set the [[Capability]] internal slot of executor to promiseCapability. 6. Let promise be Construct(C, «executor»). 7. ReturnIfAbrupt(promise). 8. If IsCallable(promiseCapability.[[Resolve]]) is false, throw a TypeError exception. 9. If IsCallable(promiseCapability.[[Reject]]) is false, throw a TypeError exception. ... --- 2749
ctx-ctor-throws.js --- description: > `Promise.race` invoked on a constructor value that throws an error es6id: 25.4.4.3 info: | 1. Let C be the this value. [...] 6. Let promiseCapability be NewPromiseCapability(C). 7. ReturnIfAbrupt(promiseCapability). 25.4.1.5 NewPromiseCapability [...] 6. Let promise be Construct(C, «executor»). 7. ReturnIfAbrupt(promise). --- 698
ctx-ctor.js --- description: > `Promise.race` invoked on a constructor value es6id: 25.4.4.3 info: | 1. Let C be the this value. [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 10. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 13. Return Completion(result). features: [class] --- 988
ctx-non-ctor.js --- description: > `Promise.race` invoked on a non-constructor value es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). 7. ReturnIfAbrupt(promiseCapability). 25.4.1.5 NewPromiseCapability ( C ) 1. If IsConstructor(C) is false, throw a TypeError exception. --- 553
ctx-non-object.js --- description: > `Promise.race` invoked on a non-object value es6id: 25.4.4.3 info: | 1. Let C be the this value. 2. If Type(C) is not Object, throw a TypeError exception. features: [Symbol] --- 829
invoke-resolve-error-close.js --- description: > Explicit iterator closing in response to error from `Promise.resolve` esid: sec-promise.race info: | [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). 12. If result is an abrupt completion, then a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator,result). b. IfAbruptRejectPromise(result, promiseCapability). 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] h. Let nextPromise be Invoke(C, "resolve", «nextValue»). i. ReturnIfAbrupt(nextPromise). features: [Symbol.iterator] --- 1196
invoke-resolve-error-reject.js --- description: Promise rejection in response to error from `Promise.resolve` esid: sec-promise.race info: | [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). 12. If result is an abrupt completion, then a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator,result). b. IfAbruptRejectPromise(result, promiseCapability). 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] h. Let nextPromise be Invoke(C, "resolve", «nextValue»). i. ReturnIfAbrupt(nextPromise). flags: [async] --- 1145
invoke-resolve-get-error-reject.js --- description: > Error retrieving the constructor's `resolve` method (promise rejection) esid: sec-promise.race info: | 11. Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability). 12. If result is an abrupt completion, a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator, result). b. IfAbruptRejectPromise(result, promiseCapability). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] h. Let nextPromise be Invoke(C, "resolve", «nextValue»). i. ReturnIfAbrupt(nextPromise). flags: [async] --- 1120
invoke-resolve-get-error.js --- esid: sec-promise.race description: > Promise.resolve is retrieved before GetIterator call (abrupt lookup). info: | Promise.race ( iterable ) [...] 3. Let promiseResolve be GetPromiseResolve(C). 4. IfAbruptRejectPromise(promiseResolve, promiseCapability). GetPromiseResolve ( promiseConstructor ) [...] 2. Let promiseResolve be ? Get(promiseConstructor, "resolve"). flags: [async] features: [Symbol.iterator] --- 1019
invoke-resolve-get-once-multiple-calls.js --- description: > Gets constructor's `resolve` method once from zero to many invocations. esid: sec-promise.race info: | Runtime Semantics: PerformPromiseRace 1. Let promiseResolve be ? Get(constructor, `"resolve"`). 1. If IsCallable(promiseResolve) is false, throw a TypeError exception. ... 1. Repeat, ... 1. Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). --- 1168
invoke-resolve-get-once-no-calls.js --- description: > Gets constructor's `resolve` method once from zero to many invocations. esid: sec-promise.race info: | Runtime Semantics: PerformPromiseRace 1. Let promiseResolve be ? Get(constructor, `"resolve"`). 1. If IsCallable(promiseResolve) is false, throw a TypeError exception. ... 1. Repeat, ... 1. Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). --- 1032
invoke-resolve-on-promises-every-iteration-of-custom.js --- description: > Invocation of the constructor's `resolve` method for iterable with promise values esid: sec-promise.race info: | Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability, promiseResolve). PerformPromiseRace Repeat ... i. Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). flags: [async] features: [class, arrow-function] --- 1257
invoke-resolve-on-promises-every-iteration-of-promise.js --- description: > Invocation of the constructor's `resolve` method for iterable with promise values esid: sec-promise.race info: | Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability, promiseResolve). PerformPromiseRace Repeat ... i. Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). flags: [async] features: [arrow-function] --- 901
invoke-resolve-on-values-every-iteration-of-promise.js --- description: > Invocation of the constructor's `resolve` method for iterable with non-promise values esid: sec-promise.race info: | Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability, promiseResolve). PerformPromiseRace Repeat ... i. Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). flags: [async] features: [arrow-function] --- 916
invoke-resolve-return.js --- description: Use of the value returned by the constructor's `resolve` method. es6id: 25.4.4.1 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] h. Let nextPromise be Invoke(C, "resolve", «nextValue»). [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). [...] --- 1269
invoke-resolve.js --- description: > Invocation of the constructor's `resolve` method es6id: 25.4.4.3 info: | 11. Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] h. Let nextPromise be Invoke(C, "resolve", «nextValue»). --- 1265
invoke-then-error-close.js --- description: > Error thrown when invoking the instance's `then` method (closing iterator) esid: sec-promise.race info: | 11. Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability). 12. If result is an abrupt completion, a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator, result). b. IfAbruptRejectPromise(result, promiseCapability). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). k. ReturnIfAbrupt(result). features: [Symbol.iterator] --- 1293
invoke-then-error-reject.js --- description: > Error thrown when invoking the instance's `then` method (rejecting promise) esid: sec-promise.race info: | 11. Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability). 12. If result is an abrupt completion, a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator, result). b. IfAbruptRejectPromise(result, promiseCapability). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). k. ReturnIfAbrupt(result). flags: [async] --- 1163
invoke-then-get-error-close.js --- description: > Error thrown when accessing the instance's `then` method (closing iterator) esid: sec-promise.race info: | 11. Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability). 12. If result is an abrupt completion, a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator, result). b. IfAbruptRejectPromise(result, promiseCapability). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). k. ReturnIfAbrupt(result). features: [Symbol.iterator] --- 1333
invoke-then-get-error-reject.js --- description: > Error thrown when accessing the instance's `then` method (rejecting promise) esid: sec-promise.race info: | 11. Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability). 12. If result is an abrupt completion, a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator, result). b. IfAbruptRejectPromise(result, promiseCapability). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). k. ReturnIfAbrupt(result). flags: [async] --- 1203
invoke-then.js --- description: > Invocation of the instance's `then` method es6id: 25.4.4.3 info: | 11. Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). k. ReturnIfAbrupt(result). --- 1570
iter-arg-is-false-reject.js --- esid: sec-promise.race description: > Reject when argument is `false` info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 907
iter-arg-is-null-reject.js --- esid: sec-promise.race description: > Reject when argument is `null` info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 905
iter-arg-is-number-reject.js --- esid: sec-promise.race description: > Reject when argument is a number info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 904
iter-arg-is-string-resolve.js --- esid: sec-promise.race description: > Resolve when argument is a string info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 893
iter-arg-is-symbol-reject.js --- esid: sec-promise.race description: > Reject when argument is a symbol info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 911
iter-arg-is-true-reject.js --- esid: sec-promise.race description: > Reject when argument is `true` info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 905
iter-arg-is-undefined-reject.js --- esid: sec-promise.race description: > Reject when argument is `undefined` info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 915
iter-assigned-false-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator property has the value false info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 972
iter-assigned-null-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator property has the value null info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 970
iter-assigned-number-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator property has the value 1 info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 964
iter-assigned-string-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator property has the value "" info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 966
iter-assigned-symbol-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator property has the value Symbol() info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 978
iter-assigned-true-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator property has the value true info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 970
iter-assigned-undefined-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator property has the value undefined info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 980
iter-next-val-err-no-close.js --- description: > Error when accessing an iterator result's `value` property (not closing iterator) esid: sec-promise.race info: | 11. Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability). 12. If result is an abrupt completion, a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator, result). b. IfAbruptRejectPromise(result, promiseCapability). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] e. Let nextValue be IteratorValue(next). f. If nextValue is an abrupt completion, set iteratorRecord.[[done]] to true. g. ReturnIfAbrupt(nextValue). features: [Symbol.iterator] --- 1360
iter-next-val-err-reject.js --- description: > Error when accessing an iterator result's `value` property (rejecting promise) esid: sec-promise.race info: | 11. Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability). 12. If result is an abrupt completion, a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator, result). b. IfAbruptRejectPromise(result, promiseCapability). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] e. Let nextValue be IteratorValue(next). f. If nextValue is an abrupt completion, set iteratorRecord.[[done]] to true. g. ReturnIfAbrupt(nextValue). features: [Symbol.iterator] flags: [async] --- 1398
iter-returns-false-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator returns false info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 980
iter-returns-null-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator returns null info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 978
iter-returns-number-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator returns a number info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 979
iter-returns-string-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator returns a string info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 980
iter-returns-symbol-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator returns a symbol info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 986
iter-returns-true-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator returns true info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 978
iter-returns-undefined-reject.js --- esid: sec-promise.race description: > Reject when argument's Symbol.iterator returns undefined info: | ... Let iteratorRecord be GetIterator(iterable). IfAbruptRejectPromise(iteratorRecord, promiseCapability). ... #sec-getiterator GetIterator ( obj [ , hint [ , method ] ] ) ... Let iterator be ? Call(method, obj). If Type(iterator) is not Object, throw a TypeError exception. ... features: [Symbol.iterator] flags: [async] --- 988
iter-step-err-no-close.js --- description: > Error when advancing the provided iterable (not closing iterator) esid: sec-promise.race info: | [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). 12. If result is an abrupt completion, then a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator,result). b. IfAbruptRejectPromise(result, promiseCapability). 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). features: [Symbol.iterator] --- 1452
iter-step-err-reject.js --- description: > Error when advancing the provided iterable (rejecting promise) esid: sec-promise.race info: | [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). 12. If result is an abrupt completion, then a. If iteratorRecord.[[done]] is false, let result be IteratorClose(iterator,result). b. IfAbruptRejectPromise(result, promiseCapability). 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). features: [Symbol.iterator] flags: [async] --- 1491
length.js --- es6id: 25.4.4.3 description: Promise.race `length` property info: | ES6 Section 17: Every built-in Function object, including constructors, has a length property whose value is an integer. Unless otherwise specified, this value is equal to the largest number of named arguments shown in the subclause headings for the function description, including optional parameters. [...] Unless otherwise specified, the length property of a built-in Function object has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] --- 905
name.js --- es6id: 25.4.4.3 description: Promise.race `name` property info: | ES6 Section 17: Every built-in Function object, including constructors, that is not identified as an anonymous function has a name property whose value is a String. Unless otherwise specified, this value is the name that is given to the function in this specification. [...] Unless otherwise specified, the name property of a built-in Function object, if it exists, has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] --- 886
not-a-constructor.js --- esid: sec-ecmascript-standard-built-in-objects description: > Promise.race does not implement [[Construct]], is not new-able info: | ECMAScript Function Objects Built-in function objects that are not identified as constructors do not implement the [[Construct]] internal method unless otherwise specified in the description of a particular function. sec-evaluatenew ... 7. If IsConstructor(constructor) is false, throw a TypeError exception. ... includes: [isConstructor.js] features: [Reflect.construct, arrow-function] --- 872
prop-desc.js --- es6id: 25.4.4.3_A1.2_T1 author: Jordan Harband description: Promise.race property descriptor info: | ES6 Section 17 Every other data property described in clauses 18 through 26 and in Annex B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified. includes: [propertyHelper.js] --- 586
reject-deferred.js --- description: Rejecting through deferred invocation of the provided resolving function es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.1 Promise Reject Functions [...] 6. Return RejectPromise(promise, reason). flags: [async] --- 1074
reject-from-same-thenable.js --- esid: sec-performpromiserace description: > Promise.race does not prevent resolve from being called multiple times. info: | PerformPromiseRace Repeat, Let next be IteratorStep(iteratorRecord). If next is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(next). If next is false, then Set iteratorRecord.[[Done]] to true. Return resultCapability.[[Promise]]. Let nextValue be IteratorValue(next). If nextValue is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(nextValue). Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], resultCapability.[[Reject]] »). includes: [promiseHelper.js] --- 1628
reject-ignored-deferred.js --- description: > Resolved promises ignore rejections through deferred invocation of the provided resolving function es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.1 Promise Reject Functions [...] 2. Let promise be the value of F's [[Promise]] internal slot. 3. Let alreadyResolved be the value of F's [[AlreadyResolved]] internal slot. 4. If alreadyResolved.[[value]] is true, return undefined. flags: [async] --- 1463
reject-ignored-immed.js --- description: > Resolved promises ignore rejections through immediate invocation of the provided resolving function es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.1 Promise Reject Functions [...] 2. Let promise be the value of F's [[Promise]] internal slot. 3. Let alreadyResolved be the value of F's [[AlreadyResolved]] internal slot. 4. If alreadyResolved.[[value]] is true, return undefined. flags: [async] --- 1258
reject-immed.js --- description: Rejecting through immediate invocation of the provided resolving function es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.1 Promise Reject Functions [...] 6. Return RejectPromise(promise, reason). flags: [async] --- 972
resolve-from-same-thenable.js --- esid: sec-performpromiserace description: > Promise.race does not prevent resolve from being called multiple times. info: | PerformPromiseRace Repeat, Let next be IteratorStep(iteratorRecord). If next is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(next). If next is false, then Set iteratorRecord.[[Done]] to true. Return resultCapability.[[Promise]]. Let nextValue be IteratorValue(next). If nextValue is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(nextValue). Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], resultCapability.[[Reject]] »). includes: [promiseHelper.js] --- 1620
resolve-ignores-late-rejection-deferred.js --- description: > Resolved promises ignore rejections through deferred invocation of the provided resolving function esid: sec-promise.race info: | Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability, promiseResolve). PerformPromiseRace Repeat ... Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], resultCapability.[[Reject]] »). flags: [async] features: [arrow-function] includes: [promiseHelper.js] --- 1157
resolve-ignores-late-rejection.js --- description: > Resolved promises ignore rejections through immediate invocation of the provided resolving function esid: sec-promise.race info: | Let result be PerformPromiseRace(iteratorRecord, C, promiseCapability, promiseResolve). PerformPromiseRace Repeat ... Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], resultCapability.[[Reject]] »). flags: [async] features: [arrow-function] --- 884
resolve-non-callable.js --- esid: sec-promise.race description: > Promise.resolve is retrieved before GetIterator call (non-callable). info: | Promise.race ( iterable ) [...] 3. Let promiseResolve be GetPromiseResolve(C). 4. IfAbruptRejectPromise(promiseResolve, promiseCapability). GetPromiseResolve ( promiseConstructor ) [...] 2. Let promiseResolve be ? Get(promiseConstructor, "resolve"). 3. If IsCallable(promiseResolve) is false, throw a TypeError exception. flags: [async] features: [Symbol.iterator] --- 1006
resolve-non-obj.js --- description: Resolving with a non-object value es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.2 Promise Resolve Functions [...] 7. If Type(resolution) is not Object, then a. Return FulfillPromise(promise, resolution). flags: [async] --- 1108
resolve-non-thenable.js --- description: Resolving with a non-thenable object value es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.2 Promise Resolve Functions [...] 8. Let then be Get(resolution, "then"). 9. If then is an abrupt completion, then [...] 10. Let thenAction be then.[[value]]. 11. If IsCallable(thenAction) is false, then a. Return FulfillPromise(promise, resolution). flags: [async] --- 1282
resolve-poisoned-then.js --- description: Resolving with an object with a "poisoned" `then` property es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.2 Promise Resolve Functions [...] 8. Let then be Get(resolution, "then"). 9. If then is an abrupt completion, then a. Return RejectPromise(promise, then.[[value]]). flags: [async] --- 1304
resolve-prms-cstm-then.js --- description: Resolving with a resolved Promise instance whose `then` method has been overridden es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.2 Promise Resolve Functions [...] 8. Let then be Get(resolution, "then"). 9. If then is an abrupt completion, then [...] 10. Let thenAction be then.[[value]]. 11. If IsCallable(thenAction) is false, then [...] 12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob, «promise, resolution, thenAction») flags: [async] --- 1531
resolve-self.js --- description: Resolving with a reference to the promise itself es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.2 Promise Resolve Functions [...] 6. If SameValue(resolution, promise) is true, then a. Let selfResolutionError be a newly created TypeError object. b. Return RejectPromise(promise, selfResolutionError). flags: [async] --- 1497
resolve-thenable.js --- description: Resolving with a thenable object value es6id: 25.4.4.3 info: | [...] 6. Let promiseCapability be NewPromiseCapability(C). [...] 11. Let result be PerformPromiseRace(iteratorRecord, promiseCapability, C). [...] 25.4.4.3.1 Runtime Semantics: PerformPromiseRace 1. Repeat [...] j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). 25.4.1.3.2 Promise Resolve Functions [...] 8. Let then be Get(resolution, "then"). 9. If then is an abrupt completion, then [...] 10. Let thenAction be then.[[value]]. 11. If IsCallable(thenAction) is false, then [...] 12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob, «promise, resolution, thenAction») flags: [async] --- 1437
resolved-sequence-extra-ticks.js --- esid: sec-promise.race description: Resolution ticks are set in a predictable sequence with extra then calls info: | PerformPromiseRace Repeat, Let next be IteratorStep(iteratorRecord). If next is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(next). If next is false, then Set iteratorRecord.[[Done]] to true. Return resultCapability.[[Promise]]. Let nextValue be IteratorValue(next). If nextValue is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(nextValue). Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], resultCapability.[[Reject]] »). flags: [async] includes: [promiseHelper.js] --- 1306
resolved-sequence-mixed.js --- esid: sec-promise.race description: > Resolution ticks are set in a predictable sequence of mixed fulfilled and rejected promises info: | PerformPromiseRace Repeat, Let next be IteratorStep(iteratorRecord). If next is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(next). If next is false, then Set iteratorRecord.[[Done]] to true. Return resultCapability.[[Promise]]. Let nextValue be IteratorValue(next). If nextValue is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(nextValue). Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], resultCapability.[[Reject]] »). flags: [async] includes: [promiseHelper.js] --- 1491
resolved-sequence-with-rejections.js --- esid: sec-promise.race description: Resolution ticks are set in a predictable sequence info: | PerformPromiseRace Repeat, Let next be IteratorStep(iteratorRecord). If next is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(next). If next is false, then Set iteratorRecord.[[Done]] to true. Return resultCapability.[[Promise]]. Let nextValue be IteratorValue(next). If nextValue is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(nextValue). Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], resultCapability.[[Reject]] »). flags: [async] includes: [compareArray.js, promiseHelper.js] --- 1745
resolved-sequence.js --- esid: sec-promise.race description: Resolution ticks are set in a predictable sequence info: | PerformPromiseRace Repeat, Let next be IteratorStep(iteratorRecord). If next is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(next). If next is false, then Set iteratorRecord.[[Done]] to true. Return resultCapability.[[Promise]]. Let nextValue be IteratorValue(next). If nextValue is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(nextValue). Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], resultCapability.[[Reject]] »). flags: [async] includes: [compareArray.js,promiseHelper.js] --- 1733
resolved-then-catch-finally.js --- esid: sec-promise.race description: > Resolution the first resolved promise info: | PerformPromiseRace Repeat, Let next be IteratorStep(iteratorRecord). If next is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(next). If next is false, then Set iteratorRecord.[[Done]] to true. Return resultCapability.[[Promise]]. Let nextValue be IteratorValue(next). If nextValue is an abrupt completion, set iteratorRecord.[[Done]] to true. ReturnIfAbrupt(nextValue). Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »). Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], resultCapability.[[Reject]] »). flags: [async] --- 1472
S25.4.4.3_A1.1_T1.js --- info: Promise.race is callable es6id: S25.4.4.3_A1.1_T1 author: Sam Mikes description: Promise.race is callable --- 353
S25.4.4.3_A2.1_T1.js --- info: Promise.race returns a new promise es6id: S25.4.4.3_A2.1_T1 author: Sam Mikes description: Promise.race returns a new promise --- 381
S25.4.4.3_A2.2_T1.js --- info: Promise.race rejects on non-iterable argument es6id: S25.4.4.3_A2.2_T1 author: Sam Mikes description: Promise.race rejects if argument is not object or is non-iterable flags: [async] --- 636
S25.4.4.3_A2.2_T2.js --- info: Promise.race rejects on non-iterable argument es6id: S25.4.4.3_A2.2_T2 author: Sam Mikes description: Promise.race rejects if argument is not object or is non-iterable flags: [async] --- 626
S25.4.4.3_A2.2_T3.js --- info: | Promise.race rejects when GetIterator() returns an abrupt completion 4. Let iterator be GetIterator(iterable). 5. IfAbruptRejectPromise(iterator, promiseCapability) es6id: S25.4.4.3_A2.2_T3 author: Sam Mikes description: Promise.race rejects if GetIterator throws features: [Symbol.iterator] flags: [async] --- 877
S25.4.4.3_A3.1_T1.js --- info: | Promise.race throws on invalid 'this' Note: must have at least one element in array, or else Promise.race never exercises the code that throws es6id: S25.4.4.3_A3.1_T1 author: Sam Mikes description: Promise.race throws if 'this' does not conform to Promise constructor --- 535
S25.4.4.3_A3.1_T2.js --- info: | Promise.race must throw TypeError per CreatePromiseCapabilityRecord step 8 when promiseCapabliity.[[Resolve]] is not callable es6id: S25.4.4.3_A3.1_T2 author: Sam Mikes description: Promise.race throws TypeError, even on empty array, when 'this' does not conform to Promise constructor --- 586
S25.4.4.3_A4.1_T1.js --- es6id: S25.4.4.3_A4.1_T1 author: Sam Mikes description: Promise.race rejects if IteratorStep throws features: [Symbol.iterator] flags: [async] --- 723
S25.4.4.3_A4.1_T2.js --- es6id: S25.4.4.3_A4.1_T2 author: Sam Mikes description: Promise.race rejects if IteratorStep throws features: [Symbol.iterator] flags: [async] --- 906
S25.4.4.3_A5.1_T1.js --- es6id: S25.4.4.3_A5.1_T1 author: Sam Mikes description: Promise.race([]) never settles flags: [async] --- 546
S25.4.4.3_A6.1_T1.js --- es6id: S25.4.4.3_A6.1_T1 author: Sam Mikes description: Promise.race([1]) settles immediately includes: [promiseHelper.js] flags: [async] --- 791
S25.4.4.3_A6.2_T1.js --- es6id: S25.4.4.3_A6.2_T1 author: Sam Mikes description: Promise.race([p1]) settles immediately includes: [promiseHelper.js] flags: [async] --- 1038
S25.4.4.3_A7.1_T1.js --- es6id: S25.4.4.3_A7.1_T1 author: Sam Mikes description: Promise.race([p1, p2]) settles when first settles includes: [promiseHelper.js] flags: [async] --- 1099
S25.4.4.3_A7.1_T2.js --- es6id: S25.4.4.3_A7.1_T2 author: Sam Mikes description: Promise.race([p1, p2]) settles when first settles includes: [promiseHelper.js] flags: [async] --- 1107
S25.4.4.3_A7.1_T3.js --- es6id: S25.4.4.3_A7.1_T3 author: Sam Mikes description: Promise.race([p1, p2]) settles when first settles includes: [promiseHelper.js] flags: [async] --- 1107
S25.4.4.3_A7.2_T1.js --- es6id: S25.4.4.3_A7.2_T1 author: Sam Mikes description: Promise.race([p1, p2]) settles when first settles includes: [promiseHelper.js] flags: [async] --- 1189
S25.4.4.3_A7.3_T1.js --- es6id: S25.4.4.3_A7.3_T1 author: Sam Mikes description: Promise.race([p1, p2]) settles when first settles flags: [async] --- 653
S25.4.4.3_A7.3_T2.js --- es6id: S25.4.4.3_A7.3_T2 author: Sam Mikes description: Promise.race([p1, p2]) settles when first settles flags: [async] --- 676
same-reject-function.js --- es6id: 25.4.4.3.1 description: > Each Promise.race element is called with the same reject function. info: | Runtime Semantics: PerformPromiseRace ( iteratorRecord, promiseCapability, C ) ... j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). ... --- 1131
same-resolve-function.js --- es6id: 25.4.4.3.1 description: > Each Promise.race element is called with the same resolve function. info: | Runtime Semantics: PerformPromiseRace ( iteratorRecord, promiseCapability, C ) ... j. Let result be Invoke(nextPromise, "then", «promiseCapability.[[Resolve]], promiseCapability.[[Reject]]»). ... --- 1138
shell.js 0
species-get-error.js --- description: > Promise.race() does not retrieve `Symbol.species` property of the `this` value es6id: 25.4.4.3 info: | 1. Let C be the this value. 2. If Type(C) is not Object, throw a TypeError exception. 3. Let promiseCapability be ? NewPromiseCapability(C). ... features: [Symbol.species] --- 759