Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 4f9773cf7ce427947af6c23877ba4d72078dde6d..51b8283fd9329e8e8a8f2c0cd3bd23c686c5db3c 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -12506,6 +12506,20 @@ void BytecodeArray::Disassemble(std::ostream& os) { |
SNPrintF(buf, "%p", bytecode_start); |
os << buf.start() << " : "; |
interpreter::Bytecodes::Decode(os, bytecode_start, parameter_count()); |
+ if (bytecode == interpreter::Bytecode::kJump || |
+ bytecode == interpreter::Bytecode::kJumpIfTrue || |
+ bytecode == interpreter::Bytecode::kJumpIfFalse) { |
rmcilroy
2015/10/01 09:18:56
nit - could we make a helper for IsJump, IsJumpCon
oth
2015/10/01 11:43:02
Done.
|
+ int offset = static_cast<int8_t>(bytecode_start[1]); |
+ SNPrintF(buf, " (%p)", bytecode_start + offset); |
+ os << buf.start(); |
+ } else if (bytecode == interpreter::Bytecode::kJumpConstant || |
+ bytecode == interpreter::Bytecode::kJumpIfTrueConstant || |
+ bytecode == interpreter::Bytecode::kJumpIfFalseConstant) { |
+ int index = static_cast<int>(bytecode_start[1]); |
+ int offset = Smi::cast(constant_pool()->get(index))->value(); |
+ SNPrintF(buf, " (%p)", bytecode_start + offset); |
+ os << buf.start(); |
+ } |
os << "\n"; |
} |