@@ -980,14 +980,14 @@ function numberCoercion (i, buildState) {
980980
981981// @ts -ignore Allow custom attribute
982982defaultMethods [ '+' ] . compile = function ( data , buildState ) {
983- if ( Array . isArray ( data ) ) return `(${ data . map ( i => numberCoercion ( i , buildState ) ) . join ( ' + ' ) } )`
983+ if ( Array . isArray ( data ) ) return `precoerceNumber (${ data . map ( i => numberCoercion ( i , buildState ) ) . join ( ' + ' ) } )`
984984 if ( typeof data === 'string' || typeof data === 'number' || typeof data === 'boolean' ) return `precoerceNumber(+${ buildString ( data , buildState ) } )`
985985 return buildState . compile `(Array.isArray(prev = ${ data } ) ? prev.reduce((a,b) => (+a)+(+precoerceNumber(b)), 0) : +precoerceNumber(prev))`
986986}
987987
988988// @ts -ignore Allow custom attribute
989989defaultMethods [ '%' ] . compile = function ( data , buildState ) {
990- if ( Array . isArray ( data ) ) return `(${ data . map ( i => numberCoercion ( i , buildState ) ) . join ( ' % ' ) } )`
990+ if ( Array . isArray ( data ) ) return `precoerceNumber (${ data . map ( i => numberCoercion ( i , buildState ) ) . join ( ' % ' ) } )`
991991 return `(${ buildString ( data , buildState ) } ).reduce((a,b) => (+precoerceNumber(a))%(+precoerceNumber(b)))`
992992}
993993
@@ -999,14 +999,14 @@ defaultMethods.in.compile = function (data, buildState) {
999999
10001000// @ts -ignore Allow custom attribute
10011001defaultMethods [ '-' ] . compile = function ( data , buildState ) {
1002- if ( Array . isArray ( data ) ) return `${ data . length === 1 ? '-' : '' } (${ data . map ( i => numberCoercion ( i , buildState ) ) . join ( ' - ' ) } )`
1002+ if ( Array . isArray ( data ) ) return `${ data . length === 1 ? '-' : '' } precoerceNumber (${ data . map ( i => numberCoercion ( i , buildState ) ) . join ( ' - ' ) } )`
10031003 if ( typeof data === 'string' || typeof data === 'number' ) return `(-${ buildString ( data , buildState ) } )`
10041004 return buildState . compile `(Array.isArray(prev = ${ data } ) ? prev.length === 1 ? -precoerceNumber(prev[0]) : prev.reduce((a,b) => (+precoerceNumber(a))-(+precoerceNumber(b))) : -precoerceNumber(prev))`
10051005}
10061006// @ts -ignore Allow custom attribute
10071007defaultMethods [ '/' ] . compile = function ( data , buildState ) {
10081008 if ( Array . isArray ( data ) ) {
1009- return `(${ data . map ( ( i , x ) => {
1009+ return `precoerceNumber (${ data . map ( ( i , x ) => {
10101010 let res = numberCoercion ( i , buildState )
10111011 if ( x && res === '+0' ) precoerceNumber ( NaN )
10121012 if ( x ) res = `precoerceNumber(${ res } || NaN)`
@@ -1017,7 +1017,7 @@ defaultMethods['/'].compile = function (data, buildState) {
10171017}
10181018// @ts -ignore Allow custom attribute
10191019defaultMethods [ '*' ] . compile = function ( data , buildState ) {
1020- if ( Array . isArray ( data ) ) return `(${ data . map ( i => numberCoercion ( i , buildState ) ) . join ( ' * ' ) } )`
1020+ if ( Array . isArray ( data ) ) return `precoerceNumber (${ data . map ( i => numberCoercion ( i , buildState ) ) . join ( ' * ' ) } )`
10211021 return `(${ buildString ( data , buildState ) } ).reduce((a,b) => (+precoerceNumber(a))*(+precoerceNumber(b)))`
10221022}
10231023
0 commit comments