| Index: src/interpreter/bytecodes.cc
 | 
| diff --git a/src/interpreter/bytecodes.cc b/src/interpreter/bytecodes.cc
 | 
| index ca831c9c363c9e30900f52909b159dc7f0f4b5d0..c3b17c7b10573f4712d5377258212d381f66dd28 100644
 | 
| --- a/src/interpreter/bytecodes.cc
 | 
| +++ b/src/interpreter/bytecodes.cc
 | 
| @@ -71,6 +71,21 @@ Bytecode Bytecodes::FromByte(uint8_t value) {
 | 
|  
 | 
|  
 | 
|  // static
 | 
| +Bytecode Bytecodes::GetDebugBreak(Bytecode bytecode) {
 | 
| +  switch (Size(bytecode)) {
 | 
| +#define CASE(Name, ...)                                  \
 | 
| +  case BytecodeTraits<__VA_ARGS__, OPERAND_TERM>::kSize: \
 | 
| +    return Bytecode::k##Name;
 | 
| +    DEBUG_BREAK_BYTECODE_LIST(CASE)
 | 
| +#undef CASE
 | 
| +    default:
 | 
| +      break;
 | 
| +  }
 | 
| +  UNREACHABLE();
 | 
| +  return static_cast<Bytecode>(-1);
 | 
| +}
 | 
| +
 | 
| +// static
 | 
|  int Bytecodes::Size(Bytecode bytecode) {
 | 
|    DCHECK(bytecode <= Bytecode::kLast);
 | 
|    switch (bytecode) {
 | 
| @@ -268,6 +283,19 @@ bool Bytecodes::IsCallOrNew(Bytecode bytecode) {
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| +bool Bytecodes::IsDebugBreak(Bytecode bytecode) {
 | 
| +  switch (bytecode) {
 | 
| +#define CASE(Name, ...) case Bytecode::k##Name:
 | 
| +    DEBUG_BREAK_BYTECODE_LIST(CASE);
 | 
| +#undef CASE
 | 
| +    return true;
 | 
| +    default:
 | 
| +      break;
 | 
| +  }
 | 
| +  return false;
 | 
| +}
 | 
| +
 | 
| +// static
 | 
|  bool Bytecodes::IsJumpOrReturn(Bytecode bytecode) {
 | 
|    return bytecode == Bytecode::kReturn || IsJump(bytecode);
 | 
|  }
 | 
| @@ -384,6 +412,9 @@ std::ostream& Bytecodes::Decode(std::ostream& os, const uint8_t* bytecode_start,
 | 
|  
 | 
|    os << bytecode << " ";
 | 
|  
 | 
| +  // Operands for the debug break are from the original instruction.
 | 
| +  if (IsDebugBreak(bytecode)) return os;
 | 
| +
 | 
|    int number_of_operands = NumberOfOperands(bytecode);
 | 
|    int range = 0;
 | 
|    for (int i = 0; i < number_of_operands; i++) {
 | 
| 
 |