Compare commits

...

9 Commits

Author SHA1 Message Date
Sebastian McKenzie
70967cf53c v4.7.3 2015-03-08 04:32:46 +11:00
Sebastian McKenzie
dc117a74ae both -> inline - thanks @dkieks 2015-03-08 04:29:48 +11:00
Sebastian McKenzie
b0f32a822d pass file.addImport a name instead of an identifier 2015-03-08 04:10:53 +11:00
Sebastian McKenzie
fd99ea1749 Merge branch 'master' of github.com:babel/babel 2015-03-08 04:05:44 +11:00
Sebastian McKenzie
572129542d fallback to current parentPath if none was provided 2015-03-08 04:04:48 +11:00
Sebastian McKenzie
6f53980bfc move runtime helpers to separate modules - babel/ember-cli-babel#24 2015-03-08 04:04:40 +11:00
Sebastian McKenzie
348af1990d Merge pull request #972 from neVERberleRfellerER/node-external-helpers-tests
add tests for babel-external-helpers
2015-03-08 03:50:28 +11:00
Ondrej Kraus
bd5f350728 add tests for babel-external-helpers 2015-03-07 17:46:40 +01:00
Sebastian McKenzie
958fa282f4 4.7.2 2015-03-08 03:12:09 +11:00
24 changed files with 99 additions and 58 deletions

1
.gitignore vendored
View File

@@ -12,5 +12,6 @@ coverage
dist
.package.json
packages/babel-runtime/*.js
packages/babel-runtime/helpers/*.js
packages/babel-runtime/regenerator/*.js
lib

View File

@@ -1,7 +1,7 @@
{
"name": "babel",
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
"version": "4.7.2",
"version": "4.7.3",
"author": "Sebastian McKenzie <sebmck@gmail.com>",
"homepage": "https://babeljs.io/",
"repository": "babel/babel",

View File

View File

@@ -1,7 +1,7 @@
{
"name": "babel-runtime",
"description": "babel selfContained runtime",
"version": "4.7.1",
"version": "4.7.2",
"repository": "babel/babel",
"author": "Sebastian McKenzie <sebmck@gmail.com>"
}

View File

@@ -1,11 +1,12 @@
"use strict";
var transform = require("../lib/babel/transformation");
var buildHelpers = require("../lib/babel/build-helpers");
var util = require("../lib/babel/util");
var fs = require("fs");
var t = require("../lib/babel/types");
var _ = require("lodash");
var transform = require("../lib/babel/transformation");
var each = require("lodash/collection/each");
var File = require("../lib/babel/transformation/file");
var util = require("../lib/babel/util");
var fs = require("fs");
var t = require("../lib/babel/types");
var _ = require("lodash");
var relative = function (filename) {
return __dirname + "/babel-runtime/" + filename;
@@ -39,22 +40,26 @@ var updatePackage = function () {
var selfContainify = function (code) {
return transform(code, {
optional: ["selfContained"]
optional: ["runtime"]
}).code;
};
var buildHelpers2 = function () {
var body = util.template("self-contained-helpers-head");
var tree = t.program(body);
buildHelpers(body, t.identifier("helpers"));
var buildHelper = function (helperName) {
var tree = t.program(
util.template("self-contained-helpers-head", {
HELPER: util.template(helperName)
})
);
return transform.fromAst(tree, null, {
optional: ["selfContained"]
optional: ["runtime"]
}).code;
};
writeFile("helpers.js", buildHelpers2());
each(File.helpers, function (helperName) {
writeFile("helpers/" + helperName + ".js", buildHelper(helperName));
});
writeFile("core-js.js", readFile("core-js/library", true));
writeFile("regenerator/index.js", readFile("regenerator-babel/runtime-module", true));
writeFile("regenerator/runtime.js", selfContainify(readFile("regenerator-babel/runtime")));

View File

@@ -1,7 +1,8 @@
import buildHelpers from "./build-helpers";
import generator from "./generation";
import * as messages from "./messages";
import * as util from "./util";
import File from "./transformation/file";
import each from "lodash/collection/each";
import t from "./types";
function buildGlobal(namespace, builder) {
@@ -49,8 +50,20 @@ function buildVar(namespace, builder) {
return t.program(body);
}
function buildHelpers(body, namespace, whitelist = []) {
each(File.helpers, function (name) {
if (whitelist.length && whitelist.indexOf(name) === -1) return;
var key = t.identifier(t.toIdentifier(name));
body.push(t.expressionStatement(
t.assignmentExpression("=", t.memberExpression(namespace, key), util.template(name))
));
});
}
export default function (whitelist, outputType = "global") {
var namespace = t.identifier("babelHelpers");
var builder = function (body) {
return buildHelpers(body, namespace, whitelist);
};

View File

@@ -1,15 +0,0 @@
import File from "./transformation/file";
import * as util from "./util";
import each from "lodash/collection/each";
import t from "./types";
export default function (body, namespace, whitelist = []) {
each(File.helpers, function (name) {
if (whitelist.length && whitelist.indexOf(name) === -1) return;
var key = t.identifier(t.toIdentifier(name));
body.push(t.expressionStatement(
t.assignmentExpression("=", t.memberExpression(namespace, key), util.template(name))
));
});
};

View File

@@ -377,10 +377,13 @@ export default class File {
this.usedHelpers[name] = true;
var generator = this.get("helperGenerator");
var runtime = this.get("helpersNamespace");
if (runtime) {
name = t.identifier(t.toIdentifier(name));
return t.memberExpression(runtime, name);
if (generator) {
return generator(name);
} else if (runtime) {
var id = t.identifier(t.toIdentifier(name));
return t.memberExpression(runtime, id);
} else {
var ref = util.template(name);
ref._compact = true;
@@ -531,7 +534,7 @@ export default class File {
result.code += "\n" + convertSourceMap.fromObject(result.map).toComment();
}
if (opts.sourceMap === "both") {
if (opts.sourceMap === "inline") {
result.map = null;
}

View File

@@ -1,2 +1,2 @@
var helpers = exports.default = {};
exports.default = HELPER;
exports.__esModule = true;

View File

@@ -81,8 +81,8 @@ export function Program(node, parent, scope, file) {
}
export function pre(file) {
file.setDynamic("helpersNamespace", function () {
return file.addImport("babel-runtime/helpers", "babelHelpers");
file.set("helperGenerator", function (name) {
return file.addImport("babel-runtime/helpers/" + name, name);
});
file.setDynamic("coreIdentifier", function () {

View File

@@ -61,7 +61,7 @@ export default class TraversalPath {
this.shouldSkip = false;
this.shouldStop = false;
this.parentPath = parentPath;
this.parentPath = parentPath || this.parentPath;
this.context = context;
this.state = context.state;
this.opts = context.opts;

View File

@@ -0,0 +1,3 @@
{
"args": ["--whitelist", "nonexistent"]
}

View File

@@ -0,0 +1,3 @@
(function (global) {
var babelHelpers = global.babelHelpers = {};
})(typeof global === "undefined" ? self : global);

View File

@@ -0,0 +1,3 @@
{
"args": ["--whitelist", "nonexistent", "--output-type", "umd"]
}

View File

@@ -0,0 +1,11 @@
(function (root, factory) {
if (typeof define === "function" && define.amd) {
define(["exports"], factory);
} else if (typeof exports === "object") {
factory(exports);
} else {
factory(root.babelHelpers = {});
}
})(this, function (global) {
var babelHelpers = global;
})

View File

@@ -0,0 +1,3 @@
{
"args": ["--whitelist", "nenexistent", "--output-type", "var"]
}

View File

@@ -0,0 +1 @@
var babelHelpers = {};

View File

@@ -0,0 +1,3 @@
{
"args": ["--whitelist", "slice,has-own"]
}

View File

@@ -0,0 +1,5 @@
(function (global) {
var babelHelpers = global.babelHelpers = {};
babelHelpers.hasOwn = Object.prototype.hasOwnProperty;
babelHelpers.slice = Array.prototype.slice;
})(typeof global === "undefined" ? self : global);

View File

@@ -4,7 +4,9 @@ var _core = require("babel-runtime/core-js")["default"];
var _regeneratorRuntime = require("babel-runtime/regenerator")["default"];
var _babelHelpers = require("babel-runtime/helpers")["default"];
var _interopRequire = require("babel-runtime/helpers/interop-require")["default"];
var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"];
var giveWord = _regeneratorRuntime.mark(function giveWord() {
return _regeneratorRuntime.wrap(function giveWord$(context$1$0) {
@@ -24,9 +26,9 @@ exports.giveWord = giveWord;
var _someModule = require("someModule");
var foo = _babelHelpers.interopRequire(_someModule);
var foo = _interopRequire(_someModule);
var bar = _babelHelpers.interopRequireWildcard(_someModule);
var bar = _interopRequireWildcard(_someModule);
var myWord = _core.Symbol("abc");
exports.myWord = myWord;

View File

@@ -1,7 +1,7 @@
define(["exports", "foo", "babel-runtime/helpers"], function (exports, _foo, _babelRuntimeHelpers) {
define(["exports", "foo", "babel-runtime/helpers/interop-require"], function (exports, _foo, _babelRuntimeHelpersInteropRequire) {
"use strict";
var _babelHelpers = _babelRuntimeHelpers["default"];
var _interopRequire = _babelRuntimeHelpersInteropRequire["default"];
var foo = _babelHelpers.interopRequire(_foo);
var foo = _interopRequire(_foo);
});

View File

@@ -1,5 +1,5 @@
"use strict";
var _babelHelpers = require("babel-runtime/helpers")["default"];
var _interopRequire = require("babel-runtime/helpers/interop-require")["default"];
var foo = _babelHelpers.interopRequire(require("foo"));
var foo = _interopRequire(require("foo"));

View File

@@ -1,14 +1,14 @@
System.register(["babel-runtime/helpers"], function (_export) {
var _babelHelpers;
System.register(["babel-runtime/helpers/to-consumable-array"], function (_export) {
var _toConsumableArray;
return {
setters: [function (_babelRuntimeHelpers) {
_babelHelpers = _babelRuntimeHelpers["default"];
setters: [function (_babelRuntimeHelpersToConsumableArray) {
_toConsumableArray = _babelRuntimeHelpersToConsumableArray["default"];
}],
execute: function () {
"use strict";
foo.apply(undefined, _babelHelpers.toConsumableArray(bar));
foo.apply(undefined, _toConsumableArray(bar));
}
};
});

View File

@@ -1,13 +1,13 @@
(function (factory) {
if (typeof define === "function" && define.amd) {
define(["exports", "foo", "babel-runtime/helpers"], factory);
define(["exports", "foo", "babel-runtime/helpers/interop-require"], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require("foo"), require("babel-runtime/helpers"));
factory(exports, require("foo"), require("babel-runtime/helpers/interop-require"));
}
})(function (exports, _foo, _babelRuntimeHelpers) {
})(function (exports, _foo, _babelRuntimeHelpersInteropRequire) {
"use strict";
var _babelHelpers = _babelRuntimeHelpers["default"];
var _interopRequire = _babelRuntimeHelpersInteropRequire["default"];
var foo = _babelHelpers.interopRequire(_foo);
var foo = _interopRequire(_foo);
});