Вложенный генератор ES6 аварийно завершает работу или выдает ошибки в Safari при открытии или закрытии консоли? - PullRequest
0 голосов
/ 27 января 2019

Запись генератора, который выдает * s внутри другого генератора каждый rAF (для того, чтобы выполнить некоторые последовательности событий в различных условиях и времени), обычно это работает нормально.Но когда я открываю или закрываю консоль в Safari, генератор перестает работать (или хуже).

Он либо вылетает из браузера, либо выдает ошибку: «TypeError: yield * subGenerator не является функцией. (In '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));

JSFiddle ЗДЕСЬ: https://jsfiddle.net/hvofwk0z/

Запустите, ТО откройте (или закройте) консоль, чтобы увидеть, что генератор остановится, иногда с ошибкой, иногда сбоемвкладка.

Невозможность открыть / закрыть консоль без разрыва страницы затрудняет отладку.

Есть что-то, что я пропускаю?Я где-то здесь ошибаюсь?Или это универсальная ошибка es6?

...