Skip to content

Commit

Permalink
Do not use the script element's line number for external scripts.
Browse files Browse the repository at this point in the history
  • Loading branch information
jdm committed Jan 13, 2017
1 parent 550df86 commit 6f19b0c
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
3 changes: 2 additions & 1 deletion components/script/dom/htmlscriptelement.rs
Expand Up @@ -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());
Expand Down
4 changes: 4 additions & 0 deletions tests/wpt/mozilla/tests/mozilla/resources/external.js
@@ -0,0 +1,4 @@



this_is_a_js_error
10 changes: 8 additions & 2 deletions tests/wpt/mozilla/tests/mozilla/track_line.html
Expand Up @@ -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>

0 comments on commit 6f19b0c

Please sign in to comment.