Index: src/interpreter/bytecode-array-builder.cc |
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc |
index 31319739d01bfe03f19bc1c6a1b10f0b9c2b4e30..9505b149ed22b7b00da8138f764ae7b5f42c8532 100644 |
--- a/src/interpreter/bytecode-array-builder.cc |
+++ b/src/interpreter/bytecode-array-builder.cc |
@@ -91,6 +91,8 @@ BytecodeArrayBuilder::BytecodeArrayBuilder(Isolate* isolate, Zone* zone, |
return_position_ = |
literal ? std::max(literal->start_position(), literal->end_position() - 1) |
: RelocInfo::kNoPosition; |
+ LOG_CODE_EVENT(isolate_, CodeStartLinePosInfoRecordEvent( |
+ source_position_table_builder())); |
} |
BytecodeArrayBuilder::~BytecodeArrayBuilder() { DCHECK_EQ(0, unbound_jumps_); } |
@@ -130,13 +132,18 @@ Handle<BytecodeArray> BytecodeArrayBuilder::ToBytecodeArray() { |
Handle<FixedArray> handler_table = handler_table_builder()->ToHandlerTable(); |
Handle<ByteArray> source_position_table = |
source_position_table_builder()->ToSourcePositionTable(); |
- Handle<BytecodeArray> output = isolate_->factory()->NewBytecodeArray( |
+ Handle<BytecodeArray> bytecode_array = isolate_->factory()->NewBytecodeArray( |
bytecode_size, &bytecodes_.front(), frame_size, parameter_count(), |
constant_pool); |
- output->set_handler_table(*handler_table); |
- output->set_source_position_table(*source_position_table); |
+ bytecode_array->set_handler_table(*handler_table); |
+ bytecode_array->set_source_position_table(*source_position_table); |
+ |
+ void* line_info = source_position_table_builder()->DetachJITHandlerData(); |
+ LOG_CODE_EVENT(isolate_, CodeEndLinePosInfoRecordEvent( |
+ AbstractCode::cast(*bytecode_array), line_info)); |
+ |
bytecode_generated_ = true; |
- return output; |
+ return bytecode_array; |
} |