browser.js |
|
0 |
call-resolve-element-after-return.js |
---
es6id: 25.4.4.1.2
description: >
Cannot change result value of resolved Promise.all element after Promise.all() returned.
info: |
Promise.all Resolve Element Functions
1. Let alreadyCalled be the value of F's [[AlreadyCalled]] internal slot.
2. If alreadyCalled.[[value]] is true, return undefined.
3. Set alreadyCalled.[[value]] to true.
...
--- |
1551 |
call-resolve-element-items.js |
---
es6id: 25.4.4.1.2
description: >
Cannot change result value of resolved Promise.all elements.
info: |
Promise.all Resolve Element Functions
1. Let alreadyCalled be the value of F's [[AlreadyCalled]] internal slot.
2. If alreadyCalled.[[value]] is true, return undefined.
3. Set alreadyCalled.[[value]] to true.
...
--- |
1391 |
call-resolve-element.js |
---
es6id: 25.4.4.1.2
description: >
Cannot change result value of resolved Promise.all element.
info: |
Promise.all Resolve Element Functions
1. Let alreadyCalled be the value of F's [[AlreadyCalled]] internal slot.
2. If alreadyCalled.[[value]] is true, return undefined.
3. Set alreadyCalled.[[value]] to true.
...
--- |
1173 |
capability-executor-called-twice.js |
---
esid: sec-promise.all
description: >
Throws a TypeError if capabilities executor already called with non-undefined values.
info: |
Promise.all ( iterable )
...
6. Let promiseCapability be NewPromiseCapability(C).
7. ReturnIfAbrupt(promiseCapability).
...
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.
...
PerformPromiseAll ( iteratorRecord, constructor, resultCapability )
...
1. Let promiseResolve be ? Get(constructor, `"resolve"`).
1. If IsCallable(promiseResolve) is *false*, throw a *TypeError* exception.
...
--- |
3074 |
capability-executor-not-callable.js |
---
es6id: 25.4.4.1
description: >
Throws a TypeError if either resolve or reject capability is not callable.
info: |
Promise.all ( 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.
...
--- |
3206 |
capability-resolve-throws-no-close.js |
---
esid: sec-promise.all
description: >
Iterator is not closed when the "resolve" capability returns an abrupt
completion.
info: |
1. Let C be the this value.
[...]
3. Let promiseCapability be ? NewPromiseCapability(C).
[...]
7. Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
8. 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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
d. If next is false, then
[...]
iii. If remainingElementsCount.[[Value]] is 0, then
1. Let valuesArray be CreateArrayFromList(values).
2. Perform ? Call(resultCapability.[[Resolve]], undefined, «
valuesArray »).
25.4.1.1.1 IfAbruptRejectPromise
IfAbruptRejectPromise is a short hand for a sequence of algorithm steps that
use a PromiseCapability Record. An algorithm step of the form:
1. IfAbruptRejectPromise(value, capability).
means the same thing as:
1. If value is an abrupt completion, then
a. Perform ? Call(capability.[[Reject]], undefined, « value.[[Value]] »).
b. Return capability.[[Promise]].
2. Else if value is a Completion Record, let value be value.[[Value]].
features: [Symbol.iterator]
--- |
2128 |
capability-resolve-throws-reject.js |
---
esid: sec-promise.all
description: >
Promise is rejected when the "resolve" capability returns an abrupt
completion.
info: |
1. Let C be the this value.
[...]
3. Let promiseCapability be ? NewPromiseCapability(C).
[...]
7. Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
8. 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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
d. If next is false, then
[...]
iii. If remainingElementsCount.[[Value]] is 0, then
1. Let valuesArray be CreateArrayFromList(values).
2. Perform ? Call(resultCapability.[[Resolve]], undefined, «
valuesArray »).
25.4.1.1.1 IfAbruptRejectPromise
IfAbruptRejectPromise is a short hand for a sequence of algorithm steps that
use a PromiseCapability Record. An algorithm step of the form:
1. IfAbruptRejectPromise(value, capability).
means the same thing as:
1. If value is an abrupt completion, then
a. Perform ? Call(capability.[[Reject]], undefined, « value.[[Value]] »).
b. Return capability.[[Promise]].
2. Else if value is a Completion Record, let value be value.[[Value]].
flags: [async]
--- |
1998 |
ctx-ctor-throws.js |
---
description: >
`Promise.all` invoked on a constructor value that throws an error
es6id: 25.4.4.1
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).
--- |
696 |
ctx-ctor.js |
---
description: >
`Promise.all` invoked on a constructor value
es6id: 25.4.4.1
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 PerformPromiseAll(iteratorRecord, C, promiseCapability).
[...]
13. Return Completion(result).
features: [class]
--- |
985 |
ctx-non-ctor.js |
---
description: >
`Promise.all` invoked on a non-constructor value
es6id: 25.4.4.1
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.
--- |
551 |
ctx-non-object.js |
---
description: >
`Promise.all` invoked on a non-object value
es6id: 25.4.4.1
info: |
1. Let C be the this value.
2. If Type(C) is not Object, throw a TypeError exception.
features: [Symbol]
--- |
822 |
does-not-invoke-array-setters.js |
---
es6id: 25.4.4.1.1
description: >
Indexed setter properties on Array.prototype are not invoked.
info: |
Runtime Semantics: PerformPromiseAll( iteratorRecord, constructor, resultCapability)
...
4. Let remainingElementsCount be a new Record { [[value]]: 1 }.
...
6.d ...
ii. Set remainingElementsCount.[[value]] to remainingElementsCount.[[value]] − 1.
iii. If remainingElementsCount.[[value]] is 0,
1. Let valuesArray be CreateArrayFromList(values).
...
...
7.3.16 CreateArrayFromList (elements)
...
4. For each element e of elements
a. Let status be CreateDataProperty(array, ToString(n), e).
b. Assert: status is true.
...
flags: [async]
--- |
1060 |
invoke-resolve-error-close.js |
---
description: >
Explicit iterator closing in response to error
esid: sec-promise.all
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
i. Let nextPromise be Invoke(constructor, "resolve", «nextValue»).
j. ReturnIfAbrupt(nextPromise ).
features: [Symbol.iterator]
--- |
1183 |
invoke-resolve-error-reject.js |
---
description: Promise rejection in response to error
esid: sec-promise.all
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
i. Let nextPromise be Invoke(constructor, "resolve", «nextValue»).
j. ReturnIfAbrupt(nextPromise ).
flags: [async]
--- |
1145 |
invoke-resolve-get-error-reject.js |
---
description: >
Error retrieving the constructor's `resolve` method (rejecting promise)
esid: sec-performpromiseall
info: |
11. Let result be PerformPromiseAll(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).
[...]
Runtime Semantics: PerformPromiseAll
...
1. Let promiseResolve be ? Get(constructor, `"resolve"`).
...
1. Repeat,
1. Let next be IteratorStep(iteratorRecord).
...
1. Let nextPromise be ? Call(promiseResolve, constructor, < nextValue >).
flags: [async]
--- |
1210 |
invoke-resolve-get-error.js |
---
esid: sec-promise.all
description: >
Promise.resolve is retrieved before GetIterator call (abrupt lookup).
info: |
Promise.all ( 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]
--- |
1016 |
invoke-resolve-get-once-multiple-calls.js |
---
description: >
Gets constructor's `resolve` method once from zero to many invocations.
esid: sec-promise.all
info: |
Runtime Semantics: PerformPromiseAll
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 »).
--- |
1165 |
invoke-resolve-get-once-no-calls.js |
---
description: >
Gets constructor's `resolve` method once from zero to many invocations.
esid: sec-promise.all
info: |
Runtime Semantics: PerformPromiseAll
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 »).
--- |
1029 |
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.all
info: |
Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
Runtime Semantics: PerformPromiseAll
Repeat
...
Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »).
flags: [async]
features: [class, arrow-function]
--- |
1249 |
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.all
info: |
Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
Runtime Semantics: PerformPromiseAll
Repeat
...
i. Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »).
flags: [async]
features: [arrow-function]
--- |
894 |
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.all
info: |
Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
Runtime Semantics: PerformPromiseAll
Repeat
...
i. Let nextPromise be ? Call(promiseResolve, constructor, « nextValue »).
flags: [async]
features: [arrow-function]
--- |
909 |
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 PerformPromiseAll(iteratorRecord, promiseCapability, C).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
i. Let nextPromise be Invoke(constructor, "resolve", «nextValue»).
[...]
r. Let result be Invoke(nextPromise, "then", resolveElement,
promiseCapability.[[Reject]]»).
[...]
--- |
1268 |
invoke-resolve.js |
---
description: >
Invocation of the constructor's `resolve` method
es6id: 25.4.4.1
info: |
11. Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
i. Let nextPromise be Invoke(constructor, "resolve", «nextValue»).
--- |
1278 |
invoke-then-error-close.js |
---
description: >
Error thrown when invoking the instance's `then` method (closing iterator)
esid: sec-performpromiseall
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
r. Let result be Invoke(nextPromise, "then", «resolveElement,
resultCapability.[[Reject]]»).
s. ReturnIfAbrupt(result).
features: [Symbol.iterator]
--- |
1331 |
invoke-then-error-reject.js |
---
description: >
Error thrown when invoking the instance's `then` method (rejecting Promise)
esid: sec-performpromiseall
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
r. Let result be Invoke(nextPromise, "then", «resolveElement,
resultCapability.[[Reject]]»).
s. ReturnIfAbrupt(result).
flags: [async]
--- |
1201 |
invoke-then-get-error-close.js |
---
description: >
Error thrown when accesing the instance's `then` method (closing iterator)
esid: sec-performpromiseall
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
r. Let result be Invoke(nextPromise, "then", «resolveElement,
resultCapability.[[Reject]]»).
s. ReturnIfAbrupt(result).
features: [Symbol.iterator]
--- |
1329 |
invoke-then-get-error-reject.js |
---
description: >
Error thrown when accessing the instance's `then` method (rejecting Promise)
esid: sec-performpromiseall
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
r. Let result be Invoke(nextPromise, "then", «resolveElement,
resultCapability.[[Reject]]»).
s. ReturnIfAbrupt(result).
flags: [async]
--- |
1199 |
invoke-then.js |
---
description: >
Invocation of the instance's `then` method
es6id: 25.4.4.1
info: |
11. Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
r. Let result be Invoke(nextPromise, "then", «resolveElement,
resultCapability.[[Reject]]»).
--- |
1526 |
iter-arg-is-false-reject.js |
---
esid: sec-promise.all
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]
--- |
905 |
iter-arg-is-null-reject.js |
---
esid: sec-promise.all
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]
--- |
903 |
iter-arg-is-number-reject.js |
---
esid: sec-promise.all
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]
--- |
902 |
iter-arg-is-string-resolve.js |
---
esid: sec-promise.all
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]
--- |
895 |
iter-arg-is-symbol-reject.js |
---
esid: sec-promise.all
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]
--- |
909 |
iter-arg-is-true-reject.js |
---
esid: sec-promise.all
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]
--- |
903 |
iter-arg-is-undefined-reject.js |
---
esid: sec-promise.all
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]
--- |
913 |
iter-assigned-false-reject.js |
---
esid: sec-promise.all
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]
--- |
970 |
iter-assigned-null-reject.js |
---
esid: sec-promise.all
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]
--- |
968 |
iter-assigned-number-reject.js |
---
esid: sec-promise.all
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]
--- |
962 |
iter-assigned-string-reject.js |
---
esid: sec-promise.all
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]
--- |
964 |
iter-assigned-symbol-reject.js |
---
esid: sec-promise.all
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]
--- |
976 |
iter-assigned-true-reject.js |
---
esid: sec-promise.all
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]
--- |
968 |
iter-assigned-undefined-reject.js |
---
esid: sec-promise.all
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]
--- |
978 |
iter-next-val-err-no-close.js |
---
esid: sec-promise.all
description: >
Error when accessing an iterator result's `value` property (not closing
iterator)
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. 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]
--- |
1383 |
iter-next-val-err-reject.js |
---
esid: sec-promise.all
description: >
Error when accessing an iterator result's `value` property (rejecting
promise)
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. 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]
--- |
1404 |
iter-returns-false-reject.js |
---
esid: sec-promise.all
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]
--- |
978 |
iter-returns-null-reject.js |
---
esid: sec-promise.all
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]
--- |
976 |
iter-returns-number-reject.js |
---
esid: sec-promise.all
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]
--- |
977 |
iter-returns-string-reject.js |
---
esid: sec-promise.all
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]
--- |
978 |
iter-returns-symbol-reject.js |
---
esid: sec-promise.all
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]
--- |
984 |
iter-returns-true-reject.js |
---
esid: sec-promise.all
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]
--- |
976 |
iter-returns-undefined-reject.js |
---
esid: sec-promise.all
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]
--- |
986 |
iter-step-err-no-close.js |
---
esid: sec-promise.all
description: >
Error when advancing the provided iterable (not closing iterator)
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. 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]
--- |
1488 |
iter-step-err-reject.js |
---
esid: sec-promise.all
description: >
Error when advancing the provided iterable (rejecting promise)
info: |
11. Let result be PerformPromiseAll(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.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. 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]
--- |
1492 |
length.js |
---
es6id: 25.4.4.1
description: Promise.all `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]
--- |
903 |
name.js |
---
es6id: 25.4.4.1
description: Promise.all `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]
--- |
883 |
new-resolve-function.js |
---
es6id: 25.4.4.1.1
description: >
Each Promise.all element is called with a new Promise.all Resolve Element function.
info: |
Runtime Semantics: PerformPromiseAll( iteratorRecord, constructor, resultCapability)
...
k. Let resolveElement be a new built-in function object as defined in Promise.all Resolve Element Functions.
...
r. Let result be Invoke(nextPromise, "then", «resolveElement, resultCapability.[[Reject]]»).
...
--- |
1407 |
not-a-constructor.js |
---
esid: sec-ecmascript-standard-built-in-objects
description: >
Promise.all 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]
--- |
868 |
prop-desc.js |
---
es6id: 25.4.4.1_A1.3_T1
author: Jordan Harband
description: Promise.all 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]
--- |
582 |
reject-deferred.js |
---
description: Rejecting through deferred invocation of the provided resolving function
es6id: 25.4.4.1
info: |
[...]
6. Let promiseCapability be NewPromiseCapability(C).
[...]
11. Let result be PerformPromiseAll(iteratorRecord, promiseCapability, C).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
r. Let result be Invoke(nextPromise, "then", resolveElement,
promiseCapability.[[Reject]]»).
25.4.1.3.1 Promise Reject Functions
[...]
6. Return RejectPromise(promise, reason).
flags: [async]
--- |
1065 |
reject-ignored-deferred.js |
---
description: >
Resolved promises ignore rejections through deferred invocation of the
provided resolving function
es6id: 25.4.4.1
info: |
[...]
6. Let promiseCapability be NewPromiseCapability(C).
[...]
11. Let result be PerformPromiseAll(iteratorRecord, promiseCapability, C).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
r. Let result be Invoke(nextPromise, "then", resolveElement,
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]
--- |
1478 |
reject-ignored-immed.js |
---
description: >
Resolved promises ignore rejections through immediate invocation of the
provided resolving function
es6id: 25.4.4.1
info: |
[...]
6. Let promiseCapability be NewPromiseCapability(C).
[...]
11. Let result be PerformPromiseAll(iteratorRecord, promiseCapability, C).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
r. Let result be Invoke(nextPromise, "then", resolveElement,
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]
--- |
1277 |
reject-immed.js |
---
description: Rejecting through immediate invocation of the provided resolving function
es6id: 25.4.4.1
info: |
[...]
6. Let promiseCapability be NewPromiseCapability(C).
[...]
11. Let result be PerformPromiseAll(iteratorRecord, promiseCapability, C).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
r. Let result be Invoke(nextPromise, "then", resolveElement,
promiseCapability.[[Reject]]»).
25.4.1.3.1 Promise Reject Functions
[...]
6. Return RejectPromise(promise, reason).
flags: [async]
--- |
963 |
resolve-before-loop-exit-from-same.js |
---
es6id: 25.4.4.1.1
description: >
Cannot tamper remainingElementsCount when Promise.all resolve element function is called twice in a row.
info: |
Runtime Semantics: PerformPromiseAll( iteratorRecord, constructor, resultCapability)
...
4. Let remainingElementsCount be a new Record { [[value]]: 1 }.
...
6.d ...
ii. Set remainingElementsCount.[[value]] to remainingElementsCount.[[value]] − 1.
iii. If remainingElementsCount.[[value]] is 0,
1. Let valuesArray be CreateArrayFromList(values).
2. Let resolveResult be Call(resultCapability.[[Resolve]], undefined, «valuesArray»).
3. ReturnIfAbrupt(resolveResult).
...
25.4.4.1.2 Promise.all Resolve Element Functions
1. Let alreadyCalled be the value of F's [[AlreadyCalled]] internal slot.
2. If alreadyCalled.[[value]] is true, return undefined.
3. Set alreadyCalled.[[value]] to true.
...
--- |
2180 |
resolve-before-loop-exit.js |
---
es6id: 25.4.4.1.1
description: >
Cannot tamper remainingElementsCount when two Promise.all resolve element functions are called in succession.
info: |
Runtime Semantics: PerformPromiseAll( iteratorRecord, constructor, resultCapability)
...
4. Let remainingElementsCount be a new Record { [[value]]: 1 }.
...
6.d ...
ii. Set remainingElementsCount.[[value]] to remainingElementsCount.[[value]] − 1.
iii. If remainingElementsCount.[[value]] is 0,
1. Let valuesArray be CreateArrayFromList(values).
2. Let resolveResult be Call(resultCapability.[[Resolve]], undefined, «valuesArray»).
3. ReturnIfAbrupt(resolveResult).
...
25.4.4.1.2 Promise.all Resolve Element Functions
1. Let alreadyCalled be the value of F's [[AlreadyCalled]] internal slot.
2. If alreadyCalled.[[value]] is true, return undefined.
3. Set alreadyCalled.[[value]] to true.
...
--- |
2081 |
resolve-element-function-extensible.js |
---
es6id: 25.4.4.1.2
description: The [[Extensible]] slot of Promise.all Resolve Element functions
info: |
17 ECMAScript Standard Built-in Objects:
Unless specified otherwise, the [[Extensible]] internal slot
of a built-in object initially has the value true.
--- |
774 |
resolve-element-function-length.js |
---
es6id: 25.4.4.1.2
description: The `length` property of Promise.all Resolve Element functions
info: |
The length property of a Promise.all resolve element function is 1.
17 ECMAScript Standard Built-in Objects:
Unless otherwise specified, the length property of a built-in Function
object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
[[Configurable]]: true }.
includes: [propertyHelper.js]
--- |
1009 |
resolve-element-function-name.js |
---
esid: sec-promise.all-resolve-element-functions
description: The `name` property of Promise.all Resolve Element functions
info: |
A promise resolve function is an anonymous built-in function.
17 ECMAScript Standard Built-in Objects:
Every built-in function object, including constructors, has a `name`
property whose value is a String. Functions that are identified as
anonymous functions use the empty string as the value of the `name`
property.
Unless otherwise specified, the `name` property of a built-in function
object has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*,
[[Configurable]]: *true* }.
includes: [propertyHelper.js]
--- |
1260 |
resolve-element-function-nonconstructor.js |
---
es6id: 25.4.4.1.2
description: Promise.all Resolve Element functions are not constructors
info: |
17 ECMAScript Standard Built-in 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.
--- |
970 |
resolve-element-function-property-order.js |
---
esid: sec-createbuiltinfunction
description: Promise.all resolve element function property order
info: |
Set order: "length", "name"
--- |
882 |
resolve-element-function-prototype.js |
---
es6id: 25.4.4.1.2
description: The [[Prototype]] of Promise.all Resolve Element functions
info: |
17 ECMAScript Standard Built-in Objects:
Unless otherwise specified every built-in function and every built-in
constructor has the Function prototype object, which is the initial
value of the expression Function.prototype (19.2.3), as the value of
its [[Prototype]] internal slot.
--- |
936 |
resolve-from-same-thenable.js |
---
es6id: 25.4.4.1.1
description: >
Cannot tamper remainingElementsCount when Promise.all resolve element function is called multiple times.
info: |
Runtime Semantics: PerformPromiseAll( iteratorRecord, constructor, resultCapability)
...
4. Let remainingElementsCount be a new Record { [[value]]: 1 }.
...
6.d ...
ii. Set remainingElementsCount.[[value]] to remainingElementsCount.[[value]] − 1.
iii. If remainingElementsCount.[[value]] is 0,
1. Let valuesArray be CreateArrayFromList(values).
2. Let resolveResult be Call(resultCapability.[[Resolve]], undefined, «valuesArray»).
3. ReturnIfAbrupt(resolveResult).
...
25.4.4.1.2 Promise.all Resolve Element Functions
1. Let alreadyCalled be the value of F's [[AlreadyCalled]] internal slot.
2. If alreadyCalled.[[value]] is true, return undefined.
3. Set alreadyCalled.[[value]] to true.
...
--- |
2390 |
resolve-ignores-late-rejection-deferred.js |
---
description: >
Resolved promises ignore rejections through deferred invocation of the
provided resolving function
esid: sec-promise.any
info: |
Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
Runtime Semantics: PerformPromiseAll
Repeat
...
r. Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], rejectElement »).
flags: [async]
features: [arrow-function]
--- |
1044 |
resolve-ignores-late-rejection.js |
---
description: >
Resolved promises ignore rejections through immediate invocation of the
provided resolving function
esid: sec-promise.all
info: |
Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
Runtime Semantics: PerformPromiseAll
Repeat
...
r. Perform ? Invoke(nextPromise, "then", « resultCapability.[[Resolve]], rejectElement »).
flags: [async]
features: [arrow-function]
--- |
914 |
resolve-non-callable.js |
---
esid: sec-promise.all
description: >
Promise.resolve is retrieved before GetIterator call (non-callable).
info: |
Promise.all ( 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]
--- |
1003 |
resolve-non-thenable.js |
---
description: Resolving with a non-thenable object value
es6id: 25.4.4.1
info: |
[...]
6. Let promiseCapability be NewPromiseCapability(C).
[...]
11. Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
d. If next is false,
[...]
iii. If remainingElementsCount.[[value]] is 0,
1. Let valuesArray be CreateArrayFromList(values).
2. Let resolveResult be Call(resultCapability.[[Resolve]],
undefined, «valuesArray»).
3. ReturnIfAbrupt(resolveResult)
iv. Return resultCapability.[[Promise]].
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]
--- |
2142 |
resolve-not-callable-reject-with-typeerror.js |
---
esid: sec-promise.all
description: >
If the constructor's `resolve` method is not callable, reject with a TypeError.
info: |
Let result be PerformPromiseAny(iteratorRecord, C, promiseCapability).
Runtime Semantics: PerformPromiseAny
Let promiseResolve be ? Get(constructor, "resolve").
If ! IsCallable(promiseResolve) is false, throw a TypeError exception.
flags: [async]
features: [arrow-function]
--- |
767 |
resolve-poisoned-then.js |
---
description: Resolving with an object with a "poisoned" `then` property
es6id: 25.4.4.1
info: |
[...]
6. Let promiseCapability be NewPromiseCapability(C).
[...]
11. Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
d. If next is false,
[...]
iii. If remainingElementsCount.[[value]] is 0,
1. Let valuesArray be CreateArrayFromList(values).
2. Let resolveResult be Call(resultCapability.[[Resolve]],
undefined, «valuesArray»).
3. ReturnIfAbrupt(resolveResult)
iv. Return resultCapability.[[Promise]].
7.3.16 CreateArrayFromList (elements)
[...]
2. Let array be ArrayCreate(0) (see 9.4.2.2).
9.4.2.2 ArrayCreate(length, proto)
[...]
4. If the proto argument was not passed, let proto be the intrinsic object
%ArrayPrototype%.
5. Let A be a newly created Array exotic object.
[...]
8. Set the [[Prototype]] internal slot of A to proto.
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]
--- |
1951 |
resolve-thenable.js |
---
description: Resolving with a thenable object value
es6id: 25.4.4.1
info: |
[...]
6. Let promiseCapability be NewPromiseCapability(C).
[...]
11. Let result be PerformPromiseAll(iteratorRecord, C, promiseCapability).
[...]
25.4.4.1.1 Runtime Semantics: PerformPromiseAll
[...]
6. Repeat
[...]
d. If next is false,
[...]
iii. If remainingElementsCount.[[value]] is 0,
1. Let valuesArray be CreateArrayFromList(values).
2. Let resolveResult be Call(resultCapability.[[Resolve]],
undefined, «valuesArray»).
3. ReturnIfAbrupt(resolveResult)
iv. Return resultCapability.[[Promise]].
7.3.16 CreateArrayFromList (elements)
[...]
2. Let array be ArrayCreate(0) (see 9.4.2.2).
9.4.2.2 ArrayCreate(length, proto)
[...]
4. If the proto argument was not passed, let proto be the intrinsic object
%ArrayPrototype%.
5. Let A be a newly created Array exotic object.
[...]
8. Set the [[Prototype]] internal slot of A to proto.
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]
--- |
2048 |
S25.4.4.1_A1.1_T1.js |
---
info: Promise.all is callable
es6id: 25.4.4.1_A1.1_T1
author: Sam Mikes
description: Promise.all is callable
--- |
348 |
S25.4.4.1_A2.1_T1.js |
---
info: Promise.all([]) is a Promise
es6id: 25.4.4.1_A2.1_T1
author: Sam Mikes
description: Promise.all returns a Promise
--- |
367 |
S25.4.4.1_A2.2_T1.js |
---
info: Promise.all([]) is resolved immediately
es6id: 25.4.4.1_A2.2_T1
author: Sam Mikes
includes: [promiseHelper.js]
description: Promise.all([]) returns immediately
flags: [async]
--- |
644 |
S25.4.4.1_A2.3_T1.js |
---
info: Promise.all([]) returns a promise for a new empty array
es6id: 25.4.4.1_A2.3_T1
author: Sam Mikes
description: Promise.all([]) returns a promise for an array
flags: [async]
--- |
485 |
S25.4.4.1_A2.3_T2.js |
---
info: Promise.all is resolved with a new empty array
es6id: 25.4.4.1_A2.3_T2
author: Sam Mikes
description: Promise.all([]) returns a Promise for an empty array
flags: [async]
--- |
464 |
S25.4.4.1_A2.3_T3.js |
---
info: Promise.all([]) is resolved with Promise for a new empty array
es6id: 25.4.4.1_A2.3_T3
author: Sam Mikes
description: Promise.all([]) is resolved with a Promise for a new array
flags: [async]
--- |
501 |
S25.4.4.1_A3.1_T1.js |
---
info: |
Promise.all expects an iterable argument;
ref 7.4.1 non-Object fails CheckIterable
ref 7.4.2 GetIterator throws TypeError if CheckIterable fails
es6id: 25.4.4.1_A3.1_T1
author: Sam Mikes
description: Promise.all(3) returns Promise rejected with TypeError
flags: [async]
--- |
734 |
S25.4.4.1_A3.1_T2.js |
---
info: |
Promise.all expects an iterable argument;
fails if recieves an abrupt completion
ref 7.4.1 non-Object fails CheckIterable
ref 7.4.2 GetIterator throws TypeError if CheckIterable fails
es6id: S25.4.4.1_A3.1_T2
author: Sam Mikes
description: Promise.all(new Error()) returns Promise rejected with TypeError
flags: [async]
--- |
779 |
S25.4.4.1_A3.1_T3.js |
---
info: |
Promise.all expects an iterable argument;
fails if GetIterator returns an abrupt completion.
es6id: S25.4.4.1_A3.1_T3
author: Sam Mikes
description: Promise.all((throw on GetIterator)) returns Promise rejected with TypeError
features: [Symbol.iterator]
flags: [async]
--- |
842 |
S25.4.4.1_A4.1_T1.js |
---
info: |
Promise.all should throw if 'this' does not conform to Promise constructor
es6id: S25.4.4.1_A4.1_T1
description: this must conform to Promise constructor in Promise.all
author: Sam Mikes
--- |
443 |
S25.4.4.1_A5.1_T1.js |
---
info: |
Promise.all expects an iterable argument;
rejects if IteratorStep() throws
es6id: S25.4.4.1_A5.1_T1
author: Sam Mikes
description: iterator.next throws, causing Promise.all to reject
features: [Symbol.iterator]
flags: [async]
--- |
819 |
S25.4.4.1_A7.1_T1.js |
---
info: |
Promise.all with 1-element array
should accept an array with settled promise
es6id: S25.4.4.1_A6.1_T2
author: Sam Mikes
description: Promise.all([p1]) is resolved with a promise for a one-element array
flags: [async]
--- |
847 |
S25.4.4.1_A7.2_T1.js |
---
info: |
Promise.all with 1-element array
should accept an array with settled promise
es6id: S25.4.4.1_A7.2_T1
author: Sam Mikes
description: Promise.all() accepts a one-element array
includes: [promiseHelper.js]
flags: [async]
--- |
982 |
S25.4.4.1_A8.1_T1.js |
---
es6id: S25.4.4.1_A8.1_T1
author: Sam Mikes
description: Promise.all([p1, p2]) resolution functions are called in predictable sequence
includes: [promiseHelper.js]
flags: [async]
--- |
975 |
S25.4.4.1_A8.2_T1.js |
---
info: |
Promise.all with 2-element array
es6id: S25.4.4.1_A8.1_T1
author: Sam Mikes
description: Promise.all() rejects when a promise in its array rejects
flags: [async]
--- |
668 |
S25.4.4.1_A8.2_T2.js |
---
info: |
Promise.all with 2-element array
es6id: S25.4.4.1_A8.2_T2
author: Sam Mikes
description: Promise.all() rejects when second promise in array rejects
flags: [async]
--- |
662 |
same-reject-function.js |
---
es6id: 25.4.4.1.1
description: >
Each Promise.all element is called with the same reject function.
info: |
Runtime Semantics: PerformPromiseAll( iteratorRecord, constructor, resultCapability)
...
r. Let result be Invoke(nextPromise, "then", «resolveElement, resultCapability.[[Reject]]»).
...
--- |
1119 |
shell.js |
|
0 |
species-get-error.js |
---
description: >
Promise.all() does not retrieve `Symbol.species` property of the `this` value
es6id: 25.4.4.1
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]
--- |
739 |