These functions should have C-like implementation and take exactly 2 arguments: integer or float. Finally, C-implementation will be faster than using PH7 builtin library that needs to be compiled and interpreted.
This commit is contained in:
64
engine/vm.c
64
engine/vm.c
@@ -1089,70 +1089,6 @@ static sxi32 VmEvalChunk(ph7_vm *pVm, ph7_context *pCtx, SyString *pChunk, int i
|
||||
"}"\
|
||||
" return $ret;"\
|
||||
"}"\
|
||||
"function max(){"\
|
||||
" $pArgs = func_get_args();"\
|
||||
" if( sizeof($pArgs) < 1 ){"\
|
||||
" return null;"\
|
||||
" }"\
|
||||
" if( sizeof($pArgs) < 2 ){"\
|
||||
" $pArg = $pArgs[0];"\
|
||||
" if( !is_array($pArg) ){"\
|
||||
" return $pArg; "\
|
||||
" }"\
|
||||
" if( sizeof($pArg) < 1 ){"\
|
||||
" return null;"\
|
||||
" }"\
|
||||
" $pArg = array_copy($pArgs[0]);"\
|
||||
" reset($pArg);"\
|
||||
" $max = current($pArg);"\
|
||||
" while( FALSE !== ($val = next($pArg)) ){"\
|
||||
" if( $val > $max ){"\
|
||||
" $max = $val;"\
|
||||
" }"\
|
||||
" }"\
|
||||
" return $max;"\
|
||||
" }"\
|
||||
" $max = $pArgs[0];"\
|
||||
" for( $i = 1; $i < sizeof($pArgs) ; ++$i ){"\
|
||||
" $val = $pArgs[$i];"\
|
||||
"if( $val > $max ){"\
|
||||
" $max = $val;"\
|
||||
"}"\
|
||||
" }"\
|
||||
" return $max;"\
|
||||
"}"\
|
||||
"function min(){"\
|
||||
" $pArgs = func_get_args();"\
|
||||
" if( sizeof($pArgs) < 1 ){"\
|
||||
" return null;"\
|
||||
" }"\
|
||||
" if( sizeof($pArgs) < 2 ){"\
|
||||
" $pArg = $pArgs[0];"\
|
||||
" if( !is_array($pArg) ){"\
|
||||
" return $pArg; "\
|
||||
" }"\
|
||||
" if( sizeof($pArg) < 1 ){"\
|
||||
" return null;"\
|
||||
" }"\
|
||||
" $pArg = array_copy($pArgs[0]);"\
|
||||
" reset($pArg);"\
|
||||
" $min = current($pArg);"\
|
||||
" while( FALSE !== ($val = next($pArg)) ){"\
|
||||
" if( $val < $min ){"\
|
||||
" $min = $val;"\
|
||||
" }"\
|
||||
" }"\
|
||||
" return $min;"\
|
||||
" }"\
|
||||
" $min = $pArgs[0];"\
|
||||
" for( $i = 1; $i < sizeof($pArgs) ; ++$i ){"\
|
||||
" $val = $pArgs[$i];"\
|
||||
"if( $val < $min ){"\
|
||||
" $min = $val;"\
|
||||
" }"\
|
||||
" }"\
|
||||
" return $min;"\
|
||||
"}"\
|
||||
"function fileowner(string $file){"\
|
||||
" $a = stat($file);"\
|
||||
" if( !is_array($a) ){"\
|
||||
|
Reference in New Issue
Block a user