В Google Apps Script точки останова работают по-другому при использовании новой среды выполнения V8? - PullRequest
2 голосов
/ 29 мая 2020

Используя старую среду выполнения, я мог установить точку останова в любом месте моего кода. В новой версии v8 точки останова, по-видимому, должны быть в функции, которую я запускаю из отладчика?

Это предполагаемое поведение? Я что-то делаю не так в отладчике или в своем коде? Возможно, он неправильно структурирован?

МИНИМАЛЬНЫЙ ПРИМЕР:

var test1 = 1;
var test2 = 2;
var test3 = 3;

function myFunction() {
  var test4 = 4;
  var test5 = 5;
}

V8 RUNTIME:

Я могу установить точку останова на var test4 = 4 а затем используйте отладчик и выберите myFunction, и код прервется на этой строке.

Но если я установлю точку останова на var test2 = 2, а затем использую отладчик, выбрав myFunction, он не break (это было бы со старой средой выполнения).

1 Ответ

0 голосов
/ 01 июня 2020

Это новое поведение, связанное со средой выполнения V8

  • С одной стороны

    Из документации :

При запуске в режиме отладки сценарий приостанавливается при достижении точки останова, которая представляет собой строку, которую вы выделили в своем сценарии.

Если ваша точка останова находится вне функции - в строке, которая никогда не вызывалась - ваша точка останова никогда не будет достигнута.

  • С другой стороны

Другие люди также заметили, что это поведение отличается от предыдущего, и зарегистрировал его в Google Publi c Отслеживание проблем

Хотя Google исследует предыдущее или текущее поведение, предназначенный, как обходной путь:

Если вы хотите, чтобы ваш отладчик останавливался на строке var test2 = 2;, которая находится за пределами myFunction(), вам необходимо иначе структурировать свой код, например:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...