LibJS: Add make_handle({Nonnull,}GCPtr<T>) overloads
This commit is contained in:
parent
029db614e3
commit
2a66fc6cae
Notes:
sideshowbarker
2024-07-17 06:09:44 +09:00
Author: https://github.com/linusg Commit: https://github.com/SerenityOS/serenity/commit/2a66fc6cae Pull-request: https://github.com/SerenityOS/serenity/pull/16498 Reviewed-by: https://github.com/trflynn89 ✅
5 changed files with 18 additions and 4 deletions
Userland/Libraries
|
@ -3778,7 +3778,7 @@ ThrowCompletionOr<Value> TaggedTemplateLiteral::get_template_object(Interpreter&
|
|||
MUST(template_->set_integrity_level(Object::IntegrityLevel::Frozen));
|
||||
|
||||
// 15. Append the Record { [[Site]]: templateLiteral, [[Array]]: template } to templateRegistry.
|
||||
m_cached_values.set(&realm, make_handle(template_.ptr()));
|
||||
m_cached_values.set(&realm, make_handle(template_));
|
||||
|
||||
// 16. Return template.
|
||||
return template_;
|
||||
|
|
|
@ -121,6 +121,20 @@ inline Handle<T> make_handle(T& cell)
|
|||
return Handle<T>::create(&cell);
|
||||
}
|
||||
|
||||
template<class T>
|
||||
inline Handle<T> make_handle(GCPtr<T> cell)
|
||||
{
|
||||
if (!cell)
|
||||
return Handle<T> {};
|
||||
return Handle<T>::create(cell.ptr());
|
||||
}
|
||||
|
||||
template<class T>
|
||||
inline Handle<T> make_handle(NonnullGCPtr<T> cell)
|
||||
{
|
||||
return Handle<T>::create(cell.ptr());
|
||||
}
|
||||
|
||||
template<>
|
||||
class Handle<Value> {
|
||||
public:
|
||||
|
|
|
@ -107,7 +107,7 @@ JS::NonnullGCPtr<JS::Promise> fetch_impl(JS::VM& vm, RequestInfo const& input, R
|
|||
// 4. Set responseObject to the result of creating a Response object, given response, "immutable", and
|
||||
// relevantRealm.
|
||||
auto response_object = Response::create(relevant_realm, response, Headers::Guard::Immutable);
|
||||
response_object_handle = JS::make_handle(response_object.ptr());
|
||||
response_object_handle = JS::make_handle(response_object);
|
||||
|
||||
// 5. Resolve p with responseObject.
|
||||
WebIDL::resolve_promise(vm, promise_capability, response_object);
|
||||
|
|
|
@ -323,7 +323,7 @@ Vector<JS::Handle<DOM::Document>> EventLoop::documents_in_this_event_loop() cons
|
|||
Vector<JS::Handle<DOM::Document>> documents;
|
||||
for (auto& document : m_documents) {
|
||||
VERIFY(document);
|
||||
documents.append(JS::make_handle(*document.ptr()));
|
||||
documents.append(JS::make_handle(*document));
|
||||
}
|
||||
return documents;
|
||||
}
|
||||
|
|
|
@ -1174,7 +1174,7 @@ Create:
|
|||
auto new_element = insert_html_element(HTMLToken::make_start_tag(entry->element->local_name()));
|
||||
|
||||
// 9. Replace the entry for entry in the list with an entry for new element.
|
||||
m_list_of_active_formatting_elements.entries().at(index).element = JS::make_handle(new_element.ptr());
|
||||
m_list_of_active_formatting_elements.entries().at(index).element = JS::make_handle(new_element);
|
||||
|
||||
// 10. If the entry for new element in the list of active formatting elements is not the last entry in the list, return to the step labeled advance.
|
||||
if (index != m_list_of_active_formatting_elements.entries().size() - 1)
|
||||
|
|
Loading…
Add table
Reference in a new issue