title: Why does this forEach return undefined when using a return statement
body: <pre><code>Object.prototype.e = function() {
      [].forEach.call(this, function(e) {
          return e;
      });
  }; 
  var w = [1,2];
  
  w.e(); // undefined
  </code></pre>
  
  <p>But this works if I use alert instead</p>
  
  <pre><code>// ...
  [].forEach.call(this, function(e) {
      alert(e);
  });
  // ...
  
  w.e(); // 1, 2
  </code></pre>