Why does this forEach return undefined when using a return statement
<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>
