@php-wasm/web-5-2 3.1.62 → 3.1.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asyncify/5_2_17/php_5_2.wasm +0 -0
- package/asyncify/php_5_2.js +298 -230
- package/jspi/5_2_17/php_5_2.wasm +0 -0
- package/jspi/php_5_2.js +185 -107
- package/package.json +3 -3
|
Binary file
|
package/asyncify/php_5_2.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const dependencyFilename = new URL('./5_2_17/php_5_2.wasm', import.meta.url)
|
|
2
2
|
.href;
|
|
3
3
|
export { dependencyFilename };
|
|
4
|
-
export const dependenciesTotalSize =
|
|
4
|
+
export const dependenciesTotalSize = 9783633;
|
|
5
5
|
const phpVersionString = '5.2.17';
|
|
6
6
|
export function init(RuntimeName, PHPLoader) {
|
|
7
7
|
// The rest of the code comes from the built php.js file and esm-suffix.js
|
|
@@ -5202,8 +5202,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5202
5202
|
wakeUp(-ERRNO_CODES.ECONNREFUSED);
|
|
5203
5203
|
return;
|
|
5204
5204
|
}
|
|
5205
|
-
// Wait for the connection to be established. A zero timeval
|
|
5206
|
-
// disables the timeout, matching SO_SNDTIMEO semantics.
|
|
5207
5205
|
const sendTimeout = PHPWASM.socketTimeouts.get(sockfd)?.send;
|
|
5208
5206
|
const timeout = sendTimeout ?? 3e4;
|
|
5209
5207
|
let resolved = false;
|
|
@@ -5214,7 +5212,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5214
5212
|
const peer = PHPWASM.getAllPeers(sock).find(
|
|
5215
5213
|
(candidate) => candidate.socket === ws
|
|
5216
5214
|
);
|
|
5217
|
-
|
|
5218
5215
|
const cleanupConnectListeners = () => {
|
|
5219
5216
|
if (typeof timeoutId !== 'undefined') {
|
|
5220
5217
|
clearTimeout(timeoutId);
|
|
@@ -5223,7 +5220,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5223
5220
|
ws.removeEventListener('error', handleError);
|
|
5224
5221
|
ws.removeEventListener('close', handleClose);
|
|
5225
5222
|
};
|
|
5226
|
-
|
|
5227
5223
|
const cleanupFailedConnect = (errno) => {
|
|
5228
5224
|
try {
|
|
5229
5225
|
if (
|
|
@@ -5232,16 +5228,13 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5232
5228
|
) {
|
|
5233
5229
|
ws.close();
|
|
5234
5230
|
}
|
|
5235
|
-
} catch (e) {
|
|
5236
|
-
// Ignore close errors on an already-failed connect.
|
|
5237
|
-
}
|
|
5231
|
+
} catch (e) {}
|
|
5238
5232
|
if (peer) {
|
|
5239
5233
|
SOCKFS.websocket_sock_ops.removePeer(sock, peer);
|
|
5240
5234
|
}
|
|
5241
5235
|
sock.connecting = false;
|
|
5242
5236
|
sock.error = errno;
|
|
5243
5237
|
};
|
|
5244
|
-
|
|
5245
5238
|
const finishConnect = (result) => {
|
|
5246
5239
|
if (!resolved) {
|
|
5247
5240
|
resolved = true;
|
|
@@ -5252,21 +5245,17 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5252
5245
|
wakeUp(result);
|
|
5253
5246
|
}
|
|
5254
5247
|
};
|
|
5255
|
-
|
|
5256
5248
|
if (timeout > 0) {
|
|
5257
5249
|
timeoutId = setTimeout(() => {
|
|
5258
5250
|
finishConnect(-ERRNO_CODES.ETIMEDOUT);
|
|
5259
5251
|
}, timeout);
|
|
5260
5252
|
}
|
|
5261
|
-
|
|
5262
5253
|
handleOpen = () => {
|
|
5263
5254
|
finishConnect(0);
|
|
5264
5255
|
};
|
|
5265
|
-
|
|
5266
5256
|
handleError = () => {
|
|
5267
5257
|
finishConnect(-ERRNO_CODES.ECONNREFUSED);
|
|
5268
5258
|
};
|
|
5269
|
-
|
|
5270
5259
|
handleClose = () => {
|
|
5271
5260
|
finishConnect(-ERRNO_CODES.ECONNREFUSED);
|
|
5272
5261
|
};
|
|
@@ -6522,6 +6511,13 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
6522
6511
|
return false;
|
|
6523
6512
|
};
|
|
6524
6513
|
_emscripten_resize_heap.sig = 'ip';
|
|
6514
|
+
var runAndAbortIfError = (func) => {
|
|
6515
|
+
try {
|
|
6516
|
+
return func();
|
|
6517
|
+
} catch (e) {
|
|
6518
|
+
abort(e);
|
|
6519
|
+
}
|
|
6520
|
+
};
|
|
6525
6521
|
var runtimeKeepalivePush = () => {
|
|
6526
6522
|
runtimeKeepaliveCounter += 1;
|
|
6527
6523
|
};
|
|
@@ -6530,6 +6526,193 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
6530
6526
|
runtimeKeepaliveCounter -= 1;
|
|
6531
6527
|
};
|
|
6532
6528
|
runtimeKeepalivePop.sig = 'v';
|
|
6529
|
+
var Asyncify = {
|
|
6530
|
+
instrumentWasmImports(imports) {
|
|
6531
|
+
var importPattern =
|
|
6532
|
+
/^(invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_iij|invoke_iiji|invoke_iiij|invoke_iijii|invoke_iijiji|invoke_jii|invoke_jiii|invoke_viijii|invoke_vji|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|__syscall_fcntl64|___syscall_fcntl64|_asyncjs___syscall_fcntl64|js_release_file_locks|_js_release_file_locks|_async_js_release_file_locks|js_flock|_js_flock|_async_js_flock|js_fd_read|_js_fd_read|fd_close|_fd_close|_asyncjs__fd_close|close|_close|js_module_onMessage|zend_hash_str_find|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|_wasm_shutdown|_asyncjs__wasm_shutdown|recv|_recv|setsockopt|_setsockopt|wasm_connect|_wasm_connect|__asyncjs__.*)$/;
|
|
6533
|
+
for (let [x, original] of Object.entries(imports)) {
|
|
6534
|
+
if (typeof original == 'function') {
|
|
6535
|
+
let isAsyncifyImport =
|
|
6536
|
+
original.isAsync || importPattern.test(x);
|
|
6537
|
+
}
|
|
6538
|
+
}
|
|
6539
|
+
},
|
|
6540
|
+
instrumentFunction(original) {
|
|
6541
|
+
var wrapper = (...args) => {
|
|
6542
|
+
Asyncify.exportCallStack.push(original);
|
|
6543
|
+
try {
|
|
6544
|
+
return original(...args);
|
|
6545
|
+
} finally {
|
|
6546
|
+
if (!ABORT) {
|
|
6547
|
+
var top = Asyncify.exportCallStack.pop();
|
|
6548
|
+
Asyncify.maybeStopUnwind();
|
|
6549
|
+
}
|
|
6550
|
+
}
|
|
6551
|
+
};
|
|
6552
|
+
Asyncify.funcWrappers.set(original, wrapper);
|
|
6553
|
+
wrapper.orig = original;
|
|
6554
|
+
return wrapper;
|
|
6555
|
+
},
|
|
6556
|
+
instrumentWasmExports(exports) {
|
|
6557
|
+
var ret = {};
|
|
6558
|
+
for (let [x, original] of Object.entries(exports)) {
|
|
6559
|
+
if (typeof original == 'function') {
|
|
6560
|
+
var wrapper = Asyncify.instrumentFunction(original);
|
|
6561
|
+
ret[x] = wrapper;
|
|
6562
|
+
} else {
|
|
6563
|
+
ret[x] = original;
|
|
6564
|
+
}
|
|
6565
|
+
}
|
|
6566
|
+
return ret;
|
|
6567
|
+
},
|
|
6568
|
+
State: { Normal: 0, Unwinding: 1, Rewinding: 2, Disabled: 3 },
|
|
6569
|
+
state: 0,
|
|
6570
|
+
StackSize: 4096,
|
|
6571
|
+
currData: null,
|
|
6572
|
+
handleSleepReturnValue: 0,
|
|
6573
|
+
exportCallStack: [],
|
|
6574
|
+
callstackFuncToId: new Map(),
|
|
6575
|
+
callStackIdToFunc: new Map(),
|
|
6576
|
+
funcWrappers: new Map(),
|
|
6577
|
+
callStackId: 0,
|
|
6578
|
+
asyncPromiseHandlers: null,
|
|
6579
|
+
sleepCallbacks: [],
|
|
6580
|
+
getCallStackId(func) {
|
|
6581
|
+
if (!Asyncify.callstackFuncToId.has(func)) {
|
|
6582
|
+
var id = Asyncify.callStackId++;
|
|
6583
|
+
Asyncify.callstackFuncToId.set(func, id);
|
|
6584
|
+
Asyncify.callStackIdToFunc.set(id, func);
|
|
6585
|
+
}
|
|
6586
|
+
return Asyncify.callstackFuncToId.get(func);
|
|
6587
|
+
},
|
|
6588
|
+
maybeStopUnwind() {
|
|
6589
|
+
if (
|
|
6590
|
+
Asyncify.currData &&
|
|
6591
|
+
Asyncify.state === Asyncify.State.Unwinding &&
|
|
6592
|
+
Asyncify.exportCallStack.length === 0
|
|
6593
|
+
) {
|
|
6594
|
+
Asyncify.state = Asyncify.State.Normal;
|
|
6595
|
+
runtimeKeepalivePush();
|
|
6596
|
+
runAndAbortIfError(_asyncify_stop_unwind);
|
|
6597
|
+
if (typeof Fibers != 'undefined') {
|
|
6598
|
+
Fibers.trampoline();
|
|
6599
|
+
}
|
|
6600
|
+
}
|
|
6601
|
+
},
|
|
6602
|
+
whenDone() {
|
|
6603
|
+
return new Promise((resolve, reject) => {
|
|
6604
|
+
Asyncify.asyncPromiseHandlers = { resolve, reject };
|
|
6605
|
+
});
|
|
6606
|
+
},
|
|
6607
|
+
allocateData() {
|
|
6608
|
+
var ptr = _malloc(12 + Asyncify.StackSize);
|
|
6609
|
+
Asyncify.setDataHeader(ptr, ptr + 12, Asyncify.StackSize);
|
|
6610
|
+
Asyncify.setDataRewindFunc(ptr);
|
|
6611
|
+
return ptr;
|
|
6612
|
+
},
|
|
6613
|
+
setDataHeader(ptr, stack, stackSize) {
|
|
6614
|
+
HEAPU32[ptr >> 2] = stack;
|
|
6615
|
+
HEAPU32[(ptr + 4) >> 2] = stack + stackSize;
|
|
6616
|
+
},
|
|
6617
|
+
setDataRewindFunc(ptr) {
|
|
6618
|
+
var bottomOfCallStack = Asyncify.exportCallStack[0];
|
|
6619
|
+
var rewindId = Asyncify.getCallStackId(bottomOfCallStack);
|
|
6620
|
+
HEAP32[(ptr + 8) >> 2] = rewindId;
|
|
6621
|
+
},
|
|
6622
|
+
getDataRewindFunc(ptr) {
|
|
6623
|
+
var id = HEAP32[(ptr + 8) >> 2];
|
|
6624
|
+
var func = Asyncify.callStackIdToFunc.get(id);
|
|
6625
|
+
return func;
|
|
6626
|
+
},
|
|
6627
|
+
doRewind(ptr) {
|
|
6628
|
+
var original = Asyncify.getDataRewindFunc(ptr);
|
|
6629
|
+
var func = Asyncify.funcWrappers.get(original);
|
|
6630
|
+
runtimeKeepalivePop();
|
|
6631
|
+
return func();
|
|
6632
|
+
},
|
|
6633
|
+
handleSleep(startAsync) {
|
|
6634
|
+
if (ABORT) return;
|
|
6635
|
+
if (Asyncify.state === Asyncify.State.Normal) {
|
|
6636
|
+
var reachedCallback = false;
|
|
6637
|
+
var reachedAfterCallback = false;
|
|
6638
|
+
startAsync((handleSleepReturnValue = 0) => {
|
|
6639
|
+
if (ABORT) return;
|
|
6640
|
+
Asyncify.handleSleepReturnValue = handleSleepReturnValue;
|
|
6641
|
+
reachedCallback = true;
|
|
6642
|
+
if (!reachedAfterCallback) {
|
|
6643
|
+
return;
|
|
6644
|
+
}
|
|
6645
|
+
Asyncify.state = Asyncify.State.Rewinding;
|
|
6646
|
+
runAndAbortIfError(() =>
|
|
6647
|
+
_asyncify_start_rewind(Asyncify.currData)
|
|
6648
|
+
);
|
|
6649
|
+
if (typeof MainLoop != 'undefined' && MainLoop.func) {
|
|
6650
|
+
MainLoop.resume();
|
|
6651
|
+
}
|
|
6652
|
+
var asyncWasmReturnValue,
|
|
6653
|
+
isError = false;
|
|
6654
|
+
try {
|
|
6655
|
+
asyncWasmReturnValue = Asyncify.doRewind(
|
|
6656
|
+
Asyncify.currData
|
|
6657
|
+
);
|
|
6658
|
+
} catch (err) {
|
|
6659
|
+
asyncWasmReturnValue = err;
|
|
6660
|
+
isError = true;
|
|
6661
|
+
}
|
|
6662
|
+
var handled = false;
|
|
6663
|
+
if (!Asyncify.currData) {
|
|
6664
|
+
var asyncPromiseHandlers =
|
|
6665
|
+
Asyncify.asyncPromiseHandlers;
|
|
6666
|
+
if (asyncPromiseHandlers) {
|
|
6667
|
+
Asyncify.asyncPromiseHandlers = null;
|
|
6668
|
+
(isError
|
|
6669
|
+
? asyncPromiseHandlers.reject
|
|
6670
|
+
: asyncPromiseHandlers.resolve)(
|
|
6671
|
+
asyncWasmReturnValue
|
|
6672
|
+
);
|
|
6673
|
+
handled = true;
|
|
6674
|
+
}
|
|
6675
|
+
}
|
|
6676
|
+
if (isError && !handled) {
|
|
6677
|
+
throw asyncWasmReturnValue;
|
|
6678
|
+
}
|
|
6679
|
+
});
|
|
6680
|
+
reachedAfterCallback = true;
|
|
6681
|
+
if (!reachedCallback) {
|
|
6682
|
+
Asyncify.state = Asyncify.State.Unwinding;
|
|
6683
|
+
if (!Asyncify._cachedData) {
|
|
6684
|
+
Asyncify._cachedData = Asyncify.allocateData();
|
|
6685
|
+
} else {
|
|
6686
|
+
Asyncify.setDataHeader(
|
|
6687
|
+
Asyncify._cachedData,
|
|
6688
|
+
Asyncify._cachedData + 12,
|
|
6689
|
+
Asyncify.StackSize
|
|
6690
|
+
);
|
|
6691
|
+
Asyncify.setDataRewindFunc(Asyncify._cachedData);
|
|
6692
|
+
}
|
|
6693
|
+
Asyncify.currData = Asyncify._cachedData;
|
|
6694
|
+
if (typeof MainLoop != 'undefined' && MainLoop.func) {
|
|
6695
|
+
MainLoop.pause();
|
|
6696
|
+
}
|
|
6697
|
+
runAndAbortIfError(() =>
|
|
6698
|
+
_asyncify_start_unwind(Asyncify.currData)
|
|
6699
|
+
);
|
|
6700
|
+
}
|
|
6701
|
+
} else if (Asyncify.state === Asyncify.State.Rewinding) {
|
|
6702
|
+
Asyncify.state = Asyncify.State.Normal;
|
|
6703
|
+
runAndAbortIfError(_asyncify_stop_rewind);
|
|
6704
|
+
Asyncify.currData = null;
|
|
6705
|
+
Asyncify.sleepCallbacks.forEach(callUserCallback);
|
|
6706
|
+
} else {
|
|
6707
|
+
abort(`invalid state: ${Asyncify.state}`);
|
|
6708
|
+
}
|
|
6709
|
+
return Asyncify.handleSleepReturnValue;
|
|
6710
|
+
},
|
|
6711
|
+
handleAsync: (startAsync) =>
|
|
6712
|
+
Asyncify.handleSleep((wakeUp) => {
|
|
6713
|
+
startAsync().then(wakeUp);
|
|
6714
|
+
}),
|
|
6715
|
+
};
|
|
6533
6716
|
var safeSetTimeout = (func, timeout) => {
|
|
6534
6717
|
runtimeKeepalivePush();
|
|
6535
6718
|
return setTimeout(() => {
|
|
@@ -6539,9 +6722,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
6539
6722
|
};
|
|
6540
6723
|
var _emscripten_sleep = function (ms) {
|
|
6541
6724
|
return Asyncify.handleSleep((wakeUp) => {
|
|
6542
|
-
// select() yields between socket reads. Nested zero-delay timers are
|
|
6543
|
-
// clamped by browsers, adding seconds to even a local curl download.
|
|
6544
|
-
// Use a task (not a microtask) so network events still get a turn.
|
|
6545
6725
|
if (ms === 0 && globalThis.scheduler?.postTask) {
|
|
6546
6726
|
runtimeKeepalivePush();
|
|
6547
6727
|
globalThis.scheduler.postTask(() => {
|
|
@@ -6970,13 +7150,11 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
6970
7150
|
envLength
|
|
6971
7151
|
) {
|
|
6972
7152
|
if (!command) {
|
|
6973
|
-
|
|
6974
|
-
return -1;
|
|
7153
|
+
return -ERRNO_CODES.EINVAL;
|
|
6975
7154
|
}
|
|
6976
7155
|
const cmdstr = UTF8ToString(command);
|
|
6977
7156
|
if (!cmdstr.length) {
|
|
6978
|
-
|
|
6979
|
-
return -1;
|
|
7157
|
+
return -ERRNO_CODES.EINVAL;
|
|
6980
7158
|
}
|
|
6981
7159
|
let argsArray = [];
|
|
6982
7160
|
if (argsLength) {
|
|
@@ -7031,13 +7209,11 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7031
7209
|
}
|
|
7032
7210
|
} catch (e) {
|
|
7033
7211
|
if (e.code === 'SPAWN_UNSUPPORTED') {
|
|
7034
|
-
|
|
7035
|
-
return -1;
|
|
7212
|
+
return -ERRNO_CODES.ENOSYS;
|
|
7036
7213
|
}
|
|
7037
7214
|
if (typeof FS == 'undefined' || !(e.name === 'ErrnoError'))
|
|
7038
7215
|
throw e;
|
|
7039
|
-
|
|
7040
|
-
return -1;
|
|
7216
|
+
return -e.errno;
|
|
7041
7217
|
}
|
|
7042
7218
|
const ProcInfo = { pid: cp.pid, exited: false };
|
|
7043
7219
|
PHPWASM.processTable[ProcInfo.pid] = ProcInfo;
|
|
@@ -7048,7 +7224,12 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7048
7224
|
stderrChildFd = std[2]?.child,
|
|
7049
7225
|
stderrParentFd = std[2]?.parent;
|
|
7050
7226
|
const detachPipeDataListeners = [];
|
|
7051
|
-
|
|
7227
|
+
let childPipesClosed = false;
|
|
7228
|
+
const closeChildPipes = function () {
|
|
7229
|
+
if (childPipesClosed) {
|
|
7230
|
+
return;
|
|
7231
|
+
}
|
|
7232
|
+
childPipesClosed = true;
|
|
7052
7233
|
for (const detach of detachPipeDataListeners) {
|
|
7053
7234
|
detach();
|
|
7054
7235
|
}
|
|
@@ -7057,6 +7238,9 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7057
7238
|
FS.close(FS.streams[fd]);
|
|
7058
7239
|
}
|
|
7059
7240
|
}
|
|
7241
|
+
};
|
|
7242
|
+
cp.on('exit', function (code) {
|
|
7243
|
+
closeChildPipes();
|
|
7060
7244
|
ProcInfo.exitCode = code;
|
|
7061
7245
|
ProcInfo.exited = true;
|
|
7062
7246
|
});
|
|
@@ -7136,6 +7320,10 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7136
7320
|
});
|
|
7137
7321
|
} catch (e) {
|
|
7138
7322
|
console.error(e);
|
|
7323
|
+
closeChildPipes();
|
|
7324
|
+
if (!ProcInfo.pid) {
|
|
7325
|
+
return -(ERRNO_CODES[e.code] ?? ERRNO_CODES.ECHILD);
|
|
7326
|
+
}
|
|
7139
7327
|
return ProcInfo.pid;
|
|
7140
7328
|
}
|
|
7141
7329
|
if (stdinChildFd) {
|
|
@@ -7208,16 +7396,49 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7208
7396
|
const interval = setInterval(pump, 20);
|
|
7209
7397
|
pump();
|
|
7210
7398
|
} else {
|
|
7211
|
-
/**
|
|
7212
|
-
* Descriptor 0 was not provided, so the child process must observe EOF.
|
|
7213
|
-
* Closing stdin explicitly lets spawn handlers distinguish that case from
|
|
7214
|
-
* a valid pipe whose first bytes have not arrived yet.
|
|
7215
|
-
*/
|
|
7216
7399
|
cp.stdin.end();
|
|
7217
7400
|
}
|
|
7218
7401
|
return ProcInfo.pid;
|
|
7219
7402
|
});
|
|
7220
7403
|
}
|
|
7404
|
+
function _js_popen_clear_pid_for_fd(fd) {
|
|
7405
|
+
for (const pid in PHPWASM.processTable) {
|
|
7406
|
+
if (PHPWASM.processTable[pid].fd === fd) {
|
|
7407
|
+
delete PHPWASM.processTable[pid].fd;
|
|
7408
|
+
return;
|
|
7409
|
+
}
|
|
7410
|
+
}
|
|
7411
|
+
}
|
|
7412
|
+
function _js_popen_get_pid_for_fd(fd) {
|
|
7413
|
+
for (const pid in PHPWASM.processTable) {
|
|
7414
|
+
if (PHPWASM.processTable[pid].fd === fd) {
|
|
7415
|
+
return PHPWASM.processTable[pid].pid;
|
|
7416
|
+
}
|
|
7417
|
+
}
|
|
7418
|
+
return -1;
|
|
7419
|
+
}
|
|
7420
|
+
function _js_popen_set_pid_for_fd(fd, pid) {
|
|
7421
|
+
if (PHPWASM.processTable[pid]) {
|
|
7422
|
+
PHPWASM.processTable[pid].fd = fd;
|
|
7423
|
+
}
|
|
7424
|
+
}
|
|
7425
|
+
function _js_waitpid(pid, exitCodePtr) {
|
|
7426
|
+
if (!PHPWASM.processTable[pid]) {
|
|
7427
|
+
return -1;
|
|
7428
|
+
}
|
|
7429
|
+
return Asyncify.handleSleep((wakeUp) => {
|
|
7430
|
+
const poll = function () {
|
|
7431
|
+
if (PHPWASM.processTable[pid]?.exited) {
|
|
7432
|
+
HEAPU32[exitCodePtr >> 2] =
|
|
7433
|
+
PHPWASM.processTable[pid].exitCode;
|
|
7434
|
+
wakeUp(pid);
|
|
7435
|
+
} else {
|
|
7436
|
+
setTimeout(poll, 50);
|
|
7437
|
+
}
|
|
7438
|
+
};
|
|
7439
|
+
poll();
|
|
7440
|
+
});
|
|
7441
|
+
}
|
|
7221
7442
|
var arraySum = (array, index) => {
|
|
7222
7443
|
var sum = 0;
|
|
7223
7444
|
for (var i = 0; i <= index; sum += array[i++]) {}
|
|
@@ -7564,200 +7785,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7564
7785
|
ws.setSocketOpt(level, optionName, optionValuePtr);
|
|
7565
7786
|
return 0;
|
|
7566
7787
|
}
|
|
7567
|
-
var runAndAbortIfError = (func) => {
|
|
7568
|
-
try {
|
|
7569
|
-
return func();
|
|
7570
|
-
} catch (e) {
|
|
7571
|
-
abort(e);
|
|
7572
|
-
}
|
|
7573
|
-
};
|
|
7574
|
-
var Asyncify = {
|
|
7575
|
-
instrumentWasmImports(imports) {
|
|
7576
|
-
var importPattern =
|
|
7577
|
-
/^(invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_iij|invoke_iiji|invoke_iiij|invoke_iijii|invoke_iijiji|invoke_jii|invoke_jiii|invoke_viijii|invoke_vji|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|__syscall_fcntl64|___syscall_fcntl64|_asyncjs___syscall_fcntl64|js_release_file_locks|_js_release_file_locks|_async_js_release_file_locks|js_flock|_js_flock|_async_js_flock|js_fd_read|_js_fd_read|fd_close|_fd_close|_asyncjs__fd_close|close|_close|js_module_onMessage|zend_hash_str_find|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|_wasm_shutdown|_asyncjs__wasm_shutdown|recv|_recv|setsockopt|_setsockopt|wasm_connect|_wasm_connect|__asyncjs__.*)$/;
|
|
7578
|
-
for (let [x, original] of Object.entries(imports)) {
|
|
7579
|
-
if (typeof original == 'function') {
|
|
7580
|
-
let isAsyncifyImport =
|
|
7581
|
-
original.isAsync || importPattern.test(x);
|
|
7582
|
-
}
|
|
7583
|
-
}
|
|
7584
|
-
},
|
|
7585
|
-
instrumentFunction(original) {
|
|
7586
|
-
var wrapper = (...args) => {
|
|
7587
|
-
Asyncify.exportCallStack.push(original);
|
|
7588
|
-
try {
|
|
7589
|
-
return original(...args);
|
|
7590
|
-
} finally {
|
|
7591
|
-
if (!ABORT) {
|
|
7592
|
-
var top = Asyncify.exportCallStack.pop();
|
|
7593
|
-
Asyncify.maybeStopUnwind();
|
|
7594
|
-
}
|
|
7595
|
-
}
|
|
7596
|
-
};
|
|
7597
|
-
Asyncify.funcWrappers.set(original, wrapper);
|
|
7598
|
-
wrapper.orig = original;
|
|
7599
|
-
return wrapper;
|
|
7600
|
-
},
|
|
7601
|
-
instrumentWasmExports(exports) {
|
|
7602
|
-
var ret = {};
|
|
7603
|
-
for (let [x, original] of Object.entries(exports)) {
|
|
7604
|
-
if (typeof original == 'function') {
|
|
7605
|
-
var wrapper = Asyncify.instrumentFunction(original);
|
|
7606
|
-
ret[x] = wrapper;
|
|
7607
|
-
} else {
|
|
7608
|
-
ret[x] = original;
|
|
7609
|
-
}
|
|
7610
|
-
}
|
|
7611
|
-
return ret;
|
|
7612
|
-
},
|
|
7613
|
-
State: { Normal: 0, Unwinding: 1, Rewinding: 2, Disabled: 3 },
|
|
7614
|
-
state: 0,
|
|
7615
|
-
StackSize: 4096,
|
|
7616
|
-
currData: null,
|
|
7617
|
-
handleSleepReturnValue: 0,
|
|
7618
|
-
exportCallStack: [],
|
|
7619
|
-
callstackFuncToId: new Map(),
|
|
7620
|
-
callStackIdToFunc: new Map(),
|
|
7621
|
-
funcWrappers: new Map(),
|
|
7622
|
-
callStackId: 0,
|
|
7623
|
-
asyncPromiseHandlers: null,
|
|
7624
|
-
sleepCallbacks: [],
|
|
7625
|
-
getCallStackId(func) {
|
|
7626
|
-
if (!Asyncify.callstackFuncToId.has(func)) {
|
|
7627
|
-
var id = Asyncify.callStackId++;
|
|
7628
|
-
Asyncify.callstackFuncToId.set(func, id);
|
|
7629
|
-
Asyncify.callStackIdToFunc.set(id, func);
|
|
7630
|
-
}
|
|
7631
|
-
return Asyncify.callstackFuncToId.get(func);
|
|
7632
|
-
},
|
|
7633
|
-
maybeStopUnwind() {
|
|
7634
|
-
if (
|
|
7635
|
-
Asyncify.currData &&
|
|
7636
|
-
Asyncify.state === Asyncify.State.Unwinding &&
|
|
7637
|
-
Asyncify.exportCallStack.length === 0
|
|
7638
|
-
) {
|
|
7639
|
-
Asyncify.state = Asyncify.State.Normal;
|
|
7640
|
-
runtimeKeepalivePush();
|
|
7641
|
-
runAndAbortIfError(_asyncify_stop_unwind);
|
|
7642
|
-
if (typeof Fibers != 'undefined') {
|
|
7643
|
-
Fibers.trampoline();
|
|
7644
|
-
}
|
|
7645
|
-
}
|
|
7646
|
-
},
|
|
7647
|
-
whenDone() {
|
|
7648
|
-
return new Promise((resolve, reject) => {
|
|
7649
|
-
Asyncify.asyncPromiseHandlers = { resolve, reject };
|
|
7650
|
-
});
|
|
7651
|
-
},
|
|
7652
|
-
allocateData() {
|
|
7653
|
-
var ptr = _malloc(12 + Asyncify.StackSize);
|
|
7654
|
-
Asyncify.setDataHeader(ptr, ptr + 12, Asyncify.StackSize);
|
|
7655
|
-
Asyncify.setDataRewindFunc(ptr);
|
|
7656
|
-
return ptr;
|
|
7657
|
-
},
|
|
7658
|
-
setDataHeader(ptr, stack, stackSize) {
|
|
7659
|
-
HEAPU32[ptr >> 2] = stack;
|
|
7660
|
-
HEAPU32[(ptr + 4) >> 2] = stack + stackSize;
|
|
7661
|
-
},
|
|
7662
|
-
setDataRewindFunc(ptr) {
|
|
7663
|
-
var bottomOfCallStack = Asyncify.exportCallStack[0];
|
|
7664
|
-
var rewindId = Asyncify.getCallStackId(bottomOfCallStack);
|
|
7665
|
-
HEAP32[(ptr + 8) >> 2] = rewindId;
|
|
7666
|
-
},
|
|
7667
|
-
getDataRewindFunc(ptr) {
|
|
7668
|
-
var id = HEAP32[(ptr + 8) >> 2];
|
|
7669
|
-
var func = Asyncify.callStackIdToFunc.get(id);
|
|
7670
|
-
return func;
|
|
7671
|
-
},
|
|
7672
|
-
doRewind(ptr) {
|
|
7673
|
-
var original = Asyncify.getDataRewindFunc(ptr);
|
|
7674
|
-
var func = Asyncify.funcWrappers.get(original);
|
|
7675
|
-
runtimeKeepalivePop();
|
|
7676
|
-
return func();
|
|
7677
|
-
},
|
|
7678
|
-
handleSleep(startAsync) {
|
|
7679
|
-
if (ABORT) return;
|
|
7680
|
-
if (Asyncify.state === Asyncify.State.Normal) {
|
|
7681
|
-
var reachedCallback = false;
|
|
7682
|
-
var reachedAfterCallback = false;
|
|
7683
|
-
startAsync((handleSleepReturnValue = 0) => {
|
|
7684
|
-
if (ABORT) return;
|
|
7685
|
-
Asyncify.handleSleepReturnValue = handleSleepReturnValue;
|
|
7686
|
-
reachedCallback = true;
|
|
7687
|
-
if (!reachedAfterCallback) {
|
|
7688
|
-
return;
|
|
7689
|
-
}
|
|
7690
|
-
Asyncify.state = Asyncify.State.Rewinding;
|
|
7691
|
-
runAndAbortIfError(() =>
|
|
7692
|
-
_asyncify_start_rewind(Asyncify.currData)
|
|
7693
|
-
);
|
|
7694
|
-
if (typeof MainLoop != 'undefined' && MainLoop.func) {
|
|
7695
|
-
MainLoop.resume();
|
|
7696
|
-
}
|
|
7697
|
-
var asyncWasmReturnValue,
|
|
7698
|
-
isError = false;
|
|
7699
|
-
try {
|
|
7700
|
-
asyncWasmReturnValue = Asyncify.doRewind(
|
|
7701
|
-
Asyncify.currData
|
|
7702
|
-
);
|
|
7703
|
-
} catch (err) {
|
|
7704
|
-
asyncWasmReturnValue = err;
|
|
7705
|
-
isError = true;
|
|
7706
|
-
}
|
|
7707
|
-
var handled = false;
|
|
7708
|
-
if (!Asyncify.currData) {
|
|
7709
|
-
var asyncPromiseHandlers =
|
|
7710
|
-
Asyncify.asyncPromiseHandlers;
|
|
7711
|
-
if (asyncPromiseHandlers) {
|
|
7712
|
-
Asyncify.asyncPromiseHandlers = null;
|
|
7713
|
-
(isError
|
|
7714
|
-
? asyncPromiseHandlers.reject
|
|
7715
|
-
: asyncPromiseHandlers.resolve)(
|
|
7716
|
-
asyncWasmReturnValue
|
|
7717
|
-
);
|
|
7718
|
-
handled = true;
|
|
7719
|
-
}
|
|
7720
|
-
}
|
|
7721
|
-
if (isError && !handled) {
|
|
7722
|
-
throw asyncWasmReturnValue;
|
|
7723
|
-
}
|
|
7724
|
-
});
|
|
7725
|
-
reachedAfterCallback = true;
|
|
7726
|
-
if (!reachedCallback) {
|
|
7727
|
-
Asyncify.state = Asyncify.State.Unwinding;
|
|
7728
|
-
if (!Asyncify._cachedData) {
|
|
7729
|
-
Asyncify._cachedData = Asyncify.allocateData();
|
|
7730
|
-
} else {
|
|
7731
|
-
Asyncify.setDataHeader(
|
|
7732
|
-
Asyncify._cachedData,
|
|
7733
|
-
Asyncify._cachedData + 12,
|
|
7734
|
-
Asyncify.StackSize
|
|
7735
|
-
);
|
|
7736
|
-
Asyncify.setDataRewindFunc(Asyncify._cachedData);
|
|
7737
|
-
}
|
|
7738
|
-
Asyncify.currData = Asyncify._cachedData;
|
|
7739
|
-
if (typeof MainLoop != 'undefined' && MainLoop.func) {
|
|
7740
|
-
MainLoop.pause();
|
|
7741
|
-
}
|
|
7742
|
-
runAndAbortIfError(() =>
|
|
7743
|
-
_asyncify_start_unwind(Asyncify.currData)
|
|
7744
|
-
);
|
|
7745
|
-
}
|
|
7746
|
-
} else if (Asyncify.state === Asyncify.State.Rewinding) {
|
|
7747
|
-
Asyncify.state = Asyncify.State.Normal;
|
|
7748
|
-
runAndAbortIfError(_asyncify_stop_rewind);
|
|
7749
|
-
Asyncify.currData = null;
|
|
7750
|
-
Asyncify.sleepCallbacks.forEach(callUserCallback);
|
|
7751
|
-
} else {
|
|
7752
|
-
abort(`invalid state: ${Asyncify.state}`);
|
|
7753
|
-
}
|
|
7754
|
-
return Asyncify.handleSleepReturnValue;
|
|
7755
|
-
},
|
|
7756
|
-
handleAsync: (startAsync) =>
|
|
7757
|
-
Asyncify.handleSleep((wakeUp) => {
|
|
7758
|
-
startAsync().then(wakeUp);
|
|
7759
|
-
}),
|
|
7760
|
-
};
|
|
7761
7788
|
var getCFunc = (ident) => {
|
|
7762
7789
|
var func = Module['_' + ident];
|
|
7763
7790
|
return func;
|
|
@@ -8084,10 +8111,7 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8084
8111
|
return ERRNO_CODES.EWOULDBLOCK;
|
|
8085
8112
|
}
|
|
8086
8113
|
return returnCallback(async (wakeUp) => {
|
|
8087
|
-
var retries = 0;
|
|
8088
8114
|
var interval = 50;
|
|
8089
|
-
var timeout = 5e3;
|
|
8090
|
-
var maxRetries = timeout / interval;
|
|
8091
8115
|
while (true) {
|
|
8092
8116
|
var returnCode;
|
|
8093
8117
|
var stream;
|
|
@@ -8111,7 +8135,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8111
8135
|
return wakeUp(0);
|
|
8112
8136
|
}
|
|
8113
8137
|
if (
|
|
8114
|
-
++retries > maxRetries ||
|
|
8115
8138
|
!stream ||
|
|
8116
8139
|
FS.isClosed(stream) ||
|
|
8117
8140
|
returnCode !== ERRNO_CODES.EWOULDBLOCK ||
|
|
@@ -8153,20 +8176,35 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8153
8176
|
});
|
|
8154
8177
|
}
|
|
8155
8178
|
__asyncjs__js_module_onMessage.sig = 'iii';
|
|
8156
|
-
var
|
|
8179
|
+
var _php_info_print_table_header,
|
|
8180
|
+
_calloc,
|
|
8157
8181
|
_malloc,
|
|
8158
8182
|
_free,
|
|
8159
8183
|
___errno_location,
|
|
8184
|
+
_rename,
|
|
8185
|
+
_unlink,
|
|
8186
|
+
_mkdir,
|
|
8187
|
+
_rmdir,
|
|
8188
|
+
_opendir,
|
|
8189
|
+
_ftell,
|
|
8190
|
+
_strncasecmp,
|
|
8191
|
+
_strtoll,
|
|
8160
8192
|
_wasm_sleep,
|
|
8161
8193
|
_ntohs,
|
|
8162
8194
|
_htons,
|
|
8163
8195
|
_htonl,
|
|
8196
|
+
_fseek,
|
|
8164
8197
|
_wasm_read,
|
|
8165
8198
|
_fflush,
|
|
8199
|
+
_closedir,
|
|
8200
|
+
_readdir,
|
|
8201
|
+
_isalnum,
|
|
8166
8202
|
_php_pollfd_for,
|
|
8167
8203
|
_wasm_php_exec,
|
|
8204
|
+
_sscanf,
|
|
8168
8205
|
___wrap_usleep,
|
|
8169
8206
|
_wasm_popen,
|
|
8207
|
+
_wasm_pclose,
|
|
8170
8208
|
___wrap_select,
|
|
8171
8209
|
_wasm_set_sapi_name,
|
|
8172
8210
|
_wasm_set_phpini_path,
|
|
@@ -8191,9 +8229,12 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8191
8229
|
_wasm_free,
|
|
8192
8230
|
_wasm_trace,
|
|
8193
8231
|
_initgroups,
|
|
8232
|
+
_sqlite3_auto_extension,
|
|
8233
|
+
_sqlite3_cancel_auto_extension,
|
|
8194
8234
|
___funcs_on_exit,
|
|
8195
8235
|
___dl_seterr,
|
|
8196
8236
|
__emscripten_find_dylib,
|
|
8237
|
+
_explicit_bzero,
|
|
8197
8238
|
_emscripten_builtin_memalign,
|
|
8198
8239
|
__emscripten_timeout,
|
|
8199
8240
|
_emscripten_get_sbrk_ptr,
|
|
@@ -8263,6 +8304,8 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8263
8304
|
wasmTable,
|
|
8264
8305
|
wasmMemory;
|
|
8265
8306
|
function assignWasmExports(wasmExports) {
|
|
8307
|
+
_php_info_print_table_header = Module['_php_info_print_table_header'] =
|
|
8308
|
+
wasmExports['php_info_print_table_header'];
|
|
8266
8309
|
_calloc = wasmExports['calloc'];
|
|
8267
8310
|
_malloc =
|
|
8268
8311
|
PHPLoader['malloc'] =
|
|
@@ -8271,19 +8314,33 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8271
8314
|
_free = wasmExports['free'];
|
|
8272
8315
|
___errno_location = Module['___errno_location'] =
|
|
8273
8316
|
wasmExports['__errno_location'];
|
|
8317
|
+
_rename = Module['_rename'] = wasmExports['rename'];
|
|
8318
|
+
_unlink = Module['_unlink'] = wasmExports['unlink'];
|
|
8319
|
+
_mkdir = Module['_mkdir'] = wasmExports['mkdir'];
|
|
8320
|
+
_rmdir = Module['_rmdir'] = wasmExports['rmdir'];
|
|
8321
|
+
_opendir = Module['_opendir'] = wasmExports['opendir'];
|
|
8322
|
+
_ftell = Module['_ftell'] = wasmExports['ftell'];
|
|
8323
|
+
_strncasecmp = Module['_strncasecmp'] = wasmExports['strncasecmp'];
|
|
8324
|
+
_strtoll = Module['_strtoll'] = wasmExports['strtoll'];
|
|
8274
8325
|
_wasm_sleep = Module['_wasm_sleep'] = wasmExports['wasm_sleep'];
|
|
8275
8326
|
_ntohs = wasmExports['ntohs'];
|
|
8276
8327
|
_htons = wasmExports['htons'];
|
|
8277
8328
|
_htonl = wasmExports['htonl'];
|
|
8329
|
+
_fseek = Module['_fseek'] = wasmExports['fseek'];
|
|
8278
8330
|
_wasm_read = Module['_wasm_read'] = wasmExports['wasm_read'];
|
|
8279
8331
|
_fflush = wasmExports['fflush'];
|
|
8332
|
+
_closedir = Module['_closedir'] = wasmExports['closedir'];
|
|
8333
|
+
_readdir = Module['_readdir'] = wasmExports['readdir'];
|
|
8334
|
+
_isalnum = Module['_isalnum'] = wasmExports['isalnum'];
|
|
8280
8335
|
_php_pollfd_for = Module['_php_pollfd_for'] =
|
|
8281
8336
|
wasmExports['php_pollfd_for'];
|
|
8282
8337
|
_wasm_php_exec = Module['_wasm_php_exec'] =
|
|
8283
8338
|
wasmExports['wasm_php_exec'];
|
|
8339
|
+
_sscanf = Module['_sscanf'] = wasmExports['sscanf'];
|
|
8284
8340
|
___wrap_usleep = Module['___wrap_usleep'] =
|
|
8285
8341
|
wasmExports['__wrap_usleep'];
|
|
8286
8342
|
_wasm_popen = Module['_wasm_popen'] = wasmExports['wasm_popen'];
|
|
8343
|
+
_wasm_pclose = Module['_wasm_pclose'] = wasmExports['wasm_pclose'];
|
|
8287
8344
|
___wrap_select = Module['___wrap_select'] =
|
|
8288
8345
|
wasmExports['__wrap_select'];
|
|
8289
8346
|
_wasm_set_sapi_name = Module['_wasm_set_sapi_name'] =
|
|
@@ -8331,9 +8388,16 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8331
8388
|
wasmExports['wasm_free'];
|
|
8332
8389
|
_wasm_trace = Module['_wasm_trace'] = wasmExports['wasm_trace'];
|
|
8333
8390
|
_initgroups = Module['_initgroups'] = wasmExports['initgroups'];
|
|
8391
|
+
_sqlite3_auto_extension = Module['_sqlite3_auto_extension'] =
|
|
8392
|
+
wasmExports['sqlite3_auto_extension'];
|
|
8393
|
+
_sqlite3_cancel_auto_extension = Module[
|
|
8394
|
+
'_sqlite3_cancel_auto_extension'
|
|
8395
|
+
] = wasmExports['sqlite3_cancel_auto_extension'];
|
|
8334
8396
|
___funcs_on_exit = wasmExports['__funcs_on_exit'];
|
|
8335
8397
|
___dl_seterr = wasmExports['__dl_seterr'];
|
|
8336
8398
|
__emscripten_find_dylib = wasmExports['_emscripten_find_dylib'];
|
|
8399
|
+
_explicit_bzero = Module['_explicit_bzero'] =
|
|
8400
|
+
wasmExports['explicit_bzero'];
|
|
8337
8401
|
_emscripten_builtin_memalign =
|
|
8338
8402
|
wasmExports['emscripten_builtin_memalign'];
|
|
8339
8403
|
__emscripten_timeout = wasmExports['_emscripten_timeout'];
|
|
@@ -8418,7 +8482,7 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8418
8482
|
__indirect_function_table = wasmTable =
|
|
8419
8483
|
wasmExports['__indirect_function_table'];
|
|
8420
8484
|
}
|
|
8421
|
-
var ___heap_base =
|
|
8485
|
+
var ___heap_base = 5121936;
|
|
8422
8486
|
var wasmImports = {
|
|
8423
8487
|
__assert_fail: ___assert_fail,
|
|
8424
8488
|
__asyncify_data: ___asyncify_data,
|
|
@@ -8515,7 +8579,11 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8515
8579
|
invoke_viiiiiii,
|
|
8516
8580
|
js_fd_read,
|
|
8517
8581
|
js_open_process: _js_open_process,
|
|
8582
|
+
js_popen_clear_pid_for_fd: _js_popen_clear_pid_for_fd,
|
|
8583
|
+
js_popen_get_pid_for_fd: _js_popen_get_pid_for_fd,
|
|
8584
|
+
js_popen_set_pid_for_fd: _js_popen_set_pid_for_fd,
|
|
8518
8585
|
js_popen_to_file,
|
|
8586
|
+
js_waitpid: _js_waitpid,
|
|
8519
8587
|
js_wasm_trace: _js_wasm_trace,
|
|
8520
8588
|
proc_exit: _proc_exit,
|
|
8521
8589
|
strptime: _strptime,
|
package/jspi/5_2_17/php_5_2.wasm
CHANGED
|
Binary file
|
package/jspi/php_5_2.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const dependencyFilename = new URL('./5_2_17/php_5_2.wasm', import.meta.url)
|
|
2
2
|
.href;
|
|
3
3
|
export { dependencyFilename };
|
|
4
|
-
export const dependenciesTotalSize =
|
|
4
|
+
export const dependenciesTotalSize = 9429659;
|
|
5
5
|
const phpVersionString = '5.2.17';
|
|
6
6
|
export function init(RuntimeName, PHPLoader) {
|
|
7
7
|
// The rest of the code comes from the built php.js file and esm-suffix.js
|
|
@@ -5159,8 +5159,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5159
5159
|
wakeUp(-ERRNO_CODES.ECONNREFUSED);
|
|
5160
5160
|
return;
|
|
5161
5161
|
}
|
|
5162
|
-
// Wait for the connection to be established. A zero timeval
|
|
5163
|
-
// disables the timeout, matching SO_SNDTIMEO semantics.
|
|
5164
5162
|
const sendTimeout = PHPWASM.socketTimeouts.get(sockfd)?.send;
|
|
5165
5163
|
const timeout = sendTimeout ?? 3e4;
|
|
5166
5164
|
let resolved = false;
|
|
@@ -5171,7 +5169,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5171
5169
|
const peer = PHPWASM.getAllPeers(sock).find(
|
|
5172
5170
|
(candidate) => candidate.socket === ws
|
|
5173
5171
|
);
|
|
5174
|
-
|
|
5175
5172
|
const cleanupConnectListeners = () => {
|
|
5176
5173
|
if (typeof timeoutId !== 'undefined') {
|
|
5177
5174
|
clearTimeout(timeoutId);
|
|
@@ -5180,7 +5177,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5180
5177
|
ws.removeEventListener('error', handleError);
|
|
5181
5178
|
ws.removeEventListener('close', handleClose);
|
|
5182
5179
|
};
|
|
5183
|
-
|
|
5184
5180
|
const cleanupFailedConnect = (errno) => {
|
|
5185
5181
|
try {
|
|
5186
5182
|
if (
|
|
@@ -5189,16 +5185,13 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5189
5185
|
) {
|
|
5190
5186
|
ws.close();
|
|
5191
5187
|
}
|
|
5192
|
-
} catch (e) {
|
|
5193
|
-
// Ignore close errors on an already-failed connect.
|
|
5194
|
-
}
|
|
5188
|
+
} catch (e) {}
|
|
5195
5189
|
if (peer) {
|
|
5196
5190
|
SOCKFS.websocket_sock_ops.removePeer(sock, peer);
|
|
5197
5191
|
}
|
|
5198
5192
|
sock.connecting = false;
|
|
5199
5193
|
sock.error = errno;
|
|
5200
5194
|
};
|
|
5201
|
-
|
|
5202
5195
|
const finishConnect = (result) => {
|
|
5203
5196
|
if (!resolved) {
|
|
5204
5197
|
resolved = true;
|
|
@@ -5209,21 +5202,17 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
5209
5202
|
wakeUp(result);
|
|
5210
5203
|
}
|
|
5211
5204
|
};
|
|
5212
|
-
|
|
5213
5205
|
if (timeout > 0) {
|
|
5214
5206
|
timeoutId = setTimeout(() => {
|
|
5215
5207
|
finishConnect(-ERRNO_CODES.ETIMEDOUT);
|
|
5216
5208
|
}, timeout);
|
|
5217
5209
|
}
|
|
5218
|
-
|
|
5219
5210
|
handleOpen = () => {
|
|
5220
5211
|
finishConnect(0);
|
|
5221
5212
|
};
|
|
5222
|
-
|
|
5223
5213
|
handleError = () => {
|
|
5224
5214
|
finishConnect(-ERRNO_CODES.ECONNREFUSED);
|
|
5225
5215
|
};
|
|
5226
|
-
|
|
5227
5216
|
handleClose = () => {
|
|
5228
5217
|
finishConnect(-ERRNO_CODES.ECONNREFUSED);
|
|
5229
5218
|
};
|
|
@@ -6483,6 +6472,65 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
6483
6472
|
runtimeKeepaliveCounter -= 1;
|
|
6484
6473
|
};
|
|
6485
6474
|
runtimeKeepalivePop.sig = 'v';
|
|
6475
|
+
var Asyncify = {
|
|
6476
|
+
instrumentWasmImports(imports) {
|
|
6477
|
+
var importPattern =
|
|
6478
|
+
/^(js_open_process|js_fd_read|js_waitpid|js_process_status|js_create_input_device|wasm_setsockopt|wasm_shutdown|wasm_close|wasm_recv|wasm_connect|__syscall_fcntl64|js_flock|js_release_file_locks|js_waitpid|invoke_.*|__asyncjs__.*)$/;
|
|
6479
|
+
for (let [x, original] of Object.entries(imports)) {
|
|
6480
|
+
if (typeof original == 'function') {
|
|
6481
|
+
let isAsyncifyImport =
|
|
6482
|
+
original.isAsync || importPattern.test(x);
|
|
6483
|
+
if (isAsyncifyImport) {
|
|
6484
|
+
imports[x] = original = new WebAssembly.Suspending(
|
|
6485
|
+
original
|
|
6486
|
+
);
|
|
6487
|
+
}
|
|
6488
|
+
}
|
|
6489
|
+
}
|
|
6490
|
+
},
|
|
6491
|
+
instrumentFunction(original) {
|
|
6492
|
+
var wrapper = (...args) => original(...args);
|
|
6493
|
+
wrapper.orig = original;
|
|
6494
|
+
return wrapper;
|
|
6495
|
+
},
|
|
6496
|
+
instrumentWasmExports(exports) {
|
|
6497
|
+
var exportPattern =
|
|
6498
|
+
/^(php_wasm_init|wasm_sleep|wasm_read|emscripten_sleep|wasm_sapi_handle_request|wasm_sapi_request_shutdown|wasm_poll_socket|wrap_select|__wrap_select|select|php_pollfd_for|fflush|wasm_popen|wasm_read|wasm_php_exec|run_cli|wasm_recv|wasm_connect|__wasm_call_ctors|__errno_location|__funcs_on_exit|main|__main_argc_argv)$/;
|
|
6499
|
+
Asyncify.asyncExports = new Set();
|
|
6500
|
+
var ret = {};
|
|
6501
|
+
for (let [x, original] of Object.entries(exports)) {
|
|
6502
|
+
if (typeof original == 'function') {
|
|
6503
|
+
let isAsyncifyExport = exportPattern.test(x);
|
|
6504
|
+
if (isAsyncifyExport) {
|
|
6505
|
+
Asyncify.asyncExports.add(original);
|
|
6506
|
+
original = Asyncify.makeAsyncFunction(original);
|
|
6507
|
+
}
|
|
6508
|
+
var wrapper = Asyncify.instrumentFunction(original);
|
|
6509
|
+
ret[x] = wrapper;
|
|
6510
|
+
} else {
|
|
6511
|
+
ret[x] = original;
|
|
6512
|
+
}
|
|
6513
|
+
}
|
|
6514
|
+
return ret;
|
|
6515
|
+
},
|
|
6516
|
+
asyncExports: null,
|
|
6517
|
+
isAsyncExport(func) {
|
|
6518
|
+
return Asyncify.asyncExports?.has(func);
|
|
6519
|
+
},
|
|
6520
|
+
handleAsync: async (startAsync) => {
|
|
6521
|
+
runtimeKeepalivePush();
|
|
6522
|
+
try {
|
|
6523
|
+
return await startAsync();
|
|
6524
|
+
} finally {
|
|
6525
|
+
runtimeKeepalivePop();
|
|
6526
|
+
}
|
|
6527
|
+
},
|
|
6528
|
+
handleSleep: (startAsync) =>
|
|
6529
|
+
Asyncify.handleAsync(() => new Promise(startAsync)),
|
|
6530
|
+
makeAsyncFunction(original) {
|
|
6531
|
+
return WebAssembly.promising(original);
|
|
6532
|
+
},
|
|
6533
|
+
};
|
|
6486
6534
|
var safeSetTimeout = (func, timeout) => {
|
|
6487
6535
|
runtimeKeepalivePush();
|
|
6488
6536
|
return setTimeout(() => {
|
|
@@ -6492,9 +6540,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
6492
6540
|
};
|
|
6493
6541
|
var _emscripten_sleep = function (ms) {
|
|
6494
6542
|
return Asyncify.handleSleep((wakeUp) => {
|
|
6495
|
-
// select() yields between socket reads. Nested zero-delay timers are
|
|
6496
|
-
// clamped by browsers, adding seconds to even a local curl download.
|
|
6497
|
-
// Use a task (not a microtask) so network events still get a turn.
|
|
6498
6543
|
if (ms === 0 && globalThis.scheduler?.postTask) {
|
|
6499
6544
|
runtimeKeepalivePush();
|
|
6500
6545
|
globalThis.scheduler.postTask(() => {
|
|
@@ -6923,13 +6968,11 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
6923
6968
|
envLength
|
|
6924
6969
|
) {
|
|
6925
6970
|
if (!command) {
|
|
6926
|
-
|
|
6927
|
-
return -1;
|
|
6971
|
+
return -ERRNO_CODES.EINVAL;
|
|
6928
6972
|
}
|
|
6929
6973
|
const cmdstr = UTF8ToString(command);
|
|
6930
6974
|
if (!cmdstr.length) {
|
|
6931
|
-
|
|
6932
|
-
return -1;
|
|
6975
|
+
return -ERRNO_CODES.EINVAL;
|
|
6933
6976
|
}
|
|
6934
6977
|
let argsArray = [];
|
|
6935
6978
|
if (argsLength) {
|
|
@@ -6984,13 +7027,11 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
6984
7027
|
}
|
|
6985
7028
|
} catch (e) {
|
|
6986
7029
|
if (e.code === 'SPAWN_UNSUPPORTED') {
|
|
6987
|
-
|
|
6988
|
-
return -1;
|
|
7030
|
+
return -ERRNO_CODES.ENOSYS;
|
|
6989
7031
|
}
|
|
6990
7032
|
if (typeof FS == 'undefined' || !(e.name === 'ErrnoError'))
|
|
6991
7033
|
throw e;
|
|
6992
|
-
|
|
6993
|
-
return -1;
|
|
7034
|
+
return -e.errno;
|
|
6994
7035
|
}
|
|
6995
7036
|
const ProcInfo = { pid: cp.pid, exited: false };
|
|
6996
7037
|
PHPWASM.processTable[ProcInfo.pid] = ProcInfo;
|
|
@@ -7001,7 +7042,12 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7001
7042
|
stderrChildFd = std[2]?.child,
|
|
7002
7043
|
stderrParentFd = std[2]?.parent;
|
|
7003
7044
|
const detachPipeDataListeners = [];
|
|
7004
|
-
|
|
7045
|
+
let childPipesClosed = false;
|
|
7046
|
+
const closeChildPipes = function () {
|
|
7047
|
+
if (childPipesClosed) {
|
|
7048
|
+
return;
|
|
7049
|
+
}
|
|
7050
|
+
childPipesClosed = true;
|
|
7005
7051
|
for (const detach of detachPipeDataListeners) {
|
|
7006
7052
|
detach();
|
|
7007
7053
|
}
|
|
@@ -7010,6 +7056,9 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7010
7056
|
FS.close(FS.streams[fd]);
|
|
7011
7057
|
}
|
|
7012
7058
|
}
|
|
7059
|
+
};
|
|
7060
|
+
cp.on('exit', function (code) {
|
|
7061
|
+
closeChildPipes();
|
|
7013
7062
|
ProcInfo.exitCode = code;
|
|
7014
7063
|
ProcInfo.exited = true;
|
|
7015
7064
|
});
|
|
@@ -7089,6 +7138,10 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7089
7138
|
});
|
|
7090
7139
|
} catch (e) {
|
|
7091
7140
|
console.error(e);
|
|
7141
|
+
closeChildPipes();
|
|
7142
|
+
if (!ProcInfo.pid) {
|
|
7143
|
+
return -(ERRNO_CODES[e.code] ?? ERRNO_CODES.ECHILD);
|
|
7144
|
+
}
|
|
7092
7145
|
return ProcInfo.pid;
|
|
7093
7146
|
}
|
|
7094
7147
|
if (stdinChildFd) {
|
|
@@ -7161,16 +7214,49 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7161
7214
|
const interval = setInterval(pump, 20);
|
|
7162
7215
|
pump();
|
|
7163
7216
|
} else {
|
|
7164
|
-
/**
|
|
7165
|
-
* Descriptor 0 was not provided, so the child process must observe EOF.
|
|
7166
|
-
* Closing stdin explicitly lets spawn handlers distinguish that case from
|
|
7167
|
-
* a valid pipe whose first bytes have not arrived yet.
|
|
7168
|
-
*/
|
|
7169
7217
|
cp.stdin.end();
|
|
7170
7218
|
}
|
|
7171
7219
|
return ProcInfo.pid;
|
|
7172
7220
|
});
|
|
7173
7221
|
}
|
|
7222
|
+
function _js_popen_clear_pid_for_fd(fd) {
|
|
7223
|
+
for (const pid in PHPWASM.processTable) {
|
|
7224
|
+
if (PHPWASM.processTable[pid].fd === fd) {
|
|
7225
|
+
delete PHPWASM.processTable[pid].fd;
|
|
7226
|
+
return;
|
|
7227
|
+
}
|
|
7228
|
+
}
|
|
7229
|
+
}
|
|
7230
|
+
function _js_popen_get_pid_for_fd(fd) {
|
|
7231
|
+
for (const pid in PHPWASM.processTable) {
|
|
7232
|
+
if (PHPWASM.processTable[pid].fd === fd) {
|
|
7233
|
+
return PHPWASM.processTable[pid].pid;
|
|
7234
|
+
}
|
|
7235
|
+
}
|
|
7236
|
+
return -1;
|
|
7237
|
+
}
|
|
7238
|
+
function _js_popen_set_pid_for_fd(fd, pid) {
|
|
7239
|
+
if (PHPWASM.processTable[pid]) {
|
|
7240
|
+
PHPWASM.processTable[pid].fd = fd;
|
|
7241
|
+
}
|
|
7242
|
+
}
|
|
7243
|
+
function _js_waitpid(pid, exitCodePtr) {
|
|
7244
|
+
if (!PHPWASM.processTable[pid]) {
|
|
7245
|
+
return -1;
|
|
7246
|
+
}
|
|
7247
|
+
return Asyncify.handleSleep((wakeUp) => {
|
|
7248
|
+
const poll = function () {
|
|
7249
|
+
if (PHPWASM.processTable[pid]?.exited) {
|
|
7250
|
+
HEAPU32[exitCodePtr >> 2] =
|
|
7251
|
+
PHPWASM.processTable[pid].exitCode;
|
|
7252
|
+
wakeUp(pid);
|
|
7253
|
+
} else {
|
|
7254
|
+
setTimeout(poll, 50);
|
|
7255
|
+
}
|
|
7256
|
+
};
|
|
7257
|
+
poll();
|
|
7258
|
+
});
|
|
7259
|
+
}
|
|
7174
7260
|
var arraySum = (array, index) => {
|
|
7175
7261
|
var sum = 0;
|
|
7176
7262
|
for (var i = 0; i <= index; sum += array[i++]) {}
|
|
@@ -7517,66 +7603,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7517
7603
|
ws.setSocketOpt(level, optionName, optionValuePtr);
|
|
7518
7604
|
return 0;
|
|
7519
7605
|
}
|
|
7520
|
-
|
|
7521
|
-
var Asyncify = {
|
|
7522
|
-
instrumentWasmImports(imports) {
|
|
7523
|
-
var importPattern =
|
|
7524
|
-
/^(js_open_process|js_fd_read|js_waitpid|js_process_status|js_create_input_device|wasm_setsockopt|wasm_shutdown|wasm_close|wasm_recv|wasm_connect|__syscall_fcntl64|js_flock|js_release_file_locks|js_waitpid|invoke_.*|__asyncjs__.*)$/;
|
|
7525
|
-
for (let [x, original] of Object.entries(imports)) {
|
|
7526
|
-
if (typeof original == 'function') {
|
|
7527
|
-
let isAsyncifyImport =
|
|
7528
|
-
original.isAsync || importPattern.test(x);
|
|
7529
|
-
if (isAsyncifyImport) {
|
|
7530
|
-
imports[x] = original = new WebAssembly.Suspending(
|
|
7531
|
-
original
|
|
7532
|
-
);
|
|
7533
|
-
}
|
|
7534
|
-
}
|
|
7535
|
-
}
|
|
7536
|
-
},
|
|
7537
|
-
instrumentFunction(original) {
|
|
7538
|
-
var wrapper = (...args) => original(...args);
|
|
7539
|
-
wrapper.orig = original;
|
|
7540
|
-
return wrapper;
|
|
7541
|
-
},
|
|
7542
|
-
instrumentWasmExports(exports) {
|
|
7543
|
-
var exportPattern =
|
|
7544
|
-
/^(php_wasm_init|wasm_sleep|wasm_read|emscripten_sleep|wasm_sapi_handle_request|wasm_sapi_request_shutdown|wasm_poll_socket|wrap_select|__wrap_select|select|php_pollfd_for|fflush|wasm_popen|wasm_read|wasm_php_exec|run_cli|wasm_recv|wasm_connect|__wasm_call_ctors|__errno_location|__funcs_on_exit|main|__main_argc_argv)$/;
|
|
7545
|
-
Asyncify.asyncExports = new Set();
|
|
7546
|
-
var ret = {};
|
|
7547
|
-
for (let [x, original] of Object.entries(exports)) {
|
|
7548
|
-
if (typeof original == 'function') {
|
|
7549
|
-
let isAsyncifyExport = exportPattern.test(x);
|
|
7550
|
-
if (isAsyncifyExport) {
|
|
7551
|
-
Asyncify.asyncExports.add(original);
|
|
7552
|
-
original = Asyncify.makeAsyncFunction(original);
|
|
7553
|
-
}
|
|
7554
|
-
var wrapper = Asyncify.instrumentFunction(original);
|
|
7555
|
-
ret[x] = wrapper;
|
|
7556
|
-
} else {
|
|
7557
|
-
ret[x] = original;
|
|
7558
|
-
}
|
|
7559
|
-
}
|
|
7560
|
-
return ret;
|
|
7561
|
-
},
|
|
7562
|
-
asyncExports: null,
|
|
7563
|
-
isAsyncExport(func) {
|
|
7564
|
-
return Asyncify.asyncExports?.has(func);
|
|
7565
|
-
},
|
|
7566
|
-
handleAsync: async (startAsync) => {
|
|
7567
|
-
runtimeKeepalivePush();
|
|
7568
|
-
try {
|
|
7569
|
-
return await startAsync();
|
|
7570
|
-
} finally {
|
|
7571
|
-
runtimeKeepalivePop();
|
|
7572
|
-
}
|
|
7573
|
-
},
|
|
7574
|
-
handleSleep: (startAsync) =>
|
|
7575
|
-
Asyncify.handleAsync(() => new Promise(startAsync)),
|
|
7576
|
-
makeAsyncFunction(original) {
|
|
7577
|
-
return WebAssembly.promising(original);
|
|
7578
|
-
},
|
|
7579
|
-
};
|
|
7580
7606
|
var getCFunc = (ident) => {
|
|
7581
7607
|
var func = Module['_' + ident];
|
|
7582
7608
|
return func;
|
|
@@ -7902,10 +7928,7 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7902
7928
|
return ERRNO_CODES.EWOULDBLOCK;
|
|
7903
7929
|
}
|
|
7904
7930
|
return returnCallback(async (wakeUp) => {
|
|
7905
|
-
var retries = 0;
|
|
7906
7931
|
var interval = 50;
|
|
7907
|
-
var timeout = 5e3;
|
|
7908
|
-
var maxRetries = timeout / interval;
|
|
7909
7932
|
while (true) {
|
|
7910
7933
|
var returnCode;
|
|
7911
7934
|
var stream;
|
|
@@ -7929,7 +7952,6 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7929
7952
|
return wakeUp(0);
|
|
7930
7953
|
}
|
|
7931
7954
|
if (
|
|
7932
|
-
++retries > maxRetries ||
|
|
7933
7955
|
!stream ||
|
|
7934
7956
|
FS.isClosed(stream) ||
|
|
7935
7957
|
returnCode !== ERRNO_CODES.EWOULDBLOCK ||
|
|
@@ -7971,7 +7993,8 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7971
7993
|
});
|
|
7972
7994
|
}
|
|
7973
7995
|
__asyncjs__js_module_onMessage.sig = 'iii';
|
|
7974
|
-
var
|
|
7996
|
+
var _php_info_print_table_header,
|
|
7997
|
+
_compile_string,
|
|
7975
7998
|
__efree,
|
|
7976
7999
|
__zval_ptr_dtor,
|
|
7977
8000
|
_destroy_op_array,
|
|
@@ -7980,16 +8003,33 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
7980
8003
|
_calloc,
|
|
7981
8004
|
_malloc,
|
|
7982
8005
|
___errno_location,
|
|
8006
|
+
___wasm_setjmp,
|
|
8007
|
+
___wasm_setjmp_test,
|
|
8008
|
+
___wasm_longjmp,
|
|
8009
|
+
_rename,
|
|
8010
|
+
_unlink,
|
|
8011
|
+
_mkdir,
|
|
8012
|
+
_rmdir,
|
|
8013
|
+
_opendir,
|
|
8014
|
+
_ftell,
|
|
8015
|
+
_strncasecmp,
|
|
8016
|
+
_strtoll,
|
|
7983
8017
|
_wasm_sleep,
|
|
7984
8018
|
_ntohs,
|
|
7985
8019
|
_htons,
|
|
7986
8020
|
_htonl,
|
|
8021
|
+
_fseek,
|
|
7987
8022
|
_wasm_read,
|
|
7988
8023
|
_fflush,
|
|
8024
|
+
_closedir,
|
|
8025
|
+
_readdir,
|
|
8026
|
+
_isalnum,
|
|
7989
8027
|
_php_pollfd_for,
|
|
7990
8028
|
_wasm_php_exec,
|
|
8029
|
+
_sscanf,
|
|
7991
8030
|
___wrap_usleep,
|
|
7992
8031
|
_wasm_popen,
|
|
8032
|
+
_wasm_pclose,
|
|
7993
8033
|
___wrap_select,
|
|
7994
8034
|
_wasm_set_sapi_name,
|
|
7995
8035
|
_wasm_set_phpini_path,
|
|
@@ -8014,9 +8054,12 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8014
8054
|
_wasm_free,
|
|
8015
8055
|
_wasm_trace,
|
|
8016
8056
|
_initgroups,
|
|
8057
|
+
_sqlite3_auto_extension,
|
|
8058
|
+
_sqlite3_cancel_auto_extension,
|
|
8017
8059
|
___funcs_on_exit,
|
|
8018
8060
|
___dl_seterr,
|
|
8019
8061
|
__emscripten_find_dylib,
|
|
8062
|
+
_explicit_bzero,
|
|
8020
8063
|
_emscripten_builtin_memalign,
|
|
8021
8064
|
__emscripten_timeout,
|
|
8022
8065
|
_emscripten_get_sbrk_ptr,
|
|
@@ -8030,9 +8073,12 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8030
8073
|
__ZNSt3__25mutex6unlockEv,
|
|
8031
8074
|
memory,
|
|
8032
8075
|
__indirect_function_table,
|
|
8076
|
+
___c_longjmp,
|
|
8033
8077
|
wasmTable,
|
|
8034
8078
|
wasmMemory;
|
|
8035
8079
|
function assignWasmExports(wasmExports) {
|
|
8080
|
+
_php_info_print_table_header = Module['_php_info_print_table_header'] =
|
|
8081
|
+
wasmExports['php_info_print_table_header'];
|
|
8036
8082
|
_compile_string = Module['_compile_string'] =
|
|
8037
8083
|
wasmExports['compile_string'];
|
|
8038
8084
|
__efree = Module['__efree'] = wasmExports['_efree'];
|
|
@@ -8050,19 +8096,39 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8050
8096
|
wasmExports['malloc'];
|
|
8051
8097
|
___errno_location = Module['___errno_location'] =
|
|
8052
8098
|
wasmExports['__errno_location'];
|
|
8099
|
+
___wasm_setjmp = Module['___wasm_setjmp'] =
|
|
8100
|
+
wasmExports['__wasm_setjmp'];
|
|
8101
|
+
___wasm_setjmp_test = Module['___wasm_setjmp_test'] =
|
|
8102
|
+
wasmExports['__wasm_setjmp_test'];
|
|
8103
|
+
___wasm_longjmp = Module['___wasm_longjmp'] =
|
|
8104
|
+
wasmExports['__wasm_longjmp'];
|
|
8105
|
+
_rename = Module['_rename'] = wasmExports['rename'];
|
|
8106
|
+
_unlink = Module['_unlink'] = wasmExports['unlink'];
|
|
8107
|
+
_mkdir = Module['_mkdir'] = wasmExports['mkdir'];
|
|
8108
|
+
_rmdir = Module['_rmdir'] = wasmExports['rmdir'];
|
|
8109
|
+
_opendir = Module['_opendir'] = wasmExports['opendir'];
|
|
8110
|
+
_ftell = Module['_ftell'] = wasmExports['ftell'];
|
|
8111
|
+
_strncasecmp = Module['_strncasecmp'] = wasmExports['strncasecmp'];
|
|
8112
|
+
_strtoll = Module['_strtoll'] = wasmExports['strtoll'];
|
|
8053
8113
|
_wasm_sleep = Module['_wasm_sleep'] = wasmExports['wasm_sleep'];
|
|
8054
8114
|
_ntohs = wasmExports['ntohs'];
|
|
8055
8115
|
_htons = wasmExports['htons'];
|
|
8056
8116
|
_htonl = wasmExports['htonl'];
|
|
8117
|
+
_fseek = Module['_fseek'] = wasmExports['fseek'];
|
|
8057
8118
|
_wasm_read = Module['_wasm_read'] = wasmExports['wasm_read'];
|
|
8058
8119
|
_fflush = wasmExports['fflush'];
|
|
8120
|
+
_closedir = Module['_closedir'] = wasmExports['closedir'];
|
|
8121
|
+
_readdir = Module['_readdir'] = wasmExports['readdir'];
|
|
8122
|
+
_isalnum = Module['_isalnum'] = wasmExports['isalnum'];
|
|
8059
8123
|
_php_pollfd_for = Module['_php_pollfd_for'] =
|
|
8060
8124
|
wasmExports['php_pollfd_for'];
|
|
8061
8125
|
_wasm_php_exec = Module['_wasm_php_exec'] =
|
|
8062
8126
|
wasmExports['wasm_php_exec'];
|
|
8127
|
+
_sscanf = Module['_sscanf'] = wasmExports['sscanf'];
|
|
8063
8128
|
___wrap_usleep = Module['___wrap_usleep'] =
|
|
8064
8129
|
wasmExports['__wrap_usleep'];
|
|
8065
8130
|
_wasm_popen = Module['_wasm_popen'] = wasmExports['wasm_popen'];
|
|
8131
|
+
_wasm_pclose = Module['_wasm_pclose'] = wasmExports['wasm_pclose'];
|
|
8066
8132
|
___wrap_select = Module['___wrap_select'] =
|
|
8067
8133
|
wasmExports['__wrap_select'];
|
|
8068
8134
|
_wasm_set_sapi_name = Module['_wasm_set_sapi_name'] =
|
|
@@ -8110,9 +8176,16 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8110
8176
|
wasmExports['wasm_free'];
|
|
8111
8177
|
_wasm_trace = Module['_wasm_trace'] = wasmExports['wasm_trace'];
|
|
8112
8178
|
_initgroups = Module['_initgroups'] = wasmExports['initgroups'];
|
|
8179
|
+
_sqlite3_auto_extension = Module['_sqlite3_auto_extension'] =
|
|
8180
|
+
wasmExports['sqlite3_auto_extension'];
|
|
8181
|
+
_sqlite3_cancel_auto_extension = Module[
|
|
8182
|
+
'_sqlite3_cancel_auto_extension'
|
|
8183
|
+
] = wasmExports['sqlite3_cancel_auto_extension'];
|
|
8113
8184
|
___funcs_on_exit = wasmExports['__funcs_on_exit'];
|
|
8114
8185
|
___dl_seterr = wasmExports['__dl_seterr'];
|
|
8115
8186
|
__emscripten_find_dylib = wasmExports['_emscripten_find_dylib'];
|
|
8187
|
+
_explicit_bzero = Module['_explicit_bzero'] =
|
|
8188
|
+
wasmExports['explicit_bzero'];
|
|
8116
8189
|
_emscripten_builtin_memalign =
|
|
8117
8190
|
wasmExports['emscripten_builtin_memalign'];
|
|
8118
8191
|
__emscripten_timeout = wasmExports['_emscripten_timeout'];
|
|
@@ -8135,19 +8208,20 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8135
8208
|
memory = wasmMemory = wasmExports['memory'];
|
|
8136
8209
|
__indirect_function_table = wasmTable =
|
|
8137
8210
|
wasmExports['__indirect_function_table'];
|
|
8211
|
+
___c_longjmp = Module['___c_longjmp'] = wasmExports['__c_longjmp'];
|
|
8138
8212
|
}
|
|
8139
|
-
var _file_globals = (Module['_file_globals'] =
|
|
8140
|
-
var _sapi_module = (Module['_sapi_module'] =
|
|
8141
|
-
var _sapi_globals = (Module['_sapi_globals'] =
|
|
8142
|
-
var _compiler_globals = (Module['_compiler_globals'] =
|
|
8143
|
-
var _executor_globals = (Module['_executor_globals'] =
|
|
8144
|
-
var _zend_ce_traversable = (Module['_zend_ce_traversable'] =
|
|
8145
|
-
var _zend_ce_aggregate = (Module['_zend_ce_aggregate'] =
|
|
8146
|
-
var _zend_ce_iterator = (Module['_zend_ce_iterator'] =
|
|
8147
|
-
var _zend_ce_arrayaccess = (Module['_zend_ce_arrayaccess'] =
|
|
8148
|
-
var _zend_ce_serializable = (Module['_zend_ce_serializable'] =
|
|
8149
|
-
var _std_object_handlers = (Module['_std_object_handlers'] =
|
|
8150
|
-
var ___heap_base =
|
|
8213
|
+
var _file_globals = (Module['_file_globals'] = 4026688);
|
|
8214
|
+
var _sapi_module = (Module['_sapi_module'] = 4031884);
|
|
8215
|
+
var _sapi_globals = (Module['_sapi_globals'] = 4032024);
|
|
8216
|
+
var _compiler_globals = (Module['_compiler_globals'] = 4025568);
|
|
8217
|
+
var _executor_globals = (Module['_executor_globals'] = 4025912);
|
|
8218
|
+
var _zend_ce_traversable = (Module['_zend_ce_traversable'] = 4020008);
|
|
8219
|
+
var _zend_ce_aggregate = (Module['_zend_ce_aggregate'] = 4020012);
|
|
8220
|
+
var _zend_ce_iterator = (Module['_zend_ce_iterator'] = 4020016);
|
|
8221
|
+
var _zend_ce_arrayaccess = (Module['_zend_ce_arrayaccess'] = 4020020);
|
|
8222
|
+
var _zend_ce_serializable = (Module['_zend_ce_serializable'] = 4020024);
|
|
8223
|
+
var _std_object_handlers = (Module['_std_object_handlers'] = 3648060);
|
|
8224
|
+
var ___heap_base = 5123760;
|
|
8151
8225
|
var wasmImports = {
|
|
8152
8226
|
__assert_fail: ___assert_fail,
|
|
8153
8227
|
__asyncjs__js_module_onMessage,
|
|
@@ -8225,6 +8299,10 @@ export function init(RuntimeName, PHPLoader) {
|
|
|
8225
8299
|
getprotobynumber: _getprotobynumber,
|
|
8226
8300
|
js_fd_read,
|
|
8227
8301
|
js_open_process: _js_open_process,
|
|
8302
|
+
js_popen_clear_pid_for_fd: _js_popen_clear_pid_for_fd,
|
|
8303
|
+
js_popen_get_pid_for_fd: _js_popen_get_pid_for_fd,
|
|
8304
|
+
js_popen_set_pid_for_fd: _js_popen_set_pid_for_fd,
|
|
8305
|
+
js_waitpid: _js_waitpid,
|
|
8228
8306
|
js_wasm_trace: _js_wasm_trace,
|
|
8229
8307
|
proc_exit: _proc_exit,
|
|
8230
8308
|
strptime: _strptime,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@php-wasm/web-5-2",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.63",
|
|
4
4
|
"description": "PHP 5.2 WebAssembly binaries for web (legacy)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"node": ">=24.18.0",
|
|
36
36
|
"npm": ">=11.16.0"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "d9392e2c6a2eb8c5cd5c4d357c725572fac56c12",
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"wasm-feature-detect": "1.8.0",
|
|
41
|
-
"@php-wasm/universal": "3.1.
|
|
41
|
+
"@php-wasm/universal": "3.1.63"
|
|
42
42
|
},
|
|
43
43
|
"packageManager": "npm@10.9.2",
|
|
44
44
|
"overrides": {
|