aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/servoparser/mod.rs
diff options
context:
space:
mode:
authorNipun Garg <nipung271@gmail.com>2020-01-27 23:46:37 +0530
committerMartin Robinson <mrobinson@igalia.com>2023-06-22 13:45:20 +0200
commit41fe94244a7b6442fe2e06f114a45f122dda36c4 (patch)
treeb216506041010c0df93ec1b74164a97e6e098849 /components/script/dom/servoparser/mod.rs
parent7aaad0aa7eac2d0c98ff17091013fda77359397d (diff)
downloadservo-41fe94244a7b6442fe2e06f114a45f122dda36c4.tar.gz
servo-41fe94244a7b6442fe2e06f114a45f122dda36c4.zip
Refactor ServoParser Tokenizer to return TokenizerResult
Diffstat (limited to 'components/script/dom/servoparser/mod.rs')
-rw-r--r--components/script/dom/servoparser/mod.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/components/script/dom/servoparser/mod.rs b/components/script/dom/servoparser/mod.rs
index 6bfed4d8dea..ba114366aa2 100644
--- a/components/script/dom/servoparser/mod.rs
+++ b/components/script/dom/servoparser/mod.rs
@@ -43,6 +43,7 @@ use encoding_rs::Encoding;
use html5ever::buffer_queue::BufferQueue;
use html5ever::tendril::fmt::UTF8;
use html5ever::tendril::{ByteTendril, StrTendril, TendrilSink};
+use html5ever::tokenizer::TokenizerResult;
use html5ever::tree_builder::{ElementFlags, NextParserState, NodeOrText, QuirksMode, TreeSink};
use html5ever::{Attribute, ExpandedName, LocalName, QualName};
use hyper_serde::Serde;
@@ -589,7 +590,7 @@ impl ServoParser {
fn tokenize<F>(&self, mut feed: F)
where
- F: FnMut(&mut Tokenizer) -> Result<(), DomRoot<HTMLScriptElement>>,
+ F: FnMut(&mut Tokenizer) -> TokenizerResult<DomRoot<HTMLScriptElement>>,
{
loop {
assert!(!self.suspended.get());
@@ -597,8 +598,8 @@ impl ServoParser {
self.document.reflow_if_reflow_timer_expired();
let script = match feed(&mut *self.tokenizer.borrow_mut()) {
- Ok(()) => return,
- Err(script) => script,
+ TokenizerResult::Done => return,
+ TokenizerResult::Script(script) => script,
};
// https://html.spec.whatwg.org/multipage/#parsing-main-incdata
@@ -691,7 +692,8 @@ enum Tokenizer {
}
impl Tokenizer {
- fn feed(&mut self, input: &mut BufferQueue) -> Result<(), DomRoot<HTMLScriptElement>> {
+ #[must_use]
+ fn feed(&mut self, input: &mut BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> {
match *self {
Tokenizer::Html(ref mut tokenizer) => tokenizer.feed(input),
Tokenizer::AsyncHtml(ref mut tokenizer) => tokenizer.feed(input),