20:08
<mhofman>
bakkot: I was wondering if there was any update to the status of https://github.com/tc39/proposal-freeze-prototype. We have a defense in depth use case that could probably use this feature.
20:18
<bakkot>
mhofman: no updates. the place that i left it was, I have not figured a good way to represent the three states "fully extensible, extensible by new properties but not by setting prototype, not extensible" in a way which plays well with the MOP/proxy traps, like isExtensible. I haven't found anything that I liked and there may not be a way to do it.
20:39
<mhofman>
I'm not fully up to date on the issues. Is there any fundamental problem besides adding new proxy traps?
22:09
<bakkot>
the problem is that isExtensible is an existing proxy trap, which returns a boolean, and which is used for both "can add properties" and "can change prototype". so what should IsExtensible mean in a world where those two things are not always identical?
22:53
<rbuckton>
Huh... We define ScriptEvaluation in the spec but don't actually reference it from anywhere in the spec.
23:16
<ljharb>
the problem is that isExtensible is an existing proxy trap, which returns a boolean, and which is used for both "can add properties" and "can change prototype". so what should IsExtensible mean in a world where those two things are not always identical?
presumably we could just pick one, but i'm guessing the challenge is ensuring that the one we pick matches the intention of people relying on those meanings?
23:29
<bakkot>
rbuckton: yeah, that's the entry point, which is left to hosts; see https://html.spec.whatwg.org/multipage/webappapis.html#calling-scripts
23:29
<bakkot>
we should probably call this out though
23:29
<rbuckton>
we should probably call this out though
Yeah, I just found it interesting it wasn't called out as such.