blob: 44bbcd99b431e81464374c4e4c8241babaeb66d9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// 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);
|