This is a specification for Shared Memory and Atomics for ECMAScript, a proposal submitted to Ecma TC39 and currently at Stage 4 in the ECMAScript approval process.

IMPORTANT NOTE: As of February 2017 this proposal has been merged into the ECMAScript specification. Bug fixing and further evolution take place in that document, and the prose in the present repository will increasingly become irrelevant. If you find bugs, please check the ECMAScript specification first, and if the bugs are also in that version then please file bugs in the ecma262 bug tracker, not in this repository.

Documentation and other materials


Firefox, Chrome and WebKit ship with prototype implementations of the proposal; these are largely compatible.

  • The feature is enabled by default in Firefox Nightly; starting with Firefox 46, users of Developer Edition, Aurora, Beta, and Release can visit about:config and set the option javascript.options.shared_memory to true.
  • The feature is off by default in Chrome, but can be enabled by passing the command line options --js-flags=--harmony-sharedarraybuffer and --enable-blink-feature=SharedArrayBuffer. (Known to work in Chrome 48.)
  • The feature is enabled by default in WebKit Nightly and Safari Technology Preview as of STP 20.


The sources for the specs are in the tc39/ subdirectory and the formatted versions are generated with the script.