From a55f210c7f01b2b26fe052f9e9cdc19c41f3d0be Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 10 Nov 2015 03:40:35 -0800 Subject: [PATCH] fix buildExternalHelpers whitelist not including underscored helpers - fixes #2940 --- .../src/tools/build-external-helpers.js | 20 ++++++++++++++++++- packages/babel-core/test/api.js | 5 +++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/packages/babel-core/src/tools/build-external-helpers.js b/packages/babel-core/src/tools/build-external-helpers.js index 9bc0221977..fd1e91940b 100644 --- a/packages/babel-core/src/tools/build-external-helpers.js +++ b/packages/babel-core/src/tools/build-external-helpers.js @@ -73,8 +73,26 @@ function buildVar(namespace, builder) { } function buildHelpers(body, namespace, whitelist) { + function shouldIgnore(name) { + if (!whitelist) { + return false; + } + + // check for the raw name + if (whitelist.indexOf(name) >= 0) { + return false; + } + + // typeof -> _typeof + if (name[0] === "_" && whitelist.indexOf(name.slice(1)) >= 0) { + return false; + } + + return true; + } + each(helpers.list, function (name) { - if (whitelist && whitelist.indexOf(name) === -1) return; + if (shouldIgnore(name)) return; let key = t.identifier(t.toIdentifier(name)); body.push(t.expressionStatement( diff --git a/packages/babel-core/test/api.js b/packages/babel-core/test/api.js index e279d5f613..c9efbb2e59 100644 --- a/packages/babel-core/test/api.js +++ b/packages/babel-core/test/api.js @@ -387,5 +387,10 @@ suite("api", function () { assert.ok(script.indexOf("classCallCheck") === -1); assert.ok(script.indexOf("inherits") === -1); }); + + test("underscored", function () { + var script = buildExternalHelpers(["typeof"]); + assert.ok(script.indexOf("typeof") >= 0); + }); }); });