Вложенный генератор ES6 аварийно завершает работу или выдает ошибки в Safari при открытии или закрытии консоли?
Записывая генератор, который выдает *s внутри другого генератора каждый rAF (для выполнения некоторых последовательностей событий в различных условиях и времени), обычно он работает нормально. Но когда я открываю или закрываю консоль в Safari, генератор перестает работать (или того хуже).
Он либо вылетает из браузера, либо выдает ошибку: "TypeError: yield* subGenerator не является функцией. (В" yield* subGenerator()"" yield *subGenerator "не определен)"
Я осмотрел кучу, но не могу найти соответствующую информацию. Я пытался назначить подгенерирующий элемент для var и регистрировать связанные объекты, чтобы получить дополнительную информацию, но не нашел никаких подсказок.
mainGenerator = function*() {
while (true) {
yield* subGenerator()
}
}
subGenerator = function*() {
while (true) {
yield
}
}
update = function() {
generatey.next()
window.requestAnimationFrame(update.bind(this));
}
var generatey = mainGenerator();
window.requestAnimationFrame(update.bind(this));
https://jsfiddle.net/hvofwk0z/
Запустите, ТО откройте (или закройте) консоль, чтобы увидеть, что генератор остановится, иногда с ошибкой, иногда с ошибкой вкладки.
Невозможность открыть / закрыть консоль без разрыва страницы затрудняет отладку.
Я что-то упускаю? Я где-то здесь ошибаюсь? Или это универсальный баг es6?