diff --git a/lib/parse.js b/lib/parse.js index 7a6089e4..c042a60b 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -1276,11 +1276,11 @@ function parse($TEXT, options) { case "(": next(); var ex = expression(true); - var orig_len = start.comments_before.length; - start.comments_before.orig_len = orig_len; - [].push.apply(start.comments_before, ex.start.comments_before); - ex.start.comments_before = start.comments_before; - if (orig_len == 0 && start.comments_before.length > 0) { + var len = start.comments_before.length; + [].unshift.apply(ex.start.comments_before, start.comments_before); + start.comments_before = ex.start.comments_before; + start.comments_before_length = len; + if (len == 0 && start.comments_before.length > 0) { var comment = start.comments_before[0]; if (!comment.nlb) { comment.nlb = start.nlb; @@ -1444,8 +1444,9 @@ function parse($TEXT, options) { }; function mark_pure(call) { - var comments = call.start.comments_before; - var i = HOP(comments, "orig_len") ? comments.orig_len : comments.length; + var start = call.start; + var comments = start.comments_before; + var i = HOP(start, "comments_before_length") ? start.comments_before_length : comments.length; while (--i >= 0) { var comment = comments[i]; if (/[@#]__PURE__/.test(comment.value)) {