Some JavaScript implementations allow undefined to be overwritten, this may lead to peculiar bugs that are extremely hard to track down.
This plugin transforms undefined into void 0 which returns undefined regardless of if it's been reassigned.
In
foo === undefined;Out
foo === void 0;npm install babel-plugin-transform-undefined-to-void.babelrc
{
"plugins": ["transform-undefined-to-void"]
}babel --plugins transform-undefined-to-void script.jsrequire("babel-core").transform("code", {
plugins: ["transform-undefined-to-void"]
});