Catch-all pattern in DOM APIs considered harmful (was: ECMA TC 39 / W3C HTML and WebApps WG coordination)

David-Sarah Hopwood david-sarah at jacaranda.org
Fri Sep 25 11:23:13 PDT 2009


Maciej Stachowiak wrote:
> Let me give a concrete example, the HTMLCollection interface from HTML5:
> <http://dev.w3.org/html5/spec/Overview.html#htmlcollection-0>.
> 
> This interface is defined to have "getter" properties which imply
> catchall getters for index and non-index properties. This is implemented
> by all existing browsers and is needed for compatibility with a lot of
> Web content. It is also required by DOM Level 2 HTML's ECMAScript
> bindings:
> <http://www.w3.org/TR/DOM-Level-2-HTML/ecma-script-binding.html>. The
> fact that ECMAScript 5 can't implement an interface that behaves like
> this is an ECMAScript issue, not an HTML issue, in my opinion, and one
> that will hopefully be fixed in future editions.

Note that if a future edition of ECMAScript were to support catch-alls,
it would still not be a good idea to define any new APIs similar to
HTMLCollection, that have the problem of names defined in HTML/XML/CSS
potentially colliding with ECMAScript method names (or method names in
other languages). Such APIs are confusing, error-prone, and detrimental
to forward compatibility and language independence.

-- 
David-Sarah Hopwood  ⚥  http://davidsarah.livejournal.com



More information about the es-discuss mailing list