// 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);