Index: src/deoptimizer.cc |
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
index 6fe51bb3aff48ead9cde4b6b4139bf093a5c468c..a0ec810a3a1151e936d4636db165f40906eed724 100644 |
--- a/src/deoptimizer.cc |
+++ b/src/deoptimizer.cc |
@@ -2730,8 +2730,12 @@ Deoptimizer::DeoptInfo Deoptimizer::GetDeoptInfo(Code* code, Address pc) { |
} |
if (info->rmode() == RelocInfo::DEOPT_POSITION) { |
int raw_position = static_cast<int>(info->data()); |
- last_position = raw_position ? SourcePosition::FromRaw(raw_position) |
- : SourcePosition::Unknown(); |
+ if (raw_position > 0) { |
+ last_position.SetScriptOffset(raw_position - 2); |
+ } else { |
+ DCHECK(raw_position < 0); |
+ last_position.SetInliningId(-raw_position - 2); |
+ } |
} else if (info->rmode() == RelocInfo::DEOPT_ID) { |
last_deopt_id = static_cast<int>(info->data()); |
} else if (info->rmode() == RelocInfo::DEOPT_REASON) { |