getprop-idempotent-cache-2.js (407B)
1 function f(o) { 2 var res = 0; 3 for (var i=0; i<110; i++) { 4 res += o.x; 5 } 6 return res; 7 } 8 9 function O(x) { 10 if ([].length == 0) // Thwart definite slot analysis. 11 this.x = 10; 12 } 13 14 var o = new O(true); 15 f(o); 16 17 // Add a getter, this should invalidate the script containing the idempotent cache. 18 var res = 0; 19 o.__defineGetter__("x", function() { res++; }); 20 f(o); 21 assertEq(res, 110);