| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <!-- | 2 <!-- |
| 3 Copyright (c) 2012 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
| 5 found in the LICENSE file. | 5 found in the LICENSE file. |
| 6 --> | 6 --> |
| 7 <link rel="import" href="/tracing/base/base.html"> | 7 <link rel="import" href="/tracing/base/base.html"> |
| 8 <script> | 8 <script> |
| 9 'use strict'; | 9 'use strict'; |
| 10 | 10 |
| 11 /** | 11 /** |
| 12 * @fileoverview Log Reader is used to process log file produced by V8. | 12 * @fileoverview Log Reader is used to process log file produced by V8. |
| 13 */ | 13 */ |
| 14 tr.exportTo('tr.e.importer.v8', function() { | 14 tr.exportTo('tr.e.importer.v8', function() { |
| 15 /** | 15 /** |
| 16 * Creates a CSV lines parser. | 16 * Creates a CSV lines parser. |
| 17 */ | 17 */ |
| 18 function CsvParser() { }; | 18 function CsvParser() { } |
| 19 | 19 |
| 20 /** | 20 /** |
| 21 * A regex for matching a CSV field. | 21 * A regex for matching a CSV field. |
| 22 * @private | 22 * @private |
| 23 */ | 23 */ |
| 24 CsvParser.CSV_FIELD_RE_ = /^"((?:[^"]|"")*)"|([^,]*)/; | 24 CsvParser.CSV_FIELD_RE_ = /^"((?:[^"]|"")*)"|([^,]*)/; |
| 25 | 25 |
| 26 /** | 26 /** |
| 27 * A regex for matching a double quote. | 27 * A regex for matching a double quote. |
| 28 * @private | 28 * @private |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 * Current line. | 77 * Current line. |
| 78 * @type {number} | 78 * @type {number} |
| 79 */ | 79 */ |
| 80 this.lineNum_ = 0; | 80 this.lineNum_ = 0; |
| 81 | 81 |
| 82 /** | 82 /** |
| 83 * CSV lines parser. | 83 * CSV lines parser. |
| 84 * @type {CsvParser} | 84 * @type {CsvParser} |
| 85 */ | 85 */ |
| 86 this.csvParser_ = new CsvParser(); | 86 this.csvParser_ = new CsvParser(); |
| 87 }; | 87 } |
| 88 | 88 |
| 89 /** | 89 /** |
| 90 * Used for printing error messages. | 90 * Used for printing error messages. |
| 91 * | 91 * |
| 92 * @param {string} str Error message. | 92 * @param {string} str Error message. |
| 93 */ | 93 */ |
| 94 LogReader.prototype.printError = function(str) { | 94 LogReader.prototype.printError = function(str) { |
| 95 // Do nothing. | 95 // Do nothing. |
| 96 }; | 96 }; |
| 97 | 97 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 120 * @param {number} func JS Function. | 120 * @param {number} func JS Function. |
| 121 * @param {Array.<string>} stack String representation of a stack. | 121 * @param {Array.<string>} stack String representation of a stack. |
| 122 * @return {Array.<number>} Processed stack. | 122 * @return {Array.<number>} Processed stack. |
| 123 */ | 123 */ |
| 124 LogReader.prototype.processStack = function(pc, func, stack) { | 124 LogReader.prototype.processStack = function(pc, func, stack) { |
| 125 var fullStack = func ? [pc, func] : [pc]; | 125 var fullStack = func ? [pc, func] : [pc]; |
| 126 var prevFrame = pc; | 126 var prevFrame = pc; |
| 127 for (var i = 0, n = stack.length; i < n; ++i) { | 127 for (var i = 0, n = stack.length; i < n; ++i) { |
| 128 var frame = stack[i]; | 128 var frame = stack[i]; |
| 129 var firstChar = frame.charAt(0); | 129 var firstChar = frame.charAt(0); |
| 130 if (firstChar == '+' || firstChar == '-') { | 130 if (firstChar === '+' || firstChar === '-') { |
| 131 // An offset from the previous frame. | 131 // An offset from the previous frame. |
| 132 prevFrame += parseInt(frame, 16); | 132 prevFrame += parseInt(frame, 16); |
| 133 fullStack.push(prevFrame); | 133 fullStack.push(prevFrame); |
| 134 // Filter out possible 'overflow' string. | 134 // Filter out possible 'overflow' string. |
| 135 } else if (firstChar != 'o') { | 135 } else if (firstChar !== 'o') { |
| 136 fullStack.push(parseInt(frame, 16)); | 136 fullStack.push(parseInt(frame, 16)); |
| 137 } | 137 } |
| 138 } | 138 } |
| 139 return fullStack; | 139 return fullStack; |
| 140 }; | 140 }; |
| 141 | 141 |
| 142 /** | 142 /** |
| 143 * Returns whether a particular dispatch must be skipped. | 143 * Returns whether a particular dispatch must be skipped. |
| 144 * | 144 * |
| 145 * @param {!Object} dispatch Dispatch record. | 145 * @param {!Object} dispatch Dispatch record. |
| (...skipping 19 matching lines...) Expand all Loading... |
| 165 if (dispatch === null || this.skipDispatch(dispatch)) { | 165 if (dispatch === null || this.skipDispatch(dispatch)) { |
| 166 return; | 166 return; |
| 167 } | 167 } |
| 168 | 168 |
| 169 // Parse fields. | 169 // Parse fields. |
| 170 var parsedFields = []; | 170 var parsedFields = []; |
| 171 for (var i = 0; i < dispatch.parsers.length; ++i) { | 171 for (var i = 0; i < dispatch.parsers.length; ++i) { |
| 172 var parser = dispatch.parsers[i]; | 172 var parser = dispatch.parsers[i]; |
| 173 if (parser === null) { | 173 if (parser === null) { |
| 174 parsedFields.push(fields[1 + i]); | 174 parsedFields.push(fields[1 + i]); |
| 175 } else if (typeof parser == 'function') { | 175 } else if (typeof parser === 'function') { |
| 176 parsedFields.push(parser(fields[1 + i])); | 176 parsedFields.push(parser(fields[1 + i])); |
| 177 } else { | 177 } else { |
| 178 // var-args | 178 // var-args |
| 179 parsedFields.push(fields.slice(1 + i)); | 179 parsedFields.push(fields.slice(1 + i)); |
| 180 break; | 180 break; |
| 181 } | 181 } |
| 182 } | 182 } |
| 183 | 183 |
| 184 // Run the processor. | 184 // Run the processor. |
| 185 dispatch.processor.apply(this, parsedFields); | 185 dispatch.processor.apply(this, parsedFields); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 204 this.printError('line ' + (this.lineNum_ + 1) + ': ' + | 204 this.printError('line ' + (this.lineNum_ + 1) + ': ' + |
| 205 (e.message || e)); | 205 (e.message || e)); |
| 206 } | 206 } |
| 207 } | 207 } |
| 208 }; | 208 }; |
| 209 return { | 209 return { |
| 210 LogReader: LogReader | 210 LogReader: LogReader |
| 211 }; | 211 }; |
| 212 }); | 212 }); |
| 213 </script> | 213 </script> |
| OLD | NEW |