Index: src/interpreter/bytecode-pipeline.cc |
diff --git a/src/interpreter/bytecode-pipeline.cc b/src/interpreter/bytecode-pipeline.cc |
index 07ce6ed5d2eb09f57a2a85c95ff2fcd7f3aa1010..5812c89954d51a8c369388ecec194662001eeccc 100644 |
--- a/src/interpreter/bytecode-pipeline.cc |
+++ b/src/interpreter/bytecode-pipeline.cc |
@@ -12,6 +12,8 @@ namespace internal { |
namespace interpreter { |
void BytecodeSourceInfo::Update(const BytecodeSourceInfo& entry) { |
+ if (!entry.is_valid()) return; |
+ |
if (!is_valid() || (entry.is_statement() && !is_statement()) || |
(entry.is_statement() && is_statement() && |
entry.source_position() > source_position())) { |
@@ -75,6 +77,15 @@ BytecodeNode::BytecodeNode(Bytecode bytecode, uint32_t operand0, |
operand_scale_ = operand_scale; |
} |
+BytecodeNode::BytecodeNode(const BytecodeNode& other) { |
+ memcpy(this, &other, sizeof(other)); |
+} |
+ |
+BytecodeNode& BytecodeNode::operator=(const BytecodeNode& other) { |
+ memcpy(this, &other, sizeof(other)); |
+ return *this; |
+} |
+ |
void BytecodeNode::set_bytecode(Bytecode bytecode) { |
DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 0); |
bytecode_ = bytecode; |