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
parent 2a5dbedad4
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

@ -85,10 +85,10 @@ JS::NonnullGCPtr<Request> Request::create(JS::Realm& realm, JS::NonnullGCPtr<Inf
{
// 1. Let requestObject be a new Request object with realm.
// 2. Set requestObjects request to request.
auto request_object = realm.heap().allocate<Request>(realm, realm, request);
auto request_object = realm.create<Request>(realm, request);
// 3. Set requestObjects headers to a new Headers object with realm, whose headers list is requests headers list and guard is guard.
request_object->m_headers = realm.heap().allocate<Headers>(realm, realm, request->header_list());
request_object->m_headers = realm.create<Headers>(realm, request->header_list());
request_object->m_headers->set_guard(guard);
// 4. Set requestObjects signal to signal.
@ -104,7 +104,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<Request>> Request::construct_impl(JS::Realm
auto& vm = realm.vm();
// Referred to as 'this' in the spec.
auto request_object = realm.heap().allocate<Request>(realm, realm, Infrastructure::Request::create(vm));
auto request_object = realm.create<Request>(realm, Infrastructure::Request::create(vm));
// 1. Let request be null.
JS::GCPtr<Infrastructure::Request> input_request;
@ -402,7 +402,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<Request>> Request::construct_impl(JS::Realm
request_object->m_signal = TRY(DOM::AbortSignal::create_dependent_abort_signal(this_relevant_realm, signals));
// 31. Set thiss headers to a new Headers object with thiss relevant Realm, whose header list is requests header list and guard is "request".
request_object->m_headers = realm.heap().allocate<Headers>(realm, realm, request->header_list());
request_object->m_headers = realm.create<Headers>(realm, request->header_list());
request_object->m_headers->set_guard(Headers::Guard::Request);
// 32. If thiss requests mode is "no-cors", then: