@@ -131,12 +131,14 @@ class DomGenerator extends Generator {
131
131
node . children = [ ] ;
132
132
}
133
133
134
- helper ( name ) {
134
+ helper ( name , isSharedHelper ) {
135
135
if ( this . options . dev && `${ name } Dev` in shared ) {
136
136
name = `${ name } Dev` ;
137
137
}
138
138
139
- this . uses [ name ] = true ;
139
+ if ( isSharedHelper !== false ) {
140
+ this . uses [ name ] = true ;
141
+ }
140
142
141
143
if ( ! ( name in this . aliases ) ) {
142
144
let alias = name ;
@@ -188,7 +190,7 @@ export default function dom ( parsed, source, options, names ) {
188
190
}
189
191
190
192
generator . push ( {
191
- name : 'renderMainFragment' ,
193
+ name : generator . helper ( 'renderMainFragment' , false ) ,
192
194
namespace,
193
195
target : 'target' ,
194
196
localElementDepth : 0 ,
@@ -238,12 +240,12 @@ export default function dom ( parsed, source, options, names ) {
238
240
} ) ;
239
241
240
242
builders . main . addBlock ( deindent `
241
- function applyComputations ( state, newState, oldState, isInitial ) {
243
+ function ${ generator . helper ( ' applyComputations' , false ) } ( state, newState, oldState, isInitial ) {
242
244
${ builder }
243
245
}
244
246
` ) ;
245
247
246
- builders . _set . addLine ( `applyComputations( this._state, newState, oldState, false )` ) ;
248
+ builders . _set . addLine ( `${ generator . helper ( ' applyComputations' , false ) } ( this._state, newState, oldState, false )` ) ;
247
249
}
248
250
249
251
// TODO is the `if` necessary?
@@ -259,13 +261,13 @@ export default function dom ( parsed, source, options, names ) {
259
261
260
262
if ( parsed . css && options . css !== false ) {
261
263
builders . main . addBlock ( deindent `
262
- var addedCss = false;
263
- function addCss () {
264
+ var ${ generator . helper ( ' addedCss' , false ) } = false;
265
+ function ${ generator . helper ( ' addCss' , false ) } () {
264
266
var style = ${ generator . helper ( 'createElement' ) } ( 'style' );
265
267
style.textContent = ${ JSON . stringify ( processCss ( parsed , generator . code ) ) } ;
266
268
${ generator . helper ( 'appendNode' ) } ( style, document.head );
267
269
268
- addedCss = true;
270
+ ${ generator . helper ( ' addedCss' , false ) } = true;
269
271
}
270
272
` ) ;
271
273
}
@@ -276,7 +278,7 @@ export default function dom ( parsed, source, options, names ) {
276
278
builders . init . addLine ( `this._torndown = false;` ) ;
277
279
278
280
if ( parsed . css && options . css !== false ) {
279
- builders . init . addLine ( `if ( !addedCss ) addCss();` ) ;
281
+ builders . init . addLine ( `if ( !${ generator . helper ( ' addedCss' , false ) } ) ${ generator . helper ( ' addCss' , false ) } ();` ) ;
280
282
}
281
283
282
284
if ( generator . hasComponents ) {
@@ -286,15 +288,15 @@ export default function dom ( parsed, source, options, names ) {
286
288
if ( generator . hasComplexBindings ) {
287
289
builders . init . addBlock ( deindent `
288
290
this._bindings = [];
289
- this._fragment = renderMainFragment( this._state, this );
291
+ this._fragment = ${ generator . helper ( ' renderMainFragment' , false ) } ( this._state, this );
290
292
if ( options.target ) this._fragment.mount( options.target, null );
291
293
while ( this._bindings.length ) this._bindings.pop()();
292
294
` ) ;
293
295
294
296
builders . _set . addLine ( `while ( this._bindings.length ) this._bindings.pop()();` ) ;
295
297
} else {
296
298
builders . init . addBlock ( deindent `
297
- this._fragment = renderMainFragment( this._state, this );
299
+ this._fragment = ${ generator . helper ( ' renderMainFragment' , false ) } ( this._state, this );
298
300
if ( options.target ) this._fragment.mount( options.target, null );
299
301
` ) ;
300
302
}
@@ -327,7 +329,7 @@ export default function dom ( parsed, source, options, names ) {
327
329
328
330
if ( templateProperties . computed ) {
329
331
constructorBlock . addLine (
330
- `applyComputations( this._state, this._state, {}, true );`
332
+ `${ generator . helper ( ' applyComputations' , false ) } ( this._state, this._state, {}, true );`
331
333
) ;
332
334
}
333
335
@@ -419,4 +421,4 @@ export default function dom ( parsed, source, options, names ) {
419
421
}
420
422
421
423
return generator . generate ( builders . main . toString ( ) , options , { name, format } ) ;
422
- }
424
+ }
0 commit comments