From ada0bb9f67305d058a2e8f6d42dbc46795b401e2 Mon Sep 17 00:00:00 2001 From: Luke Scott Date: Fri, 24 Apr 2015 09:18:32 -0700 Subject: [PATCH] Inject strict/es6.tailCall into helper transform blacklist --- index.js | 28 ++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index c8c136b..5b3e296 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,8 @@ var babelc = require('babel-core'); var resolveRc = require('babel-core/lib/babel/tools/resolve-rc') var sander = require('sander'); var mapSeries = require('promise-map-series'); -var objectAssign = require('object-assign'); +var assign = require('lodash/object/assign'); +var merge = require('lodash/object/merge'); var path = require('path'); module.exports = babel; @@ -24,7 +25,7 @@ function babel(inputdir, outputdir, opts) { var hf = slashes(filename) + '__babelHelpers.js'; code = 'import {babelHelpers} from "' + hf + '";\n' + code; } - var result = babelc.transform(code, objectAssign({}, opts, { + var result = babelc.transform(code, assign({}, opts, { filename: inputdir + '/' + filename })); if (importHelpers) { @@ -52,17 +53,32 @@ function slashes(from) { function buildHelpers(usedHelpers, opts) { var helpers1 = babelc.buildExternalHelpers(usedHelpers, "var"); + opts = merge({}, opts, { + externalHelpers: true, + metadataUsedHelpers: true, + blacklist: ["strict", "es6.tailCall"] + }, mergeCustom); addUniqueHelpers(usedHelpers, - babelc.transform(helpers1, objectAssign({}, opts, { - externalHelpers: true, - metadataUsedHelpers: true - })).metadata.usedHelpers + babelc.transform(helpers1, opts).metadata.usedHelpers ); delete opts.metadataUsedHelpers; var helpers2 = babelc.buildExternalHelpers(usedHelpers, "var"); return "export " + babelc.transform(helpers2, opts).code; } +function mergeCustom(a, b) { + if (Array.isArray(a)) { + var c = a.slice(0); + for (var i = b.length - 1; b >= 0; i++) { + var v = b[i]; + if (a.indexOf(v) < 0) { + c.push(v); + } + } + return c; + } +} + function addUniqueHelpers(dest, src) { for (var i = src.length - 1; i >= 0; i--) { if (dest.indexOf(src[i]) < 0) { diff --git a/package.json b/package.json index dbf6a6e..dfbfce9 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "repository": "https://github.com/babel/gobble-babel", "dependencies": { "babel-core": "^5.0.0", - "object-assign": "^2.0.0", + "lodash": "^3.7.0", "promise-map-series": "^0.2.1", "sander": "^0.2.3" },