| <!DOCTYPE html> |
| <!-- |
| Copyright 2015 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <link rel="import" href="/tracing/extras/importer/trace_code_entry.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tr.b.unittest.testSuite(function() { |
| test('lazy_compile_method', function() { |
| var tce = new tr.e.importer.TraceCodeEntry( |
| '0x123', 10, 'Handler:timeStamp', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, 'timeStamp'); |
| assert.equal(tce.sourceInfo.isNative, false); |
| assert.equal(tce.sourceInfo.file, ''); |
| assert.equal(tce.sourceInfo.line, -1); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| }); |
| |
| test('non_lazy_compile_method', function() { |
| var tce = new tr.e.importer.TraceCodeEntry( |
| '0x123', 10, 'Handler:timeStamp', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, 'timeStamp'); |
| assert.equal(tce.sourceInfo.state, 'compiled'); |
| assert.equal(tce.sourceInfo.isNative, false); |
| assert.equal(tce.sourceInfo.file, ''); |
| assert.equal(tce.sourceInfo.line, -1); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| }); |
| |
| test('native_matching', function() { |
| var tce = new tr.e.importer.TraceCodeEntry('0x123', 10, |
| 'LazyCompile:~IsAccessorDescriptor native v8natives.js:183', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, 'IsAccessorDescriptor'); |
| assert.equal(tce.sourceInfo.isNative, true); |
| assert.equal(tce.sourceInfo.state, 'optimizable'); |
| assert.equal(tce.sourceInfo.file, 'v8natives.js'); |
| assert.equal(tce.sourceInfo.line, 182); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| }); |
| |
| test('strips_*_from_name', function() { |
| var tce = new tr.e.importer.TraceCodeEntry('0x123', 10, |
| 'LazyCompile:*IsAccessorDescriptor native v8natives.js:183', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, 'IsAccessorDescriptor'); |
| assert.equal(tce.sourceInfo.isNative, true); |
| assert.equal(tce.sourceInfo.state, 'optimized'); |
| assert.equal(tce.sourceInfo.file, 'v8natives.js'); |
| assert.equal(tce.sourceInfo.line, 182); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| }); |
| |
| test('non_native_matching', function() { |
| var tce = new tr.e.importer.TraceCodeEntry('0x123', 10, |
| 'LazyCompile:~IsAccessorDescriptor v8natives.js:183', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, 'IsAccessorDescriptor'); |
| assert.equal(tce.sourceInfo.isNative, false); |
| assert.equal(tce.sourceInfo.file, 'v8natives.js'); |
| assert.equal(tce.sourceInfo.line, 182); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| }); |
| |
| test('lazy_compile_without_script', function() { |
| var tce = new tr.e.importer.TraceCodeEntry( |
| '0x123', 10, 'LazyCompile:~Object', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, 'Object'); |
| assert.equal(tce.sourceInfo.isNative, false); |
| assert.equal(tce.sourceInfo.file, ''); |
| assert.equal(tce.sourceInfo.line, -1); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| }); |
| |
| test('line_matching_without_script', function() { |
| var tce = new tr.e.importer.TraceCodeEntry('0x123', 10, |
| 'LazyCompile:~Object :220', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, 'Object'); |
| assert.equal(tce.sourceInfo.isNative, false); |
| assert.equal(tce.sourceInfo.file, ''); |
| assert.equal(tce.sourceInfo.line, 219); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| }); |
| |
| test('unknown_method_name', function() { |
| var tce = new tr.e.importer.TraceCodeEntry('0x123', 10, 'LazyCompile:', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, ''); |
| assert.equal(tce.sourceInfo.isNative, false); |
| assert.equal(tce.sourceInfo.file, ''); |
| assert.equal(tce.sourceInfo.line, -1); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| |
| var tce = new tr.e.importer.TraceCodeEntry( |
| '0x123', 10, 'LazyCompile:~ :37', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, ''); |
| assert.equal(tce.sourceInfo.isNative, false); |
| assert.equal(tce.sourceInfo.file, ''); |
| assert.equal(tce.sourceInfo.line, 36); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| |
| var tce = new tr.e.importer.TraceCodeEntry('0x123', 10, |
| 'LazyCompile:~ native liveedit.js:37:10', 12); |
| assert.equal(tce.size, 10); |
| assert.equal(tce.name, ''); |
| assert.equal(tce.sourceInfo.isNative, true); |
| assert.equal(tce.sourceInfo.file, 'liveedit.js'); |
| assert.equal(tce.sourceInfo.line, 36); |
| assert.equal(tce.sourceInfo.column, 9); |
| assert.equal(tce.sourceInfo.scriptId, 12); |
| }); |
| }); |
| </script> |
| |