// test against future pic support for symbols // assignments to watched objects must not be cached var obj = {}; var x = Symbol.for("x"); obj[x] = 0; var hits = 0; obj.watch(x, function (id, oldval, newval) { hits++; return newval; }); for (var i = 0; i < 10; i++) obj[x] = i; assertEq(hits, 10); // assignments to watched properties via ++ must not be cached hits = 0; for (var i = 0; i < 10; i++) obj[x]++; assertEq(hits, 10); // adding assignment + watchpoint vs. caching hits = 0; obj = {}; obj.watch(x, function (id, oldval, newval) { hits++; return newval; }); for (var i = 0; i < 10; i++) { obj[x] = 1; delete obj[x]; } assertEq(hits, 10);