Skip to content

Commit 57c757f

Browse files
committed
Function arity: use f.l everywhere
1 parent bba0c99 commit 57c757f

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

runtime/jslib.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,15 +375,15 @@ function caml_js_wrap_meth_callback_unsafe(f) {
375375
//Provides: caml_js_function_arity
376376
//If: !effects
377377
function caml_js_function_arity(f) {
378-
return f.length
378+
return (f.l >= 0)?f.l:(f.l = f.length)
379379
}
380380

381381
//Provides: caml_js_function_arity
382382
//If: effects
383383
function caml_js_function_arity(f) {
384384
// Functions have an additional continuation parameter. This should
385385
// not be visible when calling them from JavaScript
386-
return f.length - 1
386+
return ((f.l >= 0)?f.l:(f.l = f.length)) - 1
387387
}
388388

389389
//Provides: caml_js_equals mutable (const, const)

runtime/stdlib.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ function caml_call_gen(f, args) {
2525
return caml_call_gen(f.fun, args);
2626
//FIXME, can happen with too many arguments
2727
if(typeof f !== "function") return f;
28-
var n = f.length | 0;
28+
var n = (f.l >= 0)?f.l:(f.l = f.length);
2929
if(n === 0) return f.apply(null,args);
3030
var argsLen = args.length | 0;
3131
var d = n - argsLen | 0;
@@ -76,7 +76,7 @@ function caml_call_gen(f, args) {
7676
if (f.fun)
7777
return caml_call_gen(f.fun, args);
7878
if (typeof f !== "function") return args[args.length-1](f);
79-
var n = f.length | 0;
79+
var n = (f.l >= 0)?f.l:(f.l = f.length);
8080
if (n === 0) return f.apply(null, args);
8181
var argsLen = args.length | 0;
8282
var d = n - argsLen | 0;

runtime/stdlib_modern.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function caml_call_gen(f, args) {
2323
return caml_call_gen(f.fun, args);
2424
//FIXME, can happen with too many arguments
2525
if(typeof f !== "function") return f;
26-
var n = f.length | 0;
26+
var n = (f.l >= 0)?f.l:(f.l = f.length);
2727
if(n === 0) return f(...args);
2828
var argsLen = args.length | 0;
2929
var d = n - argsLen | 0;
@@ -74,7 +74,7 @@ function caml_call_gen(f, args) {
7474
return caml_call_gen(f.fun, args);
7575
//FIXME, can happen with too many arguments
7676
if(typeof f !== "function") return args[args.length-1](f);
77-
var n = f.length | 0;
77+
var n = (f.l >= 0)?f.l:(f.l = f.length);
7878
if(n === 0) return f(...args);
7979
var argsLen = args.length | 0;
8080
var d = n - argsLen | 0;

0 commit comments

Comments
 (0)