title: ECMAScript 6 features available in Node.js 0.12
body: <p>A new stable release of Node.js (0.12) has landed recently with an upgraded Google's v8 JavaScript engine, <em>v3.28.73</em>.</p>
  
  <h2>What ECMAScript 6 features are currently present in Node.js, without using the <code>--harmony</code> flag?</h2>
  
  <p>I have checked several sites claiming to list the ES 6 features but all of them seem out of date - most prominently, <a href="http://kangax.github.io/compat-table/es6/#node" rel="noreferrer">this table</a> (<strong>Update:</strong> <em>now updated with current Node.js status as of 0.12</em>), because several of the features are listed as requiring the <code>--harmony</code> flag while I found some of them being enabled by default (Maps, Sets, Symbols, to name a few). <strong>Update</strong>: <a href="http://node.green/" rel="noreferrer">Node specific tables</a> have since been made available</p>
  
  <p>Also, trying to google this information purely for the v8 engine gives too up-to-date information - current v8 release is <em>4.2.*</em>, which is quite ahead of what Node.js uses.</p>
  
  <p>My hopes are that this question (and its answers) will become a comprehensive summary on what ES 6 features are now available to Node.js developers.</p>
  
  <h2>ES 6 features enabled in Node.js 0.12 I currently know of:</h2>
  
  <ul>
  <li>Maps, Sets / WeakMaps, WeakSets</li>
  <li>Symbols</li>
  <li>Object.observe</li>
  <li>Promises</li>
  <li>Number
  
  <ul>
  <li>.isInteger</li>
  <li>.isSafeInteger</li>
  <li>.isNaN</li>
  <li>.EPSILON</li>
  <li>.MIN_SAFE_INTEGER</li>
  <li>.MAX_SAFE_INTEGER</li>
  </ul></li>
  <li>Math
  
  <ul>
  <li>.clz32</li>
  <li>.imul</li>
  <li>.sign</li>
  <li>.log10</li>
  <li>.log2</li>
  <li>.log1p</li>
  <li>.expm1</li>
  <li>.cosh</li>
  <li>.sinh</li>
  <li>.tanh</li>
  <li>.acosh</li>
  <li>.asinh</li>
  <li>.atanh</li>
  <li>.trunc</li>
  <li>.fround</li>
  <li>.cbrt</li>
  <li>.hypot</li>
  </ul></li>
  </ul>