From 2db0c3ad1d4975115e99ca867f9364255d9af3f6 Mon Sep 17 00:00:00 2001 From: Noah Lemen Date: Thu, 24 Aug 2017 15:43:01 -0400 Subject: [PATCH] linting: disallow t.identifier("undefined") in plugins (#6096) * add new custom eslint rule, replace remaining t.identifier("undefined") with buildUndefinedNode(), update tests * change no-undefined-identifier reporting descriptor --- Makefile | 4 +- eslint_rules/no-undefined-identifier.js | 46 +++++++++++++++++++ package.json | 2 +- packages/.eslintrc | 3 +- .../import-and-export/expected.js | 2 +- .../test/fixtures/regression/4943/expected.js | 2 +- .../test/fixtures/regression/2663/expected.js | 2 +- .../test/fixtures/regression/2694/expected.js | 2 +- .../test/fixtures/regression/2775/expected.js | 2 +- .../src/index.js | 6 ++- .../assignment-expression-pattern/expected.js | 2 +- .../destructuring/export-variable/expected.js | 2 +- .../destructuring/parameters/expected.js | 4 +- .../function-name/modules-2/expected.js | 2 +- .../function-name/modules-3/expected.js | 2 +- .../amd/hoist-function-exports/expected.js | 2 +- .../test/fixtures/amd/overview/expected.js | 2 +- .../src/index.js | 4 +- .../auxiliary-comment/overview/expected.js | 2 +- .../interop/export-from-8/expected.js | 4 +- .../hoist-function-exports/expected.js | 2 +- .../fixtures/interop/overview/expected.js | 2 +- .../umd/hoist-function-exports/expected.js | 2 +- .../test/fixtures/umd/overview/expected.js | 2 +- .../parameters/rest-nested-5656/expected.js | 12 ++--- .../parameters/rest-nested-iife/expected.js | 2 +- .../rest-spread-optimisation/expected.js | 8 ++-- .../src/index.js | 2 +- .../spread/arguments-concat/expected.js | 2 +- .../fixtures/spread/arguments/expected.js | 2 +- .../method-call-array-literal/expected.js | 2 +- .../spread/method-call-first/expected.js | 2 +- .../spread/method-call-middle/expected.js | 2 +- .../method-call-multiple-args/expected.js | 2 +- .../spread/method-call-multiple/expected.js | 2 +- .../spread/method-call-single-arg/expected.js | 2 +- .../undefined-this-arrow-function/expected.js | 2 +- .../undefined-this-root-call/expected.js | 2 +- .../expected.js | 2 +- .../undefined-this-root-reference/expected.js | 2 +- .../fixtures/preset-options/spec/expected.js | 5 +- 41 files changed, 105 insertions(+), 53 deletions(-) create mode 100644 eslint_rules/no-undefined-identifier.js diff --git a/Makefile b/Makefile index a2730fb101..cb37594bf1 100644 --- a/Makefile +++ b/Makefile @@ -29,13 +29,13 @@ watch: clean BABEL_ENV=development ./node_modules/.bin/gulp watch lint: - ./node_modules/.bin/eslint scripts packages *.js --format=codeframe + ./node_modules/.bin/eslint scripts packages *.js --format=codeframe --rulesdir="./eslint_rules" flow: ./node_modules/.bin/flow check --strip-root fix: - ./node_modules/.bin/eslint scripts packages *.js --format=codeframe --fix + ./node_modules/.bin/eslint scripts packages *.js --format=codeframe --fix --rulesdir="./eslint_rules" clean: test-clean rm -rf packages/babel-polyfill/browser* diff --git a/eslint_rules/no-undefined-identifier.js b/eslint_rules/no-undefined-identifier.js new file mode 100644 index 0000000000..b16e3620dd --- /dev/null +++ b/eslint_rules/no-undefined-identifier.js @@ -0,0 +1,46 @@ +"use strict"; + +function argumentsIsUndefinedString(argumentsArray) { + return ( + argumentsArray.length === 1 && + argumentsArray[0].type === "Literal" && + argumentsArray[0].value === "undefined" + ); +} + +module.exports = { + meta: { + schema: [], + }, + create: function(context) { + if (context.getFilename().indexOf("packages/babel-plugin-") === -1) { + return {}; + } + + return { + CallExpression: function(node) { + const callee = node.callee; + + if ( + callee.type === "MemberExpression" && + argumentsIsUndefinedString(node.arguments) + ) { + const object = callee.object, + property = callee.property; + + if ( + object.type === "Identifier" && + object.name === "t" && + property.type === "Identifier" && + property.name === "identifier" + ) { + context.report( + node, + "Use path.scope.buildUndefinedNode() to create an undefined identifier directly." + ); + } + } + }, + }; + }, +}; diff --git a/package.json b/package.json index d0244ee38a..be05930612 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ }, "lint-staged": { "*.js": [ - "eslint --format=codeframe --fix", + "eslint --format=codeframe --fix --rulesdir='./eslint_rules'", "git add" ] }, diff --git a/packages/.eslintrc b/packages/.eslintrc index 757ea192cb..06311000fa 100644 --- a/packages/.eslintrc +++ b/packages/.eslintrc @@ -1,5 +1,6 @@ { "rules": { - "prettier/prettier": ["error", { "trailingComma": "all" }] + "prettier/prettier": ["error", { "trailingComma": "all" }], + "no-undefined-identifier": 2 } } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/import-and-export/expected.js b/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/import-and-export/expected.js index 4f976361f9..883285363e 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/import-and-export/expected.js +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/import-and-export/expected.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.foo = undefined; +exports.foo = void 0; let foo = exports.foo = (() => { var _ref = babelHelpers.asyncToGenerator(function* () {}); diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/4943/expected.js b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/4943/expected.js index ebc9305435..b0b32d8679 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/4943/expected.js +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/4943/expected.js @@ -4,7 +4,7 @@ let foo = (() => { var _ref = _asyncToGenerator(function* (_ref2) { let a = _ref2.a, _ref2$b = _ref2.b, - b = _ref2$b === undefined ? mandatory("b") : _ref2$b; + b = _ref2$b === void 0 ? mandatory("b") : _ref2$b; return Promise.resolve(b); }); diff --git a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2663/expected.js b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2663/expected.js index 147a3f2b04..1b8245383d 100644 --- a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2663/expected.js +++ b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2663/expected.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = undefined; +exports.default = void 0; var _net = require("net"); diff --git a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2694/expected.js b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2694/expected.js index c4909bae1b..a5253ac6a7 100644 --- a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2694/expected.js +++ b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2694/expected.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = undefined; +exports.default = void 0; var _BaseFoo2 = require("./BaseFoo"); diff --git a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2775/expected.js b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2775/expected.js index 73e9b9f286..83d25c409c 100644 --- a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2775/expected.js +++ b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2775/expected.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = undefined; +exports.default = void 0; var _react = require("react"); diff --git a/packages/babel-plugin-transform-es2015-destructuring/src/index.js b/packages/babel-plugin-transform-es2015-destructuring/src/index.js index c2d970aa43..c0d4bfc3bb 100644 --- a/packages/babel-plugin-transform-es2015-destructuring/src/index.js +++ b/packages/babel-plugin-transform-es2015-destructuring/src/index.js @@ -112,7 +112,11 @@ export default function({ types: t }) { // const tempConditional = t.conditionalExpression( - t.binaryExpression("===", tempValueRef, t.identifier("undefined")), + t.binaryExpression( + "===", + tempValueRef, + this.scope.buildUndefinedNode(), + ), pattern.right, tempValueRef, ); diff --git a/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/assignment-expression-pattern/expected.js b/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/assignment-expression-pattern/expected.js index 47004a5c9d..7e7e9bfffe 100644 --- a/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/assignment-expression-pattern/expected.js +++ b/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/assignment-expression-pattern/expected.js @@ -1,4 +1,4 @@ var z = {}; var _z$x = z.x; -_z$x = _z$x === undefined ? {} : _z$x; +_z$x = _z$x === void 0 ? {} : _z$x; var y = _z$x.y; diff --git a/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/export-variable/expected.js b/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/export-variable/expected.js index 7fd11922df..b011d58adf 100644 --- a/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/export-variable/expected.js +++ b/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/export-variable/expected.js @@ -4,5 +4,5 @@ var _ref = {}, _ref$c = _ref.c, d = _ref$c.d, _ref$c$e$f = _ref$c.e.f, - f = _ref$c$e$f === undefined ? 4 : _ref$c$e$f; + f = _ref$c$e$f === void 0 ? 4 : _ref$c$e$f; export { a, b, d, f }; diff --git a/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/parameters/expected.js b/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/parameters/expected.js index 12bb63d7b5..2f22074eac 100644 --- a/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/parameters/expected.js +++ b/packages/babel-plugin-transform-es2015-destructuring/test/fixtures/destructuring/parameters/expected.js @@ -1,10 +1,10 @@ function somethingAdvanced(_ref, p2, p3) { var _ref$topLeft = _ref.topLeft; - _ref$topLeft = _ref$topLeft === undefined ? {} : _ref$topLeft; + _ref$topLeft = _ref$topLeft === void 0 ? {} : _ref$topLeft; var x1 = _ref$topLeft.x, y1 = _ref$topLeft.y, _ref$bottomRight = _ref.bottomRight; - _ref$bottomRight = _ref$bottomRight === undefined ? {} : _ref$bottomRight; + _ref$bottomRight = _ref$bottomRight === void 0 ? {} : _ref$bottomRight; var x2 = _ref$bottomRight.x, y2 = _ref$bottomRight.y; } diff --git a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/modules-2/expected.js b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/modules-2/expected.js index 8a796cf407..0db89f78f2 100644 --- a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/modules-2/expected.js +++ b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/modules-2/expected.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = undefined; +exports.default = void 0; var _last2 = require("lodash/last"); diff --git a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/modules-3/expected.js b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/modules-3/expected.js index 31bcd2eba2..512c479dc3 100644 --- a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/modules-3/expected.js +++ b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/modules-3/expected.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = undefined; +exports.default = void 0; var _store = require("./store"); diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/hoist-function-exports/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/hoist-function-exports/expected.js index 3e75a0bab4..f078af154c 100644 --- a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/hoist-function-exports/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/hoist-function-exports/expected.js @@ -4,7 +4,7 @@ define(["exports", "./evens"], function (exports, _evens) { Object.defineProperty(exports, "__esModule", { value: true }); - exports.isOdd = undefined; + exports.isOdd = void 0; exports.nextOdd = nextOdd; function nextOdd(n) { diff --git a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/overview/expected.js b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/overview/expected.js index d0074ed64a..55b3fe7d7e 100644 --- a/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/overview/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-amd/test/fixtures/amd/overview/expected.js @@ -4,7 +4,7 @@ define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, Object.defineProperty(exports, "__esModule", { value: true }); - exports.test2 = exports.test = undefined; + exports.test2 = exports.test = void 0; var foo2 = babelHelpers.interopRequireWildcard(_foo); exports.test = test; var test2 = exports.test2 = 5; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js index 5861eaa847..1ef20d4938 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js @@ -201,7 +201,7 @@ export default function() { state.opts.allowTopLevelThis !== true && !path.findParent(path => THIS_BREAK_KEYS.indexOf(path.type) >= 0) ) { - path.replaceWith(t.identifier("undefined")); + path.replaceWith(path.scope.buildUndefinedNode()); } }, @@ -568,7 +568,7 @@ export default function() { maxHoistedExportsNodeAssignmentLength, ); - let hoistedExportsNode = t.identifier("undefined"); + let hoistedExportsNode = scope.buildUndefinedNode(); nonHoistedExportNamesChunk.forEach(function(name) { hoistedExportsNode = buildExportsAssignment( diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js index 9afaa1bb20..c615e629a4 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/auxiliary-comment/overview/expected.js @@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.test2 = exports.test = undefined; +exports.test2 = exports.test = void 0; /*after*/ diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-from-8/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-from-8/expected.js index 0e42d5615a..a8a60e50ac 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-from-8/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-from-8/expected.js @@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.foo100 = undefined; -exports.foo99 = exports.foo98 = exports.foo97 = exports.foo96 = exports.foo95 = exports.foo94 = exports.foo93 = exports.foo92 = exports.foo91 = exports.foo90 = exports.foo89 = exports.foo88 = exports.foo87 = exports.foo86 = exports.foo85 = exports.foo84 = exports.foo83 = exports.foo82 = exports.foo81 = exports.foo80 = exports.foo79 = exports.foo78 = exports.foo77 = exports.foo76 = exports.foo75 = exports.foo74 = exports.foo73 = exports.foo72 = exports.foo71 = exports.foo70 = exports.foo69 = exports.foo68 = exports.foo67 = exports.foo66 = exports.foo65 = exports.foo64 = exports.foo63 = exports.foo62 = exports.foo61 = exports.foo60 = exports.foo59 = exports.foo58 = exports.foo57 = exports.foo56 = exports.foo55 = exports.foo54 = exports.foo53 = exports.foo52 = exports.foo51 = exports.foo50 = exports.foo49 = exports.foo48 = exports.foo47 = exports.foo46 = exports.foo45 = exports.foo44 = exports.foo43 = exports.foo42 = exports.foo41 = exports.foo40 = exports.foo39 = exports.foo38 = exports.foo37 = exports.foo36 = exports.foo35 = exports.foo34 = exports.foo33 = exports.foo32 = exports.foo31 = exports.foo30 = exports.foo29 = exports.foo28 = exports.foo27 = exports.foo26 = exports.foo25 = exports.foo24 = exports.foo23 = exports.foo22 = exports.foo21 = exports.foo20 = exports.foo19 = exports.foo18 = exports.foo17 = exports.foo16 = exports.foo15 = exports.foo14 = exports.foo13 = exports.foo12 = exports.foo11 = exports.foo10 = exports.foo9 = exports.foo8 = exports.foo7 = exports.foo6 = exports.foo5 = exports.foo4 = exports.foo3 = exports.foo2 = exports.foo1 = exports.foo = undefined; +exports.foo100 = void 0; +exports.foo99 = exports.foo98 = exports.foo97 = exports.foo96 = exports.foo95 = exports.foo94 = exports.foo93 = exports.foo92 = exports.foo91 = exports.foo90 = exports.foo89 = exports.foo88 = exports.foo87 = exports.foo86 = exports.foo85 = exports.foo84 = exports.foo83 = exports.foo82 = exports.foo81 = exports.foo80 = exports.foo79 = exports.foo78 = exports.foo77 = exports.foo76 = exports.foo75 = exports.foo74 = exports.foo73 = exports.foo72 = exports.foo71 = exports.foo70 = exports.foo69 = exports.foo68 = exports.foo67 = exports.foo66 = exports.foo65 = exports.foo64 = exports.foo63 = exports.foo62 = exports.foo61 = exports.foo60 = exports.foo59 = exports.foo58 = exports.foo57 = exports.foo56 = exports.foo55 = exports.foo54 = exports.foo53 = exports.foo52 = exports.foo51 = exports.foo50 = exports.foo49 = exports.foo48 = exports.foo47 = exports.foo46 = exports.foo45 = exports.foo44 = exports.foo43 = exports.foo42 = exports.foo41 = exports.foo40 = exports.foo39 = exports.foo38 = exports.foo37 = exports.foo36 = exports.foo35 = exports.foo34 = exports.foo33 = exports.foo32 = exports.foo31 = exports.foo30 = exports.foo29 = exports.foo28 = exports.foo27 = exports.foo26 = exports.foo25 = exports.foo24 = exports.foo23 = exports.foo22 = exports.foo21 = exports.foo20 = exports.foo19 = exports.foo18 = exports.foo17 = exports.foo16 = exports.foo15 = exports.foo14 = exports.foo13 = exports.foo12 = exports.foo11 = exports.foo10 = exports.foo9 = exports.foo8 = exports.foo7 = exports.foo6 = exports.foo5 = exports.foo4 = exports.foo3 = exports.foo2 = exports.foo1 = exports.foo = void 0; var _foo = require("foo"); diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/hoist-function-exports/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/hoist-function-exports/expected.js index 6eaf1e7bbd..b2ceb8af48 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/hoist-function-exports/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/hoist-function-exports/expected.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.isOdd = undefined; +exports.isOdd = void 0; exports.nextOdd = nextOdd; var _evens = require("./evens"); diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/overview/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/overview/expected.js index 08b9381a9b..f2fe07463f 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/overview/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/overview/expected.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.test2 = exports.test = undefined; +exports.test2 = exports.test = void 0; require("foo"); diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/hoist-function-exports/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/hoist-function-exports/expected.js index d6c94e1095..eff32f9007 100644 --- a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/hoist-function-exports/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/hoist-function-exports/expected.js @@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); - exports.isOdd = undefined; + exports.isOdd = void 0; exports.nextOdd = nextOdd; function nextOdd(n) { diff --git a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/overview/expected.js b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/overview/expected.js index 65035cf887..45f35bb5d8 100644 --- a/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/overview/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-umd/test/fixtures/umd/overview/expected.js @@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); - exports.test2 = exports.test = undefined; + exports.test2 = exports.test = void 0; var foo2 = babelHelpers.interopRequireWildcard(_foo); exports.test = test; var test2 = exports.test2 = 5; diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-nested-5656/expected.js b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-nested-5656/expected.js index 1a76699de9..71f865549c 100644 --- a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-nested-5656/expected.js +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-nested-5656/expected.js @@ -1,22 +1,22 @@ function a() { var foo = function () { - return bar.apply(undefined, arguments); + return bar.apply(void 0, arguments); }; - foo.apply(undefined, arguments); + foo.apply(void 0, arguments); } function b() { var foo = function () { - return bar.apply(undefined, arguments); + return bar.apply(void 0, arguments); }; - foo.apply(undefined, arguments); + foo.apply(void 0, arguments); } function c() { var foo = function () { - return bar.apply(undefined, arguments); + return bar.apply(void 0, arguments); }; foo([]); @@ -24,7 +24,7 @@ function c() { function d(thing) { var foo = function () { - return bar.apply(undefined, arguments); + return bar.apply(void 0, arguments); }; { diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-nested-iife/expected.js b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-nested-iife/expected.js index aa1fc6cf40..6576f70381 100644 --- a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-nested-iife/expected.js +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-nested-iife/expected.js @@ -15,6 +15,6 @@ function broken(x) { foo[_key - 1] = arguments[_key]; } - return hello.apply(undefined, foo); + return hello.apply(void 0, foo); } } diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-spread-optimisation/expected.js b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-spread-optimisation/expected.js index 35b4108d70..5fe0f0c159 100644 --- a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-spread-optimisation/expected.js +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-spread-optimisation/expected.js @@ -1,6 +1,6 @@ // optimisation function foo() { - foo.apply(undefined, arguments); + foo.apply(void 0, arguments); } // deoptimisation @@ -9,7 +9,7 @@ function foo(a) { b[_key - 1] = arguments[_key]; } - foo.apply(undefined, b); + foo.apply(void 0, b); } function foo() { @@ -17,7 +17,7 @@ function foo() { b[_key2] = arguments[_key2]; } - foo.apply(undefined, [1].concat(b)); + foo.apply(void 0, [1].concat(b)); } function foo() { @@ -26,5 +26,5 @@ function foo() { } args.pop(); - foo.apply(undefined, args); + foo.apply(void 0, args); } diff --git a/packages/babel-plugin-transform-es2015-spread/src/index.js b/packages/babel-plugin-transform-es2015-spread/src/index.js index 48d196e941..9df49cc951 100644 --- a/packages/babel-plugin-transform-es2015-spread/src/index.js +++ b/packages/babel-plugin-transform-es2015-spread/src/index.js @@ -75,7 +75,7 @@ export default function({ types: t }) { const calleePath = path.get("callee"); if (calleePath.isSuper()) return; - let contextLiteral = t.identifier("undefined"); + let contextLiteral = scope.buildUndefinedNode(); node.arguments = []; diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/arguments-concat/expected.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/arguments-concat/expected.js index ad88551bc6..cf609d1e7d 100644 --- a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/arguments-concat/expected.js +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/arguments-concat/expected.js @@ -1,5 +1,5 @@ function foo() { - return bar.apply(undefined, ["test"].concat(Array.prototype.slice.call(arguments))); + return bar.apply(void 0, ["test"].concat(Array.prototype.slice.call(arguments))); } function bar(one, two, three) { diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/arguments/expected.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/arguments/expected.js index d45e71391e..e617c4b703 100644 --- a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/arguments/expected.js +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/arguments/expected.js @@ -1,5 +1,5 @@ function foo() { - return bar.apply(undefined, arguments); + return bar.apply(void 0, arguments); } function bar(one, two, three) { diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-array-literal/expected.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-array-literal/expected.js index c395b0f120..c4f511641c 100644 --- a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-array-literal/expected.js +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-array-literal/expected.js @@ -1 +1 @@ -f.apply(undefined, [1, 2, 3]); +f.apply(void 0, [1, 2, 3]); diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-first/expected.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-first/expected.js index 7a10a2554e..a6344d1bb4 100644 --- a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-first/expected.js +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-first/expected.js @@ -1 +1 @@ -add.apply(undefined, babelHelpers.toConsumableArray(numbers).concat([foo, bar])); +add.apply(void 0, babelHelpers.toConsumableArray(numbers).concat([foo, bar])); diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-middle/expected.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-middle/expected.js index 37fbf0e473..4777142a29 100644 --- a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-middle/expected.js +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-middle/expected.js @@ -1 +1 @@ -add.apply(undefined, [foo].concat(babelHelpers.toConsumableArray(numbers), [bar])); +add.apply(void 0, [foo].concat(babelHelpers.toConsumableArray(numbers), [bar])); diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-multiple-args/expected.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-multiple-args/expected.js index 7846105c95..a0f953a537 100644 --- a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-multiple-args/expected.js +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-multiple-args/expected.js @@ -1 +1 @@ -add.apply(undefined, [foo, bar].concat(babelHelpers.toConsumableArray(numbers))); +add.apply(void 0, [foo, bar].concat(babelHelpers.toConsumableArray(numbers))); diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-multiple/expected.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-multiple/expected.js index 822019bdbd..c34c11b28a 100644 --- a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-multiple/expected.js +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-multiple/expected.js @@ -1 +1 @@ -add.apply(undefined, [foo].concat(babelHelpers.toConsumableArray(numbers), [bar, what], babelHelpers.toConsumableArray(test))); +add.apply(void 0, [foo].concat(babelHelpers.toConsumableArray(numbers), [bar, what], babelHelpers.toConsumableArray(test))); diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-single-arg/expected.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-single-arg/expected.js index c24e938c22..86e9283708 100644 --- a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-single-arg/expected.js +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/method-call-single-arg/expected.js @@ -1 +1 @@ -add.apply(undefined, babelHelpers.toConsumableArray(numbers)); +add.apply(void 0, babelHelpers.toConsumableArray(numbers)); diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-arrow-function/expected.js b/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-arrow-function/expected.js index 10d0543e43..920c58eb50 100644 --- a/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-arrow-function/expected.js +++ b/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-arrow-function/expected.js @@ -1,3 +1,3 @@ "use strict"; -var foo = () => undefined; +var foo = () => void 0; diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-call/expected.js b/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-call/expected.js index d6cbc49983..03dd01e621 100644 --- a/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-call/expected.js +++ b/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-call/expected.js @@ -1,3 +1,3 @@ "use strict"; -undefined.foo(); +(void 0).foo(); diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-declaration/expected.js b/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-declaration/expected.js index 1d38c9f2b9..0d9b92efc1 100644 --- a/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-declaration/expected.js +++ b/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-declaration/expected.js @@ -1,3 +1,3 @@ "use strict"; -var self = undefined; +var self = void 0; diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-reference/expected.js b/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-reference/expected.js index ca6800354f..927ac36114 100644 --- a/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-reference/expected.js +++ b/packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/undefined-this-root-reference/expected.js @@ -1,3 +1,3 @@ "use strict"; -undefined; +void 0; diff --git a/packages/babel-preset-es2015/test/fixtures/preset-options/spec/expected.js b/packages/babel-preset-es2015/test/fixtures/preset-options/spec/expected.js index 7b2dc6fcc5..e4b0c4adb6 100644 --- a/packages/babel-preset-es2015/test/fixtures/preset-options/spec/expected.js +++ b/packages/babel-preset-es2015/test/fixtures/preset-options/spec/expected.js @@ -1,10 +1,11 @@ "use strict"; -var _this = undefined; +var _this = void 0; + "1".concat(a); (function () { babelHelpers.newArrowCheck(this, _this); -}).bind(undefined); +}).bind(void 0); function a() { var _this2 = this;