@@ -1,10 +1,11 @@
1 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1 2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var initPikchrModule = (() => {
2 3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;
3 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
4 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (
5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- async function(moduleArg = {}) {
6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function(moduleArg = {}) {
6 7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var moduleRtn;
7 8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
8 9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// include: shell.js
9 10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// The Module object: Our interface to the outside world. We import
10 11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// and export values on it. There are various ways Module can be used:
@@ -88,25 +89,25 @@
88 89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// If scriptDirectory contains a query (starting with ?) or a fragment (starting with #),
89 90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// they are removed because they could contain a slash.
90 91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (scriptDirectory.startsWith("blob:")) {
91 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
scriptDirectory = "";
92 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} else {
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- scriptDirectory = scriptDirectory.slice(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
94 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
95 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
96 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// include: web_or_worker_shell_read.js
97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- readAsync = async url => {
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var response = await fetch(url, {
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- credentials: "same-origin"
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- });
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ readAsync = url => fetch(url, {
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ credentials: "same-origin"
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }).then(response => {
101 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (response.ok) {
102 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return response.arrayBuffer();
103 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- throw new Error(response.status + " : " + response.url);
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return Promise.reject(new Error(response.status + " : " + response.url));
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
106 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {}
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } else // end include: web_or_worker_shell_read.js
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {}
108 109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
109 110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var out = Module["print"] || console.log.bind(console);
110 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var err = Module["printErr"] || console.error.bind(console);
112 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -152,25 +153,13 @@
152 153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// NOTE: This is also used as the process return code code in shell environments
153 154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// but only when noExitRuntime is false.
154 155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var EXITSTATUS;
155 156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
156 157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Memory management
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var /** @type {!Int8Array} */ HEAP8, /** @type {!Uint8Array} */ HEAPU8, /** @type {!Int16Array} */ HEAP16, /** @type {!Uint16Array} */ HEAPU16, /** @type {!Int32Array} */ HEAP32, /** @type {!Uint32Array} */ HEAPU32, /** @type {!Float32Array} */ HEAPF32, /* BigInt64Array type is not correctly defined in closure
158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /** not-@type {!BigInt64Array} */ HEAP64, /* BigUint64Array type is not correctly defined in closure
159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /** not-t@type {!BigUint64Array} */ HEAPU64, /** @type {!Float64Array} */ HEAPF64;
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var runtimeInitialized = false;
158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var /** @type {!Int8Array} */ HEAP8, /** @type {!Uint8Array} */ HEAPU8, /** @type {!Int16Array} */ HEAP16, /** @type {!Uint16Array} */ HEAPU16, /** @type {!Int32Array} */ HEAP32, /** @type {!Uint32Array} */ HEAPU32, /** @type {!Float32Array} */ HEAPF32, /** @type {!Float64Array} */ HEAPF64;
162 159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
163 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// include: runtime_shared.js
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // include: runtime_stack_check.js
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // end include: runtime_stack_check.js
166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // include: runtime_exceptions.js
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // end include: runtime_exceptions.js
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // include: runtime_debug.js
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // end include: runtime_debug.js
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // include: memoryprofiler.js
171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // end include: memoryprofiler.js
172 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function updateMemoryViews() {
173 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var b = wasmMemory.buffer;
174 163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["HEAP8"] = HEAP8 = new Int8Array(b);
175 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["HEAP16"] = HEAP16 = new Int16Array(b);
176 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
@@ -177,48 +166,77 @@
177 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["HEAPU16"] = HEAPU16 = new Uint16Array(b);
178 167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["HEAP32"] = HEAP32 = new Int32Array(b);
179 168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["HEAPU32"] = HEAPU32 = new Uint32Array(b);
180 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["HEAPF32"] = HEAPF32 = new Float32Array(b);
181 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["HEAPF64"] = HEAPF64 = new Float64Array(b);
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Module["HEAP64"] = HEAP64 = new BigInt64Array(b);
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Module["HEAPU64"] = HEAPU64 = new BigUint64Array(b);
184 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
185 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
186 173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// end include: runtime_shared.js
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // include: runtime_stack_check.js
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // end include: runtime_stack_check.js
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var __ATPRERUN__ = [];
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // functions called before the runtime is initialized
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var __ATINIT__ = [];
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // functions called during shutdown
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var __ATPOSTRUN__ = [];
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // functions called after the main() is called
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var runtimeInitialized = false;
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
187 187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function preRun() {
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if (Module["preRun"]) {
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if (typeof Module["preRun"] == "function") Module["preRun"] = [ Module["preRun"] ];
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while (Module["preRun"].length) {
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- addOnPreRun(Module["preRun"].shift());
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var preRuns = Module["preRun"];
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (preRuns) {
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (typeof preRuns == "function") preRuns = [ preRuns ];
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ preRuns.forEach(addOnPreRun);
193 192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- callRuntimeCallbacks(onPreRuns);
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ callRuntimeCallbacks(__ATPRERUN__);
195 194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
196 195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
197 196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function initRuntime() {
198 197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runtimeInitialized = true;
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- wasmExports["e"]();
198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ callRuntimeCallbacks(__ATINIT__);
200 199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
201 200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
202 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function postRun() {
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if (Module["postRun"]) {
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if (typeof Module["postRun"] == "function") Module["postRun"] = [ Module["postRun"] ];
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while (Module["postRun"].length) {
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- addOnPostRun(Module["postRun"].shift());
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var postRuns = Module["postRun"];
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (postRuns) {
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (typeof postRuns == "function") postRuns = [ postRuns ];
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ postRuns.forEach(addOnPostRun);
208 206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- callRuntimeCallbacks(onPostRuns);
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ callRuntimeCallbacks(__ATPOSTRUN__);
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function addOnPreRun(cb) {
211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ __ATPRERUN__.unshift(cb);
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function addOnInit(cb) {
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ __ATINIT__.unshift(cb);
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function addOnPostRun(cb) {
219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ __ATPOSTRUN__.unshift(cb);
210 220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
211 221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // include: runtime_math.js
223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround
225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc
227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // end include: runtime_math.js
212 228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// A counter of dependencies for calling run(). If we need to
213 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// do asynchronous work before running, increment this and
214 230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// decrement it. Incrementing must happen in a place like
215 231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Module.preRun (used by emcc to add file preloading).
216 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Note that you can add dependencies in preRun, even though
217 233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// it happens right before run - run will be postponed until
218 234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// the dependencies are met.
219 235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var runDependencies = 0;
236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var runDependencyWatcher = null;
220 238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
221 239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var dependenciesFulfilled = null;
222 240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
223 241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function addRunDependency(id) {
224 242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runDependencies++;
@@ -227,10 +245,14 @@
227 245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
228 246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function removeRunDependency(id) {
229 247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
runDependencies--;
230 248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["monitorRunDependencies"]?.(runDependencies);
231 249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (runDependencies == 0) {
250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (runDependencyWatcher !== null) {
251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ clearInterval(runDependencyWatcher);
252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ runDependencyWatcher = null;
253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
232 254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (dependenciesFulfilled) {
233 255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var callback = dependenciesFulfilled;
234 256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
dependenciesFulfilled = null;
235 257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
callback();
236 258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -263,15 +285,33 @@
263 285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// in code paths apart from instantiation where an exception is expected
264 286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// to be thrown when abort is called.
265 287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
throw e;
266 288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
267 289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var wasmBinaryFile;
290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // include: memoryprofiler.js
291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // end include: memoryprofiler.js
292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // include: URIUtils.js
293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // Prefix of data URIs emitted by SINGLE_FILE and related options.
294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var dataURIPrefix = "data:application/octet-stream;base64,";
269 295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /**
297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ * Indicates whether filename is a base64 data URI.
298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ * @noinline
299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */ var isDataURI = filename => filename.startsWith(dataURIPrefix);
300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // end include: URIUtils.js
302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // include: runtime_exceptions.js
303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // end include: runtime_exceptions.js
270 304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function findWasmBinary() {
271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return locateFile("pikchr.wasm");
305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var f = "pikchr.wasm";
306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (!isDataURI(f)) {
307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return locateFile(f);
308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return f;
272 310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var wasmBinaryFile;
273 313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
274 314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function getBinarySync(file) {
275 315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (file == wasmBinaryFile && wasmBinary) {
276 316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return new Uint8Array(wasmBinary);
277 317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -279,50 +319,48 @@
279 319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return readBinary(file);
280 320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
281 321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
throw "both async and sync fetching of the wasm failed";
282 322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
283 323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- async function getWasmBinary(binaryFile) {
324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function getBinaryPromise(binaryFile) {
285 325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// If we don't have the binary yet, load it asynchronously using readAsync.
286 326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (!wasmBinary) {
287 327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Fetch the binary using readAsync
288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- try {
289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var response = await readAsync(binaryFile);
290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return new Uint8Array(response);
291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } catch {}
328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return readAsync(binaryFile).then(response => new Uint8Array(/** @type{!ArrayBuffer} */ (response)), // Fall back to getBinarySync if readAsync fails
329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ () => getBinarySync(binaryFile));
292 330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
293 331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Otherwise, getBinarySync should be able to get it synchronously
294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return getBinarySync(binaryFile);
332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return Promise.resolve().then(() => getBinarySync(binaryFile));
295 333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
296 334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- async function instantiateArrayBuffer(binaryFile, imports) {
298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- try {
299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var binary = await getWasmBinary(binaryFile);
300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var instance = await WebAssembly.instantiate(binary, imports);
301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return instance;
302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } catch (reason) {
335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function instantiateArrayBuffer(binaryFile, imports, receiver) {
336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return getBinaryPromise(binaryFile).then(binary => WebAssembly.instantiate(binary, imports)).then(receiver, reason => {
303 337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
err(`failed to asynchronously prepare wasm: ${reason}`);
304 338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
abort(reason);
305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
306 340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
307 341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- async function instantiateAsync(binary, binaryFile, imports) {
309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if (!binary && typeof WebAssembly.instantiateStreaming == "function") {
310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- try {
311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var response = fetch(binaryFile, {
312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- credentials: "same-origin"
342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function instantiateAsync(binary, binaryFile, imports, callback) {
343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") {
344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return fetch(binaryFile, {
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ credentials: "same-origin"
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }).then(response => {
347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // Suppress closure warning here since the upstream definition for
348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // instantiateStreaming only allows Promise<Repsponse> rather than
349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // an actual Response.
350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed.
351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /** @suppress {checkTypes} */ var result = WebAssembly.instantiateStreaming(response, imports);
352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return result.then(callback, function(reason) {
353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // We expect the most common failure cause to be a bad MIME type for the binary,
354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // in which case falling back to ArrayBuffer instantiation should work.
355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ err(`wasm streaming compile failed: ${reason}`);
356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ err("falling back to ArrayBuffer instantiation");
357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return instantiateArrayBuffer(binaryFile, imports, callback);
313 358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var instantiationResult = await WebAssembly.instantiateStreaming(response, imports);
315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return instantiationResult;
316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } catch (reason) {
317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // We expect the most common failure cause to be a bad MIME type for the binary,
318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // in which case falling back to ArrayBuffer instantiation should work.
319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- err(`wasm streaming compile failed: ${reason}`);
320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- err("falling back to ArrayBuffer instantiation");
321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return instantiateArrayBuffer(binaryFile, imports);
359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return instantiateArrayBuffer(binaryFile, imports, callback);
324 362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
325 363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
326 364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function getWasmImports() {
327 365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// prepare imports
328 366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return {
@@ -330,18 +368,20 @@
330 368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
331 369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
332 370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
333 371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Create the wasm instance.
334 372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Receives the wasm imports, returns the exports.
335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- async function createWasm() {
373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function createWasm() {
374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var info = getWasmImports();
336 375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Load the wasm module and create an instance of using native support in the JS engine.
337 376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// handle a generated wasm instance, receiving its exports and
338 377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// performing other necessary setup
339 378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/** @param {WebAssembly.Module=} module*/ function receiveInstance(instance, module) {
340 379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wasmExports = instance.exports;
341 380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wasmMemory = wasmExports["d"];
342 381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
updateMemoryViews();
382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addOnInit(wasmExports["e"]);
343 383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
removeRunDependency("wasm-instantiate");
344 384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return wasmExports;
345 385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
346 386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// wait for the pthread pool (if any)
347 387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addRunDependency("wasm-instantiate");
@@ -349,64 +389,48 @@
349 389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function receiveInstantiationResult(result) {
350 390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// 'result' is a ResultObject object which has both the module and instance.
351 391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// receiveInstance() will swap in the exports (to Module.asm) so they can be called
352 392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.
353 393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// When the regression is fixed, can restore the above PTHREADS-enabled path.
354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return receiveInstance(result["instance"]);
394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ receiveInstance(result["instance"]);
355 395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var info = getWasmImports();
357 396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback
358 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// to manually instantiate the Wasm module themselves. This allows pages to
359 398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// run the instantiation parallel to any other async startup actions they are
360 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// performing.
361 400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Also pthreads and wasm workers initialize the wasm instance through this
362 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// path.
363 402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (Module["instantiateWasm"]) {
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return new Promise((resolve, reject) => {
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Module["instantiateWasm"](info, (mod, inst) => {
366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- receiveInstance(mod, inst);
367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- resolve(mod.exports);
368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- });
369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- });
403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ try {
404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return Module["instantiateWasm"](info, receiveInstance);
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } catch (e) {
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ err(`Module.instantiateWasm callback failed with error: ${e}`);
407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // If instantiation fails, reject the module ready promise.
408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ readyPromiseReject(e);
409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
370 410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
371 411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wasmBinaryFile ??= findWasmBinary();
372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- try {
373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var exports = receiveInstantiationResult(result);
375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return exports;
376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } catch (e) {
377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // If instantiation fails, reject the module ready promise.
378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- readyPromiseReject(e);
379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return Promise.reject(e);
380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // If instantiation fails, reject the module ready promise.
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject);
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return {};
381 415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
382 416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // include: runtime_debug.js
418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // end include: runtime_debug.js
383 419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// === Body ===
384 420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// end include: preamble.js
385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- class ExitStatus {
386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- name="ExitStatus";
387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- constructor(status) {
388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.message = `Program terminated with exit(${status})`;
389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.status = status;
390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /** @constructor */ function ExitStatus(status) {
422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.name = "ExitStatus";
423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.message = `Program terminated with exit(${status})`;
424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.status = status;
391 425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
392 426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
393 427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var callRuntimeCallbacks = callbacks => {
394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while (callbacks.length > 0) {
395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // Pass the module as the first argument.
396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- callbacks.shift()(Module);
397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // Pass the module as the first argument.
429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ callbacks.forEach(f => f(Module));
398 430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
399 431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var onPostRuns = [];
401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var addOnPostRun = cb => onPostRuns.unshift(cb);
403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var onPreRuns = [];
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var addOnPreRun = cb => onPreRuns.unshift(cb);
407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
408 432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
409 433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* @param {number} ptr
410 434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* @param {string} type
411 435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/ function getValue(ptr, type = "i8") {
412 436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (type.endsWith("*")) type = "*";
@@ -422,11 +446,11 @@
422 446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
423 447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case "i32":
424 448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return HEAP32[((ptr) >> 2)];
425 449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
426 450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case "i64":
427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return HEAP64[((ptr) >> 3)];
451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ abort("to do getValue(i64) use WASM_BIGINT");
428 452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
429 453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case "float":
430 454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return HEAPF32[((ptr) >> 2)];
431 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
432 456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case "double":
@@ -464,12 +488,11 @@
464 488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case "i32":
465 489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
HEAP32[((ptr) >> 2)] = value;
466 490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
467 491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
468 492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case "i64":
469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- HEAP64[((ptr) >> 3)] = BigInt(value);
470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ abort("to do setValue(i64) use WASM_BIGINT");
471 494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
472 495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case "float":
473 496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
HEAPF32[((ptr) >> 2)] = value;
474 497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
475 498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -560,11 +583,13 @@
560 583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* frequent uses of UTF8ToString() with and without maxBytesToRead may throw
561 584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* JS JIT optimizations off, so it is worth to consider consistently using one
562 585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* @return {string}
563 586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/ var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
564 587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var ___assert_fail = (condition, filename, line, func) => abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [ filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function" ]);
588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var ___assert_fail = (condition, filename, line, func) => {
589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [ filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function" ]);
590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
566 591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
567 592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var abortOnCannotGrowMemory = requestedSize => {
568 593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
abort("OOM");
569 594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
570 595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -756,21 +781,21 @@
756 781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/** @export */ a: ___assert_fail,
757 782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/** @export */ b: _emscripten_resize_heap,
758 783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/** @export */ c: _exit
759 784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
760 785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var wasmExports = await createWasm();
762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var ___wasm_call_ctors = wasmExports["e"];
764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var _pikchr = Module["_pikchr"] = wasmExports["g"];
766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var __emscripten_stack_restore = wasmExports["h"];
768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var __emscripten_stack_alloc = wasmExports["i"];
770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var _emscripten_stack_get_current = wasmExports["j"];
786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var wasmExports = createWasm();
787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["e"])();
789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var _pikchr = Module["_pikchr"] = (a0, a1, a2, a3, a4) => (_pikchr = Module["_pikchr"] = wasmExports["g"])(a0, a1, a2, a3, a4);
791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var __emscripten_stack_restore = a0 => (__emscripten_stack_restore = wasmExports["h"])(a0);
793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var __emscripten_stack_alloc = a0 => (__emscripten_stack_alloc = wasmExports["i"])(a0);
795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var _emscripten_stack_get_current = () => (_emscripten_stack_get_current = wasmExports["j"])();
772 797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
773 798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// include: postamble.js
774 799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// === Auto-generated postamble setup entry stuff ===
775 800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["stackSave"] = stackSave;
776 801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -782,25 +807,39 @@
782 807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
783 808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["setValue"] = setValue;
784 809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
785 810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["getValue"] = getValue;
786 811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var calledRun;
813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ var calledPrerun;
815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dependenciesFulfilled = function runCaller() {
817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (!calledRun) run();
819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (!calledRun) dependenciesFulfilled = runCaller;
820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // try this again later, after new deps are fulfilled
787 823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function run() {
788 824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (runDependencies > 0) {
789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- dependenciesFulfilled = run;
790 825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
791 826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- preRun();
793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // a preRun added a dependency, run will be called later
794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if (runDependencies > 0) {
795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- dependenciesFulfilled = run;
796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return;
827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (!calledPrerun) {
828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ calledPrerun = 1;
829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ preRun();
830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // a preRun added a dependency, run will be called later
831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (runDependencies > 0) {
832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
797 834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
798 835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
function doRun() {
799 836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// run may have just been called through dependencies being fulfilled just in this very frame,
800 837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// or while the async setStatus time below was happening
801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Module["calledRun"] = true;
838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (calledRun) return;
839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ calledRun = 1;
840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Module["calledRun"] = 1;
802 841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (ABORT) return;
803 842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
initRuntime();
804 843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
readyPromiseResolve(Module);
805 844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Module["onRuntimeInitialized"]?.();
806 845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
postRun();
@@ -836,12 +875,9 @@
836 875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
837 876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return moduleRtn;
838 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
839 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
840 879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
})();
841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if (typeof exports === 'object' && typeof module === 'object') {
880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (typeof exports === 'object' && typeof module === 'object')
842 881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
module.exports = initPikchrModule;
843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // This default export looks redundant, but it allows TS to import this
844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // commonjs style module.
845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- module.exports.default = initPikchrModule;
846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else if (typeof define === 'function' && define['amd'])
882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if (typeof define === 'function' && define['amd'])
847 883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
define([], () => initPikchrModule);
848 884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!