W3C home > Mailing lists > Public > www-dom@w3.org > October to December 2012

Re: [dom] Need to describe the interaction of adoptNode with prototype chains

From: David Bruant <bruant.d@gmail.com>
Date: Mon, 24 Dec 2012 19:39:13 +0100
Message-ID: <50D8A151.50303@gmail.com>
To: Anne van Kesteren <annevk@annevk.nl>
CC: Boris Zbarsky <bzbarsky@mit.edu>, www-dom@w3.org, Cameron McCormack <cam@mcc.id.au>, Bobby Holley <bholley@mozilla.com>
Le 24/12/2012 11:58, Anne van Kesteren a écrit :
> On Mon, Dec 24, 2012 at 11:53 AM, David Bruant <bruant.d@gmail.com> wrote:
>> One thing to keep in mind is that in ES6, it won't be possible to change the
>> [[Prototype]] of an object with [[Extensible]]:false (it's currently the
>> case in Firefox, I haven't tested others).
>> It means that nodes (and anything that can have its *associated object*
>> changed) must throw on Object.preventExtensions/seal/freeze (I don't know
>> what WebIDL currently says about that).
> Given the document.open() scenario this might potentially be
> everything in the platform...
I see.
I'm reading step 14 of the document.open:
"Replace the Document's singleton objects with new instances of those 
objects. (This includes in particular the Window, Location, History, 
ApplicationCache, and Navigator, objects, the various BarProp objects, 
the two Storage objects, the various HTMLCollection objects, and objects 
defined by other specifications, like Selection and the document's 
UndoManager. It also includes all the Web IDL prototypes in the 
JavaScript binding, including the Document object's prototype.)"

I see even Object.prototype doesn't survive in Gecko.
What does observably survive to document.open?

Could it be possible to pretend that document.open is like a navigation 
instead of the complicated algorithm removing everything?
Since even the Window doesn't survive document.open,

> The alternative would be to not garbage
> collect the previous Window ever, which would be sad :-(
That's an understatement.

David
Received on Monday, 24 December 2012 18:39:44 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 24 December 2012 18:39:46 GMT