test262/implementation-contributed/javascriptcore/stress/async-arrow-functions-lexical-this-binding.js
Leo Balter d1261bb49d Update files for the curation process
Remove more stress tests with existing coverage or out of context for test262
2018-09-11 18:20:20 -04:00

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"));