diff options
author | Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> | 2025-02-07 04:55:27 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-07 12:55:27 +0800 |
commit | e2064d67504bc360c20e03eeea8b360d605cb439 (patch) | |
tree | 6c0c93d624ed631f45b054726f724d8cac429ee7 /Tools/wasm/emscripten/web_example/python.worker.mjs | |
parent | 0fef47e5bbd167c21eb4f3cbd885cf61270014e7 (diff) | |
download | cpython-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.mjs | 9 |
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"); |