@ahmadmoussawi/webdb 0.2.0 → 0.2.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.
- package/dist/core/index.d.ts +5 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/js/codecs.c.d.ts +8 -0
- package/dist/core/js/codecs.c.d.ts.map +1 -1
- package/dist/core/js/page.c.d.ts +32 -2
- package/dist/core/js/page.c.d.ts.map +1 -1
- package/dist/core/js/vm.c.d.ts +43 -0
- package/dist/core/js/vm.c.d.ts.map +1 -1
- package/dist/core/js/vm.helpers.c.d.ts +326 -72
- package/dist/core/js/vm.helpers.c.d.ts.map +1 -1
- package/dist/core/wasm/embedded_wasm.d.ts +1 -1
- package/dist/core/wasm/embedded_wasm.d.ts.map +1 -1
- package/dist/core/wasm/wasm_core.d.ts +7 -4
- package/dist/core/wasm/wasm_core.d.ts.map +1 -1
- package/dist/host/api/live_query.d.ts +13 -0
- package/dist/host/api/live_query.d.ts.map +1 -1
- package/dist/host/api/query_builder.d.ts +1 -0
- package/dist/host/api/query_builder.d.ts.map +1 -1
- package/dist/host/api/webdb.d.ts.map +1 -1
- package/dist/host/compiler/compiler.d.ts +1 -0
- package/dist/host/compiler/compiler.d.ts.map +1 -1
- package/dist/host/driver/buffer_pool_driver.d.ts +1 -0
- package/dist/host/driver/buffer_pool_driver.d.ts.map +1 -1
- package/dist/shared/c_runtime.d.ts +4 -0
- package/dist/shared/c_runtime.d.ts.map +1 -1
- package/dist/shared/vm_context.d.ts +11 -0
- package/dist/shared/vm_context.d.ts.map +1 -1
- package/dist/webdb.js +11424 -9878
- package/dist/webdb.js.map +1 -1
- package/dist/webdb.umd.cjs +4 -4
- package/dist/webdb.umd.cjs.map +1 -1
- package/package.json +4 -2
package/dist/core/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { sql_like_match, compare_sorter_keys, fnv1a_32 } from './js/vm.c.js';
|
|
2
|
+
import { VmContext } from '../shared/index.js';
|
|
3
|
+
import { VmStatus } from '../types/index.js';
|
|
1
4
|
/**
|
|
2
5
|
* WebDB Core Engine C / FFI Export Boundary
|
|
3
6
|
*
|
|
@@ -8,7 +11,8 @@
|
|
|
8
11
|
export { page_init, page_init_free, page_get_type, page_set_type, page_get_cell_count, page_set_cell_count, page_get_cell_content_offset, page_set_cell_content_offset, page_get_next_page_id, page_set_next_page_id, page_get_free_bytes, page_set_free_bytes, page_get_checksum, page_set_checksum, page_get_cell_offset, page_set_cell_offset, page_get_contiguous_free_space, page_get_total_free_space, page_compact, page_get_row_length, page_insert_row, page_delete_row, page_update_row, page_get_table_layout, page_serialize_row, page_deserialize_row, page_init_interior, page_get_right_child_page_id, page_set_right_child_page_id, page_insert_interior_cell, page_binary_search_interior, page_split_interior, page_init_index_leaf, page_compare_index_keys, page_insert_index_leaf_cell, page_delete_index_leaf_cell, page_binary_search_index_leaf, serialize_single_key, serialize_composite_key, } from './js/page.c.js';
|
|
9
12
|
export { page_table_hash, page_table_get, page_table_set, page_table_delete, } from './js/page_table.c.js';
|
|
10
13
|
export { buf_pool_get_slot_offset, buf_pool_read_slot_to_page, buf_pool_write_slot_to_page, buf_pool_get_resident_slot, buf_pool_assign_slot, buf_pool_unassign_slot, buf_pool_mark_dirty, buf_pool_clear_dirty, buf_pool_is_dirty, buf_pool_pin_slot, buf_pool_unpin_slot, buf_pool_is_pinned, buf_pool_find_victim, buf_pool_select_eviction_victim, } from './js/buffer_pool.c.js';
|
|
11
|
-
export
|
|
14
|
+
export declare function vm_step(ctx: VmContext, view: DataView, bytecode: Uint8Array): VmStatus;
|
|
15
|
+
export { sql_like_match, compare_sorter_keys, fnv1a_32, };
|
|
12
16
|
export { catalog_init_page1, catalog_read_page1_header, catalog_get_total_pages, catalog_set_total_pages, catalog_get_free_page_head, catalog_set_free_page_head, catalog_get_schema_version, catalog_increment_schema_version, catalog_get_change_counter, catalog_increment_change_counter, catalog_update_page1_checksum, catalog_write_fixed_string, catalog_read_fixed_string, catalog_parse_data_type, catalog_read_table_descriptor, catalog_write_table_descriptor, catalog_find_table_by_name, catalog_find_table_slot, catalog_find_free_table_slot, catalog_list_table_descriptors, catalog_get_table_slot_capacity, catalog_append_table_overflow_page, catalog_get_table_pk_index, catalog_read_index_descriptor, catalog_write_index_descriptor, catalog_find_free_index_slot, catalog_find_index_by_name, catalog_list_table_indexes, catalog_list_all_indexes, catalog_get_index_slot_capacity, catalog_append_index_overflow_page, catalog_delete_index_descriptor, catalog_delete_table_descriptor, MAX_DESCRIPTORS_PER_OVERFLOW_PAGE, catalog_init_page, catalog_read_page_header, catalog_write_page_header, catalog_write_column_meta, catalog_read_column_meta, catalog_map_column_location, catalog_create_table, catalog_load_table_meta, catalog_load_all_tables, } from './js/catalog.c.js';
|
|
13
17
|
export { createWasmCore, type WasmCoreExports, } from './wasm/wasm_core.js';
|
|
14
18
|
export { getWebDbCoreWasmBytes, WEBDB_CORE_WASM_BASE64, } from './wasm/embedded_wasm.js';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,EAC9B,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAC7B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAK/B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,EAC9B,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAC7B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAEL,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACT,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASlD,wBAAgB,OAAO,CACrB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,UAAU,GACnB,QAAQ,CA0BV;AAED,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,QAAQ,GACT,CAAC;AAKF,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,gCAAgC,EAChC,0BAA0B,EAC1B,gCAAgC,EAChC,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,kCAAkC,EAClC,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,+BAA+B,EAC/B,kCAAkC,EAClC,+BAA+B,EAC/B,+BAA+B,EAC/B,iCAAiC,EACjC,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EACL,cAAc,EACd,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { u32, i32 } from '../types.ts';
|
|
2
2
|
export declare const HEX_CHARS = "0123456789abcdef";
|
|
3
3
|
export declare const CROCKFORD_ALPHABET = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
|
|
4
|
+
/**
|
|
5
|
+
* @export_c
|
|
6
|
+
*/
|
|
7
|
+
export declare function hex_val(c: i32): i32;
|
|
8
|
+
/**
|
|
9
|
+
* @export_c
|
|
10
|
+
*/
|
|
11
|
+
export declare function crockford_decode(c: i32): i32;
|
|
4
12
|
/**
|
|
5
13
|
* @export_c
|
|
6
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codecs.c.d.ts","sourceRoot":"","sources":["../../../src/core/js/codecs.c.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AAK5C,eAAO,MAAM,SAAS,qBAAqB,CAAC;AAC5C,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"codecs.c.d.ts","sourceRoot":"","sources":["../../../src/core/js/codecs.c.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AAK5C,eAAO,MAAM,SAAS,qBAAqB,CAAC;AAC5C,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AAErE;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAKnC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAgC5C;AAMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,GAAG,GACV,GAAG,CAqBL;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,GAAG,GACX,IAAI,CAWN;AAED,qBAAa,SAAS;IACpB,sEAAsE;IACtE,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,EAClB,MAAM,GAAE,MAAU,GACjB,IAAI;IASP,yEAAyE;IACzE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM;CAK9D;AAMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,GAAG,GACV,GAAG,CAqCL;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,GAAG,GACX,IAAI,CAgCN;AAED,qBAAa,SAAS;IACpB,qEAAqE;IACrE,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,EAClB,MAAM,GAAE,MAAU,GACjB,IAAI;IASP,0EAA0E;IAC1E,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM;CAK9D"}
|
package/dist/core/js/page.c.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DataType, ColumnMeta, TableMeta, DbRow, DbValue } from '../../types/index.ts';
|
|
2
|
-
import { u8, u16, u32, i32, i64 } from '../types.ts';
|
|
2
|
+
import { u8, u16, u32, i32, i64, f64 } from '../types.ts';
|
|
3
3
|
/**
|
|
4
4
|
* Initializes a standard 16-byte header 4KB page.
|
|
5
5
|
*
|
|
@@ -104,6 +104,10 @@ export declare function page_get_contiguous_free_space(view: DataView, page_offs
|
|
|
104
104
|
export declare function page_get_total_free_space(view: DataView, page_offset: u32): u16;
|
|
105
105
|
/**
|
|
106
106
|
* @export_c
|
|
107
|
+
* Defragments a slotted data or index leaf page in linear memory using a 4KB staging scratchpad.
|
|
108
|
+
*/
|
|
109
|
+
export declare function page_compact_raw(view: DataView, page_offset: u32, scratchpad_offset: u32): void;
|
|
110
|
+
/**
|
|
107
111
|
* Defragments a slotted data page using a 4KB staging scratchpad.
|
|
108
112
|
* Collapses fragmented holes to the bottom, rewrites slot directory entries,
|
|
109
113
|
* and sets free_bytes to 0.
|
|
@@ -117,6 +121,13 @@ export declare function page_compact(view: DataView, page_offset: u32, scratchpa
|
|
|
117
121
|
* Calculates row length in bytes from the serialized row at row_offset.
|
|
118
122
|
*/
|
|
119
123
|
export declare function page_get_row_length(view: DataView, row_abs_offset: u32): u16;
|
|
124
|
+
/**
|
|
125
|
+
* @export_c
|
|
126
|
+
* Inserts a serialized row record located in linear memory at row_src_offset (of length row_len)
|
|
127
|
+
* into a slotted data page at page_offset.
|
|
128
|
+
* Returns the slot index (0-indexed) or -1 if the row cannot fit in this page.
|
|
129
|
+
*/
|
|
130
|
+
export declare function page_insert_row_raw(view: DataView, page_offset: u32, row_src_offset: u32, row_len: u16, scratchpad_offset: u32): i32;
|
|
120
131
|
/**
|
|
121
132
|
* Inserts a serialized row record into a slotted data page.
|
|
122
133
|
* Returns the slot index (0-indexed) or -1 if the row cannot fit in this page.
|
|
@@ -203,14 +214,33 @@ export declare function page_init_index_leaf(view: DataView, page_offset: u32, n
|
|
|
203
214
|
* NULL < -Infinity < Numbers < TEXT (UTF-8) < BLOB
|
|
204
215
|
*/
|
|
205
216
|
export declare function page_compare_index_keys(type_a: DataType, val_a: any, rowid_a: bigint, type_b: DataType, val_b: any, rowid_b: bigint): number;
|
|
217
|
+
/**
|
|
218
|
+
* @export_c
|
|
219
|
+
* Zero-allocation 3VL comparison between a target index key and a cell at cell_data_offset.
|
|
220
|
+
* Returns <0 if target < cell, 0 if equal, >0 if target > cell.
|
|
221
|
+
*/
|
|
222
|
+
export declare function page_compare_index_cell_raw(view: DataView, cell_data_offset: u32, k_len: u16, cell_rowid: i64, context_type: u8, target_type: u8, target_f64: f64, target_bytes_off: u32, target_bytes_len: u16, target_rowid: i64): i32;
|
|
223
|
+
/**
|
|
224
|
+
* @export_c
|
|
225
|
+
* Inserts an index key and rowid into a Secondary Index Leaf Page in linear memory,
|
|
226
|
+
* maintaining the sorted slot directory.
|
|
227
|
+
*/
|
|
228
|
+
export declare function page_insert_index_cell_raw(view: DataView, page_offset: u32, key_type: u8, key_i64: i64, key_f64: f64, key_src_offset: u32, key_len: u16, rowid: i64, scratchpad_offset: u32): i32;
|
|
229
|
+
/**
|
|
230
|
+
* @export_c
|
|
231
|
+
* Binary searches an Index Leaf Page for target key and optional rowid.
|
|
232
|
+
* Returns >= 0 (found slot_idx) if found, or < 0 (-(insertion_slot + 1)) if not found.
|
|
233
|
+
*/
|
|
234
|
+
export declare function page_binary_search_index_raw(view: DataView, page_offset: u32, target_type: u8, target_f64: f64, target_bytes_off: u32, target_bytes_len: u16, has_target_rowid: u8, target_row_id: i64): i32;
|
|
206
235
|
/**
|
|
207
236
|
* Inserts a key and rowid into a Secondary Index Leaf Page, maintaining sorted slot directory.
|
|
208
237
|
*/
|
|
209
238
|
export declare function page_insert_index_leaf_cell(view: DataView, page_offset: number, key_type: DataType, key_value: any, rowid: bigint, scratchpad_offset?: number): number;
|
|
210
239
|
/**
|
|
240
|
+
* @export_c
|
|
211
241
|
* Deletes an entry at slot_idx from a Secondary Index Leaf Page.
|
|
212
242
|
*/
|
|
213
|
-
export declare function page_delete_index_leaf_cell(view: DataView, page_offset:
|
|
243
|
+
export declare function page_delete_index_leaf_cell(view: DataView, page_offset: u32, slot_idx: u16): void;
|
|
214
244
|
/**
|
|
215
245
|
* Binary searches an Index Leaf Page for target key and optional rowid.
|
|
216
246
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.c.d.ts","sourceRoot":"","sources":["../../../src/core/js/page.c.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"page.c.d.ts","sourceRoot":"","sources":["../../../src/core/js/page.c.ts"],"names":[],"mappings":"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"}
|
package/dist/core/js/vm.c.d.ts
CHANGED
|
@@ -1,8 +1,51 @@
|
|
|
1
1
|
import { VmStatus } from '../../types/index.ts';
|
|
2
|
+
import { u32, i32 } from '../types.ts';
|
|
2
3
|
import { VmCursor, VmContext, VmKeyInfo, VmSorter, VmSorterEntry, VmAggBucket, createVmContext, resetVmContext } from '../../shared/index.ts';
|
|
3
4
|
export * from './vm.helpers.c.ts';
|
|
4
5
|
export { createVmContext, resetVmContext };
|
|
5
6
|
export type { VmCursor, VmContext, VmKeyInfo, VmSorter, VmSorterEntry, VmAggBucket, };
|
|
7
|
+
/**
|
|
8
|
+
* @export_c
|
|
9
|
+
* Synchronous Bytecode VM execution step loop over flat linear memory.
|
|
10
|
+
* Zero dynamic allocations and zero object property accesses; transpiles 1:1 to C.
|
|
11
|
+
*
|
|
12
|
+
* Guide to Low-Level Memory Primitives (`read_*` / `write_*`) vs Pure JS Equivalents:
|
|
13
|
+
* -----------------------------------------------------------------------------------
|
|
14
|
+
* 1. Bytecode Operands (at `code_off + pc`):
|
|
15
|
+
* - `read_u8(view, code_off + pc)` <-> `bytecode[pc]`
|
|
16
|
+
* - `read_u16(view, code_off + pc)` <-> `bytecodeView.getUint16(pc, true)`
|
|
17
|
+
* - `read_i32(view, code_off + pc)` <-> `bytecodeView.getInt32(pc, true)`
|
|
18
|
+
* - `read_u32(view, code_off + pc)` <-> `bytecodeView.getUint32(pc, true)`
|
|
19
|
+
* - `read_f64(view, code_off + pc)` <-> `bytecodeView.getFloat64(pc, true)`
|
|
20
|
+
*
|
|
21
|
+
* 2. VmContext Scalar State (at `ctx_off = VM_CONTEXT_OFFSET`):
|
|
22
|
+
* - `read_u32(view, ctx_off + VM_CTX_PC)` <-> `ctx.pc`
|
|
23
|
+
* - `write_u32(view, ctx_off + VM_CTX_PC, pc)` <-> `ctx.pc = pc`
|
|
24
|
+
* - `write_i32(view, ctx_off + VM_CTX_STATUS, s)` <-> `ctx.status = s`
|
|
25
|
+
* - `write_u32(view, ctx_off + VM_CTX_FAULT_PAGE_ID, pid)` <-> `ctx.fault_page_id = pid`
|
|
26
|
+
* - `write_u32(view, ctx_off + VM_CTX_ARENA_OFFSET, off)` <-> `ctx.arenaOffset = off`
|
|
27
|
+
*
|
|
28
|
+
* 3. Cursor State (`cur_off = vm_cursor_off(ctx_off, cursor_idx)`):
|
|
29
|
+
* - `read_u32(view, cur_off + VM_CUR_PAGE_ID)` <-> `ctx.cursors[cursor_idx].pageId`
|
|
30
|
+
* - `write_u32(view, cur_off + VM_CUR_PAGE_ID, pid)` <-> `ctx.cursors[cursor_idx].pageId = pid`
|
|
31
|
+
* - `write_u32(view, cur_off + VM_CUR_ROOT_PAGE_ID, pid)` <-> `ctx.cursors[cursor_idx].rootPageId = pid`
|
|
32
|
+
* - `write_i32(view, cur_off + VM_CUR_SLOT_IDX, slot)` <-> `ctx.cursors[cursor_idx].slotIdx = slot`
|
|
33
|
+
* - `read_i32(view, cur_off + VM_CUR_CELL_IDX)` <-> `ctx.cursors[cursor_idx].cellIdx`
|
|
34
|
+
* - `write_i32(view, cur_off + VM_CUR_CELL_IDX, idx)` <-> `ctx.cursors[cursor_idx].cellIdx = idx`
|
|
35
|
+
* - `read_u32(view, cur_off + VM_CUR_ROW_OFFSET)` <-> `ctx.cursors[cursor_idx].rowOffset`
|
|
36
|
+
* - `write_u32(view, cur_off + VM_CUR_ROW_OFFSET, off)` <-> `ctx.cursors[cursor_idx].rowOffset = off`
|
|
37
|
+
*
|
|
38
|
+
* 4. Register State (`reg_off = vm_reg_off(ctx_off, reg_idx)`):
|
|
39
|
+
* - `vm_reg_set_null(view, reg_off)` <-> `ctx.registers[reg_idx] = null`
|
|
40
|
+
* - `vm_reg_set_i32(view, reg_off, val)` <-> `ctx.registers[reg_idx] = val`
|
|
41
|
+
* - `vm_reg_set_i64(view, reg_off, val)` <-> `ctx.registers[reg_idx] = val`
|
|
42
|
+
* - `vm_reg_set_f64(view, reg_off, val)` <-> `ctx.registers[reg_idx] = val`
|
|
43
|
+
* - `vm_reg_set_slice(view, reg_off, type, off, len)` <-> `ctx.registers[reg_idx] = slice(off, off + len)`
|
|
44
|
+
* - `read_u8(view, reg_off + VM_REG_IS_NULL) !== 0` <-> `ctx.registers[reg_idx] === null`
|
|
45
|
+
* - `read_f64(view, reg_off + VM_REG_F64)` <-> `Number(ctx.registers[reg_idx])`
|
|
46
|
+
*/
|
|
47
|
+
export declare function vm_step_raw(view: DataView, ctx_off: u32, code_off: u32, code_len: u32, arena_base: u32): i32;
|
|
48
|
+
export declare function executeVmStepWithRunner(ctx: VmContext, view: DataView, bytecode: Uint8Array, runRaw: (activeView: DataView, ctxOff: number, codeOff: number, codeLen: number, arenaBase: number) => number, targetBuffer?: ArrayBuffer): VmStatus;
|
|
6
49
|
/**
|
|
7
50
|
* Synchronous Bytecode VM execution step loop.
|
|
8
51
|
* Runs instructions until STATUS_DONE, STATUS_BUFFER_FULL, or an error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm.c.d.ts","sourceRoot":"","sources":["../../../src/core/js/vm.c.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vm.c.d.ts","sourceRoot":"","sources":["../../../src/core/js/vm.c.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,EAAU,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAW,GAAG,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AAuB1D,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,eAAe,EACf,cAAc,EACf,MAAM,uBAAuB,CAAC;AAyG/B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAC3C,YAAY,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,GACZ,CAAC;AAMF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,GAAG,GACd,GAAG,CAo8DL;AA0FD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,CACN,UAAU,EAAE,QAAQ,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,KACd,MAAM,EACX,YAAY,CAAC,EAAE,WAAW,GACzB,QAAQ,CA2WV;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACrB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,UAAU,GACnB,QAAQ,CAQV"}
|