aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/htmlscriptelement.rs3
-rw-r--r--tests/wpt/mozilla/tests/mozilla/resources/external.js4
-rw-r--r--tests/wpt/mozilla/tests/mozilla/track_line.html10
3 files changed, 14 insertions, 3 deletions
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 52935e32dcf..ed8bdfaa886 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -510,9 +510,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::<GlobalScope>().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 @@
<script>
setup({allow_uncaught_exception:true});
var t = async_test("error event has proper line number");
+var errors = 0;
+var expected_lines = [21, 4];
window.addEventListener('error', t.step_func(function(e) {
assert_true(e instanceof ErrorEvent);
- assert_equals(e.lineno, 16);
- t.done();
+ assert_equals(e.lineno, expected_lines[errors]);
+ errors++;
+ if (errors == 2) {
+ t.done();
+ }
}), true);
</script>
<script>
this_is_a_js_error
</script>
+<script src="resources/external.js"></script>