From 9fbc6267a4f6cd87c92fa6f57f437aacbac4fb72 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 13 Jan 2015 22:51:51 -0800 Subject: Initialize fields in objects to null rather than undefined. Big speed boost. --- js/lib/blocks.js | 14 +++++++------- js/lib/node.js | 22 +++++++++++----------- js/lib/xml.js | 10 +++++----- 3 files changed, 23 insertions(+), 23 deletions(-) (limited to 'js/lib') diff --git a/js/lib/blocks.js b/js/lib/blocks.js index d53a82f..cb4bd5f 100644 --- a/js/lib/blocks.js +++ b/js/lib/blocks.js @@ -161,7 +161,7 @@ var addChild = function(tag, offset) { var column_number = offset + 1; // offset 0 = column 1 var newBlock = new Node(tag, [[this.lineNumber, column_number], [0, 0]]); newBlock.strings = []; - newBlock.string_content = undefined; + newBlock.string_content = null; this.tip.appendChild(newBlock); this.tip = newBlock; return newBlock; @@ -173,12 +173,12 @@ var parseListMarker = function(ln, offset, indent) { var rest = ln.slice(offset); var match; var spaces_after_marker; - var data = { type: undefined, + var data = { type: null, tight: true, - bullet_char: undefined, - start: undefined, - delimiter: undefined, - padding: undefined, + bullet_char: null, + start: null, + delimiter: null, + padding: null, marker_offset: indent }; if (rest.match(reHrule)) { return null; @@ -654,7 +654,7 @@ var processInlines = function(block) { var Document = function() { var doc = new Node('Document', [[1, 1], [0, 0]]); - doc.string_content = undefined; + doc.string_content = null; doc.strings = []; return doc; }; diff --git a/js/lib/node.js b/js/lib/node.js index e58c7c7..c90c3e9 100644 --- a/js/lib/node.js +++ b/js/lib/node.js @@ -72,17 +72,17 @@ var Node = function(nodeType, sourcepos) { this.sourcepos = sourcepos; this.last_line_blank = false; this.open = true; - this.strings = undefined; - this.string_content = undefined; - this.literal = undefined; - this.list_data = undefined; - this.info = undefined; - this.destination = undefined; - this.title = undefined; - this.fence_char = undefined; - this.fence_length = undefined; - this.fence_offset = undefined; - this.level = undefined; + this.strings = null; + this.string_content = null; + this.literal = null; + this.list_data = null; + this.info = null; + this.destination = null; + this.title = null; + this.fence_char = null; + this.fence_length = null; + this.fence_offset = null; + this.level = null; }; Node.prototype.isContainer = function() { diff --git a/js/lib/xml.js b/js/lib/xml.js index e867fdc..ada61f7 100644 --- a/js/lib/xml.js +++ b/js/lib/xml.js @@ -91,16 +91,16 @@ var renderNodes = function(block) { switch (nodetype) { case 'List': var data = node.list_data; - if (data.type !== undefined) { + if (data.type !== null) { attrs.push(['type', data.type.toLowerCase()]); } - if (data.start !== undefined) { + if (data.start !== null) { attrs.push(['start', String(data.start)]); } - if (data.tight !== undefined) { + if (data.tight !== null) { attrs.push(['tight', (data.tight ? 'true' : 'false')]); } - if (data.delimiter !== undefined) { + if (data.delimiter !== null) { var delimword = ''; if (data.delimiter === '.') { delimword = 'period'; @@ -128,7 +128,7 @@ var renderNodes = function(block) { } if (options.sourcepos) { var pos = node.sourcepos; - if (pos !== undefined) { + if (pos) { attrs.push(['data-sourcepos', String(pos[0][0]) + ':' + String(pos[0][1]) + '-' + String(pos[1][0]) + ':' + String(pos[1][1])]); -- cgit v1.2.3