mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-25 14:05:15 +00:00
As mentioned on Discord earlier, we'll add these to all new functions going forward - this is the backfill. Reasons: - It makes you look at the spec, implementing based on MDN or V8 behavior is a no-go - It makes finding the various functions that are non-compliant easier, in the future everything should either have such a comment or, if it's not from the spec at all, a comment explaining why that is the case - It makes it easier to check whether a certain abstract operation is implemented in LibJS, not all of them use the same name as the spec. E.g. RejectPromise() is Promise::reject() - It makes it easier to reason about vm.arguments(), e.g. when the function has a rest parameter - It makes it easier to see whether a certain function is from a proposal or Annex B Also: - Add arguments to all functions and abstract operations that already had a comment - Fix some outdated section numbers - Replace some ecma-international.org URLs with tc39.es
100 lines
2.7 KiB
C++
100 lines
2.7 KiB
C++
/*
|
|
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
|
|
* Copyright (c) 2020-2021, Linus Groh <linusg@serenityos.org>
|
|
* Copyright (c) 2020, Emanuele Torre <torreemanuele6@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibJS/Console.h>
|
|
#include <LibJS/Runtime/ConsoleObject.h>
|
|
#include <LibJS/Runtime/GlobalObject.h>
|
|
|
|
namespace JS {
|
|
|
|
ConsoleObject::ConsoleObject(GlobalObject& global_object)
|
|
: Object(*global_object.object_prototype())
|
|
{
|
|
}
|
|
|
|
void ConsoleObject::initialize(GlobalObject& global_object)
|
|
{
|
|
auto& vm = this->vm();
|
|
Object::initialize(global_object);
|
|
define_native_function(vm.names.log, log);
|
|
define_native_function(vm.names.debug, debug);
|
|
define_native_function(vm.names.info, info);
|
|
define_native_function(vm.names.warn, warn);
|
|
define_native_function(vm.names.error, error);
|
|
define_native_function(vm.names.trace, trace);
|
|
define_native_function(vm.names.count, count);
|
|
define_native_function(vm.names.countReset, count_reset);
|
|
define_native_function(vm.names.clear, clear);
|
|
define_native_function(vm.names.assert, assert_);
|
|
}
|
|
|
|
ConsoleObject::~ConsoleObject()
|
|
{
|
|
}
|
|
|
|
// 1.1.6. log(...data), https://console.spec.whatwg.org/#log
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::log)
|
|
{
|
|
return global_object.console().log();
|
|
}
|
|
|
|
// 1.1.3. debug(...data), https://console.spec.whatwg.org/#debug
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::debug)
|
|
{
|
|
return global_object.console().debug();
|
|
}
|
|
|
|
// 1.1.5. info(...data), https://console.spec.whatwg.org/#info
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::info)
|
|
{
|
|
return global_object.console().info();
|
|
}
|
|
|
|
// 1.1.9. warn(...data), https://console.spec.whatwg.org/#warn
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::warn)
|
|
{
|
|
return global_object.console().warn();
|
|
}
|
|
|
|
// 1.1.4. error(...data), https://console.spec.whatwg.org/#error
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::error)
|
|
{
|
|
return global_object.console().error();
|
|
}
|
|
|
|
// 1.1.8. trace(...data), https://console.spec.whatwg.org/#trace
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::trace)
|
|
{
|
|
return global_object.console().trace();
|
|
}
|
|
|
|
// 1.2.1. count(label), https://console.spec.whatwg.org/#count
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::count)
|
|
{
|
|
return global_object.console().count();
|
|
}
|
|
|
|
// 1.2.2. countReset(label), https://console.spec.whatwg.org/#countreset
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::count_reset)
|
|
{
|
|
return global_object.console().count_reset();
|
|
}
|
|
|
|
// 1.1.2. clear(), https://console.spec.whatwg.org/#clear
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::clear)
|
|
{
|
|
return global_object.console().clear();
|
|
}
|
|
|
|
// 1.1.1. assert(condition, ...data), https://console.spec.whatwg.org/#assert
|
|
JS_DEFINE_NATIVE_FUNCTION(ConsoleObject::assert_)
|
|
{
|
|
return global_object.console().assert_();
|
|
}
|
|
|
|
}
|