Утечка памяти с XMLHttpRequest и setInterval

Вот код, который я запускаю в Google Chrome 19.0.1061.1 (Официальная сборка 125213) dev:

<html>
<title>Memory Leak</title>
<script type="text/javascript">
    (function(){
        this.window.setInterval(function() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', '', false);
            xhr.send();
        }, 50);
    }).call(this);
</script>
</html>

Когда я проверяю использование памяти в chrome: // tasks, я вижу, что «Private Memory» растет бесконечно (конфигурация RAM 8GB). Если я изменю пример кода выше на что-то вроде этого:

<html>
<title>Memory Leak</title>
<script type="text/javascript">
    (function(){
        var xhr = new XMLHttpRequest();
        var timeout = this.window.setInterval(function() {
            xhr.open('GET', '', false);
            xhr.send();
        }, 50);
    }).call(this);
</script>
</html>

Теперь все в порядке.

Я не понимаюПочему хранение ссылки на функцию setInterval помогает иПочему определение только одной подсказки xhr, так как предыдущее объявление было в закрытии? Это связано только с v8?

Буду признателен за ваше понимание этого.

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

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