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