test262/implementation-contributed/javascriptcore/stress/arrowfunction-lexical-bind-this-7.js
test262-automation e9a5a7f918 [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time) (#1620)
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
2018-07-03 15:59:58 -04:00

25 lines
874 B
JavaScript

var testCase = function (actual, expected, message) {
if (actual !== expected) {
throw message + ". Expected '" + expected + "', but was '" + actual + "'";
}
};
var deepScope = function (x, y) {
var _x = x, _y = y;
return ()=> _x + _y + this.val;
};
var a = deepScope.call({val:'A'}, 'D', 'E');
var b = deepScope.call({val:'B'}, 'D', 'F');
var c = deepScope.call({val:'C'}, 'D', 'G');
var anotherScope = function (_af) {
return _af();
};
for (var i = 0; i < 1000; i++) {
testCase(c(), anotherScope.call({val:'I'}, c), "Error: this is not lexically binded inside of the arrow function #1");
testCase(b(), anotherScope.call({val:'J'}, b), "Error: this is not lexically binded inside of the arrow function #2");
testCase(a(), anotherScope.call({val:'K'}, a), "Error: this is not lexically binded inside of the arrow function #3");
}