diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-01-10 21:33:25 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-01-10 21:34:04 -0800 |
commit | 958505853ebd24fd3c0dc2bc6f6fb0615a48c8b7 (patch) | |
tree | eb949684782940565b5e1c4dbadbbaa6cdddbff8 /js/lib/blocks.js | |
parent | f5476eb652b7d69ed25c858a4d757b9313b40b67 (diff) |
Added options to DocParser.
So far only 'time' is supported.
'time' now gives a breakdown of block parsing, inline parsing,
and rendering.
Currently the ratio is
block parsing: 725ms
inline parsing: 332ms
rendering: 213ms
so perhaps block.js is the best place to look for further optimizations.
Diffstat (limited to 'js/lib/blocks.js')
-rw-r--r-- | js/lib/blocks.js | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/js/lib/blocks.js b/js/lib/blocks.js index 05de246..c2d14d7 100644 --- a/js/lib/blocks.js +++ b/js/lib/blocks.js @@ -671,6 +671,7 @@ var Document = function() { // The main parsing function. Returns a parsed document AST. var parse = function(input) { "use strict"; + if (this.options.time) { console.time("block parsing"); } this.doc = Document(); this.tip = this.doc; this.refmap = {}; @@ -686,13 +687,16 @@ var parse = function(input) { while (this.tip) { this.finalize(this.tip, len); } + if (this.options.time) { console.timeEnd("block parsing"); } + if (this.options.time) { console.time("inline parsing"); } this.processInlines(this.doc); + if (this.options.time) { console.timeEnd("inline parsing"); } return this.doc; }; // The DocParser object. -function DocParser(){ +function DocParser(options){ "use strict"; return { doc: Document(), @@ -706,7 +710,8 @@ function DocParser(){ incorporateLine: incorporateLine, finalize: finalize, processInlines: processInlines, - parse: parse + parse: parse, + options: options || {} }; } |