mirror of https://github.com/tc39/test262.git
45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
// Reviewed
|
|
function shouldBe(expected, actual, msg) {
|
|
if (msg === void 0)
|
|
msg = "";
|
|
else
|
|
msg = " for " + msg;
|
|
if (actual !== expected)
|
|
throw new Error("bad value" + msg + ": " + actual + ". Expected " + expected);
|
|
}
|
|
|
|
function shouldBeAsync(expected, run, msg) {
|
|
let actual;
|
|
var hadError = false;
|
|
run().then(function(value) { actual = value; },
|
|
function(error) { hadError = true; actual = error; });
|
|
drainMicrotasks();
|
|
|
|
if (hadError)
|
|
throw actual;
|
|
|
|
shouldBe(expected, actual, msg);
|
|
}
|
|
|
|
function C1() {
|
|
return async () => await new.target;
|
|
}
|
|
|
|
function C2() {
|
|
return async () => { return await new.target };
|
|
}
|
|
|
|
function C2WithAwait() {
|
|
return async () => {
|
|
var self = new.target; await new.target;
|
|
return new.target;
|
|
}
|
|
}
|
|
|
|
shouldBeAsync(C1, new C1());
|
|
shouldBeAsync(undefined, C1());
|
|
shouldBeAsync(C2, new C2());
|
|
shouldBeAsync(undefined, C2());
|
|
shouldBeAsync(C2WithAwait, new C2WithAwait());
|
|
shouldBeAsync(undefined, C2WithAwait());
|