aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Tools/wasm/emscripten/web_example/python.worker.mjs
diff options
context:
space:
mode:
authorAgriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com>2025-02-07 04:55:27 +0000
committerGitHub <noreply@github.com>2025-02-07 12:55:27 +0800
commite2064d67504bc360c20e03eeea8b360d605cb439 (patch)
tree6c0c93d624ed631f45b054726f724d8cac429ee7 /Tools/wasm/emscripten/web_example/python.worker.mjs
parent0fef47e5bbd167c21eb4f3cbd885cf61270014e7 (diff)
downloadcpython-e2064d67504bc360c20e03eeea8b360d605cb439.tar.gz
cpython-e2064d67504bc360c20e03eeea8b360d605cb439.zip
Emscripten: use better `_Py_Version` computation for worker module (#129757)
Use integer bit shifting instead of conversion to strings to compute Python version.
Diffstat (limited to 'Tools/wasm/emscripten/web_example/python.worker.mjs')
-rw-r--r--Tools/wasm/emscripten/web_example/python.worker.mjs9
1 files changed, 3 insertions, 6 deletions
diff --git a/Tools/wasm/emscripten/web_example/python.worker.mjs b/Tools/wasm/emscripten/web_example/python.worker.mjs
index 8043e419966..5f9012a492a 100644
--- a/Tools/wasm/emscripten/web_example/python.worker.mjs
+++ b/Tools/wasm/emscripten/web_example/python.worker.mjs
@@ -70,12 +70,9 @@ const emscriptenSettings = {
postMessage({ type: "ready", stdinBuffer: stdinBuffer.sab });
},
async preRun(Module) {
- const versionHex = Module.HEAPU32[Module._Py_Version / 4].toString(16);
- const versionTuple = versionHex
- .padStart(8, "0")
- .match(/.{1,2}/g)
- .map((x) => parseInt(x, 16));
- const [major, minor, ..._] = versionTuple;
+ const versionInt = Module.HEAPU32[Module._Py_Version >>> 2];
+ const major = (versionInt >>> 24) & 0xff;
+ const minor = (versionInt >>> 16) & 0xff;
// Prevent complaints about not finding exec-prefix by making a lib-dynload directory
Module.FS.mkdirTree(`/lib/python${major}.${minor}/lib-dynload/`);
Module.addRunDependency("install-stdlib");