[Bug 20582] Definitions of "valid key" and key comparison are underdefined and not compatible with WebIDL

https://www.w3.org/Bugs/Public/show_bug.cgi?id=20582

Joshua Bell <jsbell@chromium.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jsbell@chromium.org

--- Comment #1 from Joshua Bell <jsbell@chromium.org> ---
The structured clone algorithm in HTML is similarly under-defined. Referring to
http://lists.w3.org/Archives/Public/public-webapps/2012OctDec/0087.html for
numbering:

1) Array - similarly under-defined in structured clone algorithm

2) float - agree with Boris' suggestion to change this to "unrestricted float",
although given the tight dependency between this spec and ECMA-262, dropping
the WebIDL-isms and just using "string primitive" or "number primitive" might
be more appropriate.

3) getters - the structured clone algorithm is similarly underdefined here,
although it has text about enumerable properties, getters and setters, and not
walking the prototype chain. Presumably we would want similar text.

4) toString/valueOf - the structured clone algorithm distinguishes between
Objects, and primitive values. Presumably we would want similar text.

5) Date - similarly under-defined in structured clone algorithm

6, 7) comparison - I believe all implementations act AS IF they have performed
a structured clone on the key value after validity is asserted and the clone is
used rather than the original object for all further operations. (Chrome uses a
custom data structure, I assume other browsers do the same). This means by the
time a comparison is being performed there are guaranteed to be no side effects
i.e. an implementation cannot observe the comparison algorithm in progress.

I believe #3, #6, #7 could be clarified by explicitly invoking the structured
clone algorithm and having operations defined as acting on the clone. That, at
least, pushes off the problem of side effects to the structured clone algorithm
and makes the platform behave consistently.

#1, #2, #4 and #5 still bypass WebIDL, but in a manner identical to the
structured clone algorithm. Is there work under way to define structured clone
in terms of WebIDL that could be leveraged, for consistency?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Tuesday, 8 January 2013 23:19:07 UTC