| Index: src/profiler/cpu-profiler.cc
|
| diff --git a/src/profiler/cpu-profiler.cc b/src/profiler/cpu-profiler.cc
|
| index 50558f77d50d344a7a730eea4b4243738a66f476..22030bfc71ad61287c7bb156471763116506b94d 100644
|
| --- a/src/profiler/cpu-profiler.cc
|
| +++ b/src/profiler/cpu-profiler.cc
|
| @@ -287,8 +287,15 @@ void CpuProfiler::CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| }
|
| }
|
| } else {
|
| - DCHECK(abstract_code->IsBytecodeArray());
|
| - // TODO(rmcilroy): source position tracking for bytecode arrays.
|
| + BytecodeArray* bytecode = abstract_code->GetBytecodeArray();
|
| + line_table = new JITLineInfoTable();
|
| + interpreter::SourcePositionTableIterator it(
|
| + bytecode->source_position_table());
|
| + for (; !it.done(); it.Advance()) {
|
| + int line_number = script->GetLineNumber(it.source_position()) + 1;
|
| + int pc_offset = it.bytecode_offset() + BytecodeArray::kHeaderSize;
|
| + line_table->SetPosition(pc_offset, line_number);
|
| + }
|
| }
|
| }
|
| rec->entry = profiles_->NewCodeEntry(
|
|
|