@@ -980,14 +980,14 @@ function numberCoercion (i, buildState) {
980
980
981
981
// @ts -ignore Allow custom attribute
982
982
defaultMethods [ '+' ] . 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 ( ' + ' ) } )`
984
984
if ( typeof data === 'string' || typeof data === 'number' || typeof data === 'boolean' ) return `precoerceNumber(+${ buildString ( data , buildState ) } )`
985
985
return buildState . compile `(Array.isArray(prev = ${ data } ) ? prev.reduce((a,b) => (+a)+(+precoerceNumber(b)), 0) : +precoerceNumber(prev))`
986
986
}
987
987
988
988
// @ts -ignore Allow custom attribute
989
989
defaultMethods [ '%' ] . 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 ( ' % ' ) } )`
991
991
return `(${ buildString ( data , buildState ) } ).reduce((a,b) => (+precoerceNumber(a))%(+precoerceNumber(b)))`
992
992
}
993
993
@@ -999,14 +999,14 @@ defaultMethods.in.compile = function (data, buildState) {
999
999
1000
1000
// @ts -ignore Allow custom attribute
1001
1001
defaultMethods [ '-' ] . 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 ( ' - ' ) } )`
1003
1003
if ( typeof data === 'string' || typeof data === 'number' ) return `(-${ buildString ( data , buildState ) } )`
1004
1004
return buildState . compile `(Array.isArray(prev = ${ data } ) ? prev.length === 1 ? -precoerceNumber(prev[0]) : prev.reduce((a,b) => (+precoerceNumber(a))-(+precoerceNumber(b))) : -precoerceNumber(prev))`
1005
1005
}
1006
1006
// @ts -ignore Allow custom attribute
1007
1007
defaultMethods [ '/' ] . compile = function ( data , buildState ) {
1008
1008
if ( Array . isArray ( data ) ) {
1009
- return `(${ data . map ( ( i , x ) => {
1009
+ return `precoerceNumber (${ data . map ( ( i , x ) => {
1010
1010
let res = numberCoercion ( i , buildState )
1011
1011
if ( x && res === '+0' ) precoerceNumber ( NaN )
1012
1012
if ( x ) res = `precoerceNumber(${ res } || NaN)`
@@ -1017,7 +1017,7 @@ defaultMethods['/'].compile = function (data, buildState) {
1017
1017
}
1018
1018
// @ts -ignore Allow custom attribute
1019
1019
defaultMethods [ '*' ] . 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 ( ' * ' ) } )`
1021
1021
return `(${ buildString ( data , buildState ) } ).reduce((a,b) => (+precoerceNumber(a))*(+precoerceNumber(b)))`
1022
1022
}
1023
1023
0 commit comments