Почему такая огромная разница в производительности для инкапсулированной функции Javascript?

Итак, у меня есть этот простой код:

function Run () {
  var n = 2*1e7;
  var inside = 0;
  while (n--) {
    if (Math.pow(Math.random(), 2) +
        Math.pow(Math.random(), 2) < 1)
      inside++;
  }

  return inside;
}

var start = Date.now();
Run();
console.log(Date.now() - start);

И он будет выдавать около 335 мс. Это очень хорошо. Но если я инкапсулирую функцию Run следующим образом:

var d = Date.now();
(function Run () {
  var n = 2*1e7;
  var inside = 0;
  while (n--) {
    if (Math.pow(Math.random(), 2) +
        Math.pow(Math.random(), 2) < 1)
      inside++;
  }

  return inside;
})();
console.log(Date.now() - d);

Он выдаст 18319мс, что намного хуже, чем в предыдущем случае. Почему это ?

Кроме того, если это имеет значение, я запускаю его на Chrome 26.0.1410.63 в консоли. В файле node.js оба фрагмента хорошо работают на консоли.

Ответы на вопрос(1)

Ваш ответ на вопрос