|
1 this.name = "outer"; |
|
2 var sb = evalcx(''); |
|
3 sb.name = "inner"; |
|
4 sb.parent = this; |
|
5 function f() { return this.name; } |
|
6 f.notMuchTodo = '42'; |
|
7 assertEq(evalcx('(function () {\n' + |
|
8 ' arguments = null;\n' + // force heavyweight |
|
9 ' var f = parent.f;\n' + |
|
10 ' var name = "call";\n' + |
|
11 ' return (function () {\n' + |
|
12 ' eval(f.notMuchTodo);\n' + // reify Call, make f() compile to JSOP_CALLNAME |
|
13 ' var s = "";\n' + |
|
14 ' for (i = 0; i < 10; ++i)\n' + |
|
15 ' s += f();\n' + |
|
16 ' return s;\n' + |
|
17 ' })();\n' + |
|
18 '})()', |
|
19 sb), |
|
20 "outerouterouterouterouterouterouterouterouterouter"); |