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; }, []); }