Index: tools/logreader.js |
diff --git a/tools/logreader.js b/tools/logreader.js |
index 20a1f54444b70c0ae3993f1cf355cc407afad602..b2aca73d218e4cf03be71b2937bbb37f3a6308b9 100644 |
--- a/tools/logreader.js |
+++ b/tools/logreader.js |
@@ -76,6 +76,18 @@ devtools.profiler.LogReader = function(dispatchTable) { |
* @type {Array.<string>} |
*/ |
this.backRefs_ = []; |
+ |
+ /** |
+ * Current line. |
+ * @type {number} |
+ */ |
+ this.lineNum_ = 0; |
+ |
+ /** |
+ * CSV lines parser. |
+ * @type {devtools.profiler.CsvParser} |
+ */ |
+ this.csvParser_ = new devtools.profiler.CsvParser(); |
}; |
@@ -136,6 +148,16 @@ devtools.profiler.LogReader.prototype.processLogChunk = function(chunk) { |
/** |
+ * Processes a line of V8 profiler event log. |
+ * |
+ * @param {string} line A line of log. |
+ */ |
+devtools.profiler.LogReader.prototype.processLogLine = function(line) { |
+ this.processLog_([line]); |
+}; |
+ |
+ |
+/** |
* Processes stack record. |
* |
* @param {number} pc Program counter. |
@@ -280,25 +302,20 @@ devtools.profiler.LogReader.prototype.processAlias_ = function( |
* @private |
*/ |
devtools.profiler.LogReader.prototype.processLog_ = function(lines) { |
- var csvParser = new devtools.profiler.CsvParser(); |
- try { |
- for (var i = 0, n = lines.length; i < n; ++i) { |
- var line = lines[i]; |
- if (!line) { |
- continue; |
- } |
+ for (var i = 0, n = lines.length; i < n; ++i, ++this.lineNum_) { |
+ var line = lines[i]; |
+ if (!line) { |
+ continue; |
+ } |
+ try { |
if (line.charAt(0) == '#' || |
line.substr(0, line.indexOf(',')) in this.backRefsCommands_) { |
line = this.expandBackRef_(line); |
} |
- var fields = csvParser.parseLine(line); |
+ var fields = this.csvParser_.parseLine(line); |
this.dispatchLogRow_(fields); |
- } |
- } catch (e) { |
- // An error on the last line is acceptable since log file can be truncated. |
- if (i < n - 1) { |
- this.printError('line ' + (i + 1) + ': ' + (e.message || e)); |
- throw e; |
+ } catch (e) { |
+ this.printError('line ' + (this.lineNum_ + 1) + ': ' + (e.message || e)); |
} |
} |
}; |