From 137dae4dbdf9a192551582cdae827b085510956f Mon Sep 17 00:00:00 2001 From: Hood Chatham Date: Fri, 2 Jun 2023 11:59:32 -0700 Subject: [PATCH 1/6] Add back fs.findObject and fs.readFile in loadLibData See upstream PR: https://github.com/emscripten-core/emscripten/pull/19513 --- src/library_dylink.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/library_dylink.js b/src/library_dylink.js index aa90bea2b..1e67818a1 100644 --- a/src/library_dylink.js +++ b/src/library_dylink.js @@ -994,14 +994,23 @@ var LibraryDylink = { #endif // for wasm, we can use fetch for async, but for fs mode we can only imitate it + var libData; if (handle) { var data = {{{ makeGetValue('handle', C_STRUCTS.dso.file_data, '*') }}}; var dataSize = {{{ makeGetValue('handle', C_STRUCTS.dso.file_data_size, '*') }}}; if (data && dataSize) { - var libData = HEAP8.slice(data, data + dataSize); - return flags.loadAsync ? Promise.resolve(libData) : libData; + libData = HEAP8.slice(data, data + dataSize); } } + if (!libData && flags.fs && flags.fs.findObject(libName)) { + libData = flags.fs.readFile(libName, {encoding: 'binary'}); + if (!(libData instanceof Uint8Array)) { + libData = new Uint8Array(libData); + } + } + if (libData) { + return flags.loadAsync ? Promise.resolve(libData) : libData; + } var libFile = locateFile(libName); if (flags.loadAsync) { -- 2.34.1