diff --git a/src/assets/wasm/article-filter/article_filter.js b/src/assets/wasm/article-filter/article_filter.js index 81d1152..1f5dd20 100644 --- a/src/assets/wasm/article-filter/article_filter.js +++ b/src/assets/wasm/article-filter/article_filter.js @@ -1,5 +1,11 @@ let wasm; +const heap = new Array(128).fill(undefined); + +heap.push(undefined, null, true, false); + +function getObject(idx) { return heap[idx]; } + let WASM_VECTOR_LEN = 0; let cachedUint8ArrayMemory0 = null; @@ -82,6 +88,29 @@ function getStringFromWasm0(ptr, len) { ptr = ptr >>> 0; return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); } + +let heap_next = heap.length; + +function addHeapObject(obj) { + if (heap_next === heap.length) heap.push(heap.length + 1); + const idx = heap_next; + heap_next = heap[idx]; + + heap[idx] = obj; + return idx; +} + +function dropObject(idx) { + if (idx < 132) return; + heap[idx] = heap_next; + heap_next = idx; +} + +function takeObject(idx) { + const ret = getObject(idx); + dropObject(idx); + return ret; +} /** * 初始化函数 - 设置错误处理 */ @@ -97,12 +126,16 @@ export function version() { let deferred1_0; let deferred1_1; try { - const ret = wasm.version(); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.version(retptr); + var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); + var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); + deferred1_0 = r0; + deferred1_1 = r1; + return getStringFromWasm0(r0, r1); } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_export_2(deferred1_0, deferred1_1, 1); } } @@ -113,12 +146,6 @@ function passArray8ToWasm0(arg, malloc) { return ptr; } -function takeFromExternrefTable0(idx) { - const value = wasm.__wbindgen_export_3.get(idx); - wasm.__externref_table_dealloc(idx); - return value; -} - const ArticleFilterJSFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_articlefilterjs_free(ptr >>> 0, 1)); @@ -143,11 +170,18 @@ export class ArticleFilterJS { * @param {Uint8Array} index_data */ static init(index_data) { - const ptr0 = passArray8ToWasm0(index_data, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.articlefilterjs_init(ptr0, len0); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + const ptr0 = passArray8ToWasm0(index_data, wasm.__wbindgen_export_0); + const len0 = WASM_VECTOR_LEN; + wasm.articlefilterjs_init(retptr, ptr0, len0); + var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); + var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); + if (r1) { + throw takeObject(r0); + } + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); } } /** @@ -155,11 +189,19 @@ export class ArticleFilterJS { * @returns {any} */ static get_all_tags() { - const ret = wasm.articlefilterjs_get_all_tags(); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.articlefilterjs_get_all_tags(retptr); + var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); + var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); + var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); + if (r2) { + throw takeObject(r1); + } + return takeObject(r0); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); } - return takeFromExternrefTable0(ret[0]); } /** * 筛选文章 @@ -167,13 +209,21 @@ export class ArticleFilterJS { * @returns {any} */ static filter_articles(params_json) { - const ptr0 = passStringToWasm0(params_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.articlefilterjs_filter_articles(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + const ptr0 = passStringToWasm0(params_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1); + const len0 = WASM_VECTOR_LEN; + wasm.articlefilterjs_filter_articles(retptr, ptr0, len0); + var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); + var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); + var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); + if (r2) { + throw takeObject(r1); + } + return takeObject(r0); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); } - return takeFromExternrefTable0(ret[0]); } } @@ -212,8 +262,8 @@ function __wbg_get_imports() { const imports = {}; imports.wbg = {}; imports.wbg.__wbg_String_8f0eb39a4a4c2f66 = function(arg0, arg1) { - const ret = String(arg1); - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const ret = String(getObject(arg1)); + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1); const len1 = WASM_VECTOR_LEN; getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); @@ -226,62 +276,59 @@ function __wbg_get_imports() { deferred0_1 = arg1; console.error(getStringFromWasm0(arg0, arg1)); } finally { - wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); + wasm.__wbindgen_export_2(deferred0_0, deferred0_1, 1); } }; imports.wbg.__wbg_log_c222819a41e063d3 = function(arg0) { - console.log(arg0); + console.log(getObject(arg0)); }; imports.wbg.__wbg_new_405e22f390576ce2 = function() { const ret = new Object(); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbg_new_78feb108b6472713 = function() { const ret = new Array(); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbg_new_8a6f238a6ece86ea = function() { const ret = new Error(); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbg_set_37837023f3d740e8 = function(arg0, arg1, arg2) { - arg0[arg1 >>> 0] = arg2; + getObject(arg0)[arg1 >>> 0] = takeObject(arg2); }; imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) { - arg0[arg1] = arg2; + getObject(arg0)[takeObject(arg1)] = takeObject(arg2); }; imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) { - const ret = arg1.stack; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const ret = getObject(arg1).stack; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1); const len1 = WASM_VECTOR_LEN; getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); }; imports.wbg.__wbindgen_bigint_from_u64 = function(arg0) { const ret = BigInt.asUintN(64, arg0); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbindgen_error_new = function(arg0, arg1) { const ret = new Error(getStringFromWasm0(arg0, arg1)); - return ret; - }; - imports.wbg.__wbindgen_init_externref_table = function() { - const table = wasm.__wbindgen_export_3; - const offset = table.grow(4); - table.set(0, undefined); - table.set(offset + 0, undefined); - table.set(offset + 1, null); - table.set(offset + 2, true); - table.set(offset + 3, false); - ; + return addHeapObject(ret); }; imports.wbg.__wbindgen_number_new = function(arg0) { const ret = arg0; - return ret; + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_object_clone_ref = function(arg0) { + const ret = getObject(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_object_drop_ref = function(arg0) { + takeObject(arg0); }; imports.wbg.__wbindgen_string_new = function(arg0, arg1) { const ret = getStringFromWasm0(arg0, arg1); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbindgen_throw = function(arg0, arg1) { throw new Error(getStringFromWasm0(arg0, arg1)); diff --git a/src/assets/wasm/article-filter/article_filter_bg.wasm b/src/assets/wasm/article-filter/article_filter_bg.wasm index f505f12..ae333b0 100644 Binary files a/src/assets/wasm/article-filter/article_filter_bg.wasm and b/src/assets/wasm/article-filter/article_filter_bg.wasm differ diff --git a/src/assets/wasm/geo/geo_wasm.js b/src/assets/wasm/geo/geo_wasm.js index 64c5038..bfac769 100644 --- a/src/assets/wasm/geo/geo_wasm.js +++ b/src/assets/wasm/geo/geo_wasm.js @@ -18,6 +18,35 @@ function getStringFromWasm0(ptr, len) { return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); } +const heap = new Array(128).fill(undefined); + +heap.push(undefined, null, true, false); + +let heap_next = heap.length; + +function addHeapObject(obj) { + if (heap_next === heap.length) heap.push(heap.length + 1); + const idx = heap_next; + heap_next = heap[idx]; + + heap[idx] = obj; + return idx; +} + +function getObject(idx) { return heap[idx]; } + +function dropObject(idx) { + if (idx < 132) return; + heap[idx] = heap_next; + heap_next = idx; +} + +function takeObject(idx) { + const ret = getObject(idx); + dropObject(idx); + return ret; +} + let WASM_VECTOR_LEN = 0; const cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } ); @@ -93,12 +122,6 @@ function _assertClass(instance, klass) { } } -function takeFromExternrefTable0(idx) { - const value = wasm.__wbindgen_export_3.get(idx); - wasm.__externref_table_dealloc(idx); - return value; -} - const BoundingBoxFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_boundingbox_free(ptr >>> 0, 1)); @@ -266,15 +289,22 @@ export class GeoProcessor { * @param {number} scale */ process_geojson(world_json, china_json, visited_places_json, scale) { - const ptr0 = passStringToWasm0(world_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(china_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ptr2 = passStringToWasm0(visited_places_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len2 = WASM_VECTOR_LEN; - const ret = wasm.geoprocessor_process_geojson(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, scale); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + const ptr0 = passStringToWasm0(world_json, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(china_json, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2); + const len1 = WASM_VECTOR_LEN; + const ptr2 = passStringToWasm0(visited_places_json, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2); + const len2 = WASM_VECTOR_LEN; + wasm.geoprocessor_process_geojson(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, scale); + var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); + var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); + if (r1) { + throw takeObject(r0); + } + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); } } /** @@ -285,27 +315,34 @@ export class GeoProcessor { * @returns {string | undefined} */ find_nearest_country(point_x, point_y, point_z, _radius) { - const ret = wasm.geoprocessor_find_nearest_country(this.__wbg_ptr, point_x, point_y, point_z, _radius); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.geoprocessor_find_nearest_country(retptr, this.__wbg_ptr, point_x, point_y, point_z, _radius); + var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); + var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); + let v1; + if (r0 !== 0) { + v1 = getStringFromWasm0(r0, r1).slice(); + wasm.__wbindgen_export_0(r0, r1 * 1, 1); + } + return v1; + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); } - return v1; } /** * @returns {any} */ get_boundary_lines() { const ret = wasm.geoprocessor_get_boundary_lines(this.__wbg_ptr); - return ret; + return takeObject(ret); } /** * @returns {any} */ get_regions() { const ret = wasm.geoprocessor_get_regions(this.__wbg_ptr); - return ret; + return takeObject(ret); } } @@ -428,59 +465,56 @@ function __wbg_get_imports() { deferred0_1 = arg1; console.error(getStringFromWasm0(arg0, arg1)); } finally { - wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); + wasm.__wbindgen_export_0(deferred0_0, deferred0_1, 1); } }; imports.wbg.__wbg_new_405e22f390576ce2 = function() { const ret = new Object(); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbg_new_5e0be73521bc8c17 = function() { const ret = new Map(); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbg_new_78feb108b6472713 = function() { const ret = new Array(); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbg_new_8a6f238a6ece86ea = function() { const ret = new Error(); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbg_set_37837023f3d740e8 = function(arg0, arg1, arg2) { - arg0[arg1 >>> 0] = arg2; + getObject(arg0)[arg1 >>> 0] = takeObject(arg2); }; imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) { - arg0[arg1] = arg2; + getObject(arg0)[takeObject(arg1)] = takeObject(arg2); }; imports.wbg.__wbg_set_8fc6bf8a5b1071d1 = function(arg0, arg1, arg2) { - const ret = arg0.set(arg1, arg2); - return ret; + const ret = getObject(arg0).set(getObject(arg1), getObject(arg2)); + return addHeapObject(ret); }; imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) { - const ret = arg1.stack; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const ret = getObject(arg1).stack; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_1, wasm.__wbindgen_export_2); const len1 = WASM_VECTOR_LEN; getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); }; - imports.wbg.__wbindgen_init_externref_table = function() { - const table = wasm.__wbindgen_export_3; - const offset = table.grow(4); - table.set(0, undefined); - table.set(offset + 0, undefined); - table.set(offset + 1, null); - table.set(offset + 2, true); - table.set(offset + 3, false); - ; - }; imports.wbg.__wbindgen_number_new = function(arg0) { const ret = arg0; - return ret; + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_object_clone_ref = function(arg0) { + const ret = getObject(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_object_drop_ref = function(arg0) { + takeObject(arg0); }; imports.wbg.__wbindgen_string_new = function(arg0, arg1) { const ret = getStringFromWasm0(arg0, arg1); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbindgen_throw = function(arg0, arg1) { throw new Error(getStringFromWasm0(arg0, arg1)); diff --git a/src/assets/wasm/geo/geo_wasm_bg.wasm b/src/assets/wasm/geo/geo_wasm_bg.wasm index 0845ae1..7e7a0fe 100644 Binary files a/src/assets/wasm/geo/geo_wasm_bg.wasm and b/src/assets/wasm/geo/geo_wasm_bg.wasm differ diff --git a/src/assets/wasm/search/search_wasm.js b/src/assets/wasm/search/search_wasm.js index ea75bbf..3be628d 100644 --- a/src/assets/wasm/search/search_wasm.js +++ b/src/assets/wasm/search/search_wasm.js @@ -1,8 +1,19 @@ let wasm; -function addToExternrefTable0(obj) { - const idx = wasm.__externref_table_alloc(); - wasm.__wbindgen_export_2.set(idx, obj); +const heap = new Array(128).fill(undefined); + +heap.push(undefined, null, true, false); + +function getObject(idx) { return heap[idx]; } + +let heap_next = heap.length; + +function addHeapObject(obj) { + if (heap_next === heap.length) heap.push(heap.length + 1); + const idx = heap_next; + heap_next = heap[idx]; + + heap[idx] = obj; return idx; } @@ -10,8 +21,7 @@ function handleError(f, args) { try { return f.apply(this, args); } catch (e) { - const idx = addToExternrefTable0(e); - wasm.__wbindgen_exn_store(idx); + wasm.__wbindgen_export_0(addHeapObject(e)); } } @@ -102,18 +112,24 @@ function getDataViewMemory0() { return cachedDataViewMemory0; } +function dropObject(idx) { + if (idx < 132) return; + heap[idx] = heap_next; + heap_next = idx; +} + +function takeObject(idx) { + const ret = getObject(idx); + dropObject(idx); + return ret; +} + function passArray8ToWasm0(arg, malloc) { const ptr = malloc(arg.length * 1, 1) >>> 0; getUint8ArrayMemory0().set(arg, ptr / 1); WASM_VECTOR_LEN = arg.length; return ptr; } - -function takeFromExternrefTable0(idx) { - const value = wasm.__wbindgen_export_2.get(idx); - wasm.__externref_table_dealloc(idx); - return value; -} /** * WASM入口点 - 搜索文章 * @param {Uint8Array} index_data @@ -124,22 +140,28 @@ export function search_articles(index_data, request_json) { let deferred4_0; let deferred4_1; try { - const ptr0 = passArray8ToWasm0(index_data, wasm.__wbindgen_malloc); + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + const ptr0 = passArray8ToWasm0(index_data, wasm.__wbindgen_export_2); const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3); const len1 = WASM_VECTOR_LEN; - const ret = wasm.search_articles(ptr0, len0, ptr1, len1); - var ptr3 = ret[0]; - var len3 = ret[1]; - if (ret[3]) { + wasm.search_articles(retptr, ptr0, len0, ptr1, len1); + var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); + var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); + var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); + var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); + var ptr3 = r0; + var len3 = r1; + if (r3) { ptr3 = 0; len3 = 0; - throw takeFromExternrefTable0(ret[2]); + throw takeObject(r2); } deferred4_0 = ptr3; deferred4_1 = len3; return getStringFromWasm0(ptr3, len3); } finally { - wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_export_1(deferred4_0, deferred4_1, 1); } } @@ -178,8 +200,8 @@ function __wbg_get_imports() { const imports = {}; imports.wbg = {}; imports.wbg.__wbg_call_672a4d21634d4a24 = function() { return handleError(function (arg0, arg1) { - const ret = arg0.call(arg1); - return ret; + const ret = getObject(arg0).call(getObject(arg1)); + return addHeapObject(ret); }, arguments) }; imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) { let deferred0_0; @@ -189,13 +211,13 @@ function __wbg_get_imports() { deferred0_1 = arg1; console.error(getStringFromWasm0(arg0, arg1)); } finally { - wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); + wasm.__wbindgen_export_1(deferred0_0, deferred0_1, 1); } }; imports.wbg.__wbg_instanceof_Window_def73ea0955fc569 = function(arg0) { let result; try { - result = arg0 instanceof Window; + result = getObject(arg0) instanceof Window; } catch (_) { result = false; } @@ -204,60 +226,57 @@ function __wbg_get_imports() { }; imports.wbg.__wbg_new_8a6f238a6ece86ea = function() { const ret = new Error(); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbg_newnoargs_105ed471475aaf50 = function(arg0, arg1) { const ret = new Function(getStringFromWasm0(arg0, arg1)); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbg_now_d18023d54d4e5500 = function(arg0) { - const ret = arg0.now(); + const ret = getObject(arg0).now(); return ret; }; imports.wbg.__wbg_performance_c185c0cdc2766575 = function(arg0) { - const ret = arg0.performance; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + const ret = getObject(arg0).performance; + return isLikeNone(ret) ? 0 : addHeapObject(ret); }; imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) { - const ret = arg1.stack; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const ret = getObject(arg1).stack; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3); const len1 = WASM_VECTOR_LEN; getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); }; imports.wbg.__wbg_static_accessor_GLOBAL_88a902d13a557d07 = function() { const ret = typeof global === 'undefined' ? null : global; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + return isLikeNone(ret) ? 0 : addHeapObject(ret); }; imports.wbg.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0 = function() { const ret = typeof globalThis === 'undefined' ? null : globalThis; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + return isLikeNone(ret) ? 0 : addHeapObject(ret); }; imports.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function() { const ret = typeof self === 'undefined' ? null : self; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + return isLikeNone(ret) ? 0 : addHeapObject(ret); }; imports.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function() { const ret = typeof window === 'undefined' ? null : window; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); - }; - imports.wbg.__wbindgen_init_externref_table = function() { - const table = wasm.__wbindgen_export_2; - const offset = table.grow(4); - table.set(0, undefined); - table.set(offset + 0, undefined); - table.set(offset + 1, null); - table.set(offset + 2, true); - table.set(offset + 3, false); - ; + return isLikeNone(ret) ? 0 : addHeapObject(ret); }; imports.wbg.__wbindgen_is_undefined = function(arg0) { - const ret = arg0 === undefined; + const ret = getObject(arg0) === undefined; return ret; }; + imports.wbg.__wbindgen_object_clone_ref = function(arg0) { + const ret = getObject(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_object_drop_ref = function(arg0) { + takeObject(arg0); + }; imports.wbg.__wbindgen_string_new = function(arg0, arg1) { const ret = getStringFromWasm0(arg0, arg1); - return ret; + return addHeapObject(ret); }; imports.wbg.__wbindgen_throw = function(arg0, arg1) { throw new Error(getStringFromWasm0(arg0, arg1)); @@ -277,7 +296,7 @@ function __wbg_finalize_init(instance, module) { cachedUint8ArrayMemory0 = null; - wasm.__wbindgen_start(); + return wasm; } diff --git a/src/assets/wasm/search/search_wasm_bg.wasm b/src/assets/wasm/search/search_wasm_bg.wasm index 1ab0863..ed9871e 100644 Binary files a/src/assets/wasm/search/search_wasm_bg.wasm and b/src/assets/wasm/search/search_wasm_bg.wasm differ diff --git a/wasm/Cargo.lock b/wasm/Cargo.lock index d0ee797..64ca681 100644 --- a/wasm/Cargo.lock +++ b/wasm/Cargo.lock @@ -107,6 +107,7 @@ dependencies = [ "utils-common", "wasm-bindgen", "web-sys", + "wee_alloc", ] [[package]] @@ -185,6 +186,12 @@ dependencies = [ "shlex", ] +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -245,7 +252,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen", ] @@ -261,7 +268,7 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] @@ -354,6 +361,7 @@ dependencies = [ "serde-wasm-bindgen", "serde_json", "wasm-bindgen", + "wee_alloc", ] [[package]] @@ -545,6 +553,12 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "memory_units" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" + [[package]] name = "miniz_oxide" version = "0.8.8" @@ -592,7 +606,7 @@ version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -781,6 +795,7 @@ dependencies = [ "utils-common", "wasm-bindgen", "web-sys", + "wee_alloc", ] [[package]] @@ -1014,7 +1029,7 @@ version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", "rustversion", "wasm-bindgen-macro", @@ -1076,6 +1091,34 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "wee_alloc" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "memory_units", + "winapi", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + [[package]] name = "winapi-util" version = "0.1.9" @@ -1085,6 +1128,12 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-core" version = "0.61.0" diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index 933cf90..7a7e55c 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -31,6 +31,10 @@ markup5ever_rcdom = "0.3.0" once_cell = "1.21.3" [profile.release] +opt-level = "z" lto = true -opt-level = 3 -codegen-units = 1 +codegen-units = 1 +panic = "abort" +strip = true +incremental = false +overflow-checks = false diff --git a/wasm/article-filter/Cargo.toml b/wasm/article-filter/Cargo.toml index 6db35fb..c817f9d 100644 --- a/wasm/article-filter/Cargo.toml +++ b/wasm/article-filter/Cargo.toml @@ -7,6 +7,10 @@ description = "Filter for articles" [lib] crate-type = ["cdylib", "rlib"] +[features] +default = [] +wee_alloc = ["dep:wee_alloc"] + [dependencies] wasm-bindgen = { workspace = true } js-sys = { workspace = true } @@ -20,3 +24,4 @@ flate2 = { workspace = true } once_cell = { workspace = true } web-sys = { version = "0.3", features = ["console"] } utils-common = { path = "../utils-common" } +wee_alloc = { workspace = true, optional = true } \ No newline at end of file diff --git a/wasm/geo/Cargo.toml b/wasm/geo/Cargo.toml index 50e0f7c..fb371b7 100644 --- a/wasm/geo/Cargo.toml +++ b/wasm/geo/Cargo.toml @@ -6,6 +6,11 @@ edition = "2021" [lib] crate-type = ["cdylib"] +[features] +default = [] +wee_alloc = ["dep:wee_alloc"] + + [dependencies] wasm-bindgen = { workspace = true } serde = { workspace = true } @@ -17,3 +22,4 @@ js-sys = { workspace = true } kdtree = { workspace = true } console_error_panic_hook = { workspace = true } serde-wasm-bindgen = { workspace = true } +wee_alloc = { workspace = true, optional = true } diff --git a/wasm/search/Cargo.toml b/wasm/search/Cargo.toml index d2d9378..dcbe570 100644 --- a/wasm/search/Cargo.toml +++ b/wasm/search/Cargo.toml @@ -7,6 +7,10 @@ description = "WebAssembly module for article search functionality" [lib] crate-type = ["cdylib", "rlib"] +[features] +default = [] +wee_alloc = ["dep:wee_alloc"] + [dependencies] wasm-bindgen.workspace = true serde.workspace = true @@ -18,8 +22,4 @@ console_error_panic_hook.workspace = true web-sys = { workspace = true, features = ["console", "Window", "Performance"] } regex.workspace = true utils-common = { path = "../utils-common" } - -# 优化WebAssembly二进制大小 -[profile.release] -lto = true -opt-level = "s" \ No newline at end of file +wee_alloc = { workspace = true, optional = true }