emscripten-core/emscripten

MIN_IE_VERSION=11 no longer produces an asm that can run on IE11

開放

#14,700 建立於 2021年7月20日

 (9 則留言) (0 個反應) (0 位負責人)C++ (3,519 個分叉)batch import
good first bughelp wanted

倉庫指標

星標
 (27,361 顆星)
PR 合併指標
 (平均合併 19天 10小時) (30 天內合併 147 個 PR)

描述

This is probably a trivial issue, but compiling an ASM with the emcc options below including -s MIN_IE_VERSION=11 produces an asm that has functions that cause an exception on IE11. The one I've caught so far is Object doesn't support property or method 'startsWith' (see screenshot).

This is compiled with the latest (as of today) official docker container of emsdk. When I compiled with the same commandline a year ago (roughly), this produced a asm that ran perefectly in IE11.

It would be trivial to substitute startsWith with something like: ! c.indexOf("data:application/octet-stream;base64,") or else include the simple MDN polyfill.

emcc --memory-init-file 0 -O3 --closure 1 -s ENVIRONMENT="web" -s WASM=0 -s MALLOC="emmalloc" -s TOTAL_MEMORY=140247040 -s FILESYSTEM=0 -s DOUBLE_MODE=0 -s DYNAMIC_EXECUTION=0 -s MIN_IE_VERSION=11 -s EXPORT_NAME="ZD" -s MODULARIZE=1 -s EXPORTED_FUNCTIONS="['_malloc', '_free', '_ZSTD_createDStream', '_ZSTD_initDStream', '_ZSTD_decompressStream', '_ZSTD_isError', '_ZSTD_getErrorName', '_ZSTD_freeDStream', '_ZSTD_DStreamInSize', '_ZSTD_DStreamOutSize']" -s EXPORTED_RUNTIME_METHODS="['cwrap']" *.c -o zstddec.js

image

貢獻者指南