| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| var s1 = | |
| 'function f1() {' + | |
| ' var a = "a";' + | |
| ' function g1() {' + | |
| ' WScript.Echo(a);' + | |
| ' }' + | |
| ' return g1;' + | |
| '}'; | |
| eval(s1); | |
| WScript.Echo('done s1'); | |
| var foo1 = f1(); | |
| WScript.Echo('done f1'); | |
| foo1(); | |
| var s2 = | |
| 'var a = "global a";' + | |
| 'function f2(i) {' + | |
| ' with ({a:"with a"}) {' + | |
| ' var g2 = function() {' + | |
| ' WScript.Echo(a);' + | |
| ' };' + | |
| ' function g2_() {' + | |
| ' WScript.Echo(a);' + | |
| ' }' + | |
| ' }' + | |
| ' switch(i) {' + | |
| ' case 0: return g2;' + | |
| ' case 1: return g2_;' + | |
| ' }' + | |
| '}'; | |
| eval(s2); | |
| WScript.Echo('done s2'); | |
| var foo2 = f2(0); | |
| var foo2_ = f2(1); | |
| WScript.Echo('done f2'); | |
| foo2(); | |
| foo2_(); | |
| var s3 = | |
| 'function f3(i) {' + | |
| ' var a = "f3 a";' + | |
| ' function g3(i) {' + | |
| ' try {' + | |
| ' throw "catch";' + | |
| ' }' + | |
| ' catch(a) {' + | |
| ' function g4_() {' + | |
| ' WScript.Echo(a);' + | |
| ' }' + | |
| ' var g4 = function() {' + | |
| ' WScript.Echo(a);' + | |
| ' };' + | |
| ' return i == 0 ? g4 : g4_;' + | |
| ' }' + | |
| ' }' + | |
| ' return g3(i);' + | |
| '}'; | |
| eval(s3); | |
| WScript.Echo('done s3'); | |
| var foo3 = f3(0); | |
| var foo3_ = f3(1); | |
| WScript.Echo('done f3'); | |
| foo3(); | |
| foo3_(); |