// Assigning to the length property of a proxy to an array // calls the proxy's defineProperty handler. var a = [0, 1, 2, 3]; var p = new Proxy(a, { 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, 2); return true; } }); var hits = 0; p.length = 2; assertEq(hits, 1); assertEq(a.length, 4); assertEq(a[2], 2);