Index: src/interpreter/bytecode-peephole-optimizer.cc |
diff --git a/src/interpreter/bytecode-peephole-optimizer.cc b/src/interpreter/bytecode-peephole-optimizer.cc |
index 892cf3cbdfdff0fd16befa6d2c05e0846fe69343..1108d8304f855f74dcd5b3f6e2965104f068684c 100644 |
--- a/src/interpreter/bytecode-peephole-optimizer.cc |
+++ b/src/interpreter/bytecode-peephole-optimizer.cc |
@@ -297,7 +297,10 @@ BytecodeNode* BytecodePeepholeOptimizer::Optimize(BytecodeNode* current) { |
} |
if (CanElideLast(current) && CanElideLastBasedOnSourcePosition(current)) { |
- current->source_info().Update(last_.source_info()); |
+ if (last_.source_info().is_valid()) { |
+ // Current can not be valid per CanElideLastBasedOnSourcePosition(). |
+ current->source_info().Clone(last_.source_info()); |
+ } |
InvalidateLast(); |
return current; |
} |