| "use strict"; |
| |
| function tail(a, b) { } |
| noInline(tail); |
| |
| var obj = { |
| method: function (x) { |
| return tail(x, x); |
| }, |
| |
| get fromNative() { return tail(0, 0); } |
| }; |
| noInline(obj.method); |
| |
| function getThis(x) { return this; } |
| noInline(getThis); |
| |
| for (var i = 0; i < 10000; ++i) { |
| var that = getThis(obj.method(42)); |
| |
| if (!Object.is(that, undefined)) |
| throw new Error("Wrong 'this' value in call, expected undefined but got " + that); |
| |
| that = getThis(obj.method(...[42])); |
| if (!Object.is(that, undefined)) |
| throw new Error("Wrong 'this' value in varargs call, expected undefined but got " + that); |
| |
| if (!Object.is(obj.fromNative, undefined)) |
| throw new Error("Wrong 'fromNative' value, expected undefined but got " + obj.fromNative); |
| } |