diff options
author | Leon Krause <lk@leonkrause.com> | 2018-03-27 09:06:19 +0200 |
---|---|---|
committer | Leon Krause <lk@leonkrause.com> | 2018-03-27 09:12:08 +0200 |
commit | 63c7fc6358343c3de6cfaa40436063646eb8b7a1 (patch) | |
tree | 2712129fdd6faf5c0ba4622cf51bfa056bcd080d /platform | |
parent | d8d9eea72252e5b667537261ea40fec18cf1f809 (diff) |
Expose Emscripten libs to engine.js discreetly
Diffstat (limited to 'platform')
-rw-r--r-- | platform/javascript/detect.py | 7 | ||||
-rw-r--r-- | platform/javascript/engine.js | 7 | ||||
-rw-r--r-- | platform/javascript/pre.js | 2 |
3 files changed, 6 insertions, 10 deletions
diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py index 851f4ecb49..daa97bf2e2 100644 --- a/platform/javascript/detect.py +++ b/platform/javascript/detect.py @@ -129,13 +129,6 @@ def configure(env): # This setting just makes WebGL 2 APIs available, it does NOT disable WebGL 1. env.Append(LINKFLAGS=['-s', 'USE_WEBGL2=1']) - # engine.js uses FS but is not currently evaluated by Emscripten, so export FS. - # TODO: Getting rid of this export is desirable. - extra_exports = [ - 'FS', - ] - env.Append(LINKFLAGS=['-s', 'EXTRA_EXPORTED_RUNTIME_METHODS="%s"' % repr(extra_exports)]) - env.Append(LINKFLAGS=['-s', 'INVOKE_RUN=0']) # TODO: Reevaluate usage of this setting now that engine.js manages engine runtime. diff --git a/platform/javascript/engine.js b/platform/javascript/engine.js index e6fb48d0d2..c54ccef1eb 100644 --- a/platform/javascript/engine.js +++ b/platform/javascript/engine.js @@ -1,3 +1,4 @@ + exposedLibs['FS'] = FS; return Module; }, }; @@ -31,6 +32,8 @@ this.rtenv = null; + var LIBS = {}; + var initPromise = null; var unloadAfterInit = true; @@ -80,7 +83,7 @@ return new Promise(function(resolve, reject) { rtenvProps.onRuntimeInitialized = resolve; rtenvProps.onAbort = reject; - rtenvProps.engine.rtenv = Engine.RuntimeEnvironment(rtenvProps); + rtenvProps.engine.rtenv = Engine.RuntimeEnvironment(rtenvProps, LIBS); }); } @@ -163,7 +166,7 @@ this.rtenv.thisProgram = executableName || getBaseName(basePath); preloadedFiles.forEach(function(file) { - this.rtenv.FS.createDataFile('/', file.name, new Uint8Array(file.buffer), true, true, true); + LIBS.FS.createDataFile('/', file.name, new Uint8Array(file.buffer), true, true, true); }, this); preloadedFiles = null; diff --git a/platform/javascript/pre.js b/platform/javascript/pre.js index 311aa44fda..02194bc75e 100644 --- a/platform/javascript/pre.js +++ b/platform/javascript/pre.js @@ -1,2 +1,2 @@ var Engine = { - RuntimeEnvironment: function(Module) { + RuntimeEnvironment: function(Module, exposedLibs) { |