testDirectProxySet7.js (530B)
1 // Assigning to a proxy with no set handler calls the defineProperty handler 2 // when no such property already exists. 3 4 var hits = 0; 5 var t = {}; 6 var p = new Proxy(t, { 7 defineProperty(t, id, desc) { hits++; return true; } 8 }); 9 p.x = 1; 10 assertEq(hits, 1); 11 assertEq("x" in t, false); 12 13 // Same thing, but the receiver is a plain object inheriting from p: 14 var receiver = Object.create(p); 15 hits = 0; 16 receiver.x = 2; 17 assertEq(hits, 0); 18 assertEq("x" in t, false); 19 assertEq(receiver.hasOwnProperty("x"), true); 20 assertEq(receiver.x, 2);