@@ -365,27 +365,23 @@ class Transformer extends Source {
365365 const isOptional =
366366 node instanceof angular . SafeKeyedRead ||
367367 node instanceof angular . SafePropertyRead ;
368-
369368 const { receiver } = node ;
370-
371- let isImplicitThis ;
369+ const isImplicitReceiver =
370+ receiver instanceof angular . ImplicitReceiver &&
371+ ! ( receiver instanceof angular . ThisReceiver ) ;
372372
373373 let property ;
374374 if ( isComputed ) {
375- isImplicitThis = node . sourceSpan . start === node . key . sourceSpan . start ;
376375 property = transformChild < babel . Expression > ( node . key ) ;
377376 } else {
378- const { name, nameSpan } = node ;
379-
380- isImplicitThis = node . sourceSpan . start === nameSpan . start ;
381377 property = createNode < babel . Identifier > (
382- { type : 'Identifier' , name } ,
378+ { type : 'Identifier' , name : node . name } ,
383379 node . nameSpan ,
384- isImplicitThis ? ancestors : [ ] ,
380+ isImplicitReceiver ? ancestors : [ ] ,
385381 ) ;
386382 }
387383
388- if ( isImplicitThis ) {
384+ if ( isImplicitReceiver ) {
389385 return property ;
390386 }
391387
@@ -473,7 +469,8 @@ type SupportedNodes =
473469 | angular . LiteralPrimitive
474470 | angular . Unary
475471 | angular . Binary
476- | angular . ThisReceiver // Not handled
472+ | angular . ThisReceiver
473+ | angular . ImplicitReceiver
477474 | angular . KeyedRead
478475 | angular . Chain
479476 | angular . LiteralMap
0 commit comments