@@ -13,9 +13,9 @@ const MODE_ATTRIBUTE = 4;
1313export const evaluate = ( h , current , fields , args ) => {
1414 for ( let i = 1 ; i < current . length ; i ++ ) {
1515 const field = current [ i ++ ] ;
16- const value = field ? fields [ field ] : current [ i ] ;
16+ const value = typeof field === 'number' ? fields [ field ] : field ;
1717
18- if ( current [ ++ i ] === TAG_SET ) {
18+ if ( current [ i ] === TAG_SET ) {
1919 args [ 0 ] = value ;
2020 }
2121 else if ( current [ i ] === PROPS_SET ) {
@@ -48,20 +48,20 @@ export const build = (statics) => {
4848
4949 const commit = field => {
5050 if ( mode === MODE_TEXT && ( field || ( buffer = buffer . replace ( / ^ \s * \n \s * | \s * \n \s * $ / g, '' ) ) ) ) {
51- current . push ( field , buffer , CHILD_APPEND ) ;
51+ current . push ( field || buffer , CHILD_APPEND ) ;
5252 }
5353 else if ( mode === MODE_TAGNAME && ( field || buffer ) ) {
54- current . push ( field , buffer , TAG_SET ) ;
54+ current . push ( field || buffer , TAG_SET ) ;
5555 mode = MODE_WHITESPACE ;
5656 }
5757 else if ( mode === MODE_WHITESPACE && buffer === '...' && field ) {
58- current . push ( field , 0 , PROPS_ASSIGN ) ;
58+ current . push ( field , PROPS_ASSIGN ) ;
5959 }
6060 else if ( mode === MODE_WHITESPACE && buffer && ! field ) {
61- current . push ( 0 , true , PROPS_SET , buffer ) ;
61+ current . push ( true , PROPS_SET , buffer ) ;
6262 }
6363 else if ( mode === MODE_ATTRIBUTE && propName ) {
64- current . push ( field , buffer , PROPS_SET , propName ) ;
64+ current . push ( field || buffer , PROPS_SET , propName ) ;
6565 propName = '' ;
6666 }
6767 buffer = '' ;
@@ -118,7 +118,7 @@ export const build = (statics) => {
118118 current = current [ 0 ] ;
119119 }
120120 mode = current ;
121- ( current = current [ 0 ] ) . push ( 0 , mode , CHILD_RECURSE ) ;
121+ ( current = current [ 0 ] ) . push ( mode , CHILD_RECURSE ) ;
122122 mode = MODE_SLASH ;
123123 }
124124 else if ( char === ' ' || char === '\t' || char === '\n' || char === '\r' ) {
0 commit comments