bug1651732-proxy-set.js (456B)
1 // An object with a custom [Symbol.toPrimitive] function. 2 var key = { 3 value: "a", 4 5 [Symbol.toPrimitive]() { 6 return this.value; 7 } 8 }; 9 10 var target = {}; 11 var obj = new Proxy(target, {}); 12 13 for (var i = 0; i < 100; ++i) { 14 // Change key[Symbol.toPrimitive] to return a symbol after some warm-up. 15 if (i > 80) { 16 key.value = Symbol.iterator; 17 } 18 19 obj[key] = i; 20 21 // Attach an IC for JSOp::SetElem on proxies. 22 assertEq(target[key.value], i); 23 }