// assignment to watched global properties must not be traced | |
var hits = 0; | |
function counter(id, oldval, newval) { | |
hits++; | |
return newval; | |
} | |
var x = 0; | |
var y = 0; | |
function f() { | |
var a = [{}, this]; | |
for (var i = 0; i < 14; i++) { | |
print(shapeOf(this)); | |
Object.prototype.watch.call(a[+(i > 8)], "y", counter); | |
y++; | |
} | |
} | |
f(); | |
assertEq(hits, 5); | |