title: Can't enable tail call optimization in node v6.4.0
body: <p>I wan't to play around with tail call optimization in node/es2015, but I keep getting <code>RangeError: Maximum call stack size exceeded</code>. So I tried a very simple test function: </p>
  
  <pre><code>  function countTo(n, acc) {
      if(n === 0) {
        return acc;
      }
      return countTo(n - 1, acc + n);
    }
  
    console.log(countTo(100000 , 0))
  </code></pre>
  
  <p>and it still fails.  I've tried adding <code>'use strict';</code> inside the function body and at the top of the file.  I've tried using <code>--harmony</code> and <code>--harmony-tailcalls</code></p>
  
  <p>The same function works as expected in racket:</p>
  
  <pre class="lang-lisp prettyprint-override"><code>#lang racket
  (define count-to
    (lambda (n acc)
      (cond
        ((= n 0) acc)
        (else (count-to (- n 1) (+ acc n))))))
  (count-to 100000000 0)
  ; ~&gt; 5000000050000000
  </code></pre>
  
  <h1>Edit:</h1>
  
  <h3>As @MatthieuLemoine suggested.  It works in v6.5.0+ with <code>"use strict";</code> and either <code>--harmony</code> or <code>--harmony-tailcalls</code></h3>