| // Any copyright is dedicated to the Public Domain. |
| // http://creativecommons.org/licenses/publicdomain/ |
| |
| function innermost() { return arguments.callee.caller; } |
| function nest() { return eval("innermost();"); } |
| function nest2() { return nest(); } |
| |
| assertEq(nest2(), nest); |
| |
| var innermost = function innermost() { return arguments.callee.caller.caller; }; |
| |
| assertEq(nest2(), nest2); |
| |
| function nestTwice() { return eval("eval('innermost();');"); } |
| var nest = nestTwice; |
| |
| assertEq(nest2(), nest2); |
| |
| function innermostEval() { return eval("arguments.callee.caller"); } |
| var innermost = innermostEval; |
| |
| assertEq(nest2(), nestTwice); |
| |
| function innermostEvalTwice() { return eval('eval("arguments.callee.caller");'); } |
| var innermost = innermostEvalTwice; |
| |
| assertEq(nest2(), nestTwice); |
| |
| /******************************************************************************/ |
| |
| if (typeof reportCompare === "function") |
| reportCompare(true, true); |
| |
| print("Tests complete"); |