@@ -20,9 +20,8 @@ JS_DEFINE_ALLOCATOR(ClassicScript);
20
20
21
21
// https://html.spec.whatwg.org/multipage/webappapis.html#creating-a-classic-script
22
22
// https://whatpr.org/html/9893/webappapis.html#creating-a-classic-script
23
- JS::NonnullGCPtr<ClassicScript> ClassicScript::create (ByteString filename, StringView source, EnvironmentSettingsObject& environment_settings_object , URL::URL base_url, size_t source_line_number, MutedErrors muted_errors)
23
+ JS::NonnullGCPtr<ClassicScript> ClassicScript::create (ByteString filename, StringView source, JS::Realm& realm , URL::URL base_url, size_t source_line_number, MutedErrors muted_errors)
24
24
{
25
- auto & realm = environment_settings_object.realm ();
26
25
auto & vm = realm.vm ();
27
26
28
27
// 1. If muted errors is true, then set baseURL to about:blank.
@@ -34,11 +33,9 @@ JS::NonnullGCPtr<ClassicScript> ClassicScript::create(ByteString filename, Strin
34
33
source = " " sv;
35
34
36
35
// 3. Let script be a new classic script that this algorithm will subsequently initialize.
37
- auto script = vm.heap ().allocate_without_realm <ClassicScript>(move (base_url), move (filename), environment_settings_object);
38
-
39
- // FIXME: 4. Set script's realm to realm. (NOTE: This was already done when constructing.)
40
-
41
- // 5. Set script's base URL to baseURL. (NOTE: This was already done when constructing.)
36
+ // 4. Set script's realm to realm.
37
+ // 5. Set script's base URL to baseURL.
38
+ auto script = vm.heap ().allocate_without_realm <ClassicScript>(move (base_url), move (filename), realm);
42
39
43
40
// FIXME: 6. Set script's fetch options to options.
44
41
@@ -80,11 +77,10 @@ JS::NonnullGCPtr<ClassicScript> ClassicScript::create(ByteString filename, Strin
80
77
// https://whatpr.org/html/9893/webappapis.html#run-a-classic-script
81
78
JS::Completion ClassicScript::run (RethrowErrors rethrow_errors, JS::GCPtr<JS::Environment> lexical_environment_override)
82
79
{
83
- // 1. Let settings be the settings object of script.
84
- auto & settings = settings_object ();
85
- auto & realm = settings.realm ();
80
+ // 1. Let realm be the realm of script.
81
+ auto & realm = this ->realm ();
86
82
87
- // 2. Check if we can run script with settings . If this returns "do not run" then return NormalCompletion(empty).
83
+ // 2. Check if we can run script with realm . If this returns "do not run" then return NormalCompletion(empty).
88
84
if (can_run_script (realm) == RunScriptDecision::DoNotRun)
89
85
return JS::normal_completion ({});
90
86
@@ -131,8 +127,8 @@ JS::Completion ClassicScript::run(RethrowErrors rethrow_errors, JS::GCPtr<JS::En
131
127
// 3. Otherwise, rethrow errors is false. Perform the following steps:
132
128
VERIFY (rethrow_errors == RethrowErrors::No);
133
129
134
- // 1. Report an exception given by evaluationStatus.[[Value]] for script's settings object 's global object.
135
- auto * window_or_worker = dynamic_cast <WindowOrWorkerGlobalScopeMixin*>(&settings .global_object ());
130
+ // 1. Report an exception given by evaluationStatus.[[Value]] for realms 's global object.
131
+ auto * window_or_worker = dynamic_cast <WindowOrWorkerGlobalScopeMixin*>(&realm .global_object ());
136
132
VERIFY (window_or_worker);
137
133
window_or_worker->report_an_exception (*evaluation_status.value ());
138
134
@@ -154,8 +150,8 @@ JS::Completion ClassicScript::run(RethrowErrors rethrow_errors, JS::GCPtr<JS::En
154
150
// Return Completion { [[Type]]: throw, [[Value]]: a new "QuotaExceededError" DOMException, [[Target]]: empty }.
155
151
}
156
152
157
- ClassicScript::ClassicScript (URL::URL base_url, ByteString filename, EnvironmentSettingsObject& environment_settings_object )
158
- : Script(move(base_url), move(filename), environment_settings_object )
153
+ ClassicScript::ClassicScript (URL::URL base_url, ByteString filename, JS::Realm& realm )
154
+ : Script(move(base_url), move(filename), realm )
159
155
{
160
156
}
161
157
0 commit comments