mirror of https://github.com/tc39/test262.git
29 lines
761 B
JavaScript
29 lines
761 B
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);
|
|
}
|
|
|
|
var d = ({ x : "bar", y : function() { return async z => this.x + z; }}).y();
|
|
var e = { x : "baz", y : d };
|
|
|
|
shouldBeAsync("barley", () => d("ley"));
|
|
shouldBeAsync("barley", () => e.y("ley"));
|