diff options
Diffstat (limited to 'deps/v8/src/runtime/runtime-interpreter.cc')
-rw-r--r-- | deps/v8/src/runtime/runtime-interpreter.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/deps/v8/src/runtime/runtime-interpreter.cc b/deps/v8/src/runtime/runtime-interpreter.cc index 9f3897bf64..5889a477c3 100644 --- a/deps/v8/src/runtime/runtime-interpreter.cc +++ b/deps/v8/src/runtime/runtime-interpreter.cc @@ -34,6 +34,8 @@ RUNTIME_FUNCTION(Runtime_InterpreterNewClosure) { static_cast<PretenureFlag>(pretenured_flag)); } +#ifdef V8_TRACE_IGNITION + namespace { void AdvanceToOffsetForTracing( @@ -109,17 +111,22 @@ void PrintRegisters(std::ostream& os, bool is_input, } // namespace RUNTIME_FUNCTION(Runtime_InterpreterTraceBytecodeEntry) { + if (!FLAG_trace_ignition) { + return isolate->heap()->undefined_value(); + } + SealHandleScope shs(isolate); DCHECK_EQ(3, args.length()); CONVERT_ARG_HANDLE_CHECKED(BytecodeArray, bytecode_array, 0); CONVERT_SMI_ARG_CHECKED(bytecode_offset, 1); CONVERT_ARG_HANDLE_CHECKED(Object, accumulator, 2); - OFStream os(stdout); int offset = bytecode_offset - BytecodeArray::kHeaderSize + kHeapObjectTag; interpreter::BytecodeArrayIterator bytecode_iterator(bytecode_array); AdvanceToOffsetForTracing(bytecode_iterator, offset); if (offset == bytecode_iterator.current_offset()) { + OFStream os(stdout); + // Print bytecode. const uint8_t* base_address = bytecode_array->GetFirstBytecodeAddress(); const uint8_t* bytecode_address = base_address + offset; @@ -137,6 +144,10 @@ RUNTIME_FUNCTION(Runtime_InterpreterTraceBytecodeEntry) { } RUNTIME_FUNCTION(Runtime_InterpreterTraceBytecodeExit) { + if (!FLAG_trace_ignition) { + return isolate->heap()->undefined_value(); + } + SealHandleScope shs(isolate); DCHECK_EQ(3, args.length()); CONVERT_ARG_HANDLE_CHECKED(BytecodeArray, bytecode_array, 0); @@ -160,6 +171,8 @@ RUNTIME_FUNCTION(Runtime_InterpreterTraceBytecodeExit) { return isolate->heap()->undefined_value(); } +#endif + RUNTIME_FUNCTION(Runtime_InterpreterAdvanceBytecodeOffset) { SealHandleScope shs(isolate); DCHECK_EQ(2, args.length()); |