Skip to content
This repository has been archived by the owner on Jan 19, 2018. It is now read-only.

Commit

Permalink
Inject strict/es6.tailCall into helper transform blacklist
Browse files Browse the repository at this point in the history
  • Loading branch information
lukescott committed Apr 24, 2015
1 parent ca417c5 commit ada0bb9
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 7 deletions.
28 changes: 22 additions & 6 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
},
Expand Down

0 comments on commit ada0bb9

Please # to comment.