summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/proxy/testDirectProxySet9.js
blob: 7a08b3c0cd0338bb83128a1e6783810565191692 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 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);