From ad6ab57fe33fcd5261d226fd52f7c5b54e77de7f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 11 Jan 2015 01:00:04 +1100 Subject: [PATCH] only use raw type references in coreAliasing on Symbol - fixes #421 --- .../transformers/optional-core-aliasing.js | 4 ++-- .../optional-core-aliasing/ignore-natives/actual.js | 1 + .../optional-core-aliasing/ignore-natives/expected.js | 9 +++++++++ .../optional-core-aliasing/map-symbol/actual.js | 2 ++ .../optional-core-aliasing/map-symbol/expected.js | 10 ++++++++++ 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/transformation/optional-core-aliasing/ignore-natives/actual.js create mode 100644 test/fixtures/transformation/optional-core-aliasing/ignore-natives/expected.js create mode 100644 test/fixtures/transformation/optional-core-aliasing/map-symbol/actual.js create mode 100644 test/fixtures/transformation/optional-core-aliasing/map-symbol/expected.js diff --git a/lib/6to5/transformation/transformers/optional-core-aliasing.js b/lib/6to5/transformation/transformers/optional-core-aliasing.js index a67bf045ec..806ddb5cfb 100644 --- a/lib/6to5/transformation/transformers/optional-core-aliasing.js +++ b/lib/6to5/transformation/transformers/optional-core-aliasing.js @@ -31,8 +31,8 @@ exports.ast = { this.skip(); return t.prependToMemberExpression(node, file._coreId); } - } else if (t.isIdentifier(node) && !t.isMemberExpression(parent) && t.isReferenced(node, parent) && coreHas(node)) { - // new Promise -> new _core.Promise + } else if (t.isIdentifier(node) && !t.isMemberExpression(parent) && t.isReferenced(node, parent) && node.name === "Symbol") { + // new Symbol -> new _core.Symbol return t.memberExpression(file._coreId, node); } else if (t.isCallExpression(node)) { // arr[Symbol.iterator]() -> _core.$for.getIterator(arr) diff --git a/test/fixtures/transformation/optional-core-aliasing/ignore-natives/actual.js b/test/fixtures/transformation/optional-core-aliasing/ignore-natives/actual.js new file mode 100644 index 0000000000..60fe1ccd57 --- /dev/null +++ b/test/fixtures/transformation/optional-core-aliasing/ignore-natives/actual.js @@ -0,0 +1 @@ +obj.constructor === Object; diff --git a/test/fixtures/transformation/optional-core-aliasing/ignore-natives/expected.js b/test/fixtures/transformation/optional-core-aliasing/ignore-natives/expected.js new file mode 100644 index 0000000000..9ce5ba07b1 --- /dev/null +++ b/test/fixtures/transformation/optional-core-aliasing/ignore-natives/expected.js @@ -0,0 +1,9 @@ +"use strict"; + +var _interopRequire = function (obj) { + return obj && (obj["default"] || obj); +}; + +var _core = _interopRequire(require("core-js/library")); + +obj.constructor === Object; diff --git a/test/fixtures/transformation/optional-core-aliasing/map-symbol/actual.js b/test/fixtures/transformation/optional-core-aliasing/map-symbol/actual.js new file mode 100644 index 0000000000..5ebaadcd41 --- /dev/null +++ b/test/fixtures/transformation/optional-core-aliasing/map-symbol/actual.js @@ -0,0 +1,2 @@ +Symbol("test"); +Symbol(); diff --git a/test/fixtures/transformation/optional-core-aliasing/map-symbol/expected.js b/test/fixtures/transformation/optional-core-aliasing/map-symbol/expected.js new file mode 100644 index 0000000000..d67311567b --- /dev/null +++ b/test/fixtures/transformation/optional-core-aliasing/map-symbol/expected.js @@ -0,0 +1,10 @@ +"use strict"; + +var _interopRequire = function (obj) { + return obj && (obj["default"] || obj); +}; + +var _core = _interopRequire(require("core-js/library")); + +_core.Symbol("test"); +_core.Symbol();