diff --git a/Libraries/LibWeb/HTML/Scripting/Environments.cpp b/Libraries/LibWeb/HTML/Scripting/Environments.cpp
index cbb0f689b9d..4b2c0d321b5 100644
--- a/Libraries/LibWeb/HTML/Scripting/Environments.cpp
+++ b/Libraries/LibWeb/HTML/Scripting/Environments.cpp
@@ -360,19 +360,19 @@ JS::Realm& current_principal_realm()
}
// https://whatpr.org/html/9893/webappapis.html#concept-principal-realm-of-realm
-JS::Realm& principal_realm(JS::Realm& realm)
+JS::Realm& principal_realm(GC::Ref realm)
{
- VERIFY(realm.host_defined());
+ VERIFY(realm->host_defined());
// 1. If realm.[[HostDefined]] is a synthetic realm settings object, then:
- if (is(*realm.host_defined())) {
+ if (is(*realm->host_defined())) {
// 1. Assert: realm is a synthetic realm.
// 2. Set realm to the principal realm of realm.[[HostDefined]].
- return static_cast(*realm.host_defined()).synthetic_realm_settings.principal_realm;
+ realm = static_cast(*realm->host_defined()).synthetic_realm_settings.principal_realm;
}
// 2. Assert: realm.[[HostDefined]] is an environment settings object and realm is a principal realm.
- VERIFY(is(*realm.host_defined()));
+ VERIFY(is(*realm->host_defined()));
// 3. Return realm.
return realm;
diff --git a/Libraries/LibWeb/HTML/Scripting/Environments.h b/Libraries/LibWeb/HTML/Scripting/Environments.h
index a2e75de821f..8ff26d66063 100644
--- a/Libraries/LibWeb/HTML/Scripting/Environments.h
+++ b/Libraries/LibWeb/HTML/Scripting/Environments.h
@@ -149,7 +149,7 @@ JS::Realm& current_principal_realm();
EnvironmentSettingsObject& principal_realm_settings_object(JS::Realm&);
EnvironmentSettingsObject& current_principal_settings_object();
-JS::Realm& principal_realm(JS::Realm&);
+JS::Realm& principal_realm(GC::Ref);
JS::Object& current_principal_global_object();
JS::Realm& relevant_realm(JS::Object const&);
EnvironmentSettingsObject& relevant_settings_object(JS::Object const&);