What version of Javascript is supported in node.js

emtrane picture emtrane · Feb 28, 2011 · Viewed 31.8k times · Source

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?

Answer

Benson picture Benson · Feb 28, 2011

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.