From CommonJS Spec Wiki
Jump to: navigation, search


JavaScript runs on many engines with many variations of the standard global primordial objects, like Object, Array, and Date. Interoperable modules must be able to run on a wide variety of engines. To facilitate code sharing for components of a standard library and interoperable packaged libraries, each of these platforms need to make certain guarantees, a contract between library and engine.


There have been no formal proposals. The discussed directions are informally:

  1. ECMAScript 5. In so far as few engines support ES5 even partially, all present engine would fall short of compliance, with the intent of asymptotically approaching compliance by implementing ES5 or stubs that close the gap.
  2. All those parts of ECMAScript 5 that are possible to emulate on most engines. For this proposal to be viable, someone will need to formalize the list of ES5 methods that would need to be emulated or stubbed in order to maintain compliance, and in what ways they may fail to function, like enumerability on object properties. Also, certain facilities of the languages would have to be forbidden to interoperable modules, like for name loops on Arrays.

Relevant Discussions