// 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 () { var a = ['x', 'y']; this.watch('z', counter); for (var i = 0; i < 14; i++) { this.watch(a[+(i > 8)], counter); y = 1; } })(); assertEq(hits, 5);