Merge pull request #504 from bocoup/explicit-async

Make asynchronous test configuration explicit
This commit is contained in:
Leo Balter 2016-03-17 15:28:08 -04:00
commit 5357b1585b
148 changed files with 150 additions and 8 deletions

View File

@ -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.

View File

@ -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); });

View File

@ -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) });

View File

@ -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 = {},

View File

@ -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]
---*/ ---*/

View File

@ -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;

View File

@ -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 = [];

View File

@ -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 = [];

View File

@ -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 = [];

View File

@ -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 = [];

View File

@ -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;

View File

@ -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 () {

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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([]);

View File

@ -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);

View File

@ -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 = [];

View File

@ -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 = [];

View File

@ -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,

View File

@ -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,

View File

@ -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, {

View File

@ -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();

View File

@ -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() {});

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {

View File

@ -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 = {

View File

@ -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 = {

View File

@ -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 = {

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {

View File

@ -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 = {

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = [];

View File

@ -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 = [];

View File

@ -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,

View File

@ -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,

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = [],

View File

@ -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 = [],

View File

@ -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 = [],

View File

@ -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;

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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;

View File

@ -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;

View File

@ -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(); });

View File

@ -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(); });

View File

@ -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;

View File

@ -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 };

View File

@ -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 = {};

View File

@ -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;

View File

@ -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 = {};

View File

@ -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;

View File

@ -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 };

View File

@ -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 = {};

View File

@ -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;

View File

@ -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 = {};

View File

@ -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(); });

View File

@ -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 };

View File

@ -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 = {};

View File

@ -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(); });

View File

@ -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 = {};

View File

@ -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(); });

View File

@ -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 };

View File

@ -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 = {};

View File

@ -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(); });

View File

@ -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 = {};

View File

@ -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]
---*/ ---*/

View File

@ -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,

View File

@ -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) {

View File

@ -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) {

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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]
---*/ ---*/

View File

@ -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,

View File

@ -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) {

View File

@ -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) {

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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;

View File

@ -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 () {

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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([]);

View File

@ -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 = [];

View File

@ -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 = [];

View File

@ -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 = [];

View File

@ -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