| // Copyright (c) 2012 Ecma International. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| es5id: 10.6-13-a-3 |
| description: An indirect call to arguments.callee.caller should work |
| flags: [noStrict] |
| features: [caller] |
| ---*/ |
| |
| var called = false; |
| |
| function test1(flag) { |
| if (flag!==true) { |
| test2(); |
| } else { |
| called = true; |
| } |
| } |
| |
| function test2() { |
| if (arguments.callee.caller===undefined) { |
| called = true; //Extension not supported - fake it |
| } else { |
| var explicit = arguments.callee.caller; |
| explicit(true); |
| } |
| } |
| |
| test1(); |
| |
| assert(called, 'called !== true'); |