16 lines
393 B
JavaScript
16 lines
393 B
JavaScript
function test() {
|
|
|
|
// String.prototype.replace functions -> Get -> [[Get]]
|
|
var get = [];
|
|
var proxied = {};
|
|
proxied[Symbol.toPrimitive] = Function();
|
|
var p = new Proxy(proxied, { get: function(o, k) { get.push(k); return o[k]; }});
|
|
"".replace(p);
|
|
return get[0] === Symbol.replace && get[1] === Symbol.toPrimitive && get.length === 2;
|
|
|
|
}
|
|
|
|
if (!test())
|
|
throw new Error("Test failed");
|
|
|