diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index d80ab78c9f7..e1b23f9b2b2 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -500,9 +500,10 @@ impl HTMLScriptElement {
// Step 5.a.2.
let window = window_from_node(self);
+ let line_number = if script.external { 1 } else { self.line_number as u32 };
rooted!(in(window.get_cx()) let mut rval = UndefinedValue());
window.upcast::().evaluate_script_on_global_with_result(
- &script.text, script.url.as_str(), rval.handle_mut(), self.line_number as u32);
+ &script.text, script.url.as_str(), rval.handle_mut(), line_number);
// Step 6.
document.set_current_script(old_script.r());
diff --git a/tests/wpt/mozilla/tests/mozilla/resources/external.js b/tests/wpt/mozilla/tests/mozilla/resources/external.js
new file mode 100644
index 00000000000..5f0242874cf
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/resources/external.js
@@ -0,0 +1,4 @@
+
+
+
+this_is_a_js_error
diff --git a/tests/wpt/mozilla/tests/mozilla/track_line.html b/tests/wpt/mozilla/tests/mozilla/track_line.html
index 1e6b12e5cad..b181b703897 100644
--- a/tests/wpt/mozilla/tests/mozilla/track_line.html
+++ b/tests/wpt/mozilla/tests/mozilla/track_line.html
@@ -6,12 +6,18 @@
+