node/deps/v8/test/mjsunit/es6/promise-resolve-thenable-job.js
Myles Borins 12a1b9b804
deps: update V8 to 6.6.346.23
PR-URL: https://github.com/nodejs/node/pull/19201
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-04-11 13:22:42 -04:00

128 lines
2.5 KiB
JavaScript

// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function() {
let resolve;
let onFulfilledValue;
const p = new Promise(r => resolve = r);
resolve(Promise.resolve(1));
p.then(
v => {
onFulfilledValue = v;
},
e => {
assertUnreachable();
});
setTimeout(_ => assertEquals(1, onFulfilledValue));
})();
(function() {
let resolve;
let onRejectedReason;
const p = new Promise(r => resolve = r);
resolve(Promise.reject(1));
p.then(
v => {
assertUnreachable();
},
e => {
onRejectedReason = e;
});
setTimeout(_ => assertEquals(1, onRejectedReason));
})();
(function() {
let onFulfilledValue;
(async () => Promise.resolve(1))().then(
v => {
onFulfilledValue = v;
},
e => {
assertUnreachable();
});
setTimeout(_ => assertEquals(1, onFulfilledValue));
})();
(function() {
let onRejectedReason;
(async () => Promise.reject(1))().then(
v => {
assertUnreachable();
},
e => {
onRejectedReason = e;
});
setTimeout(_ => assertEquals(1, onRejectedReason));
})();
(function() {
let resolve;
let onFulfilledValue;
const p = new Promise(r => resolve = r);
resolve({
then(onFulfilled, onRejected) {
onFulfilled(1);
}
});
p.then(
v => {
onFulfilledValue = v;
},
e => {
assertUnreachable();
});
setTimeout(_ => assertEquals(1, onFulfilledValue));
})();
(function() {
let resolve;
let onRejectedReason;
const p = new Promise(r => resolve = r);
resolve({
then(onFulfilled, onRejected) {
onRejected(1);
}
});
p.then(
v => {
assertUnreachable();
},
e => {
onRejectedReason = e;
});
setTimeout(_ => assertEquals(1, onRejectedReason));
})();
(function() {
let onFulfilledValue;
(async () => ({
then(onFulfilled, onRejected) {
onFulfilled(1);
}
}))().then(
v => {
onFulfilledValue = v;
},
e => {
assertUnreachable();
});
setTimeout(_ => assertEquals(1, onFulfilledValue));
})();
(function() {
let onRejectedReason;
(async () => ({
then(onFulfilled, onRejected) {
onRejected(1);
}
}))().then(
v => {
assertUnreachable();
},
e => {
onRejectedReason = e;
});
setTimeout(_ => assertEquals(1, onRejectedReason));
})();