//------------------------------------------------------------------------------------------------------- // Copyright (C) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. //------------------------------------------------------------------------------------------------------- function echo(m) { this.WScript ? WScript.Echo(m) : console.log(m); } // // Win8: 762166 // ES5 11.2.2 "new MemberExpression Arguments", MemberExpression is fully evaluated before Arguments. // Arguments side effect can't change the constructor used for new operator. // (function(){ function x(){ echo("x");} function y(){ echo("y");} new x(x = y); new x(); })(); (function(){ function x(){ echo("x");} function y(){ echo("y");} new x(x = y); new x(); function foo() { x(); // Reference of "x" and put it in slot } })(); (function () { var o = { x: function () { echo("x"); } }; function y() { echo("y"); } new o.x(o.x = y); new o.x(); })(); (function () { var o = { x: function () { echo("x"); } }; var y = { x: function () { echo("y"); } }; new o.x(o = y); new o.x(); })();