built-ins/Promise/*: make all indentation consistent (depth & character) (#1433)

This commit is contained in:
Rick Waldron 2018-02-15 15:11:21 -05:00 committed by Leo Balter
parent 8d54ea55ad
commit 133dfa8793
223 changed files with 1780 additions and 1525 deletions

View File

@ -10,7 +10,9 @@ description: Promise.call(resolved Promise) throws TypeError
flags: [async] flags: [async]
---*/ ---*/
var p = new Promise(function(resolve) { resolve(1); }); var p = new Promise(function(resolve) {
resolve(1);
});
p.then(function() { p.then(function() {
Promise.call(p, function() {}); Promise.call(p, function() {});

View File

@ -10,7 +10,9 @@ description: Promise.call(rejected Promise) throws TypeError
flags: [async] flags: [async]
---*/ ---*/
var p = new Promise(function(resolve, reject) { reject(1) }); var p = new Promise(function(resolve, reject) {
reject(1)
});
p.catch(function() { p.catch(function() {
Promise.call(p, function() {}); Promise.call(p, function() {});

View File

@ -23,4 +23,3 @@ p.then(function() {
$ERROR("Expected promise rejection reason to be thrown errorObject, actually " + err); $ERROR("Expected promise rejection reason to be thrown errorObject, actually " + err);
} }
}).then($DONE, $DONE); }).then($DONE, $DONE);

View File

@ -9,8 +9,7 @@ description: this must conform to Promise constructor in Promise.all
author: Sam Mikes author: Sam Mikes
---*/ ---*/
function ZeroArgConstructor() { function ZeroArgConstructor() {}
}
assert.throws(TypeError, function() { assert.throws(TypeError, function() {
Promise.all.call(ZeroArgConstructor, []); Promise.all.call(ZeroArgConstructor, []);

View File

@ -14,7 +14,9 @@ flags: [async]
var sequence = []; var sequence = [];
var p1 = new Promise(function (resolve) { resolve({}); } ); var p1 = new Promise(function(resolve) {
resolve({});
});
sequence.push(1); sequence.push(1);

View File

@ -11,8 +11,12 @@ flags: [async]
var sequence = []; var sequence = [];
var p1 = new Promise(function (resolve) { resolve(1); } ); var p1 = new Promise(function(resolve) {
var p2 = new Promise(function (resolve) { resolve(2); } ); resolve(1);
});
var p2 = new Promise(function(resolve) {
resolve(2);
});
sequence.push(1); sequence.push(1);

View File

@ -27,7 +27,9 @@ function Constructor(executor) {
} }
executor(resolve, $ERROR); executor(resolve, $ERROR);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var p1OnFulfilled; var p1OnFulfilled;

View File

@ -26,7 +26,9 @@ function Constructor(executor) {
} }
executor(resolve, $ERROR); executor(resolve, $ERROR);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var p1 = { var p1 = {
then: function(onFulfilled, onRejected) { then: function(onFulfilled, onRejected) {

View File

@ -25,7 +25,9 @@ function Constructor(executor) {
} }
executor(resolve, $ERROR); executor(resolve, $ERROR);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var p1 = { var p1 = {
then: function(onFulfilled, onRejected) { then: function(onFulfilled, onRejected) {

View File

@ -50,7 +50,9 @@ var iter = {};
iter[Symbol.iterator] = function() { iter[Symbol.iterator] = function() {
return { return {
next: function() { next: function() {
return { done: true }; return {
done: true
};
}, },
return: function() { return: function() {
returnCount += 1; returnCount += 1;
@ -60,7 +62,9 @@ iter[Symbol.iterator] = function() {
}; };
var P = function(executor) { var P = function(executor) {
return new Promise(function(_, reject) { return new Promise(function(_, reject) {
executor(function() { throw new Test262Error(); }, reject); executor(function() {
throw new Test262Error();
}, reject);
}); });
}; };

View File

@ -48,7 +48,9 @@ flags: [async]
var thrown = new Test262Error(); var thrown = new Test262Error();
var P = function(executor) { var P = function(executor) {
return new Promise(function(_, reject) { return new Promise(function(_, reject) {
executor(function() { throw thrown; }, reject); executor(function() {
throw thrown;
}, reject);
}); });
}; };

View File

@ -33,4 +33,6 @@ Object.defineProperty(Array.prototype, 0, {
} }
}); });
Promise.all([42]).then(function(){ $DONE(); }, $DONE); Promise.all([42]).then(function() {
$DONE();
}, $DONE);

View File

@ -30,7 +30,10 @@ var callCount = 0;
iterDoneSpy[Symbol.iterator] = function() { iterDoneSpy[Symbol.iterator] = function() {
return { return {
next: function() { next: function() {
return { value: null, done: false }; return {
value: null,
done: false
};
}, },
return: function() { return: function() {
callCount += 1; callCount += 1;

View File

@ -30,7 +30,9 @@ var returnCount = 0;
iter[Symbol.iterator] = function() { iter[Symbol.iterator] = function() {
return { return {
next: function() { next: function() {
return { done: false }; return {
done: false
};
}, },
return: function() { return: function() {
returnCount += 1; returnCount += 1;

View File

@ -31,7 +31,10 @@ var iter = {};
iter[Symbol.iterator] = function() { iter[Symbol.iterator] = function() {
return { return {
next: function() { next: function() {
return { done: false, value: promise }; return {
done: false,
value: promise
};
}, },
return: function() { return: function() {
returnCount += 1; returnCount += 1;

View File

@ -31,7 +31,10 @@ var iter = {};
iter[Symbol.iterator] = function() { iter[Symbol.iterator] = function() {
return { return {
next: function() { next: function() {
return { done: false, value: promise }; return {
done: false,
value: promise
};
}, },
return: function() { return: function() {
returnCount += 1; returnCount += 1;

View File

@ -20,9 +20,12 @@ function resolveFunction() { }
function Constructor(executor) { function Constructor(executor) {
executor(resolveFunction, $ERROR); executor(resolveFunction, $ERROR);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var callCount1 = 0, callCount2 = 0; var callCount1 = 0,
callCount2 = 0;
var p1OnFulfilled; var p1OnFulfilled;
var p1 = { var p1 = {

View File

@ -25,7 +25,9 @@ flags: [async]
var thenable = { var thenable = {
then: function(_, reject) { then: function(_, reject) {
new Promise(function(resolve) { resolve(); }) new Promise(function(resolve) {
resolve();
})
.then(function() { .then(function() {
reject(); reject();
}); });

View File

@ -30,7 +30,9 @@ flags: [async]
var fulfiller = { var fulfiller = {
then: function(resolve) { then: function(resolve) {
new Promise(function(resolve) { resolve(); }) new Promise(function(resolve) {
resolve();
})
.then(function() { .then(function() {
resolve(); resolve();
}); });
@ -38,7 +40,9 @@ var fulfiller = {
}; };
var rejector = { var rejector = {
then: function(resolve, reject) { then: function(resolve, reject) {
new Promise(function(resolve) { resolve(); }) new Promise(function(resolve) {
resolve();
})
.then(function() { .then(function() {
resolve(); resolve();
reject(); reject();

View File

@ -39,7 +39,9 @@ function Constructor(executor) {
} }
executor(resolve, $ERROR); executor(resolve, $ERROR);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var p1OnFulfilled; var p1OnFulfilled;

View File

@ -39,7 +39,9 @@ function Constructor(executor) {
} }
executor(resolve, $ERROR); executor(resolve, $ERROR);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var p1OnFulfilled; var p1OnFulfilled;

View File

@ -16,10 +16,13 @@ var thenable = {
resolveElementFunction = fulfill; resolveElementFunction = fulfill;
} }
}; };
function NotPromise(executor) { function NotPromise(executor) {
executor(function() {}, function() {}); executor(function() {}, function() {});
} }
NotPromise.resolve = function(v) { return v; }; NotPromise.resolve = function(v) {
return v;
};
Promise.all.call(NotPromise, [thenable]); Promise.all.call(NotPromise, [thenable]);
assert(Object.isExtensible(resolveElementFunction)); assert(Object.isExtensible(resolveElementFunction));

View File

@ -20,10 +20,13 @@ var thenable = {
resolveElementFunction = fulfill; resolveElementFunction = fulfill;
} }
}; };
function NotPromise(executor) { function NotPromise(executor) {
executor(function() {}, function() {}); executor(function() {}, function() {});
} }
NotPromise.resolve = function(v) { return v; }; NotPromise.resolve = function(v) {
return v;
};
Promise.all.call(NotPromise, [thenable]); Promise.all.call(NotPromise, [thenable]);
assert.sameValue(resolveElementFunction.length, 1); assert.sameValue(resolveElementFunction.length, 1);

View File

@ -19,10 +19,13 @@ var thenable = {
resolveElementFunction = fulfill; resolveElementFunction = fulfill;
} }
}; };
function NotPromise(executor) { function NotPromise(executor) {
executor(function() {}, function() {}); executor(function() {}, function() {});
} }
NotPromise.resolve = function(v) { return v; }; NotPromise.resolve = function(v) {
return v;
};
Promise.all.call(NotPromise, [thenable]); Promise.all.call(NotPromise, [thenable]);
assert.sameValue(Object.prototype.hasOwnProperty.call(resolveElementFunction, "name"), false); assert.sameValue(Object.prototype.hasOwnProperty.call(resolveElementFunction, "name"), false);

View File

@ -17,11 +17,16 @@ var thenable = {
resolveElementFunction = fulfill; resolveElementFunction = fulfill;
} }
}; };
function NotPromise(executor) { function NotPromise(executor) {
executor(function() {}, function() {}); executor(function() {}, function() {});
} }
NotPromise.resolve = function(v) { return v; }; NotPromise.resolve = function(v) {
return v;
};
Promise.all.call(NotPromise, [thenable]); Promise.all.call(NotPromise, [thenable]);
assert.sameValue(Object.prototype.hasOwnProperty.call(resolveElementFunction, "prototype"), false); assert.sameValue(Object.prototype.hasOwnProperty.call(resolveElementFunction, "prototype"), false);
assert.throws(TypeError, function() { new resolveElementFunction(); }); assert.throws(TypeError, function() {
new resolveElementFunction();
});

View File

@ -18,10 +18,13 @@ var thenable = {
resolveElementFunction = fulfill; resolveElementFunction = fulfill;
} }
}; };
function NotPromise(executor) { function NotPromise(executor) {
executor(function() {}, function() {}); executor(function() {}, function() {});
} }
NotPromise.resolve = function(v) { return v; }; NotPromise.resolve = function(v) {
return v;
};
Promise.all.call(NotPromise, [thenable]); Promise.all.call(NotPromise, [thenable]);
assert.sameValue(Object.getPrototypeOf(resolveElementFunction), Function.prototype); assert.sameValue(Object.getPrototypeOf(resolveElementFunction), Function.prototype);

View File

@ -39,7 +39,9 @@ function Constructor(executor) {
} }
executor(resolve, $ERROR); executor(resolve, $ERROR);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var p1OnFulfilled, p2OnFulfilled, p3OnFulfilled; var p1OnFulfilled, p2OnFulfilled, p3OnFulfilled;

View File

@ -18,9 +18,12 @@ function rejectFunction() { }
function Constructor(executor) { function Constructor(executor) {
executor($ERROR, rejectFunction); executor($ERROR, rejectFunction);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var callCount1 = 0, callCount2 = 0; var callCount1 = 0,
callCount2 = 0;
var p1 = { var p1 = {
then: function(onFulfilled, onRejected) { then: function(onFulfilled, onRejected) {

View File

@ -11,6 +11,7 @@ info: |
---*/ ---*/
var executorFunction; var executorFunction;
function NotPromise(executor) { function NotPromise(executor) {
executorFunction = executor; executorFunction = executor;
executor(function() {}, function() {}); executor(function() {}, function() {});

View File

@ -15,6 +15,7 @@ includes: [propertyHelper.js]
---*/ ---*/
var executorFunction; var executorFunction;
function NotPromise(executor) { function NotPromise(executor) {
executorFunction = executor; executorFunction = executor;
executor(function() {}, function() {}); executor(function() {}, function() {});

View File

@ -14,6 +14,7 @@ info: |
---*/ ---*/
var executorFunction; var executorFunction;
function NotPromise(executor) { function NotPromise(executor) {
executorFunction = executor; executorFunction = executor;
executor(function() {}, function() {}); executor(function() {}, function() {});

View File

@ -12,6 +12,7 @@ info: |
---*/ ---*/
var executorFunction; var executorFunction;
function NotPromise(executor) { function NotPromise(executor) {
executorFunction = executor; executorFunction = executor;
executor(function() {}, function() {}); executor(function() {}, function() {});
@ -19,4 +20,6 @@ function NotPromise(executor) {
Promise.resolve.call(NotPromise); Promise.resolve.call(NotPromise);
assert.sameValue(Object.prototype.hasOwnProperty.call(executorFunction, "prototype"), false); assert.sameValue(Object.prototype.hasOwnProperty.call(executorFunction, "prototype"), false);
assert.throws(TypeError, function() { new executorFunction(); }); assert.throws(TypeError, function() {
new executorFunction();
});

View File

@ -13,6 +13,7 @@ info: |
---*/ ---*/
var executorFunction; var executorFunction;
function NotPromise(executor) { function NotPromise(executor) {
executorFunction = executor; executorFunction = executor;
executor(function() {}, function() {}); executor(function() {}, function() {});

View File

@ -12,4 +12,3 @@ description: Promise.prototype.constructor is the Promise constructor
if (Promise.prototype.constructor !== Promise) { if (Promise.prototype.constructor !== Promise) {
$ERROR("Expected Promise.prototype.constructor to be Promise"); $ERROR("Expected Promise.prototype.constructor to be Promise");
} }

View File

@ -21,4 +21,3 @@ p.catch(function () {
$ERROR("Expected promise to be fulfilled with obj, got " + arg); $ERROR("Expected promise to be fulfilled with obj, got " + arg);
} }
}).then($DONE, $DONE); }).then($DONE, $DONE);

View File

@ -21,4 +21,3 @@ p.then(function () {
$ERROR("Should have been rejected with reason obj, got " + arg); $ERROR("Should have been rejected with reason obj, got " + arg);
} }
}).then($DONE, $DONE); }).then($DONE, $DONE);

View File

@ -24,21 +24,29 @@ features: [Symbol]
---*/ ---*/
var booleanCount = 0; var booleanCount = 0;
Boolean.prototype.then = function() { booleanCount += 1; }; Boolean.prototype.then = function() {
booleanCount += 1;
};
Promise.prototype.catch.call(true); Promise.prototype.catch.call(true);
assert.sameValue(booleanCount, 1, 'boolean'); assert.sameValue(booleanCount, 1, 'boolean');
var numberCount = 0; var numberCount = 0;
Number.prototype.then = function() { numberCount += 1; }; Number.prototype.then = function() {
numberCount += 1;
};
Promise.prototype.catch.call(34); Promise.prototype.catch.call(34);
assert.sameValue(numberCount, 1, 'number'); assert.sameValue(numberCount, 1, 'number');
var stringCount = 0; var stringCount = 0;
String.prototype.then = function() { stringCount += 1; }; String.prototype.then = function() {
stringCount += 1;
};
Promise.prototype.catch.call(''); Promise.prototype.catch.call('');
assert.sameValue(stringCount, 1, 'string'); assert.sameValue(stringCount, 1, 'string');
var symbolCount = 0; var symbolCount = 0;
Symbol.prototype.then = function() { symbolCount += 1; }; Symbol.prototype.then = function() {
symbolCount += 1;
};
Promise.prototype.catch.call(Symbol()); Promise.prototype.catch.call(Symbol());
assert.sameValue(symbolCount, 1, 'symbol'); assert.sameValue(symbolCount, 1, 'symbol');

View File

@ -38,25 +38,37 @@ assert.throws(TypeError, function() {
}, 'undefined'); }, 'undefined');
assert.throws(TypeError, function() { assert.throws(TypeError, function() {
Promise.prototype.catch.call({ then: null }); Promise.prototype.catch.call({
then: null
});
}, 'null'); }, 'null');
assert.throws(TypeError, function() { assert.throws(TypeError, function() {
Promise.prototype.catch.call({ then: 1 }); Promise.prototype.catch.call({
then: 1
});
}, 'number'); }, 'number');
assert.throws(TypeError, function() { assert.throws(TypeError, function() {
Promise.prototype.catch.call({ then: '' }); Promise.prototype.catch.call({
then: ''
});
}, 'string'); }, 'string');
assert.throws(TypeError, function() { assert.throws(TypeError, function() {
Promise.prototype.catch.call({ then: true }); Promise.prototype.catch.call({
then: true
});
}, 'boolean'); }, 'boolean');
assert.throws(TypeError, function() { assert.throws(TypeError, function() {
Promise.prototype.catch.call({ then: symbol }); Promise.prototype.catch.call({
then: symbol
});
}, 'symbol'); }, 'symbol');
assert.throws(TypeError, function() { assert.throws(TypeError, function() {
Promise.prototype.catch.call({ then: {} }); Promise.prototype.catch.call({
then: {}
});
}, 'ordinary object'); }, 'ordinary object');

View File

@ -37,4 +37,3 @@ yes.then(function (x) {
checkSequence(sequence, "All expected callbacks called in correct order"); checkSequence(sequence, "All expected callbacks called in correct order");
$DONE(); $DONE();
}).catch($ERROR); }).catch($ERROR);

View File

@ -9,7 +9,9 @@ features: [Promise.prototype.finally]
class MyPromise extends Promise { class MyPromise extends Promise {
static get [Symbol.species]() { return Promise; } static get[Symbol.species]() {
return Promise;
}
} }
var p = Promise var p = Promise

View File

@ -8,7 +8,9 @@ features: [Promise.prototype.finally]
---*/ ---*/
class FooPromise extends Promise { class FooPromise extends Promise {
static get [Symbol.species]() { return Promise; } static get[Symbol.species]() {
return Promise;
}
} }
var p = Promise.reject().finally(() => FooPromise.reject()); var p = Promise.reject().finally(() => FooPromise.reject());

View File

@ -8,7 +8,9 @@ features: [Promise.prototype.finally]
---*/ ---*/
class FooPromise extends Promise { class FooPromise extends Promise {
static get [Symbol.species]() { return Promise; } static get[Symbol.species]() {
return Promise;
}
} }
var p = Promise.resolve().finally(() => FooPromise.resolve()); var p = Promise.resolve().finally(() => FooPromise.resolve());

View File

@ -11,7 +11,9 @@ features: [Promise.prototype.finally]
var called = false; var called = false;
var p = new Proxy(Promise.resolve(), {}); var p = new Proxy(Promise.resolve(), {});
var oldThen = Promise.prototype.then; var oldThen = Promise.prototype.then;
Promise.prototype.then = () => { called = true; }; Promise.prototype.then = () => {
called = true;
};
Promise.prototype.finally.call(p); Promise.prototype.finally.call(p);
assert.sameValue(called, true); assert.sameValue(called, true);
Promise.prototype.then = oldThen; Promise.prototype.then = oldThen;

View File

@ -11,7 +11,9 @@ features: [Symbol, Promise.prototype.finally]
var symbol = Symbol(); var symbol = Symbol();
var thrower = function () { throw new Test262Error('this should never happen'); }; var thrower = function() {
throw new Test262Error('this should never happen');
};
var p = new Promise(function() {}); var p = new Promise(function() {});

View File

@ -39,5 +39,3 @@ Promise.resolve().then(function () {
}); });
sequence.push(1); sequence.push(1);

View File

@ -18,5 +18,3 @@ if (!(p.then instanceof Function)) {
if (p.then.length !== 2) { if (p.then.length !== 2) {
$ERROR("Expected p.then to be a function of two arguments"); $ERROR("Expected p.then to be a function of two arguments");
} }

View File

@ -9,8 +9,7 @@ author: Sam Mikes
description: Promise.prototype.then throw if 'this' is non-Promise Object description: Promise.prototype.then throw if 'this' is non-Promise Object
---*/ ---*/
function ZeroArgConstructor() { function ZeroArgConstructor() {}
}
var z = new ZeroArgConstructor(); var z = new ZeroArgConstructor();

View File

@ -29,7 +29,9 @@ flags: [async]
---*/ ---*/
var callCount = 0; var callCount = 0;
var prms = new Promise(function(resolve) { resolve(); }); var prms = new Promise(function(resolve) {
resolve();
});
Object.defineProperty(prms, 'constructor', { Object.defineProperty(prms, 'constructor', {
get: function() { get: function() {
callCount += 1; callCount += 1;

View File

@ -26,10 +26,14 @@ var BadCtor = function() {
}; };
var originalSpecies = Object.getOwnPropertyDescriptor(Promise, Symbol.species); var originalSpecies = Object.getOwnPropertyDescriptor(Promise, Symbol.species);
Object.defineProperty(Promise, Symbol.species, { value: BadCtor }); Object.defineProperty(Promise, Symbol.species, {
value: BadCtor
});
try { try {
var p = new Promise(function(resolve) { resolve(); }); var p = new Promise(function(resolve) {
resolve();
});
assert.throws(Test262Error, function() { assert.throws(Test262Error, function() {
p.then(); p.then();

View File

@ -20,7 +20,9 @@ flags: [async]
---*/ ---*/
var value = {}; var value = {};
var p = new Promise(function(resolve) { resolve(value); }); var p = new Promise(function(resolve) {
resolve(value);
});
p.then(function(x) { p.then(function(x) {
if (x !== value) { if (x !== value) {

View File

@ -21,7 +21,9 @@ flags: [async]
var value = {}; var value = {};
var resolve; var resolve;
var p = new Promise(function(_resolve) { resolve = _resolve; }); var p = new Promise(function(_resolve) {
resolve = _resolve;
});
p.then(function(x) { p.then(function(x) {
if (x !== value) { if (x !== value) {

View File

@ -21,7 +21,9 @@ flags: [async]
var value = {}; var value = {};
var reject; var reject;
var p = new Promise(function(_, _reject) { reject = _reject; }); var p = new Promise(function(_, _reject) {
reject = _reject;
});
p.then(function() { p.then(function() {
$DONE('The `onFulfilled` handler should not be invoked.'); $DONE('The `onFulfilled` handler should not be invoked.');

View File

@ -20,7 +20,9 @@ flags: [async]
---*/ ---*/
var value = {}; var value = {};
var p = new Promise(function(_, reject) { reject(value); }); var p = new Promise(function(_, reject) {
reject(value);
});
p.then(function() { p.then(function() {
$DONE('The `onFulfilled` handler should not be invoked.'); $DONE('The `onFulfilled` handler should not be invoked.');

View File

@ -22,8 +22,12 @@ flags: [async]
---*/ ---*/
var resolve; var resolve;
var thenable = new Promise(function(_resolve) { resolve = _resolve; }); var thenable = new Promise(function(_resolve) {
var p1 = new Promise(function(resolve) { resolve(); }); resolve = _resolve;
});
var p1 = new Promise(function(resolve) {
resolve();
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -23,8 +23,12 @@ flags: [async]
---*/ ---*/
var reject; var reject;
var thenable = new Promise(function(resolve) { resolve(); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(_, _reject) { reject = _reject; }); resolve();
});
var p1 = new Promise(function(_, _reject) {
reject = _reject;
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -29,8 +29,12 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var thenable = new Promise(function(resolve) { resolve(); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(resolve) { resolve(); }); resolve();
});
var p1 = new Promise(function(resolve) {
resolve();
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -29,8 +29,12 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var thenable = new Promise(function(resolve) { resolve(); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(_, reject) { reject(); }); resolve();
});
var p1 = new Promise(function(_, reject) {
reject();
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -22,7 +22,9 @@ flags: [async]
---*/ ---*/
var resolve; var resolve;
var p1 = new Promise(function(_resolve) { resolve = _resolve; }); var p1 = new Promise(function(_resolve) {
resolve = _resolve;
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -26,9 +26,13 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var nonThenable = { then: null }; var nonThenable = {
then: null
};
var resolve; var resolve;
var p1 = new Promise(function(_resolve) { resolve = _resolve; }); var p1 = new Promise(function(_resolve) {
resolve = _resolve;
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -30,7 +30,9 @@ var poisonedThen = Object.defineProperty({}, 'then', {
throw value; throw value;
} }
}); });
var p1 = new Promise(function(_resolve) { resolve = _resolve; }); var p1 = new Promise(function(_resolve) {
resolve = _resolve;
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -30,8 +30,12 @@ flags: [async]
var value = {}; var value = {};
var resolve; var resolve;
var thenable = new Promise(function(resolve) { resolve(); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(_resolve) { resolve = _resolve; }); resolve();
});
var p1 = new Promise(function(_resolve) {
resolve = _resolve;
});
var p2; var p2;
thenable.then = function(resolve) { thenable.then = function(resolve) {

View File

@ -24,7 +24,9 @@ flags: [async]
---*/ ---*/
var resolve; var resolve;
var p1 = new Promise(function(_resolve) { resolve = _resolve; }); var p1 = new Promise(function(_resolve) {
resolve = _resolve;
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -30,8 +30,12 @@ flags: [async]
var value = {}; var value = {};
var resolve; var resolve;
var thenable = new Promise(function(resolve) { resolve(value); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(_resolve) { resolve = _resolve; }); resolve(value);
});
var p1 = new Promise(function(_resolve) {
resolve = _resolve;
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -23,7 +23,9 @@ flags: [async]
---*/ ---*/
var reject; var reject;
var p1 = new Promise(function(_, _reject) { reject = _reject; }); var p1 = new Promise(function(_, _reject) {
reject = _reject;
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -27,9 +27,13 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var nonThenable = { then: null }; var nonThenable = {
then: null
};
var reject; var reject;
var p1 = new Promise(function(_, _reject) { reject = _reject; }); var p1 = new Promise(function(_, _reject) {
reject = _reject;
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -31,7 +31,9 @@ var poisonedThen = Object.defineProperty({}, 'then', {
throw value; throw value;
} }
}); });
var p1 = new Promise(function(_, _reject) { reject = _reject; }); var p1 = new Promise(function(_, _reject) {
reject = _reject;
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -31,8 +31,12 @@ flags: [async]
var value = {}; var value = {};
var reject; var reject;
var thenable = new Promise(function(resolve) { resolve(); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(_, _reject) { reject = _reject; }); resolve();
});
var p1 = new Promise(function(_, _reject) {
reject = _reject;
});
var p2; var p2;
thenable.then = function(resolve) { thenable.then = function(resolve) {

View File

@ -25,7 +25,9 @@ flags: [async]
---*/ ---*/
var reject; var reject;
var p1 = new Promise(function(_, _reject) { reject = _reject; }); var p1 = new Promise(function(_, _reject) {
reject = _reject;
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -31,8 +31,12 @@ flags: [async]
var value = {}; var value = {};
var reject; var reject;
var thenable = new Promise(function(resolve) { resolve(value); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(_, _reject) { reject = _reject; }); resolve(value);
});
var p1 = new Promise(function(_, _reject) {
reject = _reject;
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -28,7 +28,9 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var p1 = new Promise(function(resolve) { resolve(); }); var p1 = new Promise(function(resolve) {
resolve();
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -33,8 +33,12 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var nonThenable = { then: null }; var nonThenable = {
var p1 = new Promise(function(resolve) { resolve(); }); then: null
};
var p1 = new Promise(function(resolve) {
resolve();
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -36,7 +36,9 @@ var poisonedThen = Object.defineProperty({}, 'then', {
throw value; throw value;
} }
}); });
var p1 = new Promise(function(resolve) { resolve(); }); var p1 = new Promise(function(resolve) {
resolve();
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -36,8 +36,12 @@ flags: [async]
---*/ ---*/
var value = {}; var value = {};
var thenable = new Promise(function(resolve) { resolve(); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(resolve) { resolve(); }); resolve();
});
var p1 = new Promise(function(resolve) {
resolve();
});
var p2; var p2;
thenable.then = function(resolve) { thenable.then = function(resolve) {

View File

@ -30,7 +30,9 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var p1 = new Promise(function(resolve) { resolve(); }); var p1 = new Promise(function(resolve) {
resolve();
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -36,8 +36,12 @@ flags: [async]
---*/ ---*/
var value = {}; var value = {};
var thenable = new Promise(function(resolve) { resolve(value); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(resolve) { resolve(); }); resolve(value);
});
var p1 = new Promise(function(resolve) {
resolve();
});
var p2; var p2;
p2 = p1.then(function() { p2 = p1.then(function() {

View File

@ -28,7 +28,9 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var p1 = new Promise(function(_, reject) { reject(); }); var p1 = new Promise(function(_, reject) {
reject();
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -33,8 +33,12 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var nonThenable = { then: null }; var nonThenable = {
var p1 = new Promise(function(_, reject) { reject(); }); then: null
};
var p1 = new Promise(function(_, reject) {
reject();
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -36,7 +36,9 @@ var poisonedThen = Object.defineProperty({}, 'then', {
throw value; throw value;
} }
}); });
var p1 = new Promise(function(_, reject) { reject(); }); var p1 = new Promise(function(_, reject) {
reject();
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -36,8 +36,12 @@ flags: [async]
---*/ ---*/
var value = {}; var value = {};
var thenable = new Promise(function(resolve) { resolve(); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(_, reject) { reject(); }); resolve();
});
var p1 = new Promise(function(_, reject) {
reject();
});
var p2; var p2;
thenable.then = function(resolve) { thenable.then = function(resolve) {

View File

@ -30,7 +30,9 @@ info: |
flags: [async] flags: [async]
---*/ ---*/
var p1 = new Promise(function(_, reject) { reject(); }); var p1 = new Promise(function(_, reject) {
reject();
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -36,8 +36,12 @@ flags: [async]
---*/ ---*/
var value = {}; var value = {};
var thenable = new Promise(function(resolve) { resolve(value); }); var thenable = new Promise(function(resolve) {
var p1 = new Promise(function(_, reject) { reject(); }); resolve(value);
});
var p1 = new Promise(function(_, reject) {
reject();
});
var p2; var p2;
p2 = p1.then(function() {}, function() { p2 = p1.then(function() {}, function() {

View File

@ -18,4 +18,3 @@ Promise.race(nonIterable).then(function () {
$ERROR('Expected TypeError, got ' + err); $ERROR('Expected TypeError, got ' + err);
} }
}).then($DONE, $DONE); }).then($DONE, $DONE);

View File

@ -16,4 +16,3 @@ Promise.race(new Error("abrupt")).then(function () {
$ERROR('Expected TypeError, got ' + err); $ERROR('Expected TypeError, got ' + err);
} }
}).then($DONE, $DONE); }).then($DONE, $DONE);

View File

@ -27,4 +27,3 @@ Promise.race(iterThrows).then(function () {
$ERROR('Expected Promise to be rejected with an error, got ' + err); $ERROR('Expected Promise to be rejected with an error, got ' + err);
} }
}).then($DONE, $DONE); }).then($DONE, $DONE);

View File

@ -11,8 +11,7 @@ author: Sam Mikes
description: Promise.race throws if 'this' does not conform to Promise constructor description: Promise.race throws if 'this' does not conform to Promise constructor
---*/ ---*/
function ZeroArgConstructor() { function ZeroArgConstructor() {}
}
assert.throws(TypeError, function() { assert.throws(TypeError, function() {
Promise.race.call(ZeroArgConstructor, [3]); Promise.race.call(ZeroArgConstructor, [3]);

View File

@ -11,7 +11,9 @@ author: Sam Mikes
description: Promise.race throws TypeError, even on empty array, when 'this' does not conform to Promise constructor description: Promise.race throws TypeError, even on empty array, when 'this' does not conform to Promise constructor
---*/ ---*/
function BadPromiseConstructor(f) { f(undefined, undefined); } function BadPromiseConstructor(f) {
f(undefined, undefined);
}
assert.throws(TypeError, function() { assert.throws(TypeError, function() {
Promise.race.call(BadPromiseConstructor, []); Promise.race.call(BadPromiseConstructor, []);

View File

@ -24,4 +24,3 @@ Promise.race(iterThrows).then(function () {
}, function(reason) { }, function(reason) {
assert.sameValue(reason, error); assert.sameValue(reason, error);
}).then($DONE, $DONE); }).then($DONE, $DONE);

View File

@ -33,4 +33,3 @@ Promise.race(iterThrows).then(function () {
$ERROR('Expected TypeError, got ' + err); $ERROR('Expected TypeError, got ' + err);
} }
}).then($DONE, $DONE); }).then($DONE, $DONE);

View File

@ -9,8 +9,12 @@ flags: [async]
---*/ ---*/
var resolveP1, rejectP2, var resolveP1, rejectP2,
p1 = new Promise(function (resolve) { resolveP1 = resolve; }), p1 = new Promise(function(resolve) {
p2 = new Promise(function (resolve, reject) { rejectP2 = reject; }); resolveP1 = resolve;
}),
p2 = new Promise(function(resolve, reject) {
rejectP2 = reject;
});
rejectP2(new Error("Promise.race should not see this if P1 already resolved")); rejectP2(new Error("Promise.race should not see this if P1 already resolved"));
resolveP1(1); resolveP1(1);

View File

@ -9,8 +9,12 @@ flags: [async]
---*/ ---*/
var resolveP1, rejectP2, var resolveP1, rejectP2,
p1 = new Promise(function (resolve) { resolveP1 = resolve; }), p1 = new Promise(function(resolve) {
p2 = new Promise(function (resolve, reject) { rejectP2 = reject; }); resolveP1 = resolve;
}),
p2 = new Promise(function(resolve, reject) {
rejectP2 = reject;
});
Promise.race([p1, p2]).then(function() { Promise.race([p1, p2]).then(function() {
$ERROR("Should not be fulfilled: expected rejection."); $ERROR("Should not be fulfilled: expected rejection.");
@ -22,4 +26,3 @@ Promise.race([p1, p2]).then(function () {
rejectP2(2); rejectP2(2);
resolveP1(1); resolveP1(1);

View File

@ -29,7 +29,10 @@ var returnCount = 0;
iterDoneSpy[Symbol.iterator] = function() { iterDoneSpy[Symbol.iterator] = function() {
return { return {
next: function() { next: function() {
return { value: null, done: false }; return {
value: null,
done: false
};
}, },
return: function() { return: function() {
returnCount += 1; returnCount += 1;

View File

@ -29,7 +29,9 @@ var returnCount = 0;
iter[Symbol.iterator] = function() { iter[Symbol.iterator] = function() {
return { return {
next: function() { next: function() {
return { done: false }; return {
done: false
};
}, },
return: function() { return: function() {
returnCount += 1; returnCount += 1;

View File

@ -31,7 +31,10 @@ var returnCount = 0;
iter[Symbol.iterator] = function() { iter[Symbol.iterator] = function() {
return { return {
next: function() { next: function() {
return { done: false, value: promise }; return {
done: false,
value: promise
};
}, },
return: function() { return: function() {
returnCount += 1; returnCount += 1;

View File

@ -30,7 +30,10 @@ var returnCount = 0;
iter[Symbol.iterator] = function() { iter[Symbol.iterator] = function() {
return { return {
next: function() { next: function() {
return { done: false, value: promise }; return {
done: false,
value: promise
};
}, },
return: function() { return: function() {
returnCount += 1; returnCount += 1;

View File

@ -24,7 +24,9 @@ flags: [async]
var thenable = { var thenable = {
then: function(_, reject) { then: function(_, reject) {
new Promise(function(resolve) { resolve(); }) new Promise(function(resolve) {
resolve();
})
.then(function() { .then(function() {
reject(); reject();
}); });

View File

@ -29,7 +29,9 @@ flags: [async]
var fulfiller = { var fulfiller = {
then: function(resolve) { then: function(resolve) {
new Promise(function(resolve) { resolve(); }) new Promise(function(resolve) {
resolve();
})
.then(function() { .then(function() {
resolve(); resolve();
}); });
@ -37,7 +39,9 @@ var fulfiller = {
}; };
var rejector = { var rejector = {
then: function(_, reject) { then: function(_, reject) {
new Promise(function(resolve) { resolve(); }) new Promise(function(resolve) {
resolve();
})
.then(function() { .then(function() {
reject(); reject();
}); });

View File

@ -35,7 +35,9 @@ var thenableValue = {
resolve(value); resolve(value);
} }
}; };
var thenable = new Promise(function(resolve) { resolve(); }); var thenable = new Promise(function(resolve) {
resolve();
});
thenable.then = function(resolve) { thenable.then = function(resolve) {
resolve(thenableValue); resolve(thenableValue);

View File

@ -33,7 +33,9 @@ var thenable = {
}; };
try { try {
Promise.resolve = function(v) { return v; }; Promise.resolve = function(v) {
return v;
};
self = Promise.race([thenable]); self = Promise.race([thenable]);
} finally { } finally {
Promise.resolve = builtinResolve; Promise.resolve = builtinResolve;

View File

@ -18,9 +18,12 @@ function rejectFunction() { }
function Constructor(executor) { function Constructor(executor) {
executor($ERROR, rejectFunction); executor($ERROR, rejectFunction);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var callCount1 = 0, callCount2 = 0; var callCount1 = 0,
callCount2 = 0;
var p1 = { var p1 = {
then: function(onFulfilled, onRejected) { then: function(onFulfilled, onRejected) {

View File

@ -18,9 +18,12 @@ function resolveFunction() { }
function Constructor(executor) { function Constructor(executor) {
executor(resolveFunction, $ERROR); executor(resolveFunction, $ERROR);
} }
Constructor.resolve = function(v) { return v; }; Constructor.resolve = function(v) {
return v;
};
var callCount1 = 0, callCount2 = 0; var callCount1 = 0,
callCount2 = 0;
var p1 = { var p1 = {
then: function(onFulfilled, onRejected) { then: function(onFulfilled, onRejected) {

Some files were not shown because too many files have changed in this diff Show More