LibGC+Everywhere: Factor out a LibGC from LibJS

Resulting in a massive rename across almost everywhere! Alongside the
namespace change, we now have the following names:

 * JS::NonnullGCPtr -> GC::Ref
 * JS::GCPtr -> GC::Ptr
 * JS::HeapFunction -> GC::Function
 * JS::CellImpl -> GC::Cell
 * JS::Handle -> GC::Root
This commit is contained in:
Shannon Booth 2024-11-15 04:01:23 +13:00 committed by Andreas Kling
commit f87041bf3a
Notes: github-actions[bot] 2024-11-15 13:50:17 +00:00
1722 changed files with 9939 additions and 9906 deletions

View file

@ -13,10 +13,10 @@ namespace JS {
class WrappedFunction final : public FunctionObject {
JS_OBJECT(WrappedFunction, FunctionObject);
JS_DECLARE_ALLOCATOR(WrappedFunction);
GC_DECLARE_ALLOCATOR(WrappedFunction);
public:
static ThrowCompletionOr<NonnullGCPtr<WrappedFunction>> create(Realm&, Realm& caller_realm, FunctionObject& target_function);
static ThrowCompletionOr<GC::Ref<WrappedFunction>> create(Realm&, Realm& caller_realm, FunctionObject& target_function);
virtual ~WrappedFunction() = default;
@ -36,8 +36,8 @@ private:
virtual void visit_edges(Visitor&) override;
// Internal Slots of Wrapped Function Exotic Objects, https://tc39.es/proposal-shadowrealm/#table-internal-slots-of-wrapped-function-exotic-objects
NonnullGCPtr<FunctionObject> m_wrapped_target_function; // [[WrappedTargetFunction]]
NonnullGCPtr<Realm> m_realm; // [[Realm]]
GC::Ref<FunctionObject> m_wrapped_target_function; // [[WrappedTargetFunction]]
GC::Ref<Realm> m_realm; // [[Realm]]
};
ThrowCompletionOr<Value> ordinary_wrapped_function_call(WrappedFunction const&, Value this_argument, ReadonlySpan<Value> arguments_list);