LibGC: Enforce that a Cell type must declare the allocator to use

This ensures that we are explicitly declaring the allocator to use when
allocating a cell(-inheriting) type, instead of silently falling back
to size-based allocation.

Since this is done in allocate_cell, this will only be detected for
types that are actively being allocated. However, since that means
they're _not_ being allocated, that means it's safe to not declare
an allocator to use for those. For example, the base TypedArray<T>,
which is never directly allocated and only the defined specializations
are ever allocated.
This commit is contained in:
Luke Wilde
2026-01-18 17:42:26 +00:00
committed by Alexander Kalenik
parent dc79259970
commit babfd70ca7
Notes: github-actions[bot] 2026-02-06 11:24:52 +00:00
34 changed files with 81 additions and 1 deletions

View File

@@ -168,6 +168,7 @@ protected:
class TestRunnerGlobalObject final : public JS::GlobalObject {
JS_OBJECT(TestRunnerGlobalObject, JS::GlobalObject);
GC_DECLARE_ALLOCATOR(TestRunnerGlobalObject);
public:
TestRunnerGlobalObject(JS::Realm& realm)