title: Why does Array.prototype.join() flatten an array of any depth?
body: <p>Messing around with some JavaScript and what I thought should have produced a bug happened to work out as intended. <code>[].join()</code> seems to flatten a nested array of any depth. </p>
  
  <pre><code>var arr = [['a'], ['b'], ['c']];
  arr.join('-'); // =&gt; 'a-b-c'
  </code></pre>
  
  <p>And even <code>var arr = [['a'], [[[[[[[[['b']]]]]]]]], ['c']];</code> returns the exact same result as above.</p>
  
  <p>Which is especially odd since it returns the expected (erroneous) behavior with objects:</p>
  
  <pre><code>var arr = [{}, {}, {}];
  arr.join('-'); // =&gt; '[object Object]-[object Object]-[object Object]'
  </code></pre>
  
  <p>Curious if this is a feature of the latest chrome (53.0.2785.116), intended, or a bug?</p>