diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-01-11 18:11:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-11 18:11:52 -0800 |
commit | eb72c0ec7bc1e3547aa09fbe2ad800310f42989b (patch) | |
tree | 2f242cc83e6c4e60ab0a9c6234cdabfa58ffcfa8 /components/script/dom/servoparser | |
parent | 6447a9783892d6ed585cf75b056ef81f0aba504c (diff) | |
parent | db2082bc6e0edc0028f287d4acc203e7c3bc829f (diff) | |
download | servo-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.rs | 8 | ||||
-rw-r--r-- | components/script/dom/servoparser/xml.rs | 3 |
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 { |