diff options
-rw-r--r-- | components/script/dom/htmlscriptelement.rs | 3 | ||||
-rw-r--r-- | tests/wpt/mozilla/tests/mozilla/resources/external.js | 4 | ||||
-rw-r--r-- | tests/wpt/mozilla/tests/mozilla/track_line.html | 10 |
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> |