Ah but the get trap also has a receiver. So maybe it could work like this?
let person = new Proxy(new Person(), {
getReceiver: (object, key, value, valueTarget) => {
return valueTarget;
}
});
I also like that this ensures that handlers.call still maps 1:1 to the [[Call]] internal method.