| //------------------------------------------------------------------------------------------------------- | |
| // 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()); |