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 09:44:21 PDT 2009


Anne van Kesteren wrote:
> On Fri, 25 Sep 2009 11:38:08 +0200, Sam Ruby <rubys at intertwingly.net>
> wrote:
>> Meanwhile, what we need is concrete bug reports of specific instances
>> where the existing WebIDL description of key interfaces is done in a
>> way that precludes a pure ECMAScript implementation of the function.
> 
> Is there even agreement that is a goal?
> 
> I personally think the catch-all pattern which Brendan mentioned is
> quite convenient and I do not think it would make sense to suddenly stop
> using it.

It does make sense to stop using it. Typical uses of this pattern
result in a collision between two namespaces: a namespace of objects
defined in HTML/XML (named by IDs for example), and the namespace of
methods in a DOM object. This causes problems if an ID matches a method
name, and requires programmers to use a different syntax if an ID name
is not an ECMAScript identifier. It is *much* clearer to define an
explicit 'get' method, similar to 'getElementById' for example.

> Also, the idea of removing the feature from Web IDL so that
> future specifications cannot use it is something I disagree with since
> having it in Web IDL simplifies writing specifications for the (legacy)
> platform and removes room for error.

The suggestion was only to stop using the catch-all pattern for new APIs,
not to remove it.

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



More information about the es-discuss mailing list