From 44e64c41f84d54853012bb0b01057c8249307b3a Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Mon, 2 Nov 2015 09:27:41 -0500 Subject: [PATCH] Fix transform-simplify-comparison-operators plugin --- .../equality-operators/actual.js | 7 +++++++ .../equality-operators/expected.js | 7 +++++++ .../transform-simplify-comparison-operators/options.json | 3 +++ .../src/index.js | 9 +++++---- 4 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/equality-operators/actual.js create mode 100644 packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/equality-operators/expected.js create mode 100644 packages/babel-core/test/fixtures/transformation/transform-simplify-comparison-operators/options.json 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); }