From 340d6b4859aa3ec292dc47c135eb0651f0d6c56d Mon Sep 17 00:00:00 2001 From: Jeff Avallone Date: Wed, 10 Dec 2014 20:11:51 -0500 Subject: [PATCH] Simplifying literal normalization code --- src/js/parser/javascript/match.js | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/js/parser/javascript/match.js b/src/js/parser/javascript/match.js index 58de80c..f3f8925 100644 --- a/src/js/parser/javascript/match.js +++ b/src/js/parser/javascript/match.js @@ -47,22 +47,16 @@ export default _.extend({}, Base, { parts() { return _.reduce(this._parts.elements, function(result, node) { - var last = result.pop(); + var last = _.last(result); - if (last) { - if (node.elements[0].type === 'literal' && node.elements[1].textValue === '' && last.elements[0].type === 'literal' && last.elements[1].textValue === '') { - last = _.clone(last, true); - last.textValue += node.textValue; - last.elements[0].textValue += node.elements[0].textValue; - last.elements[0].literal.textValue += node.elements[0].literal.textValue; - last.elements[1] = node.elements[1]; - node = last; - } else { - result.push(last); - } + if (last && node.elements[0].type === 'literal' && node.elements[1].textValue === '' && last.elements[0].type === 'literal' && last.elements[1].textValue === '') { + last.textValue += node.textValue; + last.elements[0].textValue += node.elements[0].textValue; + last.elements[0].literal.textValue += node.elements[0].literal.textValue; + } else { + result.push(node); } - result.push(node); return result; }, []); }