From 65a44a1e131c8bc336b218991bae7548176de283 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 10 May 2015 16:09:43 +0100 Subject: [PATCH] remove use of exports --- .../build-binary-assignment-operator-transformer.js | 6 +++++- .../transformation/transformers/es6/destructuring.js | 4 ++-- .../transformers/es6/parameters.default.js | 4 ++-- .../transformers/es6/parameters.rest.js | 4 ++-- .../transformation/transformers/es6/tail-call.js | 4 ++-- .../transformers/es7/exponentiation-operator.js | 12 +++++++++++- .../transformers/other/async-to-generator.js | 4 ++-- .../transformers/other/bluebird-coroutines.js | 4 ++-- src/babel/transformation/transformers/other/flow.js | 4 ++-- src/babel/types/alias-keys.json | 6 +++--- src/babel/types/index.js | 2 ++ 11 files changed, 35 insertions(+), 19 deletions(-) diff --git a/src/babel/transformation/helpers/build-binary-assignment-operator-transformer.js b/src/babel/transformation/helpers/build-binary-assignment-operator-transformer.js index 04ffc4c1b3..f026f4371f 100644 --- a/src/babel/transformation/helpers/build-binary-assignment-operator-transformer.js +++ b/src/babel/transformation/helpers/build-binary-assignment-operator-transformer.js @@ -1,7 +1,9 @@ import explode from "./explode-assignable-expression"; import * as t from "../../types"; -export default function (exports, opts) { +export default function (opts) { + var exports = {}; + var isAssignment = function (node) { return node.operator === opts.operator + "="; }; @@ -40,4 +42,6 @@ export default function (exports, opts) { if (node.operator !== opts.operator) return; return opts.build(node.left, node.right); }; + + return exports; }; diff --git a/src/babel/transformation/transformers/es6/destructuring.js b/src/babel/transformation/transformers/es6/destructuring.js index 5c779cac21..6906d4e637 100644 --- a/src/babel/transformation/transformers/es6/destructuring.js +++ b/src/babel/transformation/transformers/es6/destructuring.js @@ -55,7 +55,7 @@ export function ForOfStatement(node, parent, scope, file) { export { ForOfStatement as ForInStatement }; -exports.Function = function (node, parent, scope, file) { +export function Func(node, parent, scope, file) { var nodes = []; var hasDestructuring = false; @@ -85,7 +85,7 @@ exports.Function = function (node, parent, scope, file) { var block = node.body; block.body = nodes.concat(block.body); -}; +} export function CatchClause(node, parent, scope, file) { var pattern = node.param; diff --git a/src/babel/transformation/transformers/es6/parameters.default.js b/src/babel/transformation/transformers/es6/parameters.default.js index 664d561cd9..4fbf6c7f96 100644 --- a/src/babel/transformation/transformers/es6/parameters.default.js +++ b/src/babel/transformation/transformers/es6/parameters.default.js @@ -20,7 +20,7 @@ var iifeVisitor = { } }; -exports.Function = function (node, parent, scope, file) { +export function Func(node, parent, scope, file) { if (!hasDefaults(node)) return; t.ensureBlock(node); @@ -92,4 +92,4 @@ exports.Function = function (node, parent, scope, file) { } else { node.body.body = body.concat(node.body.body); } -}; +} diff --git a/src/babel/transformation/transformers/es6/parameters.rest.js b/src/babel/transformation/transformers/es6/parameters.rest.js index 6b57c156a3..63f9f1adee 100644 --- a/src/babel/transformation/transformers/es6/parameters.rest.js +++ b/src/babel/transformation/transformers/es6/parameters.rest.js @@ -53,7 +53,7 @@ var hasRest = function (node) { return t.isRestElement(node.params[node.params.length - 1]); }; -exports.Function = function (node, parent, scope, file) { +export function Func(node, parent, scope, file) { if (!hasRest(node)) return; var rest = node.params.pop().argument; @@ -135,4 +135,4 @@ exports.Function = function (node, parent, scope, file) { }); loop._blockHoist = node.params.length + 1; node.body.body.unshift(loop); -}; +} diff --git a/src/babel/transformation/transformers/es6/tail-call.js b/src/babel/transformation/transformers/es6/tail-call.js index 732e8a1688..fb75fd03bc 100644 --- a/src/babel/transformation/transformers/es6/tail-call.js +++ b/src/babel/transformation/transformers/es6/tail-call.js @@ -10,11 +10,11 @@ export var metadata = { group: "builtin-trailing" }; -exports.Function = function (node, parent, scope, file) { +export function Func(node, parent, scope, file) { if (node.generator || node.async) return; var tailCall = new TailCallTransformer(this, scope, file); tailCall.run(); -}; +} function returnBlock(expr) { return t.blockStatement([t.returnStatement(expr)]); diff --git a/src/babel/transformation/transformers/es7/exponentiation-operator.js b/src/babel/transformation/transformers/es7/exponentiation-operator.js index a88252741b..13081f5c4a 100644 --- a/src/babel/transformation/transformers/es7/exponentiation-operator.js +++ b/src/babel/transformation/transformers/es7/exponentiation-operator.js @@ -9,10 +9,20 @@ export var metadata = { var MATH_POW = t.memberExpression(t.identifier("Math"), t.identifier("pow")); -build(exports, { +var { + ExpressionStatement, + AssignmentExpression, + BinaryExpression +} = build({ operator: "**", build(left, right) { return t.callExpression(MATH_POW, [left, right]); } }); + +export { + ExpressionStatement, + AssignmentExpression, + BinaryExpression +}; diff --git a/src/babel/transformation/transformers/other/async-to-generator.js b/src/babel/transformation/transformers/other/async-to-generator.js index b5a54b478d..bc381139ee 100644 --- a/src/babel/transformation/transformers/other/async-to-generator.js +++ b/src/babel/transformation/transformers/other/async-to-generator.js @@ -7,8 +7,8 @@ export var metadata = { dependencies: ["es7.asyncFunctions", "es6.classes"] }; -exports.Function = function (node, parent, scope, file) { +export function Func(node, parent, scope, file) { if (!node.async || node.generator) return; return remapAsyncToGenerator(node, file.addHelper("async-to-generator"), scope); -}; +} diff --git a/src/babel/transformation/transformers/other/bluebird-coroutines.js b/src/babel/transformation/transformers/other/bluebird-coroutines.js index 2d1c467edd..bf1fbcbc73 100644 --- a/src/babel/transformation/transformers/other/bluebird-coroutines.js +++ b/src/babel/transformation/transformers/other/bluebird-coroutines.js @@ -10,7 +10,7 @@ export var metadata = { dependencies: ["es7.asyncFunctions", "es6.classes"] }; -exports.Function = function (node, parent, scope, file) { +export function Func(node, parent, scope, file) { if (!node.async || node.generator) return; return remapAsyncToGenerator( @@ -18,4 +18,4 @@ exports.Function = function (node, parent, scope, file) { t.memberExpression(file.addImport("bluebird", null, "absolute"), t.identifier("coroutine")), scope ); -}; +} diff --git a/src/babel/transformation/transformers/other/flow.js b/src/babel/transformation/transformers/other/flow.js index 14fc5bcbc4..336b7f3bd2 100644 --- a/src/babel/transformation/transformers/other/flow.js +++ b/src/babel/transformation/transformers/other/flow.js @@ -12,12 +12,12 @@ export function Class(node) { node.implements = null; } -exports.Function = function (node) { +export function Func(node) { for (var i = 0; i < node.params.length; i++) { var param = node.params[i]; param.optional = false; } -}; +} export function TypeCastExpression(node) { return node.expression; diff --git a/src/babel/types/alias-keys.json b/src/babel/types/alias-keys.json index 82ab44855c..620f8903b5 100644 --- a/src/babel/types/alias-keys.json +++ b/src/babel/types/alias-keys.json @@ -26,9 +26,9 @@ "ExportNamedDeclaration": ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], "ImportDeclaration": ["Statement", "Declaration", "ModuleDeclaration"], - "ArrowFunctionExpression": ["Scopable", "Function", "Expression", "Pure"], - "FunctionDeclaration": ["Scopable", "Function", "Statement", "Pure", "Declaration"], - "FunctionExpression": ["Scopable", "Function", "Expression", "Pure"], + "ArrowFunctionExpression": ["Scopable", "Function", "Func", "Expression", "Pure"], + "FunctionDeclaration": ["Scopable", "Function", "Func", "Statement", "Pure", "Declaration"], + "FunctionExpression": ["Scopable", "Function", "Func", "Expression", "Pure"], "BlockStatement": ["Scopable", "Statement"], "Program": ["Scopable"], diff --git a/src/babel/types/index.js b/src/babel/types/index.js index dc48fc1fca..fd1596aed4 100644 --- a/src/babel/types/index.js +++ b/src/babel/types/index.js @@ -79,6 +79,8 @@ export function isType(nodeType, targetType) { var aliases = t.FLIPPED_ALIAS_KEYS[targetType]; if (aliases) { + if (aliases[0] === nodeType) return true; + for (var alias of (aliases: Array)) { if (nodeType === alias) return true; }