// Assigning to a proxy with no set handler calls the defineProperty handler // when an existing own data property already exists on the target. var t = {x: 1}; var p = new Proxy(t, { defineProperty(t, id, desc) { hits++; // ES6 draft rev 28 (2014 Oct 14) 9.1.9 step 5.e.i. // Since the property already exists, the system only changes // the value. desc is otherwise empty. assertEq(Object.getOwnPropertyNames(desc).join(","), "value"); assertEq(desc.value, 42); return true; } }); var hits = 0; p.x = 42; assertEq(hits, 1); assertEq(t.x, 1);