11/** @import  { Effect, TemplateNode } from '#client' */ 
22import  {  hydrate_next ,  hydrate_node ,  hydrating ,  set_hydrate_node  }  from  './hydration.js' ; 
3- import  {  create_text ,  get_first_child ,  is_firefox  }  from  './operations.js' ; 
3+ import  { 
4+ 	create_text , 
5+ 	get_first_child , 
6+ 	is_firefox , 
7+ 	create_element , 
8+ 	create_fragment , 
9+ 	create_comment , 
10+ 	set_attribute 
11+ }  from  './operations.js' ; 
412import  {  create_fragment_from_html  }  from  './reconciler.js' ; 
513import  {  active_effect  }  from  '../runtime.js' ; 
614import  { 
@@ -79,14 +87,14 @@ export function template(content, flags) {
7987 * @param  {Array<string | undefined> } [namespace_stack] 
8088 */ 
8189function  structure_to_fragment ( structure ,  ns ,  namespace_stack  =  [ ] ,  foreign_object_count  =  0 )  { 
82- 	var  fragment  =  document . createDocumentFragment ( ) ; 
90+ 	var  fragment  =  create_fragment ( ) ; 
8391	for  ( var  i  =  0 ;  i  <  structure . length ;  i  +=  1 )  { 
8492		var  item  =  structure [ i ] ; 
8593		if  ( item  ==  null  ||  Array . isArray ( item ) )  { 
8694			const  data  =  item  ? item [ 0 ]  : '' ; 
87- 			fragment . insertBefore ( document . createComment ( data ) ,  null ) ; 
95+ 			fragment . insertBefore ( create_comment ( data ) ,  null ) ; 
8896		}  else  if  ( typeof  item  ===  'string' )  { 
89- 			fragment . appendChild ( document . createTextNode ( item ) ) ; 
97+ 			fragment . appendChild ( create_text ( item ) ) ; 
9098			continue ; 
9199		}  else  { 
92100			let  namespace  = 
@@ -107,25 +115,10 @@ function structure_to_fragment(structure, ns, namespace_stack = [], foreign_obje
107115			if  ( namespace  !==  namespace_stack [ namespace_stack . length  -  1 ] )  { 
108116				namespace_stack . push ( namespace ) ; 
109117			} 
110- 			var  args  =  [ item . e ] ; 
111- 			if  ( item . is )  { 
112- 				// @ts -ignore 
113- 				args . push ( {  is : item . is  } ) ; 
114- 			} 
115- 			if  ( namespace )  { 
116- 				args . unshift ( namespace ) ; 
117- 			} 
118- 			var  element  =  /** @type  {HTMLElement } */  ( 
119- 				// @ts -ignore 
120- 				( namespace  ? document . createElementNS  : document . createElement ) . call ( document ,  ...args ) 
121- 			) ; 
118+ 			var  element  =  create_element ( item . e ,  namespace ,  item . is ) ; 
122119
123120			for  ( var  key  in  item . p )  { 
124- 				if  ( key . startsWith ( 'xlink:' ) )  { 
125- 					element . setAttributeNS ( 'http://www.w3.org/1999/xlink' ,  key ,  item . p [ key ]  ??  '' ) ; 
126- 					continue ; 
127- 				} 
128- 				element . setAttribute ( key ,  item . p [ key ]  ??  '' ) ; 
121+ 				set_attribute ( element ,  key ,  item . p [ key ] ) ; 
129122			} 
130123			if  ( item . c )  { 
131124				( element . tagName  ===  'TEMPLATE' 
0 commit comments