diff --git a/src/library_syscall.js b/src/library_syscall.js index edf8e9d69b7ef..5d94cd8ef55a6 100644 --- a/src/library_syscall.js +++ b/src/library_syscall.js @@ -1208,6 +1208,18 @@ function wrapSyscallFunction(x, library, isWasi) { var bodyEnd = t.lastIndexOf('}'); t = t.substring(0, bodyEnd) + post + t.substring(bodyEnd); } + + if (MEMORY64 && !isWasi) { + t = modifyFunction(t, function(name, args, body) { + var argnums = args.split(",").map((a) => 'Number(' + a + ')').join(); + return 'function ' + name + '(' + args + ') {\n' + + ' return BigInt((function ' + name + '_inner(' + args + ') {\n' + + body + + ' })(' + argnums + '));' + + '}'; + }); + } + library[x] = eval('(' + t + ')'); if (!library[x + '__deps']) library[x + '__deps'] = []; library[x + '__deps'].push('$SYSCALLS');