From a0df94bddcc71e03961fea76f2bf7569eaeb3a53 Mon Sep 17 00:00:00 2001 From: CYBAI Date: Wed, 27 May 2020 11:22:04 +0900 Subject: [PATCH] Set `currentScript` to `null` for module scripts I misunderstood the test case when I worked on #23545. That test case is actually not related to dynamic import; instead, the reason why it crashes is, `currentScript` should be updated to `null`. --- components/script/dom/htmlscriptelement.rs | 8 ++++++-- .../module/load-error-events-inline.html.ini | 5 ----- 2 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/load-error-events-inline.html.ini diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index f7311ddaca44..8d0d9f219c1c 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -756,14 +756,18 @@ impl HTMLScriptElement { let document = document_from_node(self); let old_script = document.GetCurrentScript(); + match script.type_ { + ScriptType::Classic => document.set_current_script(Some(self)), + ScriptType::Module => document.set_current_script(None), + } + match script.type_ { ScriptType::Classic => { - document.set_current_script(Some(self)); self.run_a_classic_script(&script); document.set_current_script(old_script.as_deref()); }, ScriptType::Module => { - assert!(old_script.is_none()); + assert!(document.GetCurrentScript().is_none()); self.run_a_module_script(&script, false); }, } diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/load-error-events-inline.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/load-error-events-inline.html.ini deleted file mode 100644 index 1753a0856d7f..000000000000 --- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/load-error-events-inline.html.ini +++ /dev/null @@ -1,5 +0,0 @@ - -[load-error-events-inline.html] - type: testharness - expected: CRASH -