Search code examples
javascriptnode.jsv8

What version of Javascript is supported in node.js


I'm getting started with Node.js and I'm having a hard time figuring out what version of JavaScript is supported by node which makes it difficult figuring out what features I can use. Here's what I know.

  • Node uses V8
  • V8 implements ECMAScript as specified in ECMA-262, 3rd edition
  • ECMA-262, 3rd edition is JavaScript 1.5

Given this, I would assume I can use JavaScript 1.5 compatible code in node. However, it turns out I can use the Array.forEach, among other constructs, even though according to MDC it isn't available until Javascript 1.6 -- ECMA-262, 5th edition.

Where am I going wrong? Is there a document somewhere that details the available language features?


Solution

  • This matrix (V8 follows the WebKit column fairly closely) seems to pretty well answer the question "what features can I use?" but I can't find a canonical answer to "what version of javascript is supported?" As far as I can tell, the best answer is this: ECMA-262 3rd edition is supported, but many features of the 5th edition are also supported.

    There's a good explanation of why V8 follows the WebKit and JavaScriptCore functionality on this thread.