@@ -300,14 +300,15 @@ export function configurePrecision (engine, constructor, compatible = true) {
300300 let overflow = 0
301301 for ( let i = 0 ; i < data . length ; i ++ ) {
302302 const item = + data [ i ]
303- if ( Number . isInteger ( data [ i ] ) ) res += item
303+ if ( Number . isInteger ( item ) ) res += item
304304 else {
305305 res += item | 0
306306 overflow += + ( '0.' + item . toString ( ) . split ( '.' ) [ 1 ] ) * 1e6
307307 }
308308 }
309+
309310 return res + ( overflow / 1e6 )
310- } , { deterministic : true , sync : true } )
311+ } , { deterministic : true , sync : true , optimizeUnary : true } )
311312
312313 engine . addMethod ( '*' , ( data ) => {
313314 const SCALE_FACTOR = 1e6 // Fixed scale for precision
@@ -344,14 +345,14 @@ export function configurePrecision (engine, constructor, compatible = true) {
344345 let overflow = 0
345346 for ( let i = 1 ; i < data . length ; i ++ ) {
346347 const item = + data [ i ]
347- if ( Number . isInteger ( data [ i ] ) ) res -= item
348+ if ( Number . isInteger ( item ) ) res -= item
348349 else {
349350 res -= item | 0
350351 overflow += + ( '0.' + item . toString ( ) . split ( '.' ) [ 1 ] ) * 1e6
351352 }
352353 }
353354 return res - ( overflow / 1e6 )
354- } , { deterministic : true , sync : true } )
355+ } , { deterministic : true , sync : true , optimizeUnary : true } )
355356
356357 engine . addMethod ( '%' , ( data ) => {
357358 let res = data [ 0 ]
0 commit comments