1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
/*---
includes: []
flags: [async]
---*/
var inherits = (child, parent) => {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
Object.setPrototypeOf(child, parent);
};
function BoxedPromise(executor) {
var context, args;
new Promise(wrappedExecutor);
executor.apply(context, args);
function wrappedExecutor(resolve, reject) {
context = this;
args = [v => resolve(v),v => reject(v)];
}
}
inherits(BoxedPromise, Promise);
Promise.resolve()
.then(() => BoxedPromise.resolve())
.catch(e => assert.sameValue(e.constructor, TypeError))
.then($DONE, $DONE);
|