From 4ea7a864fa83e914405d8802b14853bde54a59da Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Tue, 17 Feb 2015 11:42:24 +0700 Subject: [PATCH 1/2] drop `helpers/clone` it's misleading as it doesn't actually do a deepClone, not even a clone --- lib/babel/helpers/clone.js | 12 ------------ lib/babel/transformation/file.js | 4 ++-- lib/babel/transformation/transformer.js | 4 ++-- 3 files changed, 4 insertions(+), 16 deletions(-) delete mode 100644 lib/babel/helpers/clone.js diff --git a/lib/babel/helpers/clone.js b/lib/babel/helpers/clone.js deleted file mode 100644 index ab0cdf09cf..0000000000 --- a/lib/babel/helpers/clone.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; - -module.exports = function cloneDeep(obj) { - var obj2 = {}; - if (!obj) return obj2; - - for (var key in obj) { - obj2[key] = obj[key]; - } - - return obj2; -}; diff --git a/lib/babel/transformation/file.js b/lib/babel/transformation/file.js index 348c5c37bd..76be03515f 100644 --- a/lib/babel/transformation/file.js +++ b/lib/babel/transformation/file.js @@ -10,7 +10,7 @@ var transform = require("./index"); var generate = require("../generation"); var defaults = require("lodash/object/defaults"); var includes = require("lodash/collection/includes"); -var clone = require("../helpers/clone"); +var assign = require("lodash/object/assign"); var parse = require("../helpers/parse"); var Scope = require("../traversal/scope"); var slash = require("slash"); @@ -98,7 +98,7 @@ File.validOptions = [ ]; File.prototype.normalizeOptions = function (opts) { - opts = clone(opts); + opts = assign({}, opts); for (var key in opts) { if (key[0] !== "_" && File.validOptions.indexOf(key) < 0) { diff --git a/lib/babel/transformation/transformer.js b/lib/babel/transformation/transformer.js index 4361e3784e..66193d1dfd 100644 --- a/lib/babel/transformation/transformer.js +++ b/lib/babel/transformation/transformer.js @@ -6,7 +6,7 @@ var TransformerPass = require("./transformer-pass"); var isFunction = require("lodash/lang/isFunction"); var traverse = require("../traversal"); var isObject = require("lodash/lang/isObject"); -var clone = require("../helpers/clone"); +var assign = require("lodash/object/assign"); var each = require("lodash/collection/each"); /** @@ -16,7 +16,7 @@ var each = require("lodash/collection/each"); */ function Transformer(key, transformer, opts) { - transformer = clone(transformer); + transformer = assign({}, transformer); var take = function (key) { var val = transformer[key]; From 211c9802a51051f01738fb9f2a3d93e43f885804 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Tue, 17 Feb 2015 12:26:36 +0700 Subject: [PATCH 2/2] modularize `SHEBANG_REGEX` https://github.com/sindresorhus/shebang-regex --- lib/babel/transformation/file.js | 8 ++++---- package.json | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/babel/transformation/file.js b/lib/babel/transformation/file.js index 76be03515f..e74beccab5 100644 --- a/lib/babel/transformation/file.js +++ b/lib/babel/transformation/file.js @@ -2,9 +2,8 @@ module.exports = File; -var SHEBANG_REGEX = /^\#\!.*/; - var sourceMapToComment = require("source-map-to-comment"); +var shebangRegex = require("shebang-regex"); var isFunction = require("lodash/lang/isFunction"); var transform = require("./index"); var generate = require("../generation"); @@ -247,12 +246,13 @@ File.prototype.getModuleFormatter = function (type) { }; File.prototype.parseShebang = function (code) { - var shebangMatch = code.match(SHEBANG_REGEX); + var shebangMatch = shebangRegex.exec(code); + if (shebangMatch) { this.shebang = shebangMatch[0]; // remove shebang - code = code.replace(SHEBANG_REGEX, ""); + code = code.replace(shebangRegex, ""); } return code; diff --git a/package.json b/package.json index 59e278bfd2..3527e868f4 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "regenerator-babel": "0.8.10-2", "regexpu": "^1.1.1", "repeating": "^1.1.2", + "shebang-regex": "^1.0.0", "slash": "^1.0.0", "source-map": "^0.1.43", "source-map-support": "^0.2.9",