Changing [[Prototype]]

David Bruant bruant.d at
Mon Dec 24 07:12:52 PST 2012

Le 24/12/2012 15:50, Brandon Benvie a écrit :
> That doesn't seem to be a problem. Host objects may be losing most/all 
> of their magic but it's certainly reasonable that they have privileged 
> access to capabilities. I think it makes sense to frame deleting 
> __proto__ as simply removing access to a capability from the user, but 
> the capability still theoretically existing if you somehow have 
> privileged access to use it.
Some may rely on [[Prototype]] not changing to prove JS programs.
If you delete __proto__ and use this knowledge to assume [[Prototype]] 
while it changes behind your back, it's not really helpful. While I'm 
saying this, I realize that the set of operations which will change 
[[Prototype]] is (will be) well-defined and the exact [[Prototype]] it 
changes to is not arbitrary. So maybe things are fine.

> I think a bigger question is how DOM nodes will handle 
> non-extensibility. If I Object.preventExtensions a node and then this 
> scenario happens, which happens to that node? Or do nodes just start 
> throwing whenever you try to make them non-extensible?
The throwing is what I suggested at www-dom.


More information about the es-discuss mailing list