blob: 0809630c26a11eab689ef752cdfb366dceffa916 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// 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();