| description( |
| 'Tests to ensure that activations mark their values correctly in the face of duplicate parameter names and does not crash.' |
| ); |
| |
| function gc() |
| { |
| if (this.GCController) |
| GCController.collect(); |
| else |
| for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC. |
| ({}); |
| } |
| |
| function eatRegisters(param) |
| { |
| if (param > 10) |
| return; |
| eatRegisters(param + 1); |
| } |
| |
| function test(a, c) { |
| var b = ["success"], a, c; |
| return function() { |
| return b[0]; |
| } |
| } |
| |
| var testClosure = test(); |
| |
| var extra = test(); |
| eatRegisters(0); |
| gc(); |
| |
| shouldBe('testClosure()', '"success"'); |