1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-30 23:58:12 +00:00

DevTools+LibJS+LibWeb: Change class_name to use StringView

This helps make the overall codebase consistent. `class_name()` in
`Kernel` is always `StringView`, but not elsewhere.

Additionally, this results in the `strlen` (which needs to be done
when printing or other operations) always being computed at
compile-time.
This commit is contained in:
Lenny Maiorani 2022-03-16 18:26:49 -06:00 committed by Linus Groh
parent 5b7a5b3c01
commit a0367aa43b
17 changed files with 37 additions and 20 deletions

View file

@ -9,6 +9,7 @@
#pragma once #pragma once
#include "DebuggerGlobalJSObject.h" #include "DebuggerGlobalJSObject.h"
#include <AK/StringView.h>
#include <LibDebug/DebugInfo.h> #include <LibDebug/DebugInfo.h>
#include <LibJS/Runtime/Completion.h> #include <LibJS/Runtime/Completion.h>
#include <LibJS/Runtime/Object.h> #include <LibJS/Runtime/Object.h>
@ -24,7 +25,7 @@ public:
DebuggerVariableJSObject(const Debug::DebugInfo::VariableInfo& variable_info, JS::Object& prototype); DebuggerVariableJSObject(const Debug::DebugInfo::VariableInfo& variable_info, JS::Object& prototype);
virtual ~DebuggerVariableJSObject() override = default; virtual ~DebuggerVariableJSObject() override = default;
virtual const char* class_name() const override { return m_variable_info.type_name.characters(); } virtual StringView class_name() const override { return m_variable_info.type_name; }
JS::ThrowCompletionOr<bool> internal_set(JS::PropertyKey const&, JS::Value value, JS::Value receiver) override; JS::ThrowCompletionOr<bool> internal_set(JS::PropertyKey const&, JS::Value value, JS::Value receiver) override;

View file

@ -9,6 +9,7 @@
#include <AK/Format.h> #include <AK/Format.h>
#include <AK/Forward.h> #include <AK/Forward.h>
#include <AK/Noncopyable.h> #include <AK/Noncopyable.h>
#include <AK/StringView.h>
#include <LibJS/Forward.h> #include <LibJS/Forward.h>
namespace JS { namespace JS {
@ -32,7 +33,7 @@ public:
State state() const { return m_state; } State state() const { return m_state; }
void set_state(State state) { m_state = state; } void set_state(State state) { m_state = state; }
virtual const char* class_name() const = 0; virtual StringView class_name() const = 0;
class Visitor { class Visitor {
public: public:

View file

@ -8,6 +8,7 @@
#include <AK/IntrusiveList.h> #include <AK/IntrusiveList.h>
#include <AK/Platform.h> #include <AK/Platform.h>
#include <AK/StringView.h>
#include <AK/Types.h> #include <AK/Types.h>
#include <LibJS/Forward.h> #include <LibJS/Forward.h>
#include <LibJS/Heap/Cell.h> #include <LibJS/Heap/Cell.h>
@ -98,7 +99,7 @@ private:
struct FreelistEntry final : public Cell { struct FreelistEntry final : public Cell {
FreelistEntry* next { nullptr }; FreelistEntry* next { nullptr };
virtual const char* class_name() const override { return "FreelistEntry"; } virtual StringView class_name() const override { return "FreelistEntry"sv; }
}; };
Cell* cell(size_t index) Cell* cell(size_t index)

View file

@ -7,6 +7,7 @@
#pragma once #pragma once
#include <AK/StringView.h>
#include <LibJS/Runtime/FunctionObject.h> #include <LibJS/Runtime/FunctionObject.h>
#include <LibJS/Runtime/VM.h> #include <LibJS/Runtime/VM.h>
@ -38,7 +39,7 @@ public:
} }
private: private:
const char* class_name() const override { return "Accessor"; }; StringView class_name() const override { return "Accessor"sv; };
FunctionObject* m_getter { nullptr }; FunctionObject* m_getter { nullptr };
FunctionObject* m_setter { nullptr }; FunctionObject* m_setter { nullptr };

View file

@ -6,6 +6,7 @@
#pragma once #pragma once
#include <AK/StringView.h>
#include <LibCrypto/BigInt/SignedBigInteger.h> #include <LibCrypto/BigInt/SignedBigInteger.h>
#include <LibJS/Heap/Cell.h> #include <LibJS/Heap/Cell.h>
@ -20,7 +21,7 @@ public:
const String to_string() const { return String::formatted("{}n", m_big_integer.to_base(10)); } const String to_string() const { return String::formatted("{}n", m_big_integer.to_base(10)); }
private: private:
virtual const char* class_name() const override { return "BigInt"; } virtual StringView class_name() const override { return "BigInt"sv; }
Crypto::SignedBigInteger m_big_integer; Crypto::SignedBigInteger m_big_integer;
}; };

View file

@ -6,6 +6,7 @@
#pragma once #pragma once
#include <AK/StringView.h>
#include <LibJS/Runtime/Completion.h> #include <LibJS/Runtime/Completion.h>
#include <LibJS/Runtime/Object.h> #include <LibJS/Runtime/Object.h>
@ -19,7 +20,7 @@ struct Variable {
#define JS_ENVIRONMENT(class_, base_class) \ #define JS_ENVIRONMENT(class_, base_class) \
public: \ public: \
using Base = base_class; \ using Base = base_class; \
virtual char const* class_name() const override { return #class_; } virtual StringView class_name() const override { return #class_; }
class Environment : public Cell { class Environment : public Cell {
public: public:
@ -47,7 +48,7 @@ public:
template<typename T> template<typename T>
bool fast_is() const = delete; bool fast_is() const = delete;
virtual char const* class_name() const override { return "Environment"; } virtual StringView class_name() const override { return "Environment"sv; }
// This flag is set on the entire variable environment chain when direct eval() is performed. // This flag is set on the entire variable environment chain when direct eval() is performed.
// It is used to disable non-local variable access caching. // It is used to disable non-local variable access caching.

View file

@ -10,6 +10,7 @@
#include <AK/Badge.h> #include <AK/Badge.h>
#include <AK/HashMap.h> #include <AK/HashMap.h>
#include <AK/String.h> #include <AK/String.h>
#include <AK/StringView.h>
#include <LibJS/Forward.h> #include <LibJS/Forward.h>
#include <LibJS/Heap/Cell.h> #include <LibJS/Heap/Cell.h>
#include <LibJS/Heap/MarkedVector.h> #include <LibJS/Heap/MarkedVector.h>
@ -27,7 +28,7 @@ namespace JS {
#define JS_OBJECT(class_, base_class) \ #define JS_OBJECT(class_, base_class) \
public: \ public: \
using Base = base_class; \ using Base = base_class; \
virtual const char* class_name() const override { return #class_; } virtual StringView class_name() const override { return #class_; }
struct PrivateElement { struct PrivateElement {
enum class Kind { enum class Kind {
@ -166,7 +167,7 @@ public:
bool has_parameter_map() const { return m_has_parameter_map; } bool has_parameter_map() const { return m_has_parameter_map; }
void set_has_parameter_map() { m_has_parameter_map = true; } void set_has_parameter_map() { m_has_parameter_map = true; }
virtual const char* class_name() const override { return "Object"; } virtual StringView class_name() const override { return "Object"sv; }
virtual void visit_edges(Cell::Visitor&) override; virtual void visit_edges(Cell::Visitor&) override;
Value get_direct(size_t index) const { return m_storage[index]; } Value get_direct(size_t index) const { return m_storage[index]; }

View file

@ -7,6 +7,7 @@
#pragma once #pragma once
#include <AK/String.h> #include <AK/String.h>
#include <AK/StringView.h>
#include <LibJS/Forward.h> #include <LibJS/Forward.h>
#include <LibJS/Heap/Cell.h> #include <LibJS/Heap/Cell.h>
#include <LibJS/Runtime/Utf16String.h> #include <LibJS/Runtime/Utf16String.h>
@ -33,7 +34,7 @@ public:
Optional<Value> get(GlobalObject&, PropertyKey const&) const; Optional<Value> get(GlobalObject&, PropertyKey const&) const;
private: private:
virtual const char* class_name() const override { return "PrimitiveString"; } virtual StringView class_name() const override { return "PrimitiveString"sv; }
mutable String m_utf8_string; mutable String m_utf8_string;
mutable bool m_has_utf8_string { false }; mutable bool m_has_utf8_string { false };

View file

@ -7,6 +7,7 @@
#pragma once #pragma once
#include <AK/FlyString.h> #include <AK/FlyString.h>
#include <AK/StringView.h>
#include <AK/Vector.h> #include <AK/Vector.h>
#include <LibJS/Heap/Cell.h> #include <LibJS/Heap/Cell.h>
@ -35,7 +36,7 @@ public:
void add_private_name(Badge<ClassExpression>, FlyString description); void add_private_name(Badge<ClassExpression>, FlyString description);
private: private:
virtual char const* class_name() const override { return "PrivateEnvironment"; } virtual StringView class_name() const override { return "PrivateEnvironment"sv; }
virtual void visit_edges(Visitor&) override; virtual void visit_edges(Visitor&) override;
auto find_private_name(FlyString const& description) const auto find_private_name(FlyString const& description) const

View file

@ -6,6 +6,7 @@
#pragma once #pragma once
#include <AK/StringView.h>
#include <LibJS/Runtime/GlobalObject.h> #include <LibJS/Runtime/GlobalObject.h>
#include <LibJS/Runtime/JobCallback.h> #include <LibJS/Runtime/JobCallback.h>
#include <LibJS/Runtime/VM.h> #include <LibJS/Runtime/VM.h>
@ -79,7 +80,7 @@ public:
const Optional<JobCallback>& handler() const { return m_handler; } const Optional<JobCallback>& handler() const { return m_handler; }
private: private:
virtual const char* class_name() const override { return "PromiseReaction"; } virtual StringView class_name() const override { return "PromiseReaction"sv; }
virtual void visit_edges(Visitor&) override; virtual void visit_edges(Visitor&) override;
Type m_type; Type m_type;

View file

@ -6,6 +6,7 @@
#pragma once #pragma once
#include <AK/StringView.h>
#include <LibJS/Runtime/NativeFunction.h> #include <LibJS/Runtime/NativeFunction.h>
#include <LibJS/Runtime/PromiseReaction.h> #include <LibJS/Runtime/PromiseReaction.h>
@ -19,7 +20,7 @@ struct RemainingElements final : public Cell {
{ {
} }
virtual const char* class_name() const override { return "RemainingElements"; } virtual StringView class_name() const override { return "RemainingElements"sv; }
u64 value { 0 }; u64 value { 0 };
}; };
@ -34,7 +35,7 @@ public:
Vector<Value> const& values() const { return m_values; } Vector<Value> const& values() const { return m_values; }
private: private:
virtual const char* class_name() const override { return "PromiseValueList"; } virtual StringView class_name() const override { return "PromiseValueList"sv; }
virtual void visit_edges(Visitor&) override; virtual void visit_edges(Visitor&) override;
Vector<Value> m_values; Vector<Value> m_values;

View file

@ -6,6 +6,7 @@
#pragma once #pragma once
#include <AK/StringView.h>
#include <LibJS/Runtime/NativeFunction.h> #include <LibJS/Runtime/NativeFunction.h>
namespace JS { namespace JS {
@ -13,7 +14,7 @@ namespace JS {
struct AlreadyResolved final : public Cell { struct AlreadyResolved final : public Cell {
bool value { false }; bool value { false };
virtual const char* class_name() const override { return "AlreadyResolved"; } virtual StringView class_name() const override { return "AlreadyResolved"sv; }
protected: protected:
// Allocated cells must be >= sizeof(FreelistEntry), which is 24 bytes - // Allocated cells must be >= sizeof(FreelistEntry), which is 24 bytes -

View file

@ -8,6 +8,7 @@
#pragma once #pragma once
#include <AK/OwnPtr.h> #include <AK/OwnPtr.h>
#include <AK/StringView.h>
#include <AK/Weakable.h> #include <AK/Weakable.h>
#include <LibJS/Heap/Cell.h> #include <LibJS/Heap/Cell.h>
@ -35,7 +36,7 @@ public:
void set_host_defined(OwnPtr<HostDefined> host_defined) { m_host_defined = move(host_defined); } void set_host_defined(OwnPtr<HostDefined> host_defined) { m_host_defined = move(host_defined); }
private: private:
virtual char const* class_name() const override { return "Realm"; } virtual StringView class_name() const override { return "Realm"sv; }
virtual void visit_edges(Visitor&) override; virtual void visit_edges(Visitor&) override;
GlobalObject* m_global_object { nullptr }; // [[GlobalObject]] GlobalObject* m_global_object { nullptr }; // [[GlobalObject]]

View file

@ -8,6 +8,7 @@
#include <AK/HashMap.h> #include <AK/HashMap.h>
#include <AK/OwnPtr.h> #include <AK/OwnPtr.h>
#include <AK/StringView.h>
#include <AK/WeakPtr.h> #include <AK/WeakPtr.h>
#include <AK/Weakable.h> #include <AK/Weakable.h>
#include <LibJS/Forward.h> #include <LibJS/Forward.h>
@ -86,7 +87,7 @@ public:
void reconfigure_property_in_unique_shape(const StringOrSymbol& property_key, PropertyAttributes attributes); void reconfigure_property_in_unique_shape(const StringOrSymbol& property_key, PropertyAttributes attributes);
private: private:
virtual const char* class_name() const override { return "Shape"; } virtual StringView class_name() const override { return "Shape"sv; }
virtual void visit_edges(Visitor&) override; virtual void visit_edges(Visitor&) override;
Shape* get_or_prune_cached_forward_transition(TransitionKey const&); Shape* get_or_prune_cached_forward_transition(TransitionKey const&);

View file

@ -7,6 +7,7 @@
#pragma once #pragma once
#include <AK/String.h> #include <AK/String.h>
#include <AK/StringView.h>
#include <LibJS/Heap/Cell.h> #include <LibJS/Heap/Cell.h>
namespace JS { namespace JS {
@ -25,7 +26,7 @@ public:
String to_string() const { return String::formatted("Symbol({})", description()); } String to_string() const { return String::formatted("Symbol({})", description()); }
private: private:
virtual const char* class_name() const override { return "Symbol"; } virtual StringView class_name() const override { return "Symbol"sv; }
Optional<String> m_description; Optional<String> m_description;
bool m_is_global; bool m_is_global;

View file

@ -6,6 +6,7 @@
#pragma once #pragma once
#include <AK/StringView.h>
#include <LibJS/Runtime/NativeFunction.h> #include <LibJS/Runtime/NativeFunction.h>
namespace Web::Bindings { namespace Web::Bindings {
@ -21,7 +22,7 @@ public:
private: private:
virtual bool has_constructor() const override { return true; } virtual bool has_constructor() const override { return true; }
virtual const char* class_name() const override { return "AudioConstructor"; } virtual StringView class_name() const override { return "AudioConstructor"sv; }
}; };
} }

View file

@ -6,6 +6,7 @@
#pragma once #pragma once
#include <AK/StringView.h>
#include <LibJS/Runtime/NativeFunction.h> #include <LibJS/Runtime/NativeFunction.h>
namespace Web::Bindings { namespace Web::Bindings {
@ -21,7 +22,7 @@ public:
private: private:
virtual bool has_constructor() const override { return true; } virtual bool has_constructor() const override { return true; }
virtual const char* class_name() const override { return "ImageConstructor"; } virtual StringView class_name() const override { return "ImageConstructor"sv; }
}; };
} }