Re: WebIDL and prototype chains

On Thu, Jul 16, 2009 at 1:13 PM, Jonas Sicking<jonas@sicking.cc> wrote:
> On Thu, Jul 16, 2009 at 10:45 AM, Adam Barth<w3c@adambarth.com> wrote:
>> When a browser creates an instance of a DOM object defined by an
>> WebIDL interface, the browser must choose where to connect it's
>> prototype chain.  For example, consider this case (where frames[0] is
>> a same-origin child frame):
>>
>> var doc = frames[0].document;
>>
>> 1) To which global object's prototypes ought |doc| connect to, the
>> parent frame running the script or the child frame from which we
>> obtained the document?
>>
>> My best guess is that the prototype chain ought to connect to the
>> child's prototype
>
> Absolutely. |doc| will simply be pointing to the same object that
> frames[0].document does. So the prototype chain must be the same for
> both. And it's clear that when code inside frames[0] accesses that
> frames document it should have a protochain based on the globals in
> that frame.

Firefox is much more consistent in this regard than Safari or Chrome:

http://webblaze.org/abarth/tests/protoconfused/test1.html

However, Firefox does not appear to attach function prototypes
correctly.  Maybe I should file a bug.  :)

Adam

Received on Thursday, 16 July 2009 20:53:24 UTC