michael@0: function glob_f1() { michael@0: return 1; michael@0: } michael@0: function glob_f2() { michael@0: return glob_f1(); michael@0: } michael@0: function call() michael@0: { michael@0: var q1 = 0, q2 = 0, q3 = 0, q4 = 0, q5 = 0; michael@0: var o = {}; michael@0: function f1() { michael@0: return 1; michael@0: } michael@0: function f2(f) { michael@0: return f(); michael@0: } michael@0: o.f = f1; michael@0: for (var i = 0; i < 100; ++i) { michael@0: q1 += f1(); michael@0: q2 += f2(f1); michael@0: q3 += glob_f1(); michael@0: q4 += o.f(); michael@0: q5 += glob_f2(); michael@0: } michael@0: var ret = String([q1, q2, q3, q4, q5]); michael@0: return ret; michael@0: } michael@0: assertEq(call(), "100,100,100,100,100");