@@ -38,9 +38,12 @@ pub use self::ElementEnum::{Normal, Script, Template};
3838pub enum ElementEnum {
3939 /// Regular element.
4040 Normal ,
41- /// A script element and its "already started" flag.
42- /// https://html.spec.whatwg.org/multipage/#already-started
43- Script ( bool ) ,
41+ /// A script element
42+ Script {
43+ /// Script element's already-started flag
44+ /// https://html.spec.whatwg.org/multipage/#already-started
45+ script_already_started : bool
46+ } ,
4447 /// A template element and its template contents.
4548 /// https://html.spec.whatwg.org/multipage/#template-contents
4649 Template ( Handle ) ,
@@ -106,10 +109,8 @@ fn new_node(node: NodeEnum) -> Handle {
106109 Handle ( Rc :: new ( RefCell :: new ( Node :: new ( node) ) ) )
107110}
108111
109- #[ allow( trivial_casts) ]
110112fn same_node ( x : & Handle , y : & Handle ) -> bool {
111- // FIXME: This shouldn't really need to touch the borrow flags, right?
112- ( & * x. borrow ( ) as * const Node ) == ( & * y. borrow ( ) as * const Node )
113+ Rc :: ptr_eq ( & x, & y)
113114}
114115
115116fn append ( new_parent : & Handle , child : Handle ) {
@@ -232,7 +233,7 @@ impl TreeSink for RcDom {
232233 }
233234
234235 fn mark_script_already_started ( & mut self , target : Handle ) {
235- if let Element ( _, Script ( ref mut script_already_started) , _) = target. borrow_mut ( ) . node {
236+ if let Element ( _, Script { ref mut script_already_started} , _) = target. borrow_mut ( ) . node {
236237 * script_already_started = true ;
237238 } else {
238239 panic ! ( "not a script element!" ) ;
0 commit comments