title: JavaScript and Tail Call
body: <p>According to the v8 ticket, it said</p>
  
  <p>Tail call elimination isn't compatible with JavaScript as it is used in the real 
      world.  Consider the following:</p>
  
  <pre><code>function foo(x) {
    return bar(x + 1);
  }
  
  function bar(x) {
    return foo.arguments[0];
  }
  
  foo(1)
  </code></pre>
  
  <p>This returns 1. </p>
  
  <p>It didn't explain clearly what if JavaScript support tail call, what would be the value of foo(1) and why?</p>
  
  <p>Anyone can explain?</p>