| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| function test0(x) { |
| with (x) |
| { |
| z = |
| function handlerFactory() { |
| return { test: |
| function () { return "4"; } }; |
| }, |
| |
| z2 = |
| function handlerFactory2() { |
| return { |
| test: |
| function a() { return "5"; } |
| }; |
| } |
| };; |
| |
| var handlerFactory = handlerFactory || undefined; |
| var handlerFactory2 = handlerFactory2 || undefined; |
| |
| return { x: x, handlerFactory: handlerFactory, handlerFactory2: handlerFactory2 }; |
| }; |
| |
| var p={o:1, z:2, z2:3}; |
| WScript.Echo("p = " + JSON.stringify(p)); |
| var testOut=test0(p); |
| var k = testOut.x; |
| WScript.Echo("k = " + JSON.stringify(k)); |
| WScript.Echo("k.z = " + k.z); |
| WScript.Echo("k.z() = " + k.z()); |
| WScript.Echo("k.z().test() = " + JSON.stringify(k.z().test())); |
| WScript.Echo("k.z().test()+1 = " + JSON.stringify(k.z().test()+1)); |
| |
| WScript.Echo(); |
| WScript.Echo("sibling with block"); |
| WScript.Echo("k.z2 = " + k.z2); |
| WScript.Echo("k.z2() = " + k.z2()); |
| WScript.Echo("k.z2().test() = " + JSON.stringify(k.z2().test())); |
| WScript.Echo("k.z2().test()+1 = " + JSON.stringify(k.z2().test() + 1)); |
| |
| WScript.Echo(); |
| WScript.Echo("compat mode specifics as !== undefined (if present) - version:2 specifics"); |
| if (testOut.handlerFactory !== undefined) { |
| WScript.Echo("testOut.handlerFactory().test() = " + JSON.stringify(testOut.handlerFactory().test()) + " (as json)"); |
| WScript.Echo("testOut.handlerFactory().test()+1 = " + testOut.handlerFactory().test() + 1); |
| } |
| if (testOut.handlerFactory2 !== undefined) { |
| WScript.Echo("testOut.handlerFactory2().test() = " + JSON.stringify(testOut.handlerFactory2().test()) + " (as json)"); |
| WScript.Echo("testOut.handlerFactory2().test()+1 = " + testOut.handlerFactory2().test() + 1); |
| } |