@@ -53,18 +53,23 @@ var i$ffiWrap = function(fid,oldbase,myoldbase) {
53 return function() {
53 return function() {
54 i$callstack = [];
54 i$callstack = [];
56− i$valstack_top += arguments.length;
56+ var res = fid;
57− i$valstack[i$valstack_top] = fid
57+
58− for (var i = 1; i <= arguments.length; ++i)
58+ for(var i = 0; i < arguments.length; ++i) {
59+ while (res instanceof i$CON) {
59− i$valstack[i$valstack_top + i] = arguments[i - 1];
61+ i$valstack[i$valstack_top] = res;
62+ i$valstack[i$valstack_top + 1] = arguments[i];
60− i$SLIDE(arguments.length + 1);
63+ i$SLIDE(2);
61−
64+ i$valstack_top = i$valstack_base + 2;
62− fid.app(oldbase,myoldbase);
65+ i$CALL(_idris__123_APPLY0_125_,[oldbase])
64− while (i$callstack.length) {
66+ while (i$callstack.length) {
65− var func = i$callstack.pop();
67+ var func = i$callstack.pop();
66− var args = i$callstack.pop();
68+ var args = i$callstack.pop();
67− func.apply(this,args);
69+ func.apply(this,args);
70 i$callstack = i$vm.callstack;
75 i$callstack = i$vm.callstack;