ES4 draft: Namespace

Brendan Eich brendan at
Wed Mar 5 23:28:31 PST 2008

On Mar 5, 2008, at 11:23 PM, Michael Daumling wrote:

> Unfortunately, I am not familiar with the decision to not support  
> E4X in
> ES4. Would this decision not Break The Web, as E4X has been an  
> integral
> part of SpiderMonkey for a long time?

Certainly it won't break the Web, since the Web has to run in  
multiple browsers and SpiderMonkey is only in Firefox.

What's more, we are reserving E4X syntax, but the E4X spec is a  
glorious mess of buggy pseudo-code, transcribed from buggy Java code.  
It is nearly impossible to reason about the deep logic levels and ad- 
hoc special-casing of [[Get]] and [[Put]] on XML types, e.g., to be  
able to prove to oneself that only trees and not DAGs or cyclic XML  
structures ever can result from a series of E4X operations. E357 is  
the anti-spec as far as mechanization and readability are concerned,  
in my view.

> Anyway, what advantage does the hiding of the prefix and name  
> properties
> have? Shouldn't we at least be aware of possible E4X users on the Web,
> and stay as compliant to E4X, even if ES4 does not support E4X?

E4X is not used on the Web.

> FYI: Adobe products are not The Web (but Flash is), but they integrate
> either ActionScript, SpiderMonkey or ExtendScript, and all languages
> support E4X.

According to what edition of ECMA-357, with what unfixed and fixed  
errata? Tested interoperably with other implementations (say,  
SpiderMonkey's) how?

E4X can be a useful tool. It was a grand experiment in its time,  
helping to rekindle ECMA TC39 TG1. But it needs a rethink, and a  
sound spec.


More information about the Es4-discuss mailing list