diff --git a/packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/equality-operators/actual.js b/packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/equality-operators/actual.js new file mode 100644 index 0000000000..bf786d649b --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/equality-operators/actual.js @@ -0,0 +1,7 @@ +typeof 1 === "number"; +typeof 1 !== "string"; + +typeof 1 == "number"; +typeof 1 != "string"; + +a > b; diff --git a/packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/equality-operators/expected.js b/packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/equality-operators/expected.js new file mode 100644 index 0000000000..272dd406f9 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/equality-operators/expected.js @@ -0,0 +1,7 @@ +typeof 1 == "number"; +typeof 1 != "string"; + +typeof 1 == "number"; +typeof 1 != "string"; + +a > b; diff --git a/packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/options.json b/packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/options.json new file mode 100644 index 0000000000..615b3517b4 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-simplify-comparison-operators"] +} diff --git a/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js b/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js index e50122cafd..962fcf8c86 100644 --- a/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js +++ b/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js @@ -1,12 +1,13 @@ export default function () { return { visitor: { - BinaryExpression(node) { - let op = node.operator; + BinaryExpression(path) { + let { node, op } = path; + if (op !== "===" && op !== "!==") return; - let left = this.get("left"); - let right = this.get("right"); + let left = path.get("left"); + let right = path.get("right"); if (left.baseTypeStrictlyMatches(right)) { node.operator = node.operator.slice(0, -1); }