| Index: src/interpreter/bytecode-array-builder.cc
|
| diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc
|
| index 8dc4fb98985bddb9e5328b622f7ab808ef3789b1..b15c55269dc192560253371f1a44b95f4e5ff69e 100644
|
| --- a/src/interpreter/bytecode-array-builder.cc
|
| +++ b/src/interpreter/bytecode-array-builder.cc
|
| @@ -30,6 +30,7 @@ BytecodeArrayBuilder::BytecodeArrayBuilder(Isolate* isolate, Zone* zone,
|
| parameter_count_(parameter_count),
|
| local_register_count_(locals_count),
|
| context_register_count_(context_count),
|
| + literal_(literal),
|
| temporary_allocator_(zone, fixed_register_count()),
|
| bytecode_array_writer_(isolate, zone, &constant_array_builder_),
|
| pipeline_(&bytecode_array_writer_) {
|
| @@ -50,10 +51,6 @@ BytecodeArrayBuilder::BytecodeArrayBuilder(Isolate* isolate, Zone* zone,
|
| pipeline_ = new (zone) BytecodeRegisterOptimizer(
|
| zone, &temporary_allocator_, parameter_count, pipeline_);
|
| }
|
| -
|
| - return_position_ =
|
| - literal ? std::max(literal->start_position(), literal->end_position() - 1)
|
| - : kNoSourcePosition;
|
| }
|
|
|
| Register BytecodeArrayBuilder::first_context_register() const {
|
| @@ -632,8 +629,10 @@ size_t BytecodeArrayBuilder::GetConstantPoolEntry(Handle<Object> object) {
|
| }
|
|
|
| void BytecodeArrayBuilder::SetReturnPosition() {
|
| - if (return_position_ == kNoSourcePosition) return;
|
| - latest_source_info_.MakeStatementPosition(return_position_);
|
| + if (literal_ == nullptr) return;
|
| + int position =
|
| + std::max(literal_->start_position(), literal_->end_position() - 1);
|
| + latest_source_info_.MakeStatementPosition(position);
|
| }
|
|
|
| void BytecodeArrayBuilder::SetStatementPosition(Statement* stmt) {
|
|
|