Node-REDのバージョンを上げたらフローにエラーが出るようなった

1.概要

以前から動作していたNode-REDのフローが、マシンのOSのバージョンアップと共にNode-REDのバージョンが上がったことで、エラーが出た場合に、原因の一つとして考えられる事象が見つかりましたので報告します。
これ以外にもあるかもしれませんが、ひとまず我々が遭遇した事例です。

2.事例紹介

Ubuntuを新しいバージョンに入れ替えて、Node-REDも最新版入れ替えたところ、functionノードに記載していた下記コードがエラーになった。

var node = msg.payload.node;

どこかの時点で、変数名 nodeが予約語になったために発生したようです。
同様に予約語である変数名flowもエラーになります。
(flowは昔から予約語です)

var flow = msg.payload.flow;

3. 対策案

対策としては、以下の2つがあると思います。

1) 変数nodeを複数個所で使っている場合

var node を別の名前に変える。
例えば、node1, node_など。

2) 変数nodeを1ヶ所しか使っていない場合

var nodeを使うのを止める。

nodeの代わりに、msg.payload.nodeを使う。

Appendix. functionノードの予約語(変数として使えない文字列)

全てを網羅したリストが今のところ見つかっていないので、現段階でfuncitonノードの変数に設定するとエラーになるのは以下の文字列です。

1. javascriptの予約語

一部ですが、以下の様なものがあります。

break
case
catch
class
const
continue
debugger
default
delete
do
else
export
extends
finally
for
function
if
import
in
instanceof
new
return
super
switch
this
throw
try
typeof
var
void
while
with

2. Node-REDの予約語

1) 試してみてエラーになる文字列

node
context
flow
global
RED
env
Buffer

2) 試してみてOKだった文字列

以下の様な文字列がありますが、出来れば避けておいた方が良いでしょう。

msg
payload
topic
error
util
console
SetTimeout
log
SetInterval
set
get