mirror of https://github.com/tc39/test262.git
Merge pull request #504 from bocoup/explicit-async
Make asynchronous test configuration explicit
This commit is contained in:
commit
5357b1585b
|
@ -128,6 +128,8 @@ This tag is for boolean properties associated with the test.
|
||||||
- **`raw`** - execute the test without any modification (no helpers will be
|
- **`raw`** - execute the test without any modification (no helpers will be
|
||||||
available); necessary to test the behavior of directive prologue; implies
|
available); necessary to test the behavior of directive prologue; implies
|
||||||
`noStrict`
|
`noStrict`
|
||||||
|
- **`async`** - defer interpretation of test results until after the invocation
|
||||||
|
of the global $DONE` function
|
||||||
|
|
||||||
#### features
|
#### features
|
||||||
**features**: [list]
|
**features**: [list]
|
||||||
|
@ -198,7 +200,7 @@ assert.throws(ReferenceError, function() {
|
||||||
|
|
||||||
## Writing Asynchronous Tests
|
## Writing Asynchronous Tests
|
||||||
|
|
||||||
An asynchronous test is any test that includes the string `$DONE` anywhere in the test file. The test runner checks for the presence of this string; if it is found, the runner expects that the `$DONE()` function will be called to signal test completion.
|
An asynchronous test is any test that include the `async` frontmatter flag. When executing such tests, the runner expects that the global `$DONE()` function will be called to signal test completion.
|
||||||
|
|
||||||
* If the argument to `$DONE` is omitted, is `undefined`, or is any other falsy value, the test is considered to have passed.
|
* If the argument to `$DONE` is omitted, is `undefined`, or is any other falsy value, the test is considered to have passed.
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ info: >
|
||||||
es6id: S25.4.3.1_A2.3_T1
|
es6id: S25.4.3.1_A2.3_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.call(resolved Promise) throws TypeError
|
description: Promise.call(resolved Promise) throws TypeError
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var p = new Promise(function(resolve) { resolve(1); });
|
var p = new Promise(function(resolve) { resolve(1); });
|
||||||
|
|
|
@ -7,6 +7,7 @@ info: >
|
||||||
es6id: S25.4.3.1_A2.4_T1
|
es6id: S25.4.3.1_A2.4_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.call(rejected Promise) throws TypeError
|
description: Promise.call(rejected Promise) throws TypeError
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var p = new Promise(function(resolve, reject) { reject(1) });
|
var p = new Promise(function(resolve, reject) { reject(1) });
|
||||||
|
|
|
@ -8,6 +8,7 @@ info: >
|
||||||
es6id: S25.4.3.1_A4.1_T1
|
es6id: S25.4.3.1_A4.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: new Promise(function () { throw }) should reject
|
description: new Promise(function () { throw }) should reject
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var errorObject = {},
|
var errorObject = {},
|
||||||
|
|
|
@ -9,7 +9,7 @@ info: >
|
||||||
es6id: S25.4.3.1_A5.1_T1
|
es6id: S25.4.3.1_A5.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise executor gets default handling for 'this'
|
description: Promise executor gets default handling for 'this'
|
||||||
flags: [noStrict]
|
flags: [async, noStrict]
|
||||||
includes: [fnGlobalObject.js]
|
includes: [fnGlobalObject.js]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ info: >
|
||||||
es6id: S25.4.3.1_A5.1_T2
|
es6id: S25.4.3.1_A5.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise executor gets default handling for 'this'
|
description: Promise executor gets default handling for 'this'
|
||||||
flags: [onlyStrict]
|
flags: [async, onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var expectedThis = undefined;
|
var expectedThis = undefined;
|
||||||
|
|
|
@ -7,6 +7,7 @@ es6id: 25.4.4.1_A2.2_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
description: Promise.all([]) returns immediately
|
description: Promise.all([]) returns immediately
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [];
|
var sequence = [];
|
||||||
|
|
|
@ -6,6 +6,7 @@ info: Promise.all([]) returns a promise for a new empty array
|
||||||
es6id: 25.4.4.1_A2.3_T1
|
es6id: 25.4.4.1_A2.3_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all([]) returns a promise for an array
|
description: Promise.all([]) returns a promise for an array
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var arg = [];
|
var arg = [];
|
||||||
|
|
|
@ -6,6 +6,7 @@ info: Promise.all is resolved with a new empty array
|
||||||
es6id: 25.4.4.1_A2.3_T2
|
es6id: 25.4.4.1_A2.3_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all([]) returns a Promise for an empty array
|
description: Promise.all([]) returns a Promise for an empty array
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var arg = [];
|
var arg = [];
|
||||||
|
|
|
@ -6,6 +6,7 @@ info: Promise.all([]) is resolved with Promise for a new empty array
|
||||||
es6id: 25.4.4.1_A2.3_T3
|
es6id: 25.4.4.1_A2.3_T3
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all([]) is resolved with a Promise for a new array
|
description: Promise.all([]) is resolved with a Promise for a new array
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var arg = [];
|
var arg = [];
|
||||||
|
|
|
@ -9,6 +9,7 @@ info: >
|
||||||
es6id: 25.4.4.1_A3.1_T1
|
es6id: 25.4.4.1_A3.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all(3) returns Promise rejected with TypeError
|
description: Promise.all(3) returns Promise rejected with TypeError
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var nonIterable = 3;
|
var nonIterable = 3;
|
||||||
|
|
|
@ -10,6 +10,7 @@ info: >
|
||||||
es6id: S25.4.4.1_A3.1_T2
|
es6id: S25.4.4.1_A3.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all(new Error()) returns Promise rejected with TypeError
|
description: Promise.all(new Error()) returns Promise rejected with TypeError
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Promise.all(new Error("abrupt")).then(function () {
|
Promise.all(new Error("abrupt")).then(function () {
|
||||||
|
|
|
@ -9,6 +9,7 @@ es6id: S25.4.4.1_A3.1_T3
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all((throw on GetIterator)) returns Promise rejected with TypeError
|
description: Promise.all((throw on GetIterator)) returns Promise rejected with TypeError
|
||||||
features: [Symbol.iterator]
|
features: [Symbol.iterator]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iterThrows = {};
|
var iterThrows = {};
|
||||||
|
|
|
@ -9,6 +9,7 @@ es6id: S25.4.4.1_A5.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: iterator.next throws, causing Promise.all to reject
|
description: iterator.next throws, causing Promise.all to reject
|
||||||
features: [Symbol.iterator]
|
features: [Symbol.iterator]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iterThrows = {};
|
var iterThrows = {};
|
||||||
|
|
|
@ -8,6 +8,7 @@ info: >
|
||||||
es6id: S25.4.4.1_A6.1_T2
|
es6id: S25.4.4.1_A6.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all([]) returns a promise for an empty array
|
description: Promise.all([]) returns a promise for an empty array
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var p = Promise.all([]);
|
var p = Promise.all([]);
|
||||||
|
|
|
@ -8,6 +8,7 @@ info: >
|
||||||
es6id: S25.4.4.1_A6.1_T2
|
es6id: S25.4.4.1_A6.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all([p1]) is resolved with a promise for a one-element array
|
description: Promise.all([p1]) is resolved with a promise for a one-element array
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var p1 = Promise.resolve(3);
|
var p1 = Promise.resolve(3);
|
||||||
|
|
|
@ -9,6 +9,7 @@ es6id: S25.4.4.1_A7.2_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all() accepts a one-element array
|
description: Promise.all() accepts a one-element array
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [];
|
var sequence = [];
|
||||||
|
|
|
@ -6,6 +6,7 @@ es6id: S25.4.4.1_A8.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all([p1, p2]) resolution functions are called in predictable sequence
|
description: Promise.all([p1, p2]) resolution functions are called in predictable sequence
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [];
|
var sequence = [];
|
||||||
|
|
|
@ -8,6 +8,7 @@ es6id: S25.4.4.1_A8.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all() rejects when a promise in its array rejects
|
description: Promise.all() rejects when a promise in its array rejects
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var rejectP1,
|
var rejectP1,
|
||||||
|
|
|
@ -8,6 +8,7 @@ es6id: S25.4.4.1_A8.2_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.all() rejects when second promise in array rejects
|
description: Promise.all() rejects when second promise in array rejects
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var rejectP2,
|
var rejectP2,
|
||||||
|
|
|
@ -24,6 +24,7 @@ info: >
|
||||||
a. Let status be CreateDataProperty(array, ToString(n), e).
|
a. Let status be CreateDataProperty(array, ToString(n), e).
|
||||||
b. Assert: status is true.
|
b. Assert: status is true.
|
||||||
...
|
...
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Object.defineProperty(Array.prototype, 0, {
|
Object.defineProperty(Array.prototype, 0, {
|
||||||
|
|
|
@ -21,6 +21,7 @@ info: >
|
||||||
[...]
|
[...]
|
||||||
i. Let nextPromise be Invoke(constructor, "resolve", «nextValue»).
|
i. Let nextPromise be Invoke(constructor, "resolve", «nextValue»).
|
||||||
j. ReturnIfAbrupt(nextPromise ).
|
j. ReturnIfAbrupt(nextPromise ).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var error = new Test262Error();
|
var error = new Test262Error();
|
||||||
|
|
|
@ -22,6 +22,7 @@ info: >
|
||||||
r. Let result be Invoke(nextPromise, "then", «resolveElement,
|
r. Let result be Invoke(nextPromise, "then", «resolveElement,
|
||||||
resultCapability.[[Reject]]»).
|
resultCapability.[[Reject]]»).
|
||||||
s. ReturnIfAbrupt(result).
|
s. ReturnIfAbrupt(result).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var promise = new Promise(function() {});
|
var promise = new Promise(function() {});
|
||||||
|
|
|
@ -24,6 +24,7 @@ info: >
|
||||||
true.
|
true.
|
||||||
g. ReturnIfAbrupt(nextValue).
|
g. ReturnIfAbrupt(nextValue).
|
||||||
features: [Symbol.iterator]
|
features: [Symbol.iterator]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iterNextValThrows = {};
|
var iterNextValThrows = {};
|
||||||
|
|
|
@ -23,6 +23,7 @@ info: >
|
||||||
true.
|
true.
|
||||||
c. ReturnIfAbrupt(next).
|
c. ReturnIfAbrupt(next).
|
||||||
features: [Symbol.iterator]
|
features: [Symbol.iterator]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iterStepThrows = {};
|
var iterStepThrows = {};
|
||||||
|
|
|
@ -20,6 +20,7 @@ info: >
|
||||||
25.4.1.3.1 Promise Reject Functions
|
25.4.1.3.1 Promise Reject Functions
|
||||||
[...]
|
[...]
|
||||||
6. Return RejectPromise(promise, reason).
|
6. Return RejectPromise(promise, reason).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var thenable = {
|
var thenable = {
|
||||||
|
|
|
@ -25,6 +25,7 @@ info: >
|
||||||
3. Let alreadyResolved be the value of F's [[AlreadyResolved]] internal
|
3. Let alreadyResolved be the value of F's [[AlreadyResolved]] internal
|
||||||
slot.
|
slot.
|
||||||
4. If alreadyResolved.[[value]] is true, return undefined.
|
4. If alreadyResolved.[[value]] is true, return undefined.
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var fulfiller = {
|
var fulfiller = {
|
||||||
|
|
|
@ -25,6 +25,7 @@ info: >
|
||||||
3. Let alreadyResolved be the value of F's [[AlreadyResolved]] internal
|
3. Let alreadyResolved be the value of F's [[AlreadyResolved]] internal
|
||||||
slot.
|
slot.
|
||||||
4. If alreadyResolved.[[value]] is true, return undefined.
|
4. If alreadyResolved.[[value]] is true, return undefined.
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var fulfiller = {
|
var fulfiller = {
|
||||||
|
|
|
@ -20,6 +20,7 @@ info: >
|
||||||
25.4.1.3.1 Promise Reject Functions
|
25.4.1.3.1 Promise Reject Functions
|
||||||
[...]
|
[...]
|
||||||
6. Return RejectPromise(promise, reason).
|
6. Return RejectPromise(promise, reason).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var thenable = {
|
var thenable = {
|
||||||
|
|
|
@ -31,6 +31,7 @@ info: >
|
||||||
10. Let thenAction be then.[[value]].
|
10. Let thenAction be then.[[value]].
|
||||||
11. If IsCallable(thenAction) is false, then
|
11. If IsCallable(thenAction) is false, then
|
||||||
a. Return FulfillPromise(promise, resolution).
|
a. Return FulfillPromise(promise, resolution).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var v1 = {};
|
var v1 = {};
|
||||||
|
|
|
@ -40,6 +40,7 @@ info: >
|
||||||
8. Let then be Get(resolution, "then").
|
8. Let then be Get(resolution, "then").
|
||||||
9. If then is an abrupt completion, then
|
9. If then is an abrupt completion, then
|
||||||
a. Return RejectPromise(promise, then.[[value]]).
|
a. Return RejectPromise(promise, then.[[value]]).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -45,6 +45,7 @@ info: >
|
||||||
[...]
|
[...]
|
||||||
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
||||||
«promise, resolution, thenAction»)
|
«promise, resolution, thenAction»)
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -15,6 +15,7 @@ info: >
|
||||||
a. Let status be Call(resolvingFunctions.[[Reject]], undefined, «completion.[[value]]»).
|
a. Let status be Call(resolvingFunctions.[[Reject]], undefined, «completion.[[value]]»).
|
||||||
b. ReturnIfAbrupt(status).
|
b. ReturnIfAbrupt(status).
|
||||||
...
|
...
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var thenable = {
|
var thenable = {
|
||||||
|
|
|
@ -14,6 +14,7 @@ info: >
|
||||||
a. Let status be Call(resolvingFunctions.[[Reject]], undefined, «thenCallResult.[[value]]»)
|
a. Let status be Call(resolvingFunctions.[[Reject]], undefined, «thenCallResult.[[value]]»)
|
||||||
b. NextJob Completion(status).
|
b. NextJob Completion(status).
|
||||||
...
|
...
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var thenable = {
|
var thenable = {
|
||||||
|
|
|
@ -7,6 +7,7 @@ info: >
|
||||||
es6id: S25.4.5.1_A3.1_T1
|
es6id: S25.4.5.1_A3.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: catch is implemented in terms of then
|
description: catch is implemented in terms of then
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
|
@ -7,6 +7,7 @@ info: >
|
||||||
es6id: S25.4.5.1_A3.1_T2
|
es6id: S25.4.5.1_A3.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: catch is implemented in terms of then
|
description: catch is implemented in terms of then
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
|
@ -9,6 +9,7 @@ es6id: S25.4.2.1_A3.2_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise onResolved functions are called in predictable sequence
|
description: Promise onResolved functions are called in predictable sequence
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [];
|
var sequence = [];
|
||||||
|
|
|
@ -10,6 +10,7 @@ es6id: S25.4.4_A2.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise onResolved functions are called in predictable sequence
|
description: Promise onResolved functions are called in predictable sequence
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var resolveP1, rejectP2, sequence = [];
|
var resolveP1, rejectP2, sequence = [];
|
||||||
|
|
|
@ -10,6 +10,7 @@ es6id: S25.4.4_A2.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise onResolved functions are called in predictable sequence
|
description: Promise onResolved functions are called in predictable sequence
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var resolveP1, rejectP2, p1, p2,
|
var resolveP1, rejectP2, p1, p2,
|
||||||
|
|
|
@ -10,6 +10,7 @@ es6id: S25.4.4_A2.1_T3
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise onResolved functions are called in predictable sequence
|
description: Promise onResolved functions are called in predictable sequence
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var resolveP1, rejectP2, p1, p2,
|
var resolveP1, rejectP2, p1, p2,
|
||||||
|
|
|
@ -8,6 +8,7 @@ info: >
|
||||||
es6id: S25.4.5.3_A4.1_T1
|
es6id: S25.4.5.3_A4.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.prototype.then accepts 'undefined' as arg1, arg2
|
description: Promise.prototype.then accepts 'undefined' as arg1, arg2
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
|
@ -8,6 +8,7 @@ info: >
|
||||||
es6id: S25.4.5.3_A4.1_T2
|
es6id: S25.4.5.3_A4.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.prototype.then accepts 'undefined' as arg1, arg2
|
description: Promise.prototype.then accepts 'undefined' as arg1, arg2
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
|
@ -8,6 +8,7 @@ info: >
|
||||||
es6id: S25.4.5.3_A4.2_T1
|
es6id: S25.4.5.3_A4.2_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.prototype.then treats non-callable arg1, arg2 as undefined
|
description: Promise.prototype.then treats non-callable arg1, arg2 as undefined
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
|
@ -8,6 +8,7 @@ info: >
|
||||||
es6id: S25.4.5.3_A4.2_T2
|
es6id: S25.4.5.3_A4.2_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.prototype.then treats non-callable arg1, arg2 as undefined
|
description: Promise.prototype.then treats non-callable arg1, arg2 as undefined
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
|
@ -9,6 +9,7 @@ es6id: S25.4.5.3_A5.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.prototype.then enqueues handler if pending
|
description: Promise.prototype.then enqueues handler if pending
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [],
|
var sequence = [],
|
||||||
|
|
|
@ -9,6 +9,7 @@ es6id: S25.4.5.3_A5.2_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.prototype.then immediately queues handler if fulfilled
|
description: Promise.prototype.then immediately queues handler if fulfilled
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [],
|
var sequence = [],
|
||||||
|
|
|
@ -9,6 +9,7 @@ es6id: S25.4.5.3_A5.3_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.prototype.then immediately queues handler if rejected
|
description: Promise.prototype.then immediately queues handler if rejected
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [],
|
var sequence = [],
|
||||||
|
|
|
@ -34,6 +34,7 @@ info: >
|
||||||
8. Let status be Call(promiseCapability.[[Resolve]], undefined, «handlerResult.[[value]]»).
|
8. Let status be Call(promiseCapability.[[Resolve]], undefined, «handlerResult.[[value]]»).
|
||||||
9. NextJob Completion(status).
|
9. NextJob Completion(status).
|
||||||
features: [class]
|
features: [class]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var createBadPromise = false;
|
var createBadPromise = false;
|
||||||
|
|
|
@ -16,6 +16,7 @@ info: >
|
||||||
b. Perform EnqueueJob("PromiseJobs", PromiseReactionJob,
|
b. Perform EnqueueJob("PromiseJobs", PromiseReactionJob,
|
||||||
«fulfillReaction, value»).
|
«fulfillReaction, value»).
|
||||||
[...]
|
[...]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -16,6 +16,7 @@ info: >
|
||||||
b. Append rejectReaction as the last element of the List that is the
|
b. Append rejectReaction as the last element of the List that is the
|
||||||
value of promise's [[PromiseRejectReactions]] internal slot.
|
value of promise's [[PromiseRejectReactions]] internal slot.
|
||||||
[...]
|
[...]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -16,6 +16,7 @@ info: >
|
||||||
b. Append rejectReaction as the last element of the List that is the
|
b. Append rejectReaction as the last element of the List that is the
|
||||||
value of promise's [[PromiseRejectReactions]] internal slot.
|
value of promise's [[PromiseRejectReactions]] internal slot.
|
||||||
[...]
|
[...]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -16,6 +16,7 @@ info: >
|
||||||
b. Perform EnqueueJob("PromiseJobs", PromiseReactionJob,
|
b. Perform EnqueueJob("PromiseJobs", PromiseReactionJob,
|
||||||
«rejectReaction, reason»).
|
«rejectReaction, reason»).
|
||||||
[...]
|
[...]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -18,6 +18,7 @@ info: >
|
||||||
25.4.1.3.1 Promise Reject Functions
|
25.4.1.3.1 Promise Reject Functions
|
||||||
[...]
|
[...]
|
||||||
6. Return RejectPromise(promise, reason).
|
6. Return RejectPromise(promise, reason).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var resolve;
|
var resolve;
|
||||||
|
|
|
@ -19,6 +19,7 @@ info: >
|
||||||
25.4.1.3.1 Promise Reject Functions
|
25.4.1.3.1 Promise Reject Functions
|
||||||
[...]
|
[...]
|
||||||
6. Return RejectPromise(promise, reason).
|
6. Return RejectPromise(promise, reason).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var reject;
|
var reject;
|
||||||
|
|
|
@ -26,6 +26,7 @@ info: >
|
||||||
25.4.1.3.1 Promise Reject Functions
|
25.4.1.3.1 Promise Reject Functions
|
||||||
[...]
|
[...]
|
||||||
6. Return RejectPromise(promise, reason).
|
6. Return RejectPromise(promise, reason).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var thenable = new Promise(function(resolve) { resolve(); });
|
var thenable = new Promise(function(resolve) { resolve(); });
|
||||||
|
|
|
@ -26,6 +26,7 @@ info: >
|
||||||
25.4.1.3.1 Promise Reject Functions
|
25.4.1.3.1 Promise Reject Functions
|
||||||
[...]
|
[...]
|
||||||
6. Return RejectPromise(promise, reason).
|
6. Return RejectPromise(promise, reason).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var thenable = new Promise(function(resolve) { resolve(); });
|
var thenable = new Promise(function(resolve) { resolve(); });
|
||||||
|
|
|
@ -18,6 +18,7 @@ info: >
|
||||||
25.4.1.3.2 Promise Resolve Functions
|
25.4.1.3.2 Promise Resolve Functions
|
||||||
7. If Type(resolution) is not Object, then
|
7. If Type(resolution) is not Object, then
|
||||||
a. Return FulfillPromise(promise, resolution).
|
a. Return FulfillPromise(promise, resolution).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var resolve;
|
var resolve;
|
||||||
|
|
|
@ -23,6 +23,7 @@ info: >
|
||||||
10. Let thenAction be then.[[value]].
|
10. Let thenAction be then.[[value]].
|
||||||
11. If IsCallable(thenAction) is false, then
|
11. If IsCallable(thenAction) is false, then
|
||||||
a. Return FulfillPromise(promise, resolution).
|
a. Return FulfillPromise(promise, resolution).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var nonThenable = { then: null };
|
var nonThenable = { then: null };
|
||||||
|
|
|
@ -20,6 +20,7 @@ info: >
|
||||||
8. Let then be Get(resolution, "then").
|
8. Let then be Get(resolution, "then").
|
||||||
9. If then is an abrupt completion, then
|
9. If then is an abrupt completion, then
|
||||||
a. Return RejectPromise(promise, then.[[value]]).
|
a. Return RejectPromise(promise, then.[[value]]).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -20,6 +20,7 @@ info: >
|
||||||
6. If SameValue(resolution, promise) is true, then
|
6. If SameValue(resolution, promise) is true, then
|
||||||
a. Let selfResolutionError be a newly created TypeError object.
|
a. Let selfResolutionError be a newly created TypeError object.
|
||||||
b. Return RejectPromise(promise, selfResolutionError).
|
b. Return RejectPromise(promise, selfResolutionError).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var resolve;
|
var resolve;
|
||||||
|
|
|
@ -25,6 +25,7 @@ info: >
|
||||||
[...]
|
[...]
|
||||||
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
||||||
«promise, resolution, thenAction»)
|
«promise, resolution, thenAction»)
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -19,6 +19,7 @@ info: >
|
||||||
25.4.1.3.2 Promise Resolve Functions
|
25.4.1.3.2 Promise Resolve Functions
|
||||||
7. If Type(resolution) is not Object, then
|
7. If Type(resolution) is not Object, then
|
||||||
a. Return FulfillPromise(promise, resolution).
|
a. Return FulfillPromise(promise, resolution).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var reject;
|
var reject;
|
||||||
|
|
|
@ -24,6 +24,7 @@ info: >
|
||||||
10. Let thenAction be then.[[value]].
|
10. Let thenAction be then.[[value]].
|
||||||
11. If IsCallable(thenAction) is false, then
|
11. If IsCallable(thenAction) is false, then
|
||||||
a. Return FulfillPromise(promise, resolution).
|
a. Return FulfillPromise(promise, resolution).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var nonThenable = { then: null };
|
var nonThenable = { then: null };
|
||||||
|
|
|
@ -21,6 +21,7 @@ info: >
|
||||||
8. Let then be Get(resolution, "then").
|
8. Let then be Get(resolution, "then").
|
||||||
9. If then is an abrupt completion, then
|
9. If then is an abrupt completion, then
|
||||||
a. Return RejectPromise(promise, then.[[value]]).
|
a. Return RejectPromise(promise, then.[[value]]).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -21,6 +21,7 @@ info: >
|
||||||
6. If SameValue(resolution, promise) is true, then
|
6. If SameValue(resolution, promise) is true, then
|
||||||
a. Let selfResolutionError be a newly created TypeError object.
|
a. Let selfResolutionError be a newly created TypeError object.
|
||||||
b. Return RejectPromise(promise, selfResolutionError).
|
b. Return RejectPromise(promise, selfResolutionError).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var reject;
|
var reject;
|
||||||
|
|
|
@ -26,6 +26,7 @@ info: >
|
||||||
[...]
|
[...]
|
||||||
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
||||||
«promise, resolution, thenAction»)
|
«promise, resolution, thenAction»)
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -25,6 +25,7 @@ info: >
|
||||||
25.4.1.3.2 Promise Resolve Functions
|
25.4.1.3.2 Promise Resolve Functions
|
||||||
7. If Type(resolution) is not Object, then
|
7. If Type(resolution) is not Object, then
|
||||||
a. Return FulfillPromise(promise, resolution).
|
a. Return FulfillPromise(promise, resolution).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var p1 = new Promise(function(resolve) { resolve(); });
|
var p1 = new Promise(function(resolve) { resolve(); });
|
||||||
|
|
|
@ -30,6 +30,7 @@ info: >
|
||||||
10. Let thenAction be then.[[value]].
|
10. Let thenAction be then.[[value]].
|
||||||
11. If IsCallable(thenAction) is false, then
|
11. If IsCallable(thenAction) is false, then
|
||||||
a. Return FulfillPromise(promise, resolution).
|
a. Return FulfillPromise(promise, resolution).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var nonThenable = { then: null };
|
var nonThenable = { then: null };
|
||||||
|
|
|
@ -27,6 +27,7 @@ info: >
|
||||||
8. Let then be Get(resolution, "then").
|
8. Let then be Get(resolution, "then").
|
||||||
9. If then is an abrupt completion, then
|
9. If then is an abrupt completion, then
|
||||||
a. Return RejectPromise(promise, then.[[value]]).
|
a. Return RejectPromise(promise, then.[[value]]).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -27,6 +27,7 @@ info: >
|
||||||
6. If SameValue(resolution, promise) is true, then
|
6. If SameValue(resolution, promise) is true, then
|
||||||
a. Let selfResolutionError be a newly created TypeError object.
|
a. Let selfResolutionError be a newly created TypeError object.
|
||||||
b. Return RejectPromise(promise, selfResolutionError).
|
b. Return RejectPromise(promise, selfResolutionError).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var p1 = new Promise(function(resolve) { resolve(); });
|
var p1 = new Promise(function(resolve) { resolve(); });
|
||||||
|
|
|
@ -32,6 +32,7 @@ info: >
|
||||||
[...]
|
[...]
|
||||||
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
||||||
«promise, resolution, thenAction»)
|
«promise, resolution, thenAction»)
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -25,6 +25,7 @@ info: >
|
||||||
25.4.1.3.2 Promise Resolve Functions
|
25.4.1.3.2 Promise Resolve Functions
|
||||||
7. If Type(resolution) is not Object, then
|
7. If Type(resolution) is not Object, then
|
||||||
a. Return FulfillPromise(promise, resolution).
|
a. Return FulfillPromise(promise, resolution).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var p1 = new Promise(function(_, reject) { reject(); });
|
var p1 = new Promise(function(_, reject) { reject(); });
|
||||||
|
|
|
@ -30,6 +30,7 @@ info: >
|
||||||
10. Let thenAction be then.[[value]].
|
10. Let thenAction be then.[[value]].
|
||||||
11. If IsCallable(thenAction) is false, then
|
11. If IsCallable(thenAction) is false, then
|
||||||
a. Return FulfillPromise(promise, resolution).
|
a. Return FulfillPromise(promise, resolution).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var nonThenable = { then: null };
|
var nonThenable = { then: null };
|
||||||
|
|
|
@ -27,6 +27,7 @@ info: >
|
||||||
8. Let then be Get(resolution, "then").
|
8. Let then be Get(resolution, "then").
|
||||||
9. If then is an abrupt completion, then
|
9. If then is an abrupt completion, then
|
||||||
a. Return RejectPromise(promise, then.[[value]]).
|
a. Return RejectPromise(promise, then.[[value]]).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -27,6 +27,7 @@ info: >
|
||||||
6. If SameValue(resolution, promise) is true, then
|
6. If SameValue(resolution, promise) is true, then
|
||||||
a. Let selfResolutionError be a newly created TypeError object.
|
a. Let selfResolutionError be a newly created TypeError object.
|
||||||
b. Return RejectPromise(promise, selfResolutionError).
|
b. Return RejectPromise(promise, selfResolutionError).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var p1 = new Promise(function(_, reject) { reject(); });
|
var p1 = new Promise(function(_, reject) { reject(); });
|
||||||
|
|
|
@ -32,6 +32,7 @@ info: >
|
||||||
[...]
|
[...]
|
||||||
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
12. Perform EnqueueJob ("PromiseJobs", PromiseResolveThenableJob,
|
||||||
«promise, resolution, thenAction»)
|
«promise, resolution, thenAction»)
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -9,7 +9,7 @@ es6id: S25.4.2.1_A3.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: >
|
description: >
|
||||||
"fulfilled" handler invoked correctly outside of strict mode
|
"fulfilled" handler invoked correctly outside of strict mode
|
||||||
flags: [noStrict]
|
flags: [async, noStrict]
|
||||||
includes: [fnGlobalObject.js]
|
includes: [fnGlobalObject.js]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ es6id: S25.4.2.1_A3.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: >
|
description: >
|
||||||
"fulfilled" handler invoked correctly in strict mode
|
"fulfilled" handler invoked correctly in strict mode
|
||||||
flags: [onlyStrict]
|
flags: [async, onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var expectedThis = undefined,
|
var expectedThis = undefined,
|
||||||
|
|
|
@ -12,6 +12,7 @@ info: >
|
||||||
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
||||||
«handlerResult.[[value]]»).
|
«handlerResult.[[value]]»).
|
||||||
9. NextJob Completion(status).
|
9. NextJob Completion(status).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var promise = new Promise(function(resolve) {
|
var promise = new Promise(function(resolve) {
|
||||||
|
|
|
@ -12,6 +12,7 @@ info: >
|
||||||
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
||||||
«handlerResult.[[value]]»).
|
«handlerResult.[[value]]»).
|
||||||
9. NextJob Completion(status).
|
9. NextJob Completion(status).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var promise = new Promise(function(resolve) {
|
var promise = new Promise(function(resolve) {
|
||||||
|
|
|
@ -25,6 +25,7 @@ info: >
|
||||||
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
||||||
«handlerResult.[[value]]»).
|
«handlerResult.[[value]]»).
|
||||||
9. NextJob Completion(status).
|
9. NextJob Completion(status).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -25,6 +25,7 @@ info: >
|
||||||
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
||||||
«handlerResult.[[value]]»).
|
«handlerResult.[[value]]»).
|
||||||
9. NextJob Completion(status).
|
9. NextJob Completion(status).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -7,6 +7,7 @@ info: >
|
||||||
es6id: S25.4.2.1_A1.1_T1
|
es6id: S25.4.2.1_A1.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: argument passes through "Identity"
|
description: argument passes through "Identity"
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
|
@ -9,7 +9,7 @@ es6id: S25.4.2.1_A3.2_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: >
|
description: >
|
||||||
"rejected" handler invoked correctly outside of strict mode
|
"rejected" handler invoked correctly outside of strict mode
|
||||||
flags: [noStrict]
|
flags: [async, noStrict]
|
||||||
includes: [fnGlobalObject.js]
|
includes: [fnGlobalObject.js]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ es6id: S25.4.2.1_A3.2_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: >
|
description: >
|
||||||
"rejected" handler invoked correctly in strict mode
|
"rejected" handler invoked correctly in strict mode
|
||||||
flags: [onlyStrict]
|
flags: [async, onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var expectedThis = undefined,
|
var expectedThis = undefined,
|
||||||
|
|
|
@ -12,6 +12,7 @@ info: >
|
||||||
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
||||||
«handlerResult.[[value]]»).
|
«handlerResult.[[value]]»).
|
||||||
9. NextJob Completion(status).
|
9. NextJob Completion(status).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var promise = new Promise(function(_, reject) {
|
var promise = new Promise(function(_, reject) {
|
||||||
|
|
|
@ -12,6 +12,7 @@ info: >
|
||||||
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
||||||
«handlerResult.[[value]]»).
|
«handlerResult.[[value]]»).
|
||||||
9. NextJob Completion(status).
|
9. NextJob Completion(status).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var promise = new Promise(function(_, reject) {
|
var promise = new Promise(function(_, reject) {
|
||||||
|
|
|
@ -25,6 +25,7 @@ info: >
|
||||||
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
||||||
«handlerResult.[[value]]»).
|
«handlerResult.[[value]]»).
|
||||||
9. NextJob Completion(status).
|
9. NextJob Completion(status).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -25,6 +25,7 @@ info: >
|
||||||
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
8. Let status be Call(promiseCapability.[[Resolve]], undefined,
|
||||||
«handlerResult.[[value]]»).
|
«handlerResult.[[value]]»).
|
||||||
9. NextJob Completion(status).
|
9. NextJob Completion(status).
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
|
|
@ -7,6 +7,7 @@ info: >
|
||||||
es6id: S25.4.2.1_A2.1_T1
|
es6id: S25.4.2.1_A2.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: argument thrown through "Thrower"
|
description: argument thrown through "Thrower"
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
|
@ -6,6 +6,7 @@ info: Promise.race rejects on non-iterable argument
|
||||||
es6id: S25.4.4.3_A2.2_T1
|
es6id: S25.4.4.3_A2.2_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race rejects if argument is not object or is non-iterable
|
description: Promise.race rejects if argument is not object or is non-iterable
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var nonIterable = 3;
|
var nonIterable = 3;
|
||||||
|
|
|
@ -6,6 +6,7 @@ info: Promise.race rejects on non-iterable argument
|
||||||
es6id: S25.4.4.3_A2.2_T2
|
es6id: S25.4.4.3_A2.2_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race rejects if argument is not object or is non-iterable
|
description: Promise.race rejects if argument is not object or is non-iterable
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Promise.race(new Error("abrupt")).then(function () {
|
Promise.race(new Error("abrupt")).then(function () {
|
||||||
|
|
|
@ -10,6 +10,7 @@ es6id: S25.4.4.3_A2.2_T3
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race rejects if GetIterator throws
|
description: Promise.race rejects if GetIterator throws
|
||||||
features: [Symbol.iterator]
|
features: [Symbol.iterator]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iterThrows = {};
|
var iterThrows = {};
|
||||||
|
|
|
@ -6,6 +6,7 @@ es6id: S25.4.4.3_A4.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race rejects if IteratorStep throws
|
description: Promise.race rejects if IteratorStep throws
|
||||||
features: [Symbol.iterator]
|
features: [Symbol.iterator]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iterThrows = {};
|
var iterThrows = {};
|
||||||
|
|
|
@ -6,6 +6,7 @@ es6id: S25.4.4.3_A4.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race rejects if IteratorStep throws
|
description: Promise.race rejects if IteratorStep throws
|
||||||
features: [Symbol.iterator]
|
features: [Symbol.iterator]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iterThrows = {};
|
var iterThrows = {};
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
es6id: S25.4.4.3_A5.1_T1
|
es6id: S25.4.4.3_A5.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race([]) never settles
|
description: Promise.race([]) never settles
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var p = Promise.race([]);
|
var p = Promise.race([]);
|
||||||
|
|
|
@ -6,6 +6,7 @@ es6id: S25.4.4.3_A6.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race([1]) settles immediately
|
description: Promise.race([1]) settles immediately
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [];
|
var sequence = [];
|
||||||
|
|
|
@ -6,6 +6,7 @@ es6id: S25.4.4.3_A6.2_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race([p1]) settles immediately
|
description: Promise.race([p1]) settles immediately
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [];
|
var sequence = [];
|
||||||
|
|
|
@ -6,6 +6,7 @@ es6id: S25.4.4.3_A7.1_T1
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race([p1, p2]) settles when first settles
|
description: Promise.race([p1, p2]) settles when first settles
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [];
|
var sequence = [];
|
||||||
|
|
|
@ -6,6 +6,7 @@ es6id: S25.4.4.3_A7.1_T2
|
||||||
author: Sam Mikes
|
author: Sam Mikes
|
||||||
description: Promise.race([p1, p2]) settles when first settles
|
description: Promise.race([p1, p2]) settles when first settles
|
||||||
includes: [PromiseHelper.js]
|
includes: [PromiseHelper.js]
|
||||||
|
flags: [async]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sequence = [];
|
var sequence = [];
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue