@@ -379,12 +379,8 @@ function caml_ojs_new_arr(c, a) {
379379//Provides: caml_js_wrap_callback const (const)
380380//Requires: caml_callback
381381function caml_js_wrap_callback ( f ) {
382- return function ( ) {
383- var len = arguments . length ;
384- if ( len > 0 ) {
385- var args = new Array ( len ) ;
386- for ( var i = 0 ; i < len ; i ++ ) args [ i ] = arguments [ i ] ;
387- } else {
382+ return function ( ...args ) {
383+ if ( args . length === 0 ) {
388384 args = [ undefined ] ;
389385 }
390386 var res = caml_callback ( f , args ) ;
@@ -395,75 +391,59 @@ function caml_js_wrap_callback(f) {
395391//Provides: caml_js_wrap_callback_arguments
396392//Requires: caml_callback
397393function caml_js_wrap_callback_arguments ( f ) {
398- return function ( ) {
399- var len = arguments . length ;
400- var args = new Array ( len ) ;
401- for ( var i = 0 ; i < len ; i ++ ) args [ i ] = arguments [ i ] ;
394+ return function ( ...args ) {
402395 return caml_callback ( f , [ args ] ) ;
403396 } ;
404397}
405398//Provides: caml_js_wrap_callback_strict const
406399//Requires: caml_callback
407400function caml_js_wrap_callback_strict ( arity , f ) {
408- return function ( ) {
409- var n = arguments . length ;
410- var args = new Array ( arity ) ;
411- var len = Math . min ( arguments . length , arity ) ;
412- for ( var i = 0 ; i < len ; i ++ ) args [ i ] = arguments [ i ] ;
401+ return function ( ...args ) {
402+ args . length = arity ;
413403 return caml_callback ( f , args ) ;
414404 } ;
415405}
416406//Provides: caml_js_wrap_callback_unsafe const (const)
417407//Requires: caml_callback, caml_js_function_arity
418408function caml_js_wrap_callback_unsafe ( f ) {
419- return function ( ) {
409+ return function ( ... args ) {
420410 var len = caml_js_function_arity ( f ) ;
421- var args = new Array ( len ) ;
422- for ( var i = 0 ; i < len ; i ++ ) args [ i ] = arguments [ i ] ;
411+ args . length = len ;
423412 return caml_callback ( f , args ) ;
424413 } ;
425414}
426415//Provides: caml_js_wrap_meth_callback const (const)
427416//Requires: caml_callback, caml_js_wrap_callback
428417function caml_js_wrap_meth_callback ( f ) {
429- return function ( ) {
430- var len = arguments . length ;
431- var args = new Array ( len + 1 ) ;
432- args [ 0 ] = this ;
433- for ( var i = 0 ; i < len ; i ++ ) args [ i + 1 ] = arguments [ i ] ;
418+ return function ( ...args ) {
419+ args . unshift ( this ) ;
434420 var res = caml_callback ( f , args ) ;
435421 return res instanceof Function ? caml_js_wrap_callback ( res ) : res ;
436422 } ;
437423}
438424//Provides: caml_js_wrap_meth_callback_arguments const (const)
439425//Requires: caml_callback
440426function caml_js_wrap_meth_callback_arguments ( f ) {
441- return function ( ) {
442- var len = arguments . length ;
443- var args = new Array ( len ) ;
444- for ( var i = 0 ; i < len ; i ++ ) args [ i ] = arguments [ i ] ;
427+ return function ( ...args ) {
445428 return caml_callback ( f , [ this , args ] ) ;
446429 } ;
447430}
448431//Provides: caml_js_wrap_meth_callback_strict const
449432//Requires: caml_callback
450433function caml_js_wrap_meth_callback_strict ( arity , f ) {
451- return function ( ) {
452- var args = new Array ( arity + 1 ) ;
453- var len = Math . min ( arguments . length , arity ) ;
454- args [ 0 ] = this ;
455- for ( var i = 0 ; i < len ; i ++ ) args [ i + 1 ] = arguments [ i ] ;
434+ return function ( ...args ) {
435+ args . length = arity ;
436+ args . unshift ( this ) ;
456437 return caml_callback ( f , args ) ;
457438 } ;
458439}
459440//Provides: caml_js_wrap_meth_callback_unsafe const (const)
460441//Requires: caml_callback, caml_js_function_arity
461442function caml_js_wrap_meth_callback_unsafe ( f ) {
462- return function ( ) {
463- var len = caml_js_function_arity ( f ) - 1 ;
464- var args = new Array ( len + 1 ) ;
465- args [ 0 ] = this ;
466- for ( var i = 0 ; i < len ; i ++ ) args [ i + 1 ] = arguments [ i ] ;
443+ return function ( ...args ) {
444+ var len = caml_js_function_arity ( f ) ;
445+ args . unshift ( this ) ;
446+ args . length = len ;
467447 return caml_callback ( f , args ) ;
468448 } ;
469449}
0 commit comments