blob: fd7b0ecf28bdb8a9864ba6e2f1cc1b73dcb03bcd [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 print(x) { WScript.Echo(x+''); }
function inner(func) {
print(func.caller);
if (func.arguments)
{
print(func.arguments[0]);
print(func.arguments.caller);
}
if (func.caller) {
if (func.arguments.caller) {
print(func.arguments.caller[0]);
} else {
print("func.arguments.caller undefined");
}
}
print("");
}
function f() {
inner(f);
try {
try {
throw null;
}
finally {
inner(g);
}
}
catch (e) {
inner(f);
}
}
function g() {
f("f from g");
}
f("f from global");
g("g from global");
function callerA() {
AA(null);
}
function AA(x) {
print(AA.caller);
}
function callerB() {
eval("AB(null)");
}
function AB(x) {
print(AB.caller);
}
callerA();
callerB();
(function() {
print(arguments.caller);
print(delete arguments.caller);
print(arguments.caller);
arguments.caller = 0;
print(arguments.caller);
function f() {
print(arguments.caller);
print(delete arguments.caller);
print(arguments.caller);
arguments.caller = 0;
print(arguments.caller);
}
f();
})();
function test0(){
var func0 = function(){
var __loopvar1 = 0;
while(((b <<= (arguments.caller && arguments.caller[1]) ? 3 : 1)) && __loopvar1 < 3) {
__loopvar1++;
}
}
var func2 = function(){
func0();
}
var b = 1;
function bar0 () {
func2();
}
bar0(1, 1, 1);
WScript.Echo("b = " + (b|0));
};
// generate profile
test0();
test0();