@@ -443,9 +443,9 @@ function createArrayIterativeMethod (name) {
443443 engine . run ( selector , context , {
444444 above
445445 } ) || [ ]
446- return selector [ name ] ( ( i ) => {
446+ return selector [ name ] ( ( i , index ) => {
447447 return engine . run ( mapper , i , {
448- above : [ selector , context , ...above ]
448+ above : [ { item : selector , index } , context , ...above ]
449449 } )
450450 } )
451451 } ,
@@ -456,9 +456,9 @@ function createArrayIterativeMethod (name) {
456456 ( await engine . run ( selector , context , {
457457 above
458458 } ) ) || [ ]
459- return asyncIterators [ name ] ( selector , ( i ) => {
459+ return asyncIterators [ name ] ( selector , ( i , index ) => {
460460 return engine . run ( mapper , i , {
461- above : [ selector , context , ...above ]
461+ above : [ { item : selector , index } , context , ...above ]
462462 } )
463463 } )
464464 } ,
@@ -470,8 +470,9 @@ function createArrayIterativeMethod (name) {
470470 const mapState = {
471471 ...buildState ,
472472 state : { } ,
473- above : [ selector , state , ...above ] ,
474- avoidInlineAsync : true
473+ above : [ { item : selector } , state , ...above ] ,
474+ avoidInlineAsync : true ,
475+ iteratorCompile : true
475476 }
476477 mapper = build ( mapper , mapState )
477478 buildState . useContext = buildState . useContext || mapState . useContext
@@ -841,6 +842,11 @@ defaultMethods.var.compile = function (data, buildState) {
841842 typeof data === 'number' ||
842843 ( Array . isArray ( data ) && data . length <= 2 )
843844 ) {
845+ if ( data === '../index' && buildState . iteratorCompile ) {
846+ buildState . extraArguments = 'index'
847+ return 'index'
848+ }
849+
844850 if ( Array . isArray ( data ) ) {
845851 key = data [ 0 ]
846852 defaultValue = typeof data [ 1 ] === 'undefined' ? null : data [ 1 ]
0 commit comments