LibJS+LibWeb: Use realm.create<T> instead of heap.allocate<T>

The main motivation behind this is to remove JS specifics of the Realm
from the implementation of the Heap.

As a side effect of this change, this is a bit nicer to read than the
previous approach, and in my opinion, also makes it a little more clear
that this method is specific to a JavaScript Realm.
This commit is contained in:
Shannon Booth 2024-11-14 05:50:17 +13:00 committed by Tim Flynn
commit 9b79a686eb
Notes: github-actions[bot] 2024-11-13 21:52:48 +00:00
326 changed files with 697 additions and 714 deletions

View file

@ -17,7 +17,7 @@ JS_DEFINE_ALLOCATOR(ConsoleObject);
static NonnullGCPtr<ConsoleObjectPrototype> create_console_prototype(Realm& realm)
{
return realm.heap().allocate<ConsoleObjectPrototype>(realm, realm);
return realm.create<ConsoleObjectPrototype>(realm);
}
ConsoleObject::ConsoleObject(Realm& realm)
@ -37,7 +37,7 @@ void ConsoleObject::initialize(Realm& realm)
{
auto& vm = this->vm();
Base::initialize(realm);
m_console = vm.heap().allocate<Console>(realm, realm);
m_console = realm.create<Console>(realm);
u8 attr = Attribute::Writable | Attribute::Enumerable | Attribute::Configurable;
define_native_function(realm, vm.names.assert, assert_, 0, attr);
define_native_function(realm, vm.names.clear, clear, 0, attr);