1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 00:17:46 +00:00

LibJS: Move Interpreter::get_trace() to ConsoleClient

Having it globally on the interpreter is confusing as the last call frame
is skipped, which is specific to console.trace().
This commit is contained in:
Linus Groh 2020-06-02 13:54:26 +01:00 committed by Andreas Kling
parent 9e3127785e
commit a48080f62d
6 changed files with 14 additions and 12 deletions

View file

@ -120,4 +120,14 @@ bool Console::counter_reset(String label)
return true;
}
Vector<String> ConsoleClient::get_trace() const
{
Vector<String> trace;
auto call_stack = m_console.interpreter().call_stack();
// -2 to skip the console.trace() call frame
for (ssize_t i = call_stack.size() - 2; i >= 0; --i)
trace.append(call_stack[i].function_name);
return trace;
}
}

View file

@ -94,6 +94,8 @@ protected:
Interpreter& interpreter() { return m_console.interpreter(); }
const Interpreter& interpreter() const { return m_console.interpreter(); }
Vector<String> get_trace() const;
Console& m_console;
};

View file

@ -282,13 +282,4 @@ String Interpreter::join_arguments() const
return joined_arguments.build();
}
Vector<String> Interpreter::get_trace() const
{
Vector<String> trace;
// -2 to skip the console.trace() call frame
for (ssize_t i = m_call_stack.size() - 2; i >= 0; --i)
trace.append(m_call_stack[i].function_name);
return trace;
}
}

View file

@ -181,7 +181,6 @@ public:
const Console& console() const { return m_console; }
String join_arguments() const;
Vector<String> get_trace() const;
private:
Interpreter();