| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| // Flavors of inlined LdThis, some of which will bail out if we force the optimization. |
| |
| (function () { |
| function f() { |
| return this.foo(); |
| } |
| |
| var t = this; |
| var x = { foo: function () { WScript.Echo(this); } }; |
| x.f = f; |
| x.f(); |
| |
| try { |
| f(); |
| } |
| catch (e) { |
| WScript.Echo(e.message); |
| } |
| |
| WScript.Echo(t === this); |
| })(); |
| |
| (function () { |
| function f(o) { |
| return o.foo(); |
| } |
| |
| var x = { foo: function () { WScript.Echo(this); } }; |
| f(x); |
| })(); |
| |
| function test() { |
| Object.prototype['foo'] = function () {return this}; |
| var c = {} |
| var x; |
| x + c.foo("a"); |
| ((function(){ |
| return 1; |
| })()).foo() |
| }; |
| |
| WScript.Echo(test()); |
| WScript.Echo(test()); |