From c831c2c0a528b6a04b355cc51169023f8c29b761 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Thu, 27 Aug 2015 01:22:42 +0200 Subject: Remove helper traits Now that JSRef is gone, there is no need to have helper traits. On components/script/*.rs: # Remove imports. /^ *use dom::[a-z]+::\{.*Helpers/ { s/\{(Raw[^L]|[^L][^a])[a-zA-Z]+Helpers, /\{/ s/, (Raw[^L]|[^L][^a])[a-zA-Z]+Helpers([,}])/\2/g s/\{([a-zA-Z]+)\}/\1/ /\{\}/d s/::self;$/;/ } /^ *use dom::[a-z]+::\{?(Raw[^L]|[^L][^a])[a-zA-Z]+Helpers\}?;$/d On components/script/dom/*.rs: # Ignore layout things. /^(pub )?(impl|trait).*Layout.* \{/,/^}$/ { P; D; } # Delete helpers traits. /^(pub )?trait ([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? \{$/,/^\}$/D # Patch private helpers. /^impl.*Private.*Helpers/,/^\}$/ { s/^impl<'a> Private([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? for &'a ([^ ]+) \{$/impl \3 {/ /^ *(unsafe )?fn .*\(self.*[<&]'a/ { s/&'a /\&/g s/<'a, /)? ([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? for (&'a )?([^ ]+) \{$/impl \5 {/ /^ *(unsafe )?fn .*\(self.*[<&]'a/ { s/&'a /\&/g s/<'a, / Date: Thu, 27 Aug 2015 02:11:37 +0200 Subject: Remove SinkHelpers Method get_or_create() is now directly on servohtmlparser::Sink. --- components/script/parse/html.rs | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) (limited to 'components/script/parse/html.rs') diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs index 9eabc2bb088..e2a6e483ea6 100644 --- a/components/script/parse/html.rs +++ b/components/script/parse/html.rs @@ -24,7 +24,6 @@ use dom::node::{Node, NodeTypeId}; use dom::node::{document_from_node, window_from_node}; use dom::servohtmlparser; use dom::servohtmlparser::{ServoHTMLParser, FragmentContext}; -use dom::text::Text; use parse::Parser; use encoding::types::Encoding; @@ -33,7 +32,7 @@ use html5ever::Attribute; use html5ever::serialize::TraversalScope; use html5ever::serialize::TraversalScope::{IncludeNode, ChildrenOnly}; use html5ever::serialize::{Serializable, Serializer, AttrRef}; -use html5ever::tree_builder::{TreeSink, QuirksMode, NodeOrText, AppendNode, AppendText, NextParserState}; +use html5ever::tree_builder::{NextParserState, NodeOrText, QuirksMode, TreeSink}; use msg::constellation_msg::PipelineId; use std::borrow::Cow; use std::io::{self, Write}; @@ -42,23 +41,6 @@ use tendril::StrTendril; use url::Url; use util::str::DOMString; -trait SinkHelpers { - fn get_or_create(&self, child: NodeOrText>) -> Root; -} - -impl SinkHelpers for servohtmlparser::Sink { - fn get_or_create(&self, child: NodeOrText>) -> Root { - match child { - AppendNode(n) => n.root(), - AppendText(t) => { - let doc = self.document.root(); - let text = Text::new(t.into(), doc.r()); - NodeCast::from_root(text) - } - } - } -} - impl<'a> TreeSink for servohtmlparser::Sink { type Handle = JS; fn get_document(&mut self) -> JS { -- cgit v1.2.3 From 2a028f66a2e7ab56094cf856ebdc20bc49ab7d4d Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Thu, 27 Aug 2015 10:37:44 +0200 Subject: Remove AttributeHandlers On components/script/*.rs: # Remove imports. /^ *use dom::element::\{.*AttributeHandlers/ { s/\{AttributeHandlers, /\{/ s/, AttributeHandlers//g s/\{([a-zA-Z]+)\}/\1/ /\{\}/d s/::self;$/;/ } /^ *use dom::element::\{?AttributeHandlers\}?;$/d # Remove AttributeHandlers. /^pub trait AttributeHandlers \{$/,/^\}$/D # Patch AttributeHandlers methods. /^impl<'a> AttributeHandlers for &'a Element \{/,/^\}$/ { s/^impl<'a> AttributeHandlers for &'a Element \{/impl Element {/ /^ *fn /s/\(self([,)])/\(\&self\1/ /^ *fn.*\(&self/s/fn/pub fn/ } The few error cases were then fixed by hand. --- components/script/parse/html.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/parse/html.rs') diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs index e2a6e483ea6..a2dd0109ed1 100644 --- a/components/script/parse/html.rs +++ b/components/script/parse/html.rs @@ -18,7 +18,7 @@ use dom::comment::Comment; use dom::document::Document; use dom::document::{DocumentSource, IsHTMLDocument}; use dom::documenttype::DocumentType; -use dom::element::{Element, AttributeHandlers, ElementCreator}; +use dom::element::{Element, ElementCreator}; use dom::htmlscriptelement::HTMLScriptElement; use dom::node::{Node, NodeTypeId}; use dom::node::{document_from_node, window_from_node}; -- cgit v1.2.3