diff --git a/lib/babel/generation/buffer.js b/lib/babel/generation/buffer.js index 4a99ab4894..004eec950f 100644 --- a/lib/babel/generation/buffer.js +++ b/lib/babel/generation/buffer.js @@ -2,6 +2,7 @@ module.exports = Buffer; +var repeating = require("repeating"); var isBoolean = require("lodash/lang/isBoolean"); var includes = require("lodash/collection/includes"); var isNumber = require("lodash/lang/isNumber"); @@ -22,7 +23,7 @@ Buffer.prototype.getIndent = function () { if (this.format.compact || this.format.concise) { return ""; } else { - return util.repeat(this._indent, this.format.indent.style); + return repeating(this.format.indent.style, this._indent); } }; @@ -81,7 +82,7 @@ Buffer.prototype.newline = function (i, removeLast) { if (isNumber(i)) { if (this.endsWith("{\n")) i--; - if (this.endsWith(util.repeat(i, "\n"))) return; + if (this.endsWith(repeating("\n", i > 0 ? i : 0))) return; while (i--) { this._newline(removeLast); diff --git a/lib/babel/generation/generators/statements.js b/lib/babel/generation/generators/statements.js index 0ac0125636..161a68aa26 100644 --- a/lib/babel/generation/generators/statements.js +++ b/lib/babel/generation/generators/statements.js @@ -1,7 +1,7 @@ "use strict"; -var util = require("../../util"); -var t = require("../../types"); +var repeating = require("repeating"); +var t = require("../../types"); exports.WithStatement = function (node, print) { this.keyword("with"); @@ -190,7 +190,7 @@ exports.VariableDeclaration = function (node, print, parent) { var sep = ","; if (hasInits) { - sep += "\n" + util.repeat(node.kind.length + 1); + sep += "\n" + repeating(" ", node.kind.length + 1); } else { sep += " "; } diff --git a/lib/babel/generation/index.js b/lib/babel/generation/index.js index c9ea55b912..f7ea244bec 100644 --- a/lib/babel/generation/index.js +++ b/lib/babel/generation/index.js @@ -9,13 +9,13 @@ module.exports.CodeGenerator = CodeGenerator; var detectIndent = require("detect-indent"); var Whitespace = require("./whitespace"); +var repeating = require("repeating"); var SourceMap = require("./source-map"); var Position = require("./position"); var Buffer = require("./buffer"); var extend = require("lodash/object/extend"); var merge = require("lodash/object/merge"); var each = require("lodash/collection/each"); -var util = require("../util"); var n = require("./node"); var t = require("../types"); @@ -344,7 +344,7 @@ CodeGenerator.prototype._printComments = function (comments) { } var indent = Math.max(self.indentSize(), column); - val = val.replace(/\n/g, "\n" + util.repeat(indent)); + val = val.replace(/\n/g, "\n" + repeating(" ", indent)); } if (column === 0) { diff --git a/lib/babel/helpers/code-frame.js b/lib/babel/helpers/code-frame.js index 9595ddabc7..0c23f207db 100644 --- a/lib/babel/helpers/code-frame.js +++ b/lib/babel/helpers/code-frame.js @@ -1,8 +1,8 @@ // syntax highlighting based on https://github.com/dominictarr/ansi-highlight by the fantastic Dominic Tarr -var tokenize = require("js-tokenizer"); -var chalk = require("chalk"); -var util = require("../util"); +var repeating = require("repeating"); +var tokenize = require("js-tokenizer"); +var chalk = require("chalk"); var defs = { string1: "red", @@ -62,15 +62,15 @@ module.exports = function (lines, lineNumber, colNumber) { var gutter = curr === lineNumber ? "> " : " "; - var sep = curr + util.repeat(width + 1); + var sep = curr + repeating(" ", width + 1); gutter += sep + "| "; var str = gutter + line; if (colNumber && curr === lineNumber) { str += "\n"; - str += util.repeat(gutter.length - 2); - str += "|" + util.repeat(colNumber) + "^"; + str += repeating(" ", gutter.length - 2); + str += "|" + repeating(" ", colNumber) + "^"; } return str; diff --git a/lib/babel/util.js b/lib/babel/util.js index a5808866de..32438efddc 100644 --- a/lib/babel/util.js +++ b/lib/babel/util.js @@ -114,17 +114,6 @@ exports.template = function (name, nodes, keepExpression) { } }; -exports.repeat = function (width, cha) { - cha = cha || " "; - - var result = ""; - for (var i = 0; i < width; i++) { - result += cha; - } - - return result; -}; - exports.parseTemplate = function (loc, code) { var ast = parse({ filename: loc }, code).program; return traverse.removeProperties(ast); diff --git a/package.json b/package.json index 6274a91ff2..a114f810d9 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "private": "^0.1.6", "regenerator-babel": "0.8.10-2", "regexpu": "^1.1.1", + "repeating": "^1.1.2", "source-map": "^0.1.43", "source-map-support": "^0.2.9", "source-map-to-comment": "^1.0.0"