aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/servoparser
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-01-11 18:11:52 -0800
committerGitHub <noreply@github.com>2017-01-11 18:11:52 -0800
commiteb72c0ec7bc1e3547aa09fbe2ad800310f42989b (patch)
tree2f242cc83e6c4e60ab0a9c6234cdabfa58ffcfa8 /components/script/dom/servoparser
parent6447a9783892d6ed585cf75b056ef81f0aba504c (diff)
parentdb2082bc6e0edc0028f287d4acc203e7c3bc829f (diff)
downloadservo-eb72c0ec7bc1e3547aa09fbe2ad800310f42989b.tar.gz
servo-eb72c0ec7bc1e3547aa09fbe2ad800310f42989b.zip
Auto merge of #14963 - jdm:script_current_line, r=asajeffrey
Report meaningful line numbers for inline script errors Rebased from #14661. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #12744 and partially #9604 - [X] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14963) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/servoparser')
-rw-r--r--components/script/dom/servoparser/html.rs8
-rw-r--r--components/script/dom/servoparser/xml.rs3
2 files changed, 9 insertions, 2 deletions
diff --git a/components/script/dom/servoparser/html.rs b/components/script/dom/servoparser/html.rs
index d4b53175b49..1e53cea8341 100644
--- a/components/script/dom/servoparser/html.rs
+++ b/components/script/dom/servoparser/html.rs
@@ -52,6 +52,7 @@ impl Tokenizer {
let sink = Sink {
base_url: url,
document: JS::from_ref(document),
+ current_line: 1,
};
let options = TreeBuilderOpts {
@@ -122,6 +123,7 @@ unsafe impl JSTraceable for HtmlTokenizer<TreeBuilder<JS<Node>, Sink>> {
struct Sink {
base_url: ServoUrl,
document: JS<Document>,
+ current_line: u64,
}
impl TreeSink for Sink {
@@ -156,7 +158,7 @@ impl TreeSink for Sink {
fn create_element(&mut self, name: QualName, attrs: Vec<Attribute>)
-> JS<Node> {
let elem = Element::create(name, None, &*self.document,
- ElementCreator::ParserCreated);
+ ElementCreator::ParserCreated(self.current_line));
for attr in attrs {
elem.set_attribute_from_parser(attr.name, DOMString::from(String::from(attr.value)), None);
@@ -234,6 +236,10 @@ impl TreeSink for Sink {
}
}
+ fn set_current_line(&mut self, line_number: u64) {
+ self.current_line = line_number;
+ }
+
fn pop(&mut self, node: JS<Node>) {
let node = Root::from_ref(&*node);
vtable_for(&node).pop();
diff --git a/components/script/dom/servoparser/xml.rs b/components/script/dom/servoparser/xml.rs
index 4a62be75cff..96de50f293d 100644
--- a/components/script/dom/servoparser/xml.rs
+++ b/components/script/dom/servoparser/xml.rs
@@ -134,8 +134,9 @@ impl TreeSink for Sink {
ns: name.namespace_url,
local: name.local,
};
+ //TODO: Add ability to track lines to API of xml5ever
let elem = Element::create(name, prefix, &*self.document,
- ElementCreator::ParserCreated);
+ ElementCreator::ParserCreated(1));
for attr in attrs {
let name = QualName {