| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| function Dump(output) |
| { |
| if (this.WScript) |
| { |
| WScript.Echo(output); |
| } |
| else |
| { |
| alert(output); |
| } |
| } |
| |
| function throwExceptionWithCatch() |
| { |
| try |
| { |
| throwException(); |
| } |
| catch(e) |
| { |
| Dump(TrimStackTracePath(e.stack)); |
| } |
| } |
| |
| var errorObject; |
| function throwException() |
| { |
| errorObject = new Error("this is my error"); |
| throw errorObject; |
| } |
| |
| function runtest(max, catchException) |
| { |
| var helper = function(i) |
| { |
| return function(j) |
| { |
| if (j == 0) |
| { |
| return catchException == undefined ? throwExceptionWithCatch() : throwException(); |
| } |
| that["function" + (j-1)](j-1); |
| } |
| } |
| var that = new Object(); |
| var i = 0; |
| for (i = 0; i < max; i++) |
| { |
| that["function" + i] = helper(i); |
| } |
| that["function" + (max-1)](max-1); |
| } |
| |
| if (this.WScript && this.WScript.Arguments && this.WScript.LoadScriptFile("TrimStackTracePath.js")) |
| { |
| if (this.WScript.Arguments[0] == "runTest") |
| { |
| runtest(this.WScript.Arguments[1]); |
| } |
| } |