diff options
Diffstat (limited to 'js/src/jit-test/tests/watchtower/property-modification.js')
-rw-r--r-- | js/src/jit-test/tests/watchtower/property-modification.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/watchtower/property-modification.js b/js/src/jit-test/tests/watchtower/property-modification.js new file mode 100644 index 0000000000..993cb5bdf8 --- /dev/null +++ b/js/src/jit-test/tests/watchtower/property-modification.js @@ -0,0 +1,36 @@ +function getLogString(obj) { + let log = getWatchtowerLog(); + return log.map(item => { + assertEq(item.object, obj); + if (typeof item.extra === "symbol") { + item.extra = "<symbol>"; + } + return item.kind + (item.extra ? ": " + item.extra : ""); + }).join("\n"); +} + +function testBasic() { + let o = { a: 10 }; + addWatchtowerTarget(o); + + // modify-prop: a + o.a = 12; + let p = { a: 15 }; + + // modify-prop: a + Object.assign(o, p); + + // change-prop: a + Object.defineProperty(o, "a", { value: 19 }); + let log = getLogString(o); + + assertEq(log, + `modify-prop: a +modify-prop: a +change-prop: a`); +} + +for (var i = 0; i < 20; i++) { + console.log(`Iteration ${i}`); + testBasic(); +} |