blob: 70ab6cda962bff338624286182fdbc658a63f9d0 [file] [log] [blame]
// 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));
})();