diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 21cf43e04ee..752434e1987 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -81,7 +81,7 @@ use crate::script_module::{
ImportMap, ModuleOwner, ScriptFetchOptions, fetch_external_module_script,
fetch_inline_module_script, parse_an_import_map_string, register_import_map,
};
-use crate::script_runtime::CanGc;
+use crate::script_runtime::{CanGc, IntroductionType};
use crate::task_source::{SendableTaskSource, TaskSourceName};
use crate::unminify::{ScriptSource, unminify_js};
@@ -1146,7 +1146,7 @@ impl HTMLScriptElement {
// Step 6.
let document = self.owner_document();
let old_script = document.GetCurrentScript();
- let introduction_type = (!script.external).then_some(c"inlineScript");
+ let introduction_type = (!script.external).then_some(IntroductionType::INLINE_SCRIPT);
match script.type_ {
ScriptType::Classic => {
diff --git a/components/script/script_module.rs b/components/script/script_module.rs
index 84b4c390dd7..4328b7e974c 100644
--- a/components/script/script_module.rs
+++ b/components/script/script_module.rs
@@ -78,7 +78,7 @@ use crate::dom::window::Window;
use crate::dom::worker::TrustedWorkerAddress;
use crate::network_listener::{self, NetworkListener, PreInvoke, ResourceTimingListener};
use crate::realms::{AlreadyInRealm, InRealm, enter_realm};
-use crate::script_runtime::{CanGc, JSContext as SafeJSContext};
+use crate::script_runtime::{CanGc, IntroductionType, JSContext as SafeJSContext};
use crate::task::TaskBox;
fn gen_type_error(global: &GlobalScope, string: String, can_gc: CanGc) -> RethrowError {
@@ -1901,7 +1901,7 @@ pub(crate) fn fetch_inline_module_script(
compiled_module.handle_mut(),
true,
can_gc,
- Some(c"inlineScript"),
+ Some(IntroductionType::INLINE_SCRIPT),
);
match compiled_module_result {
diff --git a/components/script/script_runtime.rs b/components/script/script_runtime.rs
index 283aa9329f1..69e6df46e0c 100644
--- a/components/script/script_runtime.rs
+++ b/components/script/script_runtime.rs
@@ -9,7 +9,7 @@
use core::ffi::c_char;
use std::cell::Cell;
-use std::ffi::CString;
+use std::ffi::{CStr, CString};
use std::io::{Write, stdout};
use std::ops::Deref;
use std::os::raw::c_void;
@@ -1194,3 +1194,9 @@ impl Runnable {
}
pub(crate) use script_bindings::script_runtime::CanGc;
+
+/// `introductionType` values in SpiderMonkey TransitiveCompileOptions.
+pub(crate) struct IntroductionType;
+impl IntroductionType {
+ pub const INLINE_SCRIPT: &'static CStr = c"inlineScript";
+}