4cfab24c91bc57c9587632dfec9a4c93798e215c
[WebKit-https.git] / Source / JavaScriptCore / tests / stress / arrowfunction-lexical-bind-this-1.js
1 var testCase = function (actual, expected, message) {
2   if (actual !== expected) {
3     throw message + ". Expected '" + expected + "', but was '" + actual + "'";
4   }
5 };
6
7 function Dog(name) {
8   this.name = name;
9   this.getName = () => eval("this.name");
10   this.getNameHard = () => eval("(() => this.name)()");
11 }
12
13 noInline(Dog)
14
15 for (var i=0;i<10000; i++) {
16   var d = new Dog("Max");
17   testCase(d.getName(), d.name, "Error: this is not lexically binded inside of the arrow function #1");
18   testCase(d.getNameHard(), d.name, "Error: this is not lexically binded inside of the arrow function #2");
19 }