summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorLeon Krause <lk@leonkrause.com>2018-03-27 09:06:19 +0200
committerLeon Krause <lk@leonkrause.com>2018-03-27 09:12:08 +0200
commit63c7fc6358343c3de6cfaa40436063646eb8b7a1 (patch)
tree2712129fdd6faf5c0ba4622cf51bfa056bcd080d /platform
parentd8d9eea72252e5b667537261ea40fec18cf1f809 (diff)
Expose Emscripten libs to engine.js discreetly
Diffstat (limited to 'platform')
-rw-r--r--platform/javascript/detect.py7
-rw-r--r--platform/javascript/engine.js7
-rw-r--r--platform/javascript/pre.js2
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) {