@@ -201,30 +201,16 @@ export default function dom ( parsed, source, options, names ) {
201
201
getUniqueName : generator . getUniqueNameMaker ( )
202
202
} ) ;
203
203
204
+ parsed . html . children . forEach ( node => generator . visit ( node ) ) ;
205
+
206
+ generator . addRenderer ( generator . pop ( ) ) ;
207
+
204
208
const builders = {
205
209
main : new CodeBuilder ( ) ,
206
210
init : new CodeBuilder ( ) ,
207
211
_set : new CodeBuilder ( )
208
212
} ;
209
213
210
- if ( parsed . css && options . css !== false ) {
211
- generator . current . builders . mount . addLine ( `if ( !target.ownerDocument.__sveltecss_${ parsed . hash } ) addCss( target.ownerDocument );` ) ;
212
-
213
- builders . main . addBlock ( deindent `
214
- function addCss ( document ) {
215
- var style = ${ generator . helper ( 'createElement' ) } ( 'style' );
216
- style.textContent = ${ JSON . stringify ( processCss ( parsed , generator . code ) ) } ;
217
- ${ generator . helper ( 'appendNode' ) } ( style, document.head );
218
-
219
- document.__sveltecss_${ parsed . hash } = true;
220
- }
221
- ` ) ;
222
- }
223
-
224
- parsed . html . children . forEach ( node => generator . visit ( node ) ) ;
225
-
226
- generator . addRenderer ( generator . pop ( ) ) ;
227
-
228
214
if ( options . dev ) {
229
215
builders . _set . addBlock ( deindent `
230
216
if ( typeof newState !== 'object' ) {
@@ -267,11 +253,28 @@ export default function dom ( parsed, source, options, names ) {
267
253
builders . main . addBlock ( `[✂${ parsed . js . content . start } -${ parsed . js . content . end } ✂]` ) ;
268
254
}
269
255
256
+ if ( parsed . css && options . css !== false ) {
257
+ builders . main . addBlock ( deindent `
258
+ var addedCss = false;
259
+ function addCss () {
260
+ var style = ${ generator . helper ( 'createElement' ) } ( 'style' );
261
+ style.textContent = ${ JSON . stringify ( processCss ( parsed , generator . code ) ) } ;
262
+ ${ generator . helper ( 'appendNode' ) } ( style, document.head );
263
+
264
+ addedCss = true;
265
+ }
266
+ ` ) ;
267
+ }
268
+
270
269
let i = generator . renderers . length ;
271
270
while ( i -- ) builders . main . addBlock ( generator . renderers [ i ] ) ;
272
271
273
272
builders . init . addLine ( `this._torndown = false;` ) ;
274
273
274
+ if ( parsed . css && options . css !== false ) {
275
+ builders . init . addLine ( `if ( !addedCss ) addCss();` ) ;
276
+ }
277
+
275
278
if ( generator . hasComponents ) {
276
279
builders . init . addLine ( `this._renderHooks = [];` ) ;
277
280
}
0 commit comments