From 9ff768886050b8a62cba180d9c2d575c0fe82364 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sat, 10 Jan 2015 15:21:57 -0800 Subject: Small performance optimization in dealing with final newline. --- js/lib/blocks.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'js/lib') diff --git a/js/lib/blocks.js b/js/lib/blocks.js index a7b75aa..e2b4033 100644 --- a/js/lib/blocks.js +++ b/js/lib/blocks.js @@ -1,6 +1,7 @@ var Node = require('./node'); var C_GREATERTHAN = 62; +var C_NEWLINE = 10; var C_SPACE = 32; var C_OPEN_BRACKET = 91; @@ -675,8 +676,12 @@ var parse = function(input) { this.doc = Document(); this.tip = this.doc; this.refmap = {}; - var lines = input.replace(/\n$/, '').split(reLineEnding); + var lines = input.split(reLineEnding); var len = lines.length; + if (input.charCodeAt(input.length - 1) === C_NEWLINE) { + // ignore last blank line created by final newline + len -= 1; + } for (var i = 0; i < len; i++) { this.incorporateLine(lines[i], i + 1); } -- cgit v1.2.3