From b119f26a5663c5e3f82d82ad41e479a42115d954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20S=C3=B8rvig?= Date: Tue, 10 May 2022 09:09:51 +0200 Subject: [PATCH] wasm: enable WASM_BIGINT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit JavaScripts's BigInt feature provides support for arbitrary-precision integers. This makes it possible to represent 64-bit integers; the standard JS Number type supports 32-bit integers only (or more accurately 53-bit integers - see Number.MAX_SAFE_INTEGER). Enable WASM_BIGINT which makes Emscripten map int64_t and uint64_t to BigInt when interfacing with JavaScript code. This removes one of the conditions which enables wasm-emscripten-finalize. Task-number: QTBUG-103352 Change-Id: Ia70d599daaf34c92695f5a2b61665e0c237e6b95 Reviewed-by: Tor Arne Vestbø Reviewed-by: Lorn Potter Reviewed-by: David Skoland --- cmake/QtWasmHelpers.cmake | 3 ++- mkspecs/wasm-emscripten/qmake.conf | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cmake/QtWasmHelpers.cmake b/cmake/QtWasmHelpers.cmake index 77c77d2882..5e09feac29 100644 --- a/cmake/QtWasmHelpers.cmake +++ b/cmake/QtWasmHelpers.cmake @@ -7,7 +7,8 @@ function (qt_internal_setup_wasm_target_properties wasmTarget) "SHELL:-s EXPORTED_RUNTIME_METHODS=[UTF16ToString,stringToUTF16,specialHTMLTargets]" "SHELL:-s USE_WEBGL2=1" "--bind" - "SHELL:-s FETCH=1") + "SHELL:-s FETCH=1" + "SHELL:-s WASM_BIGINT=1") # Enable MODULARIZE and set EXPORT_NAME, which makes it possible to # create application instances using a global constructor function, diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf index 270ab39559..140f2b4801 100644 --- a/mkspecs/wasm-emscripten/qmake.conf +++ b/mkspecs/wasm-emscripten/qmake.conf @@ -38,7 +38,8 @@ EMCC_COMMON_LFLAGS += \ --bind \ -s FETCH=1 \ -s MODULARIZE=1 \ - -s EXPORT_NAME=createQtAppInstance + -s EXPORT_NAME=createQtAppInstance \ + -s WASM_BIGINT=1 # The -s arguments can also be used with release builds, # but are here in debug for clarity.