突然、一日何度もタイマー実行していたGASがエラーを吐き始めた。
もろもろ調べると、GASがV8エンジンにバージョンアップしていて対応してない書き方部分で落ちていた。
どうも「for each」ループがだめになったみたいで
// 以前の書方(こける!)
var obj = {a: 1, b: 2, c: 3};
for each (var value in obj) {
Logger.log("value = %s", value);
}
// V8
var obj = {a: 1, b: 2, c: 3};
for (var key in obj) { // OK in V8
var value = obj[key];
Logger.log("value = %s", value);
}
もろこれで落ちてました。V8のバージョンアップの公式ガイド
https://developers.google.com/apps-script/guides/v8-runtime/migration
を読むとほかにもいろいろ変わってるとこあるので
GAS使ってる人は、一度は目通しといたほうがいいかも
基本的にはなんといっても
letが使えるようになったり、
下記のような中途半端なconstがちゃんとしたものになったり
// 以前
const x = 1;
x = 2; // No error
console.log(x); // Outputs 1
//x = 2が無視ってどういうこと・・
//落としてよ!
// V8 runtime
const x = 1;
x = 2; // Throws TypeError
console.log(x); // Never executed
上記のような、既存ソースに影響あるところも細々あるようです。
0 件のコメント :
コメントを投稿