diff --git a/src/babel/generation/index.js b/src/babel/generation/index.js index b7584b5b65..149002bdc2 100644 --- a/src/babel/generation/index.js +++ b/src/babel/generation/index.js @@ -57,28 +57,16 @@ class CodeGenerator { return format; } - static findCommonStringDelimiter(code, tokens) { - var occurences = { - single: 0, - double: 0 - }; - - for (var i = 0, checked = 0; i < tokens.length; i++) { - var token = tokens[i]; - if (token.type.label !== "string") continue; - - var raw = code.slice(token.start, token.end); - if (raw[0] === "'") { - occurences.single++; - } else { - occurences.double++; - } - - checked++; - if (checked >= 3) break; + static findCommonStringDelimiter(code, tokens, occurences = {"'": 0, "\"": 0}) { + if (tokens.length === 0 || occurences["'"] + occurences["\""] >= 3) { + return occurences["'"] > occurences["\""] ? "single" : "double"; } - return occurences.single > occurences.double ? "single" : "double"; + if (tokens[0].type.label === "string") { + occurences[code[tokens[0].start]]++; + } + + return this.findCommonStringDelimiter(code, tokens.slice(1), occurences); } static generators = {