diff --git a/Libraries/LibJS/Console.cpp b/Libraries/LibJS/Console.cpp index 25c8324dce..f3ead48ec8 100644 --- a/Libraries/LibJS/Console.cpp +++ b/Libraries/LibJS/Console.cpp @@ -37,40 +37,46 @@ Console::Console(Interpreter& interpreter) { } -void Console::debug(String text) +Value Console::debug() { - dbg() << "debug: " << text; + dbg() << "debug: " << m_interpreter.join_arguments(); + return js_undefined(); } -void Console::error(String text) +Value Console::error() { - dbg() << "error: " << text; + dbg() << "error: " << m_interpreter.join_arguments(); + return js_undefined(); } -void Console::info(String text) +Value Console::info() { - dbg() << "info: " << text; + dbg() << "info: " << m_interpreter.join_arguments(); + return js_undefined(); } -void Console::log(String text) +Value Console::log() { - dbg() << "log: " << text; + dbg() << "log: " << m_interpreter.join_arguments(); + return js_undefined(); } -void Console::warn(String text) +Value Console::warn() { - dbg() << "warn: " << text; + dbg() << "warn: " << m_interpreter.join_arguments(); + return js_undefined(); } -void Console::clear() +Value Console::clear() { dbg() << "clear:"; + return js_undefined(); } -void Console::trace(String title) +Value Console::trace() { StringBuilder message_text; - message_text.append(title); + message_text.append(m_interpreter.join_arguments()); auto call_stack = m_interpreter.call_stack(); // -2 to skip the console.trace() call frame @@ -83,31 +89,39 @@ void Console::trace(String title) } dbg() << "log: " << message_text.build(); + return js_undefined(); } -void Console::count(String label) +Value Console::count() { + auto label = m_interpreter.argument_count() ? m_interpreter.argument(0).to_string() : "default"; + auto counter_value = m_counters.get(label); if (!counter_value.has_value()) { dbg() << "log: " << label << ": 1"; m_counters.set(label, 1); - return; + return js_undefined(); } auto new_counter_value = counter_value.value() + 1; dbg() << "log: " << label << ": " << new_counter_value; m_counters.set(label, new_counter_value); + + return js_undefined(); } -void Console::count_reset(String label) +Value Console::count_reset() { + auto label = m_interpreter.argument_count() ? m_interpreter.argument(0).to_string() : "default"; + if (m_counters.contains(label)) { dbg() << "warn: \"" << label << "\" doesn't have a count"; - return; + return js_undefined(); } m_counters.remove(label); dbg() << "log: " << label << ": 0"; + return js_undefined(); } } diff --git a/Libraries/LibJS/Console.h b/Libraries/LibJS/Console.h index c978997118..1a203c04e4 100644 --- a/Libraries/LibJS/Console.h +++ b/Libraries/LibJS/Console.h @@ -44,18 +44,18 @@ public: HashMap& counters() { return m_counters; } - void debug(String text); - void error(String text); - void info(String text); - void log(String text); - void warn(String text); + Value debug(); + Value error(); + Value info(); + Value log(); + Value warn(); - void clear(); + Value clear(); - void trace(String title); + Value trace(); - void count(String label = "default"); - void count_reset(String label = "default"); + Value count(); + Value count_reset(); private: Interpreter& m_interpreter; diff --git a/Libraries/LibJS/Runtime/ConsoleObject.cpp b/Libraries/LibJS/Runtime/ConsoleObject.cpp index 0feec51a40..697e0edb38 100644 --- a/Libraries/LibJS/Runtime/ConsoleObject.cpp +++ b/Libraries/LibJS/Runtime/ConsoleObject.cpp @@ -28,7 +28,6 @@ #include #include -#include #include #include #include @@ -56,62 +55,47 @@ ConsoleObject::~ConsoleObject() Value ConsoleObject::log(Interpreter& interpreter) { - interpreter.console().log(interpreter.join_arguments()); - return js_undefined(); + return interpreter.console().log(); } Value ConsoleObject::debug(Interpreter& interpreter) { - interpreter.console().debug(interpreter.join_arguments()); - return js_undefined(); + return interpreter.console().debug(); } Value ConsoleObject::info(Interpreter& interpreter) { - interpreter.console().info(interpreter.join_arguments()); - return js_undefined(); + return interpreter.console().info(); } Value ConsoleObject::warn(Interpreter& interpreter) { - interpreter.console().warn(interpreter.join_arguments()); - return js_undefined(); + return interpreter.console().warn(); } Value ConsoleObject::error(Interpreter& interpreter) { - interpreter.console().error(interpreter.join_arguments()); - return js_undefined(); + return interpreter.console().error(); } Value ConsoleObject::trace(Interpreter& interpreter) { - interpreter.console().trace(interpreter.join_arguments()); - return js_undefined(); + return interpreter.console().trace(); } Value ConsoleObject::count(Interpreter& interpreter) { - if (interpreter.argument_count()) - interpreter.console().count(interpreter.argument(0).to_string()); - else - interpreter.console().count(); - return js_undefined(); + return interpreter.console().count(); } Value ConsoleObject::count_reset(Interpreter& interpreter) { - if (interpreter.argument_count()) - interpreter.console().count_reset(interpreter.argument(0).to_string()); - else - interpreter.console().count_reset(); - return js_undefined(); + return interpreter.console().count_reset(); } Value ConsoleObject::clear(Interpreter& interpreter) { - interpreter.console().clear(); - return js_undefined(); + return interpreter.console().clear(); } }