@@ -534,16 +534,22 @@ JavaScriptCompiler.prototype = {
534534this . resolvePath ( 'data' , parts , 0 , true , strict ) ;
535535} ,
536536
537- resolvePath :function ( type , parts , i , falsy , strict ) {
537+ resolvePath :function ( type , parts , startPartIndex , falsy , strict ) {
538538if ( this . options . strict || this . options . assumeObjects ) {
539539this . push (
540- strictLookup ( this . options . strict && strict , this , parts , i , type )
540+ strictLookup (
541+ this . options . strict && strict ,
542+ this ,
543+ parts ,
544+ startPartIndex ,
545+ type
546+ )
541547) ;
542548return ;
543549}
544550
545551let len = parts . length ;
546- for ( ; i < len ; i ++ ) {
552+ for ( let i = startPartIndex ; i < len ; i ++ ) {
547553/* eslint-disable no-loop-func */
548554this . replaceStack ( ( current ) => {
549555let lookup = this . nameLookup ( current , parts [ i ] , type ) ;
@@ -1155,14 +1161,14 @@ JavaScriptCompiler.isValidJavaScriptVariableName = function (name) {
11551161) ;
11561162} ;
11571163
1158- function strictLookup ( requireTerminal , compiler , parts , i , type ) {
1164+ function strictLookup ( requireTerminal , compiler , parts , startPartIndex , type ) {
11591165let stack = compiler . popStack ( ) ,
11601166len = parts . length ;
11611167if ( requireTerminal ) {
11621168len -- ;
11631169}
11641170
1165- for ( ; i < len ; i ++ ) {
1171+ for ( let i = startPartIndex ; i < len ; i ++ ) {
11661172stack = compiler . nameLookup ( stack , parts [ i ] , type ) ;
11671173}
11681174
@@ -1172,7 +1178,7 @@ function strictLookup(requireTerminal, compiler, parts, i, type) {
11721178'(' ,
11731179stack ,
11741180', ' ,
1175- compiler . quotedString ( parts [ i ] ) ,
1181+ compiler . quotedString ( parts [ len ] ) ,
11761182', ' ,
11771183JSON . stringify ( compiler . source . currentLocation ) ,
11781184' )' ,