- Commit
- 958505853ebd24fd3c0dc2bc6f6fb0615a48c8b7
- Parent
- f5476eb652b7d69ed25c858a4d757b9313b40b67
- Author
- John MacFarlane <jgm@berkeley.edu>
- Date
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.
diff --git 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 || {}
};
}