Agile Ajax

ECMAScript 4: Specifics on how it might “break the web”

I love browsing Lambda the Ultimate, the "programming languages weblog," because it makes me feel stupid. There's nothing quite as educational for an undergraduate as hanging out with some grad students and finding out just how much he's still got to learn about his chosen discipline. That's how I feel when I read Lambda. I might not "get" everything, but I always come away with a bunch of stuff to look up and explore.

Lo and behold, today's Lambda post delves into ECMAScript Edition 4 and Backwards Compatibility. I posted yesterday about the ECMAScript 4 brawl, but trust the folks behind Lambda to sidestep the drama and focus on the actual impact the proposed changes would demand of existing JavaScript programs in the wild. Of course, the paper the article links to comes from Adobe Systems, the Mozilla Foundation and others who've been playing a major or supporting role in the aforementioned drama. Still, it's packed with useful information for those who haven't made it through the draft language overview or given the reference implementation a spin.

Topics:

Comments: 1 so far

  1. Hi, that’s indeed the document produced by the majority in the Ecma standards body — not just Adobe and Mozilla, also Opera (Opera reps have made huge contributions over the last two years) and others.

    Notice how the doc cites precedent in browsers for all but two of the changes from ES3 to ES4. In other words, browsers did something different (sometimes for good reason, sometimes for bad, but the precedent took) and de-facto behavior trumps de-jure standard. That’s real-world web standards in action.

    Of the two changes without precedent in browsers, one is mitigated by inconsistencies in ES3 — you can rebind Object or Array in ES3 (a JSON security hazard), but not all of the ES3 spec uses your new value for those standard constructor functions — sometimes ES3 uses the “original” value!

    The other “true incompatibility”, how |this| propagates from an outer to an inner function when the outer calls the inner, is a bug fix to ES3. We’ll be testing it against the web, including in Firefox 3 pre-releases, so if it turns out to break something, we can make it happen only when script authors opt into ES4. See, we’re actually not trying to lose market share while we evolve the web ;-).

    /be

    Comment by Brendan Eich, Tuesday, November 6, 2007 @ 7:41 pm

Leave a comment

Powered by WP Hashcash

About Pathfinder

  • We design and build extraordinary applications for companies looking to make the next great idea a reality.
  • learn more

Topics

WordPress

Comments about this site: info@pathf.com