diff --git a/.gitignore b/.gitignore index 7087f6e030..5f5042e700 100644 --- a/.gitignore +++ b/.gitignore @@ -15,12 +15,16 @@ package-lock.json !/packages/babel-runtime/core-js/map.js /packages/babel-runtime/helpers/*.js !/packages/babel-runtime/helpers/toArray.js +!/packages/babel-runtime/helpers/temporalRef.js /packages/babel-runtime/helpers/builtin/*.js !/packages/babel-runtime/helpers/builtin/toArray.js +!/packages/babel-runtime/helpers/builtin/temporalRef.js /packages/babel-runtime/helpers/builtin/es6/*.js !/packages/babel-runtime/helpers/builtin/es6/toArray.js +!/packages/babel-runtime/helpers/builtin/es6/temporalRef.js /packages/babel-runtime/helpers/es6/*.js !/packages/babel-runtime/helpers/es6/toArray.js +!/packages/babel-runtime/helpers/es6/temporalRef.js /packages/babel-register/test/.babel /packages/babel-cli/test/tmp /packages/babel-node/test/tmp diff --git a/packages/babel-runtime/helpers/builtin/es6/temporalRef.js b/packages/babel-runtime/helpers/builtin/es6/temporalRef.js new file mode 100644 index 0000000000..4b0679c64c --- /dev/null +++ b/packages/babel-runtime/helpers/builtin/es6/temporalRef.js @@ -0,0 +1,8 @@ +import undef from "./temporalUndefined"; +export default function _temporalRef(val, name) { + if (val === undef) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); + } else { + return val; + } +} \ No newline at end of file diff --git a/packages/babel-runtime/helpers/builtin/temporalRef.js b/packages/babel-runtime/helpers/builtin/temporalRef.js new file mode 100644 index 0000000000..20b2652a1f --- /dev/null +++ b/packages/babel-runtime/helpers/builtin/temporalRef.js @@ -0,0 +1,11 @@ +var temporalUndefined = require("./temporalUndefined"); + +function _temporalRef(val, name) { + if (val === temporalUndefined) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); + } else { + return val; + } +} + +module.exports = _temporalRef; \ No newline at end of file diff --git a/packages/babel-runtime/helpers/es6/temporalRef.js b/packages/babel-runtime/helpers/es6/temporalRef.js new file mode 100644 index 0000000000..4b0679c64c --- /dev/null +++ b/packages/babel-runtime/helpers/es6/temporalRef.js @@ -0,0 +1,8 @@ +import undef from "./temporalUndefined"; +export default function _temporalRef(val, name) { + if (val === undef) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); + } else { + return val; + } +} \ No newline at end of file diff --git a/packages/babel-runtime/helpers/temporalRef.js b/packages/babel-runtime/helpers/temporalRef.js new file mode 100644 index 0000000000..20b2652a1f --- /dev/null +++ b/packages/babel-runtime/helpers/temporalRef.js @@ -0,0 +1,11 @@ +var temporalUndefined = require("./temporalUndefined"); + +function _temporalRef(val, name) { + if (val === temporalUndefined) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); + } else { + return val; + } +} + +module.exports = _temporalRef; \ No newline at end of file