New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Paradox between Object.freeze, ProxyHandler.get and ProxyHandler.getPrototypeOf #79
Comments
Uncommenting causes an error at because |
Uncommenting causes an error at because should be true but isn't. |
Uncommenting let desc = Reflect.getOwnPropertyDescriptor(target, propName);
if (!desc.configurable)
return rv; in h.get works. It means that var proto1 = Reflect.getPrototypeOf(dry_b);
var proto2 = Reflect.get(dryB, "prototype");
proto1 === proto2; But then Reflect.getPrototypeOf(dry_b) doesn't belong to the dry object graph. (It was supposed to be protected by a .getPrototypeOf trap, but that doesn't work because of the previous comment.) |
In short, we've landed on a paradox, whereby the dry object graph cannot easily maintain the same assertion between Reflect.getPrototypeOf(dry_b) and Reflect.get(dryB, "prototype") as is known for wet_b and wetB respectively. My attempts to work around this are going nowhere. |
I need to be able to write h such that:
|
This should be fixed now in the membrane code. |
But we would expect that:
Reflect.get(dryB, "prototype") === Reflect.getPrototypeOf(dry_b);
Because
Reflect.get(wetB, "prototype") === Reflect.getPrototypeOf(wet_b);
The text was updated successfully, but these errors were encountered: