[whatwg] [dom] attributes collection not fully defined?

Boris Zbarsky bzbarsky at MIT.EDU
Wed May 29 21:46:40 PDT 2013


On 5/30/13 12:06 AM, Michael Day wrote:
> This part still seems inconsistent with current browsers:
>
>> 4)  Setting a property name that is currently exposed does a Reject
>>      (which means throw in strict mode, silently do nothing in
>>      non-strict mode).  Unless there is a named setter, of course.

Behavior here .... varies.  From object to object and from browser to 
browser, depending on whatever bizarre implementation details the 
browsers happen to be using to implement the "properties appear and 
disappear" thing.

In particular, not all browsers are using WebIDL bindings for all 
objects yet, not even close.

> except for a very strange bug in Firefox only, where if I *read* the
> value before removing it, the attribute doesn't go away later:

Yep, that's a result of how this object is currently implemented in 
release Firefox (not as a WebIDL object).  It's a WebIDL object in 
Firefox nightly and Aurora builds if you want to test the behavior there.

It looks like I slightly misread what the spec says about the setting 
case.  Looks like for objects that do not have [OverrideBuiltins] 
setting will create/set a new own property that causes the property name 
to be hidden.  So this testcase:

     div.setAttribute("fruit", "orange");
     div.attributes.fruit = "apple";
     alert(div.attributes.fruit); // apple
     div.removeAttribute("fruit");
     alert(div.attributes.fruit); // apple

alerts "apple" in current trunk Firefox both times, for example.

-Boris



More information about the whatwg mailing list