W3C home > Mailing lists > Public > public-script-coord@w3.org > July to September 2011

Re: Lazy interface objects?

From: David Flanagan <dflanagan@mozilla.com>
Date: Wed, 21 Sep 2011 15:33:57 -0700
Message-ID: <4E7A6655.40601@mozilla.com>
To: Jonas Sicking <jonas@sicking.cc>
CC: Boris Zbarsky <bzbarsky@mit.edu>, public-script-coord@w3.org
On 9/21/11 2:55 PM, Jonas Sicking wrote:
> On Wed, Sep 21, 2011 at 1:25 PM, Boris Zbarsky<bzbarsky@mit.edu>  wrote:
>> On 9/21/11 3:50 PM, David Flanagan wrote:
>>> So far, I'm concentrating on the DOM and have not really though about
>>> the global object.
>> But this thread is about properties on the global object....
> Also, the DOM defines a lot of behavior and properties for the global
> (window) object. Including the array-like behavior that I mentioned.
> So I'm not quite sure I follow the distinction.
> / Jonas

My goal is to implement as much of DOM Core and HTML as I can in pure 
JavaScript where I have Proxy and WeakMap, but do not control the global 
object.  When I get to the array-like behavior of the Window object, 
I'll presumably require a custom embedding or something that gives me 
control over the global.

But that is an issue for another day.  In this thread, my concern is 
that WebIDL requires interface object properties to have a [[Writable]] 
attribute and therefore (and possibly unintentionally) rules out 
implementations that use accessor properties. This seems to me to be an 
unnecessary constraint.  The realistic interoperability requirement for 
these properties is that they be writeable (i.e. if I set a property to 
x and then read that property I get the value x back) not that they have 
a [[Writable]] attribute.  Writing the specification at the property 
descriptor level simplifies things, but seems like a mistake to me.  We 
don't really need interoperability at the level of 
getOwnPropertyDescriptor, do we?

Received on Wednesday, 21 September 2011 22:34:27 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:14:04 UTC