Вложенный генератор 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?

0 ответов

Другие вопросы по тегам