summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/proxy/testDirectProxySetArray4.js
blob: 524ddca456ce2a9ba51cd6815459b1a0019d0f05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Assigning to an existing array element via a proxy with no set handler
// calls the defineProperty handler.

function test(arr) {
    var p = new Proxy(arr, {
        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, "ponies");
            return true;
        }
    });
    var hits = 0;
    p[0] = "ponies";
    assertEq(hits, 1);
    assertEq(arr[0], 123);
}

test([123]);
test(new Int32Array([123]));