|
1 // Any copyright is dedicated to the Public Domain. |
|
2 // http://creativecommons.org/licenses/publicdomain/ |
|
3 |
|
4 function innermost() { return arguments.callee.caller; } |
|
5 function nest() { return eval("innermost();"); } |
|
6 function nest2() { return nest(); } |
|
7 |
|
8 assertEq(nest2(), nest); |
|
9 |
|
10 var innermost = function innermost() { return arguments.callee.caller.caller; }; |
|
11 |
|
12 assertEq(nest2(), nest2); |
|
13 |
|
14 function nestTwice() { return eval("eval('innermost();');"); } |
|
15 var nest = nestTwice; |
|
16 |
|
17 assertEq(nest2(), nest2); |
|
18 |
|
19 function innermostEval() { return eval("arguments.callee.caller"); } |
|
20 var innermost = innermostEval; |
|
21 |
|
22 assertEq(nest2(), nestTwice); |
|
23 |
|
24 function innermostEvalTwice() { return eval('eval("arguments.callee.caller");'); } |
|
25 var innermost = innermostEvalTwice; |
|
26 |
|
27 assertEq(nest2(), nestTwice); |
|
28 |
|
29 /******************************************************************************/ |
|
30 |
|
31 if (typeof reportCompare === "function") |
|
32 reportCompare(true, true); |
|
33 |
|
34 print("Tests complete"); |