//------------------------------------------------------------------------------------------------------- | |
// Copyright (C) Microsoft. All rights reserved. | |
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
//------------------------------------------------------------------------------------------------------- | |
function write(args) | |
{ | |
WScript.Echo(args); | |
} | |
var scenario= 1; | |
function InitScenario() | |
{ | |
write("Scenario " + scenario++); | |
} | |
var e = "I am alive"; | |
InitScenario(); //1 | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
write(e); | |
} | |
write(e); | |
InitScenario();//2 | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
e = 20; | |
write(e); | |
} | |
write(e); | |
InitScenario();//3 | |
var a = new Object(); | |
a.e = "I am inside with"; | |
with(a) | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
e = 20; | |
write(e); | |
} | |
write(e); | |
} | |
write(e); | |
InitScenario();//4 | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
var a = new Object(); | |
a.e = "I am inside with"; | |
with(a) | |
{ | |
write(e); | |
} | |
write(e); | |
} | |
write(e); | |
InitScenario();//5 | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
var a = 10; | |
} | |
write(a); | |
InitScenario();//6 | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
var a = function () { return "hello world";}; | |
} | |
write(a()); | |
InitScenario();//7 | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
eval("a = function () { return 'hello world';};"); | |
} | |
write(a()); | |
InitScenario();//8 | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
c = 30; | |
} | |
write(c); | |
InitScenario();//9 | |
var foo = function () | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
write(e); | |
} | |
write(e); | |
} | |
foo(); | |
InitScenario();//10 | |
foo = function () | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
e = 20; | |
write(e); | |
} | |
write(e); | |
} | |
foo(); | |
InitScenario();//11 | |
foo = function () | |
{ | |
var a = new Object(); | |
a.e = "I am inside with"; | |
with(a) | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
e = 20; | |
write(e); | |
} | |
write(e); | |
} | |
write(e); | |
} | |
foo(); | |
InitScenario();//12 | |
foo = function () | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
var a = new Object(); | |
a.e = "I am inside with"; | |
with(a) | |
{ | |
write(e); | |
} | |
write(e); | |
} | |
write(e); | |
} | |
InitScenario();//13 | |
foo = function () | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
var a = 10; | |
} | |
write(a); | |
} | |
foo(); | |
InitScenario();//14 | |
foo = function () | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
var a = function () { return "hello world";}; | |
} | |
write(a()); | |
} | |
foo(); | |
InitScenario();//15 | |
foo = function () | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
eval("a = function () { return 'hello world';};"); | |
} | |
write(a()); | |
} | |
foo(); | |
InitScenario();//16 | |
foo = function () | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
c = 30; | |
} | |
write(c); | |
} | |
foo(); | |
InitScenario();//17 | |
foo = function () | |
{ | |
var test = 'pass'; | |
try { | |
throw 'fail'; | |
} catch (test) { | |
test += 'ing'; | |
} | |
write(test); | |
} | |
foo(); | |
//raise bug for this eval scenario | |
InitScenario(); | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
eval("a = 10;"); | |
} | |
write(a); | |
InitScenario(); | |
foo = function () | |
{ | |
try | |
{ | |
throw "abc"; | |
} | |
catch(e) | |
{ | |
eval("a = 19;"); | |
} | |
write(a); | |
} | |
foo(); | |