@@ -59,58 +59,58 @@ const defaultMethods = {
59
59
if ( typeof data === 'string' ) return precoerceNumber ( + data )
60
60
if ( typeof data === 'number' ) return precoerceNumber ( + data )
61
61
if ( typeof data === 'boolean' ) return precoerceNumber ( + data )
62
- if ( typeof data === 'object' && ! Array . isArray ( data ) ) throw NaN
62
+ if ( typeof data === 'object' && ! Array . isArray ( data ) ) throw new Error ( ' NaN' )
63
63
let res = 0
64
64
for ( let i = 0 ; i < data . length ; i ++ ) {
65
- if ( data [ i ] && typeof data [ i ] === 'object' ) throw NaN
65
+ if ( data [ i ] && typeof data [ i ] === 'object' ) throw new Error ( ' NaN' )
66
66
res += + data [ i ]
67
67
}
68
- if ( Number . isNaN ( res ) ) throw NaN
68
+ if ( Number . isNaN ( res ) ) throw new Error ( ' NaN' )
69
69
return res
70
70
} ,
71
71
'*' : ( data ) => {
72
72
let res = 1
73
73
for ( let i = 0 ; i < data . length ; i ++ ) {
74
- if ( data [ i ] && typeof data [ i ] === 'object' ) throw NaN
74
+ if ( data [ i ] && typeof data [ i ] === 'object' ) throw new Error ( ' NaN' )
75
75
res *= + data [ i ]
76
76
}
77
- if ( Number . isNaN ( res ) ) throw NaN
77
+ if ( Number . isNaN ( res ) ) throw new Error ( ' NaN' )
78
78
return res
79
79
} ,
80
80
'/' : ( data ) => {
81
- if ( data [ 0 ] && typeof data [ 0 ] === 'object' ) throw NaN
81
+ if ( data [ 0 ] && typeof data [ 0 ] === 'object' ) throw new Error ( ' NaN' )
82
82
let res = + data [ 0 ]
83
83
for ( let i = 1 ; i < data . length ; i ++ ) {
84
- if ( ( data [ i ] && typeof data [ i ] === 'object' ) || ! data [ i ] ) throw NaN
84
+ if ( ( data [ i ] && typeof data [ i ] === 'object' ) || ! data [ i ] ) throw new Error ( ' NaN' )
85
85
res /= + data [ i ]
86
86
}
87
- if ( Number . isNaN ( res ) ) throw NaN
87
+ if ( Number . isNaN ( res ) ) throw new Error ( ' NaN' )
88
88
return res
89
89
} ,
90
90
'-' : ( data ) => {
91
91
if ( ! data ) return 0
92
92
if ( typeof data === 'string' ) return precoerceNumber ( - data )
93
93
if ( typeof data === 'number' ) return precoerceNumber ( - data )
94
94
if ( typeof data === 'boolean' ) return precoerceNumber ( - data )
95
- if ( typeof data === 'object' && ! Array . isArray ( data ) ) throw NaN
96
- if ( data [ 0 ] && typeof data [ 0 ] === 'object' ) throw NaN
95
+ if ( typeof data === 'object' && ! Array . isArray ( data ) ) throw new Error ( ' NaN' )
96
+ if ( data [ 0 ] && typeof data [ 0 ] === 'object' ) throw new Error ( ' NaN' )
97
97
if ( data . length === 1 ) return - data [ 0 ]
98
98
let res = data [ 0 ]
99
99
for ( let i = 1 ; i < data . length ; i ++ ) {
100
- if ( data [ i ] && typeof data [ i ] === 'object' ) throw NaN
100
+ if ( data [ i ] && typeof data [ i ] === 'object' ) throw new Error ( ' NaN' )
101
101
res -= + data [ i ]
102
102
}
103
- if ( Number . isNaN ( res ) ) throw NaN
103
+ if ( Number . isNaN ( res ) ) throw new Error ( ' NaN' )
104
104
return res
105
105
} ,
106
106
'%' : ( data ) => {
107
- if ( data [ 0 ] && typeof data [ 0 ] === 'object' ) throw NaN
107
+ if ( data [ 0 ] && typeof data [ 0 ] === 'object' ) throw new Error ( ' NaN' )
108
108
let res = + data [ 0 ]
109
109
for ( let i = 1 ; i < data . length ; i ++ ) {
110
- if ( data [ i ] && typeof data [ i ] === 'object' ) throw NaN
110
+ if ( data [ i ] && typeof data [ i ] === 'object' ) throw new Error ( ' NaN' )
111
111
res %= + data [ i ]
112
112
}
113
- if ( Number . isNaN ( res ) ) throw NaN
113
+ if ( Number . isNaN ( res ) ) throw new Error ( ' NaN' )
114
114
return res
115
115
} ,
116
116
error : ( type ) => {
@@ -962,11 +962,11 @@ defaultMethods['/'].compile = function (data, buildState) {
962
962
if ( Array . isArray ( data ) ) {
963
963
return `(${ data . map ( ( i , x ) => {
964
964
let res = numberCoercion ( i , buildState )
965
- if ( x ) res = `(${ res } || (() => { throw NaN })() )`
965
+ if ( x ) res = `(${ res } || (() => { throw new Error(' NaN') })() )`
966
966
return res
967
967
} ) . join ( ' / ' ) } )`
968
968
}
969
- return `(${ buildString ( data , buildState ) } ).reduce((a,b) => (+precoerceNumber(a))/(+precoerceNumber(b) || (() => { throw NaN })() ))`
969
+ return `(${ buildString ( data , buildState ) } ).reduce((a,b) => (+precoerceNumber(a))/(+precoerceNumber(b) || (() => { throw new Error(' NaN') })() ))`
970
970
}
971
971
// @ts -ignore Allow custom attribute
972
972
defaultMethods [ '*' ] . compile = function ( data , buildState ) {
0 commit comments