diff options
| author | Leon Krause | 2018-03-27 09:14:03 +0200 |
|---|---|---|
| committer | Hein-Pieter van Braam | 2018-04-28 19:54:12 +0200 |
| commit | 78b44eab0a4d2fbfd5c29984dcad6b1b0600bd0f (patch) | |
| tree | a7b0444d82f8f5ac808af7f0dbd0b6f4e40c4c89 /platform/javascript/engine.js | |
| parent | 0f6626977bd246acc14d320ac8872ef1e751c998 (diff) | |
| download | godot-78b44eab0a4d2fbfd5c29984dcad6b1b0600bd0f.tar.gz godot-78b44eab0a4d2fbfd5c29984dcad6b1b0600bd0f.tar.zst godot-78b44eab0a4d2fbfd5c29984dcad6b1b0600bd0f.zip | |
Diffstat (limited to 'platform/javascript/engine.js')
| -rw-r--r-- | platform/javascript/engine.js | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/platform/javascript/engine.js b/platform/javascript/engine.js index 527587c7c..afd912bf3 100644 --- a/platform/javascript/engine.js +++ b/platform/javascript/engine.js @@ -1,3 +1,4 @@ + exposedLibs['PATH'] = PATH; exposedLibs['FS'] = FS; return Module; }, @@ -96,14 +97,14 @@ } if (pathOrBuffer instanceof Uint8Array) { preloadedFiles.push({ - name: bufferFilename, + path: bufferFilename, buffer: pathOrBuffer }); return Promise.resolve(); } else if (typeof pathOrBuffer === 'string') { return loadPromise(pathOrBuffer, preloadProgressTracker).then(function(xhr) { preloadedFiles.push({ - name: pathOrBuffer, + path: pathOrBuffer, buffer: xhr.response }); }); @@ -178,7 +179,16 @@ this.rtenv.thisProgram = executableName || getBaseName(basePath); preloadedFiles.forEach(function(file) { - LIBS.FS.createDataFile('/', file.name, new Uint8Array(file.buffer), true, true, true); + var dir = LIBS.PATH.dirname(file.path); + try { + LIBS.FS.stat(dir); + } catch (e) { + if (e.code !== 'ENOENT') { + throw e; + } + LIBS.FS.mkdirTree(dir); + } + LIBS.FS.createDataFile('/', file.path, new Uint8Array(file.buffer), true, true, true); }, this); preloadedFiles = null; |
