Excellent proposal from dherman coming very soon. — Brendan Eich 2011/12/31 21:09
See versioning for the back-story.
The goal is to allow new versions of ES with syntactic and non-syntactic extensions to degrade gracefully in downrev browsers, while upgrading the user experience for uprev browsers without taxing developers too much.
Audiences competing here include implementors, developers, and ultimately users who benefit from progressive enhancement. On the Web, with Ajax apps, progressive enhancement may mean the regressive experience is slighly less shiny (no CSS transition), or perhaps a “Web 1.0” window-popup or form field instead of CSS popup or editable text widget.
For JS hackers wanting to use new versions of ES, the problems consist of selecting and detecting support for the new version and compensating with fallback for lack of new features. For browser implementors, complexity and version combination explosion may be overriding.
This is a brain-dump or laundry-list. It might better be factored into audience-specific use-cases from which we can derive requirements.
<script>...</script>.<script> attributes or extra version=... parameters.<script> content using that syntax from downrev browsers.use version n; pragma. This wins for many developers who are not good script-tag configurators.__MAX_ECMASCRIPT_VERSION__ property, for runtime script version selection.<meta> tag!<script> tag, which has no fallback markup within its container, might be appropriate.— Brendan Eich 2009/09/23 22:52