blob: b759395f85a58c7d9d547e176ec649168047ae07 [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 test1() {
function foo () {
"use strict";
}
function bar () {
function baz () {
"use strict";
}
}
try {
foo.caller; // should throw TypeError
return false;
}
catch (e) {
bar.caller; // should pass
return e instanceof TypeError;
}
}
function test2() {
function foo () {
"use strict";
}
function bar () {
function baz () {
"use strict";
}
}
try {
foo.caller = 42; // should throw TypeError
return false;
}
catch (e) {
bar.caller = 42; // should pass
return e instanceof TypeError;
}
}
function test3() {
function foo () {
"use strict";
}
function bar () {
function baz () {
"use strict";
}
}
try {
foo.arguments; // should throw TypeError
return false;
}
catch (e) {
bar.arguments; // should pass
return e instanceof TypeError;
}
}
function test4() {
function foo () {
"use strict";
}
function bar () {
function baz () {
"use strict";
}
}
try {
foo.arguments = 42; // should throw TypeError
return false;
}
catch (e) {
bar.arguments = 42; // should pass
return e instanceof TypeError;
}
}
// The following statements should pass.
test1.caller;
test2.caller = 42;
test3.arguments;
test4.arguments = 42;
// The following statements should print "true".
var echo = WScript.Echo;
echo(test1());
echo(test2());
echo(test3());
echo(test4());