funicular 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +44 -0
- data/lib/funicular/vendor/mrbc/VERSION +1 -1
- data/lib/funicular/vendor/mrbc/mrbc.js +13 -9
- data/lib/funicular/vendor/mrbc/mrbc.wasm +0 -0
- data/lib/funicular/vendor/picoruby/VERSION +1 -1
- data/lib/funicular/vendor/picoruby/debug/picoruby.js +80 -15
- data/lib/funicular/vendor/picoruby/debug/picoruby.wasm +0 -0
- data/lib/funicular/vendor/picoruby/dist/picoruby.js +1 -1
- data/lib/funicular/vendor/picoruby/dist/picoruby.wasm +0 -0
- data/lib/funicular/vendor/picoruby-test-node/VERSION +1 -1
- data/lib/funicular/vendor/picoruby-test-node/picoruby.js +1 -1
- data/lib/funicular/vendor/picoruby-test-node/picoruby.wasm +0 -0
- data/lib/funicular/version.rb +4 -3
- data/lib/tasks/funicular.rake +23 -15
- data/mrblib/debug.rb +54 -10
- data/mrblib/differ.rb +7 -5
- data/mrblib/funicular.rb +2 -5
- data/mrblib/patcher.rb +57 -25
- data/mrblib/vdom.rb +5 -5
- data/mrblib/version.rb +11 -0
- data/sig/debug.rbs +5 -0
- data/sig/patcher.rbs +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 558f130a4dd9915a25efbdb6ebc5d976fc7e1459a7fcd1362a20465253fbb238
|
|
4
|
+
data.tar.gz: 9c8efa623ad8aa782bc24ddc352a57b376fcdac1322c818316d7479bbe39a19d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4a8e1188bd56a2609c5d319905a65defd15785540c10772f56caf7f63ca4d90ec32bc408eea3a0c8bd75ceefa2d59eb7f629414643061b0831200116394d9dde
|
|
7
|
+
data.tar.gz: e8b2b91085f66f8a83fb9745b8b68d0a56d27e50b07a0531e38036047bbc4b3c62a11ded2b35b15017ab3f18c2f372cea7a3d5ece0cd71677a423a744ecdf9c5
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
## [0.5.1] - 2026-09-17
|
|
2
|
+
|
|
3
|
+
A patch release: keyed-list patching fixes surfaced by real applications,
|
|
4
|
+
a DevTools inspector crash, and a single source of truth for the version.
|
|
5
|
+
|
|
6
|
+
### Fixed
|
|
7
|
+
|
|
8
|
+
- Keyed child reordering: kept children whose position changed between
|
|
9
|
+
renders were updated in place but never moved, so a keyed list that
|
|
10
|
+
reordered its items rendered in the old order. The patcher now places
|
|
11
|
+
kept and inserted children at their new index in one pass. Unmoved
|
|
12
|
+
children are left untouched: the browser's `insertBefore(node, node)`
|
|
13
|
+
counts as a detach and re-attach, which reset focus, restarted CSS
|
|
14
|
+
transitions and reloaded iframes on every keyed render. The live child
|
|
15
|
+
order is tracked in a Ruby array built from the snapshot instead of
|
|
16
|
+
re-reading `childNodes` per op, which was O(n^2) across the wasm
|
|
17
|
+
boundary and leaked JS object references.
|
|
18
|
+
|
|
19
|
+
- Keyed diffs remove unmatched raw String children. A text child that no
|
|
20
|
+
new child matched (a `'Loading...'` placeholder followed by a keyed
|
|
21
|
+
list, say) survived every keyed re-render and stayed in the DOM
|
|
22
|
+
forever. Only nil slots are skipped now.
|
|
23
|
+
|
|
24
|
+
- The DevTools inspector bounds the depth of instance-variable
|
|
25
|
+
inspection. `Object#inspect` on a component's `@runtime` recursed
|
|
26
|
+
through the router, the mounted component and its whole VDOM tree and
|
|
27
|
+
overflowed the wasm C stack, which showed up later as garbage values,
|
|
28
|
+
`TypeError` from `<=>` and GC crashes after clicking a component in the
|
|
29
|
+
PicoRuby debugger panel. Leaves are inspected in full; containers and
|
|
30
|
+
objects past a fixed depth and item count are summarized, and
|
|
31
|
+
BasicObject proxies (style accessors) are named rather than inspected.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- `Funicular::VERSION` is defined once, in `mrblib/version.rb`, and is
|
|
36
|
+
compiled into PicoRuby.wasm. `lib/funicular/version.rb` requires it,
|
|
37
|
+
so the CRuby gem and the browser runtime can no longer disagree (they
|
|
38
|
+
had drifted to 0.5.1 vs 0.5.0). `Funicular.version` in the browser now
|
|
39
|
+
reports the released version.
|
|
40
|
+
|
|
41
|
+
- `Funicular::VDOM::Element#==` is public. It was declared under
|
|
42
|
+
`private`, which mruby honors for operator calls, so element
|
|
43
|
+
comparison behaved differently between CRuby (SSR) and the browser.
|
|
44
|
+
|
|
1
45
|
## [0.5.0] - 2026-08-13
|
|
2
46
|
|
|
3
47
|
The local database release: an ActiveRecord-like, reactive local store on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
4.0.
|
|
1
|
+
4.0.4
|
|
@@ -682,12 +682,9 @@ async function instantiateAsync(binary, binaryFile, imports) {
|
|
|
682
682
|
if (!binary
|
|
683
683
|
// Don't use streaming for file:// delivered objects in a webview, fetch them synchronously.
|
|
684
684
|
&& !isFileURI(binaryFile)
|
|
685
|
-
// Avoid instantiateStreaming() on Node.js
|
|
686
|
-
//
|
|
687
|
-
//
|
|
688
|
-
//
|
|
689
|
-
// Reference:
|
|
690
|
-
// https://github.com/emscripten-core/emscripten/pull/16917
|
|
685
|
+
// Avoid using instantiateStreaming() on Node.js since the `fetch()` API
|
|
686
|
+
// does not support `file://` URLs.
|
|
687
|
+
// See: https://github.com/emscripten-core/emscripten/pull/16917
|
|
691
688
|
&& !ENVIRONMENT_IS_NODE
|
|
692
689
|
) {
|
|
693
690
|
try {
|
|
@@ -1146,6 +1143,9 @@ async function createWasm() {
|
|
|
1146
1143
|
if (result === null || result === undefined) break;
|
|
1147
1144
|
bytesRead++;
|
|
1148
1145
|
buffer[offset+i] = result;
|
|
1146
|
+
// We currently only support canonical mode (ICANON), where
|
|
1147
|
+
// read(2) returns as soon as a line delimiter is read.
|
|
1148
|
+
if (result === 10) break;
|
|
1149
1149
|
}
|
|
1150
1150
|
if (bytesRead) {
|
|
1151
1151
|
stream.node.atime = Date.now();
|
|
@@ -1997,6 +1997,7 @@ async function createWasm() {
|
|
|
1997
1997
|
|
|
1998
1998
|
|
|
1999
1999
|
|
|
2000
|
+
|
|
2000
2001
|
var NODERAWFS_stream_funcs = {
|
|
2001
2002
|
close(stream) {
|
|
2002
2003
|
VFS.closeStream(stream.fd);
|
|
@@ -2075,10 +2076,10 @@ async function createWasm() {
|
|
|
2075
2076
|
return { path, node: { id: st.ino, mode, node_ops: NODERAWFS, path }};
|
|
2076
2077
|
},
|
|
2077
2078
|
createStandardStreams() {
|
|
2078
|
-
FS.createStream({ nfd: 0, position: 0, path: '/dev/stdin', flags: 0
|
|
2079
|
+
FS.createStream({ nfd: 0, position: 0, path: '/dev/stdin', flags: 0 }, 0);
|
|
2079
2080
|
var paths = [,'/dev/stdout', '/dev/stderr'];
|
|
2080
2081
|
for (var i = 1; i < 3; i++) {
|
|
2081
|
-
FS.createStream({ nfd: i, position: 0, path: paths[i], flags: 577
|
|
2082
|
+
FS.createStream({ nfd: i, position: 0, path: paths[i], flags: 577 }, i);
|
|
2082
2083
|
}
|
|
2083
2084
|
},
|
|
2084
2085
|
cwd() { return process.cwd(); },
|
|
@@ -2210,7 +2211,10 @@ async function createWasm() {
|
|
|
2210
2211
|
if (!stream.stream_ops) {
|
|
2211
2212
|
rtn.shared.refcnt ??= 0;
|
|
2212
2213
|
rtn.shared.refcnt++;
|
|
2213
|
-
|
|
2214
|
+
if (nodeTTY.isatty(rtn.nfd)) {
|
|
2215
|
+
rtn.tty = { ops: TTY.default_tty_ops };
|
|
2216
|
+
rtn.seekable = false;
|
|
2217
|
+
}
|
|
2214
2218
|
}
|
|
2215
2219
|
return rtn;
|
|
2216
2220
|
},
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
4.0.
|
|
1
|
+
4.0.4
|
|
@@ -416,6 +416,8 @@ function initRuntime() {
|
|
|
416
416
|
assert(!runtimeInitialized);
|
|
417
417
|
runtimeInitialized = true;
|
|
418
418
|
|
|
419
|
+
setStackLimits();
|
|
420
|
+
|
|
419
421
|
checkStackCookie();
|
|
420
422
|
|
|
421
423
|
// Begin ATINITS hooks
|
|
@@ -675,6 +677,12 @@ async function createWasm() {
|
|
|
675
677
|
return '0x' + ptr.toString(16).padStart(8, '0');
|
|
676
678
|
}
|
|
677
679
|
|
|
680
|
+
var setStackLimits = () => {
|
|
681
|
+
var stackLow = _emscripten_stack_get_base();
|
|
682
|
+
var stackHigh = _emscripten_stack_get_end();
|
|
683
|
+
___set_stack_limits(stackLow, stackHigh);
|
|
684
|
+
};
|
|
685
|
+
|
|
678
686
|
var stackRestore = (val) => __emscripten_stack_restore(val);
|
|
679
687
|
|
|
680
688
|
var stackSave = () => _emscripten_stack_get_current();
|
|
@@ -795,6 +803,16 @@ async function createWasm() {
|
|
|
795
803
|
};
|
|
796
804
|
var ___call_sighandler = (fp, sig) => getWasmTableEntry(fp)(sig);
|
|
797
805
|
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
var ___handle_stack_overflow = (requested) => {
|
|
809
|
+
var base = _emscripten_stack_get_base();
|
|
810
|
+
var end = _emscripten_stack_get_end();
|
|
811
|
+
abort(`stack overflow (Attempt to set SP to ${ptrToString(requested)}` +
|
|
812
|
+
`, with stack limits [${ptrToString(end)} - ${ptrToString(base)}` +
|
|
813
|
+
']). If you require more stack space build with -sSTACK_SIZE=<bytes>');
|
|
814
|
+
};
|
|
815
|
+
|
|
798
816
|
var PATH = {
|
|
799
817
|
isAbs:(path) => path.charAt(0) === '/',
|
|
800
818
|
splitPath:(filename) => {
|
|
@@ -1072,6 +1090,9 @@ var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
|
|
|
1072
1090
|
if (result === null || result === undefined) break;
|
|
1073
1091
|
bytesRead++;
|
|
1074
1092
|
buffer[offset+i] = result;
|
|
1093
|
+
// We currently only support canonical mode (ICANON), where
|
|
1094
|
+
// read(2) returns as soon as a line delimiter is read.
|
|
1095
|
+
if (result === 10) break;
|
|
1075
1096
|
}
|
|
1076
1097
|
if (bytesRead) {
|
|
1077
1098
|
stream.node.atime = Date.now();
|
|
@@ -4257,9 +4278,7 @@ var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
|
|
|
4257
4278
|
if (!stream) return 32;
|
|
4258
4279
|
// Streams without a poll handler (regular files, incl. NODERAWFS/NODEFS
|
|
4259
4280
|
// which leave stream_ops unset) are treated as always readable+writable.
|
|
4260
|
-
var flags = stream.stream_ops?.poll
|
|
4261
|
-
? stream.stream_ops.poll(stream)
|
|
4262
|
-
: 5;
|
|
4281
|
+
var flags = stream.stream_ops?.poll?.(stream) ?? 5;
|
|
4263
4282
|
return flags & (events | 8 | 16 | 32);
|
|
4264
4283
|
};
|
|
4265
4284
|
|
|
@@ -5466,6 +5485,7 @@ missingLibrarySymbols.forEach(missingLibrarySymbol)
|
|
|
5466
5485
|
'getHeapMax',
|
|
5467
5486
|
'growMemory',
|
|
5468
5487
|
'ENV',
|
|
5488
|
+
'setStackLimits',
|
|
5469
5489
|
'ERRNO_CODES',
|
|
5470
5490
|
'strError',
|
|
5471
5491
|
'DNS',
|
|
@@ -5705,14 +5725,14 @@ function checkIncomingModuleAPI() {
|
|
|
5705
5725
|
ignoredModuleProp('wasmBinary');
|
|
5706
5726
|
}
|
|
5707
5727
|
var ASM_CONSTS = {
|
|
5708
|
-
|
|
5709
|
-
|
|
5710
|
-
|
|
5711
|
-
|
|
5712
|
-
|
|
5713
|
-
|
|
5714
|
-
|
|
5715
|
-
|
|
5728
|
+
2846285: ($0) => { globalThis.picorubyRefs[$0] = null; },
|
|
5729
|
+
2846325: ($0) => { globalThis.picorubyRefs[$0] = true; },
|
|
5730
|
+
2846365: ($0) => { globalThis.picorubyRefs[$0] = false; },
|
|
5731
|
+
2846406: ($0, $1) => { globalThis.picorubyRefs[$0] = $1; },
|
|
5732
|
+
2846444: ($0, $1) => { globalThis.picorubyRefs[$0] = $1; },
|
|
5733
|
+
2846482: ($0, $1, $2) => { const str = UTF8ToString($1, $2); globalThis.picorubyRefs[$0] = str; },
|
|
5734
|
+
2846555: ($0, $1) => { const arr = globalThis.picorubyRefs[$0]; const elem = globalThis.picorubyRefs[$1]; arr.push(elem); delete globalThis.picorubyRefs[$1]; },
|
|
5735
|
+
2846694: ($0, $1, $2) => { const obj = globalThis.picorubyRefs[$0]; const key = UTF8ToString($1); const val = globalThis.picorubyRefs[$2]; obj[key] = val; delete globalThis.picorubyRefs[$2]; }
|
|
5716
5736
|
};
|
|
5717
5737
|
function ble_dataview_length(ref_id) { try { const dv = globalThis.picorubyRefs[ref_id]; if (dv && dv.byteLength !== undefined) { return dv.byteLength; } return 0; } catch(e) { console.error('ble_dataview_length failed:', e); return 0; } }
|
|
5718
5738
|
function ble_dataview_read(ref_id,out_buf,max_len) { try { const dv = globalThis.picorubyRefs[ref_id]; if (!dv) return 0; const len = Math.min(dv.byteLength, max_len); for (let i = 0; i < len; i++) { HEAPU8[out_buf + i] = dv.getUint8(i); } return len; } catch(e) { console.error('ble_dataview_read failed:', e); return 0; } }
|
|
@@ -5768,7 +5788,7 @@ function js_replace_child(parent_ref_id,new_child_ref_id,old_child_ref_id) { try
|
|
|
5768
5788
|
function js_insert_before(parent_ref_id,new_child_ref_id,ref_child_ref_id) { try { const parent = globalThis.picorubyRefs[parent_ref_id]; const newChild = globalThis.picorubyRefs[new_child_ref_id]; const refChild = globalThis.picorubyRefs[ref_child_ref_id]; if (!parent || !newChild) return false; parent.insertBefore(newChild, refChild); return true; } catch(e) { console.error('Error in js_insert_before:', e); return false; } }
|
|
5769
5789
|
function js_set_attribute(ref_id,name,value) { try { const element = globalThis.picorubyRefs[ref_id]; if (!element || !element.setAttribute) return false; element.setAttribute(UTF8ToString(name), UTF8ToString(value)); return true; } catch(e) { console.error('Error in js_set_attribute:', e); return false; } }
|
|
5770
5790
|
function js_remove_attribute(ref_id,name) { try { const element = globalThis.picorubyRefs[ref_id]; if (!element || !element.removeAttribute) return false; element.removeAttribute(UTF8ToString(name)); return true; } catch(e) { console.error('Error in js_remove_attribute:', e); return false; } }
|
|
5771
|
-
function setup_binary_handler(ref_id,mrb_ptr,task_ptr,callback_id) { const
|
|
5791
|
+
function setup_binary_handler(ref_id,mrb_ptr,task_ptr,callback_id) { const object = globalThis.picorubyRefs[ref_id]; const reportError = (error) => { const message = error && typeof error.message === 'string' ? error.message : String(error); const size = lengthBytesUTF8(message) + 1; const errorPtr = _malloc(size); stringToUTF8(message, errorPtr, size); ccall( 'resume_promise_error_task', 'void', ['number', 'number', 'number', 'number'], [mrb_ptr, task_ptr, callback_id, errorPtr] ); }; Promise.resolve().then(() => { if (!object || typeof object.arrayBuffer !== 'function') { throw new TypeError('JS object does not implement arrayBuffer()'); } return object.arrayBuffer(); }).then(arrayBuffer => { const uint8Array = new Uint8Array(arrayBuffer); const ptr = _malloc(uint8Array.length); const heapBytes = new Uint8Array(HEAPU8.buffer, ptr, uint8Array.length); heapBytes.set(uint8Array); ccall( 'resume_binary_task', 'void', ['number', 'number', 'number', 'number', 'number'], [mrb_ptr, task_ptr, callback_id, ptr, uint8Array.length] ); }).catch(reportError); }
|
|
5772
5792
|
function init_js_type_offsets(type_offset,value_offset,is_integer_offset,string_value_offset) { globalThis.JS_TYPE_INFO_OFFSETS = { type: type_offset, value: value_offset, is_integer: is_integer_offset, string_value: string_value_offset }; }
|
|
5773
5793
|
function js_get_type_info(ref_id,info) { const value = globalThis.picorubyRefs[ref_id]; const offsets = globalThis.JS_TYPE_INFO_OFFSETS; let type = typeof value; if (value === null) { HEAP32[info + offsets.type >> 2] = 1; HEAP32[info + offsets.string_value >> 2] = 0; } else if (Array.isArray(value)) { HEAP32[info + offsets.type >> 2] = 7; HEAP32[info + offsets.value >> 2] = value.length; HEAP32[info + offsets.string_value >> 2] = 0; } else { switch(type) { case "undefined": HEAP32[info + offsets.type >> 2] = 0; HEAP32[info + offsets.string_value >> 2] = 0; break; case "boolean": HEAP32[info + offsets.type >> 2] = 2; HEAPU8[info + offsets.value] = value ? 1 : 0; HEAP32[info + offsets.string_value >> 2] = 0; break; case "number": HEAP32[info + offsets.type >> 2] = 3; HEAPF64[info + offsets.value >> 3] = value; HEAPU8[info + offsets.is_integer] = Number.isInteger(value) ? 1 : 0; HEAP32[info + offsets.string_value >> 2] = 0; break; case "bigint": case "string": case "symbol": { HEAP32[info + offsets.type >> 2] = type === "bigint" ? 4 : type === "string" ? 5 : 6; const str = type === "symbol" ? (value.description || "") : value.toString(); const length = lengthBytesUTF8(str) + 1; const ptr = _malloc(length); stringToUTF8(str, ptr, length); HEAP32[info + offsets.string_value >> 2] = ptr; break; } case "object": HEAP32[info + offsets.type >> 2] = 8; HEAP32[info + offsets.string_value >> 2] = 0; break; case "function": HEAP32[info + offsets.type >> 2] = 9; HEAP32[info + offsets.string_value >> 2] = 0; break; } } }
|
|
5774
5794
|
function js_eval(script) { try { var result = (0, eval)(UTF8ToString(script)); if (result === undefined || result === null) return -1; var refId = globalThis.picorubyRefs.length; globalThis.picorubyRefs.push(result); return refId; } catch(e) { console.error('JS.eval error:', e); return -1; } }
|
|
@@ -5862,6 +5882,7 @@ var _emscripten_stack_get_end = makeInvalidEarlyAccess('_emscripten_stack_get_en
|
|
|
5862
5882
|
var __emscripten_stack_restore = makeInvalidEarlyAccess('__emscripten_stack_restore');
|
|
5863
5883
|
var __emscripten_stack_alloc = makeInvalidEarlyAccess('__emscripten_stack_alloc');
|
|
5864
5884
|
var _emscripten_stack_get_current = makeInvalidEarlyAccess('_emscripten_stack_get_current');
|
|
5885
|
+
var ___set_stack_limits = Module['___set_stack_limits'] = makeInvalidEarlyAccess('___set_stack_limits');
|
|
5865
5886
|
var memory = makeInvalidEarlyAccess('memory');
|
|
5866
5887
|
var __indirect_function_table = makeInvalidEarlyAccess('__indirect_function_table');
|
|
5867
5888
|
var wasmMemory = makeInvalidEarlyAccess('wasmMemory');
|
|
@@ -5911,6 +5932,7 @@ function assignWasmExports(wasmExports) {
|
|
|
5911
5932
|
assert(typeof wasmExports['_emscripten_stack_restore'] != 'undefined', 'missing Wasm export: _emscripten_stack_restore');
|
|
5912
5933
|
assert(typeof wasmExports['_emscripten_stack_alloc'] != 'undefined', 'missing Wasm export: _emscripten_stack_alloc');
|
|
5913
5934
|
assert(typeof wasmExports['emscripten_stack_get_current'] != 'undefined', 'missing Wasm export: emscripten_stack_get_current');
|
|
5935
|
+
assert(typeof wasmExports['__set_stack_limits'] != 'undefined', 'missing Wasm export: __set_stack_limits');
|
|
5914
5936
|
assert(typeof wasmExports['memory'] != 'undefined', 'missing Wasm export: memory');
|
|
5915
5937
|
assert(typeof wasmExports['__indirect_function_table'] != 'undefined', 'missing Wasm export: __indirect_function_table');
|
|
5916
5938
|
_ble_notify_callback = Module['_ble_notify_callback'] = createExportWrapper('ble_notify_callback', wasmExports['ble_notify_callback'], 3);
|
|
@@ -5956,6 +5978,7 @@ function assignWasmExports(wasmExports) {
|
|
|
5956
5978
|
__emscripten_stack_restore = wasmExports['_emscripten_stack_restore'];
|
|
5957
5979
|
__emscripten_stack_alloc = wasmExports['_emscripten_stack_alloc'];
|
|
5958
5980
|
_emscripten_stack_get_current = wasmExports['emscripten_stack_get_current'];
|
|
5981
|
+
___set_stack_limits = Module['___set_stack_limits'] = createExportWrapper('__set_stack_limits', wasmExports['__set_stack_limits'], 2);
|
|
5959
5982
|
memory = wasmMemory = wasmExports['memory'];
|
|
5960
5983
|
__indirect_function_table = wasmTable = wasmExports['__indirect_function_table'];
|
|
5961
5984
|
}
|
|
@@ -5966,6 +5989,8 @@ var wasmImports = {
|
|
|
5966
5989
|
/** @export */
|
|
5967
5990
|
__call_sighandler: ___call_sighandler,
|
|
5968
5991
|
/** @export */
|
|
5992
|
+
__handle_stack_overflow: ___handle_stack_overflow,
|
|
5993
|
+
/** @export */
|
|
5969
5994
|
__syscall_chdir: ___syscall_chdir,
|
|
5970
5995
|
/** @export */
|
|
5971
5996
|
__syscall_chmod: ___syscall_chmod,
|
|
@@ -6122,6 +6147,8 @@ var wasmImports = {
|
|
|
6122
6147
|
/** @export */
|
|
6123
6148
|
invoke_ddd,
|
|
6124
6149
|
/** @export */
|
|
6150
|
+
invoke_ddj,
|
|
6151
|
+
/** @export */
|
|
6125
6152
|
invoke_ii,
|
|
6126
6153
|
/** @export */
|
|
6127
6154
|
invoke_iii,
|
|
@@ -6134,10 +6161,14 @@ var wasmImports = {
|
|
|
6134
6161
|
/** @export */
|
|
6135
6162
|
invoke_iijiiiiii,
|
|
6136
6163
|
/** @export */
|
|
6164
|
+
invoke_ijj,
|
|
6165
|
+
/** @export */
|
|
6137
6166
|
invoke_ji,
|
|
6138
6167
|
/** @export */
|
|
6139
6168
|
invoke_jii,
|
|
6140
6169
|
/** @export */
|
|
6170
|
+
invoke_jjd,
|
|
6171
|
+
/** @export */
|
|
6141
6172
|
invoke_vi,
|
|
6142
6173
|
/** @export */
|
|
6143
6174
|
invoke_vii,
|
|
@@ -6148,7 +6179,7 @@ var wasmImports = {
|
|
|
6148
6179
|
/** @export */
|
|
6149
6180
|
invoke_viiiii,
|
|
6150
6181
|
/** @export */
|
|
6151
|
-
|
|
6182
|
+
invoke_viiiiii,
|
|
6152
6183
|
/** @export */
|
|
6153
6184
|
invoke_viiiij,
|
|
6154
6185
|
/** @export */
|
|
@@ -6415,10 +6446,10 @@ function invoke_viiiii(index,a1,a2,a3,a4,a5) {
|
|
|
6415
6446
|
}
|
|
6416
6447
|
}
|
|
6417
6448
|
|
|
6418
|
-
function
|
|
6449
|
+
function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) {
|
|
6419
6450
|
var sp = stackSave();
|
|
6420
6451
|
try {
|
|
6421
|
-
getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6
|
|
6452
|
+
getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6);
|
|
6422
6453
|
} catch(e) {
|
|
6423
6454
|
stackRestore(sp);
|
|
6424
6455
|
if (!(e instanceof EmscriptenEH)) throw e;
|
|
@@ -6525,6 +6556,29 @@ function invoke_viiji(index,a1,a2,a3,a4) {
|
|
|
6525
6556
|
}
|
|
6526
6557
|
}
|
|
6527
6558
|
|
|
6559
|
+
function invoke_jjd(index,a1,a2) {
|
|
6560
|
+
var sp = stackSave();
|
|
6561
|
+
try {
|
|
6562
|
+
return getWasmTableEntry(index)(a1,a2);
|
|
6563
|
+
} catch(e) {
|
|
6564
|
+
stackRestore(sp);
|
|
6565
|
+
if (!(e instanceof EmscriptenEH)) throw e;
|
|
6566
|
+
_setThrew(1, 0);
|
|
6567
|
+
return 0n;
|
|
6568
|
+
}
|
|
6569
|
+
}
|
|
6570
|
+
|
|
6571
|
+
function invoke_ijj(index,a1,a2) {
|
|
6572
|
+
var sp = stackSave();
|
|
6573
|
+
try {
|
|
6574
|
+
return getWasmTableEntry(index)(a1,a2);
|
|
6575
|
+
} catch(e) {
|
|
6576
|
+
stackRestore(sp);
|
|
6577
|
+
if (!(e instanceof EmscriptenEH)) throw e;
|
|
6578
|
+
_setThrew(1, 0);
|
|
6579
|
+
}
|
|
6580
|
+
}
|
|
6581
|
+
|
|
6528
6582
|
function invoke_viijj(index,a1,a2,a3,a4) {
|
|
6529
6583
|
var sp = stackSave();
|
|
6530
6584
|
try {
|
|
@@ -6547,6 +6601,17 @@ function invoke_ddd(index,a1,a2) {
|
|
|
6547
6601
|
}
|
|
6548
6602
|
}
|
|
6549
6603
|
|
|
6604
|
+
function invoke_ddj(index,a1,a2) {
|
|
6605
|
+
var sp = stackSave();
|
|
6606
|
+
try {
|
|
6607
|
+
return getWasmTableEntry(index)(a1,a2);
|
|
6608
|
+
} catch(e) {
|
|
6609
|
+
stackRestore(sp);
|
|
6610
|
+
if (!(e instanceof EmscriptenEH)) throw e;
|
|
6611
|
+
_setThrew(1, 0);
|
|
6612
|
+
}
|
|
6613
|
+
}
|
|
6614
|
+
|
|
6550
6615
|
function invoke_iij(index,a1,a2) {
|
|
6551
6616
|
var sp = stackSave();
|
|
6552
6617
|
try {
|
|
Binary file
|