@@ -199,12 +199,15 @@ export const TemplateStamp = dedupingMixin(
199
199
static _parseTemplate ( template , outerTemplateInfo ) {
200
200
// since a template may be re-used, memo-ize metadata
201
201
if ( ! template . _templateInfo ) {
202
- let templateInfo = template . _templateInfo = { } ;
202
+ // TODO(rictic): fix typing
203
+ let /** ? */ templateInfo = template . _templateInfo = { } ;
203
204
templateInfo . nodeInfoList = [ ] ;
204
205
templateInfo . stripWhiteSpace =
205
206
( outerTemplateInfo && outerTemplateInfo . stripWhiteSpace ) ||
206
207
template . hasAttribute ( 'strip-whitespace' ) ;
207
- this . _parseTemplateContent ( template , templateInfo , { parent : null } ) ;
208
+ // TODO(rictic): fix typing
209
+ this . _parseTemplateContent (
210
+ template , templateInfo , /** @type {? } */ ( { parent : null } ) ) ;
208
211
}
209
212
return template . _templateInfo ;
210
213
}
@@ -237,16 +240,16 @@ export const TemplateStamp = dedupingMixin(
237
240
* @nocollapse
238
241
*/
239
242
static _parseTemplateNode ( node , templateInfo , nodeInfo ) {
240
- let noted ;
241
- let element = /** @type {Element } */ ( node ) ;
243
+ let noted = false ;
244
+ let element = /** @type {!HTMLTemplateElement } */ ( node ) ;
242
245
if ( element . localName == 'template' && ! element . hasAttribute ( 'preserve-content' ) ) {
243
246
noted = this . _parseTemplateNestedTemplate ( element , templateInfo , nodeInfo ) || noted ;
244
247
} else if ( element . localName === 'slot' ) {
245
248
// For ShadyDom optimization, indicating there is an insertion point
246
249
templateInfo . hasInsertionPoint = true ;
247
250
}
248
251
if ( element . firstChild ) {
249
- noted = this . _parseTemplateChildNodes ( element , templateInfo , nodeInfo ) || noted ;
252
+ this . _parseTemplateChildNodes ( element , templateInfo , nodeInfo ) ;
250
253
}
251
254
if ( element . hasAttributes && element . hasAttributes ( ) ) {
252
255
noted = this . _parseTemplateNodeAttributes ( element , templateInfo , nodeInfo ) || noted ;
@@ -295,9 +298,10 @@ export const TemplateStamp = dedupingMixin(
295
298
continue ;
296
299
}
297
300
}
298
- let childInfo = { parentIndex, parentInfo : nodeInfo } ;
301
+ let childInfo =
302
+ /** @type {!NodeInfo } */ ( { parentIndex, parentInfo : nodeInfo } ) ;
299
303
if ( this . _parseTemplateNode ( node , templateInfo , childInfo ) ) {
300
- childInfo . infoIndex = templateInfo . nodeInfoList . push ( /** @type { !NodeInfo } */ ( childInfo ) ) - 1 ;
304
+ childInfo . infoIndex = templateInfo . nodeInfoList . push ( childInfo ) - 1 ;
301
305
}
302
306
// Increment if not removed
303
307
if ( node . parentNode ) {
@@ -325,10 +329,12 @@ export const TemplateStamp = dedupingMixin(
325
329
* @nocollapse
326
330
*/
327
331
static _parseTemplateNestedTemplate ( node , outerTemplateInfo , nodeInfo ) {
328
- let templateInfo = this . _parseTemplate ( node , outerTemplateInfo ) ;
332
+ // TODO(rictic): the type of node should be non-null
333
+ let element = /** @type {!HTMLTemplateElement } */ ( node ) ;
334
+ let templateInfo = this . _parseTemplate ( element , outerTemplateInfo ) ;
329
335
let content = templateInfo . content =
330
- node . content . ownerDocument . createDocumentFragment ( ) ;
331
- content . appendChild ( node . content ) ;
336
+ element . content . ownerDocument . createDocumentFragment ( ) ;
337
+ content . appendChild ( element . content ) ;
332
338
nodeInfo . templateInfo = templateInfo ;
333
339
return true ;
334
340
}
@@ -338,8 +344,9 @@ export const TemplateStamp = dedupingMixin(
338
344
* for nodes of interest.
339
345
*
340
346
* @param {Element } node Node to parse
341
- * @param {TemplateInfo } templateInfo Template metadata for current template
342
- * @param {NodeInfo } nodeInfo Node metadata for current template.
347
+ * @param {!TemplateInfo } templateInfo Template metadata for current
348
+ * template
349
+ * @param {!NodeInfo } nodeInfo Node metadata for current template.
343
350
* @return {boolean } `true` if the visited node added node-specific
344
351
* metadata to `nodeInfo`
345
352
* @nocollapse
0 commit comments