| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| // Simulate nested calls to setTimeout by setting and calling a callback variable |
| |
| var callback; |
| callback = (function () { |
| WScript.Echo('callback 1'); |
| var ran = false; |
| function startTest() { |
| WScript.Echo('startTest: ran == ' + ran); |
| if (!ran) { |
| ran = true; |
| try { |
| callback = (function () { |
| WScript.Echo('callback 2'); |
| // Needs the timeout nested call to crash |
| startTest(); |
| callback = null; |
| }); |
| } catch (e) { |
| callback = (function () { |
| WScript.Echo('callback 2'); |
| // Needs the closure reference to e, to crash |
| var x = e; |
| callback = null; |
| }); |
| } |
| } |
| } |
| startTest(); |
| }); |
| |
| while (callback) |
| callback(); |