mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-03 07:07:23 +00:00
LibJS: Add a debug_position helper to the Bytecode Interpreter
This also changes argument_list_evaluation's dbgln to use it.
This commit is contained in:
committed by
Ali Mohammad Pur
parent
b86f1c2fe7
commit
8c4717fc6e
@@ -68,6 +68,10 @@ public:
|
||||
Executable const& current_executable() { return *m_current_executable; }
|
||||
BasicBlock const& current_block() const { return *m_current_block; }
|
||||
size_t pc() const { return m_pc ? m_pc->offset() : 0; }
|
||||
String debug_position()
|
||||
{
|
||||
return String::formatted("{}:{:2}:{:4x}", m_current_executable->name, m_current_block->name(), pc());
|
||||
}
|
||||
|
||||
enum class OptimizationLevel {
|
||||
None,
|
||||
|
||||
@@ -577,8 +577,7 @@ static MarkedVector<Value> argument_list_evaluation(Bytecode::Interpreter& inter
|
||||
auto arguments = interpreter.accumulator();
|
||||
|
||||
if (!(arguments.is_object() && is<Array>(arguments.as_object()))) {
|
||||
dbgln("Call arguments are not an array, but: {}", arguments.to_string_without_side_effects());
|
||||
dbgln("PC: {}[{:4x}]", interpreter.current_block().name(), interpreter.pc());
|
||||
dbgln("[{}] Call arguments are not an array, but: {}", interpreter.debug_position(), arguments.to_string_without_side_effects());
|
||||
interpreter.current_executable().dump();
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user