diff --git a/packages/babel-core/test/fixtures/transformation/minification.booleans/booleans/actual.js b/packages/babel-core/test/fixtures/transformation/minification.booleans/booleans/actual.js new file mode 100644 index 0000000000..0c99ce8f3b --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/minification.booleans/booleans/actual.js @@ -0,0 +1,2 @@ +true; +false; diff --git a/packages/babel-core/test/fixtures/transformation/minification.booleans/booleans/expected.js b/packages/babel-core/test/fixtures/transformation/minification.booleans/booleans/expected.js new file mode 100644 index 0000000000..231fd3cb88 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/minification.booleans/booleans/expected.js @@ -0,0 +1,2 @@ +!0; +!1; diff --git a/packages/babel-core/test/fixtures/transformation/minification.booleans/options.json b/packages/babel-core/test/fixtures/transformation/minification.booleans/options.json new file mode 100644 index 0000000000..1d61190fe6 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/minification.booleans/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-minify-booleans"] +} diff --git a/packages/babel-plugin-transform-minify-booleans/src/index.js b/packages/babel-plugin-transform-minify-booleans/src/index.js index 5347377871..e6ae284cf6 100644 --- a/packages/babel-plugin-transform-minify-booleans/src/index.js +++ b/packages/babel-plugin-transform-minify-booleans/src/index.js @@ -1,9 +1,9 @@ export default function ({ types: t }) { return { visitor: { - Literal(node) { - if (typeof node.value === "boolean") { - return t.unaryExpression("!", t.literal(+!node.value), true); + Literal(path) { + if (typeof path.node.value === "boolean") { + path.replaceWith(t.unaryExpression("!", t.numberLiteral(+!path.node.value), true)); } } }