From 5b0b7ba226dc2e66d3863d1cc2cacea4c473b5e5 Mon Sep 17 00:00:00 2001 From: Sam Saccone Date: Wed, 1 Jul 2015 20:30:21 -0700 Subject: [PATCH 1/3] :fork_and_knife: Switch to ternary for return https://www.youtube.com/watch?v=XAbY2cmEsS0 --- src/babel/generation/index.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/babel/generation/index.js b/src/babel/generation/index.js index a24ade6484..b9c75281e7 100644 --- a/src/babel/generation/index.js +++ b/src/babel/generation/index.js @@ -80,11 +80,7 @@ class CodeGenerator { if (checked >= 3) break; } - if (occurences.single > occurences.double) { - return "single"; - } else { - return "double"; - } + return occurences.single > occurences.double ? "single" : "double"; } static generators = { From 1945f849c37195e64d959a83645a08330c29aeae Mon Sep 17 00:00:00 2001 From: Sam Saccone Date: Wed, 1 Jul 2015 20:34:43 -0700 Subject: [PATCH 2/3] Move :white_check_mark: into for block https://www.youtube.com/watch?v=FHDwRECFL8M --- src/babel/generation/index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/babel/generation/index.js b/src/babel/generation/index.js index b9c75281e7..b7584b5b65 100644 --- a/src/babel/generation/index.js +++ b/src/babel/generation/index.js @@ -63,9 +63,7 @@ class CodeGenerator { double: 0 }; - var checked = 0; - - for (var i = 0; i < tokens.length; i++) { + for (var i = 0, checked = 0; i < tokens.length; i++) { var token = tokens[i]; if (token.type.label !== "string") continue; From 74c59c94ce3aed9be372224801251e07e8661902 Mon Sep 17 00:00:00 2001 From: Sam Saccone Date: Thu, 2 Jul 2015 16:57:12 -0400 Subject: [PATCH 3/3] :golf: --- src/babel/generation/index.js | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) 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 = {