@@ -6,6 +6,7 @@ import { is_void, sanitize } from '../../../../utils/names';
6
6
import FragmentWrapper from '../Fragment' ;
7
7
import { escape_html , string_literal } from '../../../utils/stringify' ;
8
8
import TextWrapper from '../Text' ;
9
+ import TagWrapper from '../shared/Tag' ;
9
10
import fix_attribute_casing from './fix_attribute_casing' ;
10
11
import { b , x , p } from 'code-red' ;
11
12
import { namespaces } from '../../../../utils/namespaces' ;
@@ -849,7 +850,7 @@ export default class ElementWrapper extends Wrapper {
849
850
}
850
851
}
851
852
852
- function to_html ( wrappers : Array < ElementWrapper | TextWrapper > , block : Block , literal : any , state : any ) {
853
+ function to_html ( wrappers : Array < ElementWrapper | TextWrapper | TagWrapper > , block : Block , literal : any , state : any ) {
853
854
wrappers . forEach ( wrapper => {
854
855
if ( wrapper . node . type === 'Text' ) {
855
856
if ( ( wrapper as TextWrapper ) . use_space ( ) ) state . quasi . value . raw += ' ' ;
@@ -867,6 +868,15 @@ function to_html(wrappers: Array<ElementWrapper | TextWrapper>, block: Block, li
867
868
. replace ( / \$ / g, '\\$' ) ;
868
869
}
869
870
871
+ else if ( wrapper . node . type === 'MustacheTag' || wrapper . node . type === 'RawMustacheTag' ) {
872
+ literal . quasis . push ( state . quasi ) ;
873
+ literal . expressions . push ( wrapper . node . expression . manipulate ( block ) ) ;
874
+ state . quasi = {
875
+ type : 'TemplateElement' ,
876
+ value : { raw : '' }
877
+ } ;
878
+ }
879
+
870
880
else if ( wrapper . node . name === 'noscript' ) {
871
881
// do nothing
872
882
}
0 commit comments