diff --git a/Userland/Libraries/LibJS/Console.cpp b/Userland/Libraries/LibJS/Console.cpp index c591baab15..c56e2c6fa8 100644 --- a/Userland/Libraries/LibJS/Console.cpp +++ b/Userland/Libraries/LibJS/Console.cpp @@ -76,10 +76,14 @@ ThrowCompletionOr Console::warn() return js_undefined(); } +// 1.1.2. clear(), https://console.spec.whatwg.org/#clear Value Console::clear() { + // 1. TODO: Empty the appropriate group stack. + + // 2. If possible for the environment, clear the console. (Otherwise, do nothing.) if (m_client) - return m_client->clear(); + m_client->clear(); return js_undefined(); } diff --git a/Userland/Libraries/LibJS/Console.h b/Userland/Libraries/LibJS/Console.h index c63fe4c96b..2930dcc9eb 100644 --- a/Userland/Libraries/LibJS/Console.h +++ b/Userland/Libraries/LibJS/Console.h @@ -87,7 +87,7 @@ public: ThrowCompletionOr> formatter(Vector& args); virtual ThrowCompletionOr printer(Console::LogLevel log_level, Vector&) = 0; - virtual Value clear() = 0; + virtual void clear() = 0; virtual Value trace() = 0; virtual Value assert_() = 0; diff --git a/Userland/Services/WebContent/WebContentConsoleClient.cpp b/Userland/Services/WebContent/WebContentConsoleClient.cpp index 179eebee55..56e2eda098 100644 --- a/Userland/Services/WebContent/WebContentConsoleClient.cpp +++ b/Userland/Services/WebContent/WebContentConsoleClient.cpp @@ -115,10 +115,9 @@ void WebContentConsoleClient::send_messages(i32 start_index) m_client.async_did_get_js_console_messages(start_index, message_types, messages); } -JS::Value WebContentConsoleClient::clear() +void WebContentConsoleClient::clear() { clear_output(); - return JS::js_undefined(); } JS::Value WebContentConsoleClient::trace() diff --git a/Userland/Services/WebContent/WebContentConsoleClient.h b/Userland/Services/WebContent/WebContentConsoleClient.h index 18f4275e72..eecaca5e4d 100644 --- a/Userland/Services/WebContent/WebContentConsoleClient.h +++ b/Userland/Services/WebContent/WebContentConsoleClient.h @@ -24,7 +24,7 @@ public: void send_messages(i32 start_index); private: - virtual JS::Value clear() override; + virtual void clear() override; virtual JS::Value trace() override; virtual JS::Value assert_() override; virtual JS::ThrowCompletionOr printer(JS::Console::LogLevel log_level, Vector&) override; diff --git a/Userland/Utilities/js.cpp b/Userland/Utilities/js.cpp index 69c5405d9a..187e463847 100644 --- a/Userland/Utilities/js.cpp +++ b/Userland/Utilities/js.cpp @@ -1122,11 +1122,10 @@ public: { } - virtual JS::Value clear() override + virtual void clear() override { js_out("\033[3J\033[H\033[2J"); fflush(stdout); - return JS::js_undefined(); } virtual JS::Value trace() override