1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:27:45 +00:00

LibJS: Support receiver in ProxyObject::get/put()

If a receiver is given, e.g. via Reflect.get/set(), forward it to the
target object's get()/put() or use it as last argument of the trap
function. The default value is the Proxy object itself.
This commit is contained in:
Linus Groh 2020-11-24 17:47:51 +00:00 committed by Andreas Kling
parent 76308c2e1f
commit f6f0d3cbae
3 changed files with 35 additions and 6 deletions

View file

@ -40,6 +40,16 @@ describe("[[Get]] trap normal behavior", () => {
expect(p.test).toBeUndefined();
expect(p[Symbol.hasInstance]).toBeUndefined();
});
test("custom receiver value", () => {
let p = new Proxy({}, {
get(target, property, receiver) {
return receiver;
},
});
expect(Reflect.get(p, "foo", 42)).toBe(42);
});
});
describe("[[Get]] invariants", () => {