@@ -55,6 +55,46 @@ const beforeMemoryJs = `export class Memory {
55
55
}
56
56
}`
57
57
58
+ const beforeMemoryJs2 = `export class Memory {
59
+
60
+ __destroy_into_raw() {
61
+ const ptr = this.__wbg_ptr;
62
+ this.__wbg_ptr = 0;
63
+ MemoryFinalization.unregister(this);
64
+ return ptr;
65
+ }
66
+
67
+ free() {
68
+ const ptr = this.__destroy_into_raw();
69
+ wasm.__wbg_memory_free(ptr, 0);
70
+ }
71
+ /**
72
+ * @param {Uint8Array} inner
73
+ */
74
+ constructor(inner) {
75
+ const ptr0 = passArray8ToWasm0(inner, wasm.__wbindgen_malloc);
76
+ const len0 = WASM_VECTOR_LEN;
77
+ const ret = wasm.memory_new(ptr0, len0);
78
+ this.__wbg_ptr = ret >>> 0;
79
+ MemoryFinalization.register(this, this.__wbg_ptr, this);
80
+ return this;
81
+ }
82
+ /**
83
+ * @returns {number}
84
+ */
85
+ ptr() {
86
+ const ret = wasm.memory_ptr(this.__wbg_ptr);
87
+ return ret >>> 0;
88
+ }
89
+ /**
90
+ * @returns {number}
91
+ */
92
+ len() {
93
+ const ret = wasm.memory_len(this.__wbg_ptr);
94
+ return ret >>> 0;
95
+ }
96
+ }`
97
+
58
98
const afterMemoryJs = `export class Memory {
59
99
60
100
static __wrap(ptr) {
@@ -68,6 +108,8 @@ const afterMemoryJs = `export class Memory {
68
108
__destroy_into_raw() {
69
109
const ptr = this.__wbg_ptr;
70
110
this.__wbg_ptr = 0;
111
+ this.__wbg_ptr0 = 0;
112
+ this.__wbg_len0 = 0;
71
113
MemoryFinalization.unregister(this);
72
114
return ptr;
73
115
}
@@ -84,6 +126,8 @@ const afterMemoryJs = `export class Memory {
84
126
const len0 = WASM_VECTOR_LEN;
85
127
const ret = wasm.memory_new(ptr0, len0);
86
128
this.__wbg_ptr = ret >>> 0;
129
+ this.__wbg_ptr0 = ptr0 >>> 0;
130
+ this.__wbg_len0 = len0 >>> 0;
87
131
MemoryFinalization.register(this, this.__wbg_ptr, this);
88
132
return this;
89
133
}
@@ -102,10 +146,84 @@ const afterMemoryJs = `export class Memory {
102
146
return ret >>> 0;
103
147
}
104
148
/**
149
+ * @returns {number}
150
+ */
151
+ get ptr0() {
152
+ return this.__wbg_ptr0 ??= this.ptr();
153
+ }
154
+ /**
155
+ * @returns {number}
156
+ */
157
+ get len0() {
158
+ return this.__wbg_len0 ??= this.len();
159
+ }
160
+ /**
161
+ * @returns {Uint8Array}
162
+ */
163
+ get bytes() {
164
+ return getUint8ArrayMemory0().subarray(this.ptr0, this.ptr0 + this.len0);
165
+ }
166
+ }`
167
+
168
+ const afterMemoryJs2 = `export class Memory {
169
+
170
+ __destroy_into_raw() {
171
+ const ptr = this.__wbg_ptr;
172
+ this.__wbg_ptr = 0;
173
+ this.__wbg_ptr0 = 0;
174
+ this.__wbg_len0 = 0;
175
+ MemoryFinalization.unregister(this);
176
+ return ptr;
177
+ }
178
+
179
+ free() {
180
+ const ptr = this.__destroy_into_raw();
181
+ wasm.__wbg_memory_free(ptr, 0);
182
+ }
183
+ /**
184
+ * @param {Uint8Array} inner
185
+ */
186
+ constructor(inner) {
187
+ const ptr0 = passArray8ToWasm0(inner, wasm.__wbindgen_malloc);
188
+ const len0 = WASM_VECTOR_LEN;
189
+ const ret = wasm.memory_new(ptr0, len0);
190
+ this.__wbg_ptr = ret >>> 0;
191
+ this.__wbg_ptr0 = ptr0 >>> 0;
192
+ this.__wbg_len0 = len0 >>> 0;
193
+ MemoryFinalization.register(this, this.__wbg_ptr, this);
194
+ return this;
195
+ }
196
+ /**
197
+ * @returns {number}
198
+ */
199
+ ptr() {
200
+ const ret = wasm.memory_ptr(this.__wbg_ptr);
201
+ return ret >>> 0;
202
+ }
203
+ /**
204
+ * @returns {number}
205
+ */
206
+ len() {
207
+ const ret = wasm.memory_len(this.__wbg_ptr);
208
+ return ret >>> 0;
209
+ }
210
+ /**
211
+ * @returns {number}
212
+ */
213
+ get ptr0() {
214
+ return this.__wbg_ptr0 ??= this.ptr();
215
+ }
216
+ /**
217
+ * @returns {number}
218
+ */
219
+ get len0() {
220
+ return this.__wbg_len0 ??= this.len();
221
+ }
222
+ /**
105
223
* @returns {Uint8Array}
106
224
*/
107
225
get bytes() {
108
- return getUint8ArrayMemory0().subarray(this.ptr() , this.ptr() + this.len() );
226
+ return getUint8ArrayMemory0().subarray(this.ptr0 , this.ptr0 + this.len0 );
109
227
}
110
228
}`
111
229
@@ -147,8 +265,12 @@ const afterMemoryTs = `export class Memory {
147
265
148
266
const glueJs = readFileSync ( `./src/wasm/pkg/${ name } .js` , "utf8" )
149
267
. replaceAll ( beforeMemoryJs , afterMemoryJs )
268
+ . replaceAll ( beforeMemoryJs2 , afterMemoryJs2 )
150
269
. replaceAll ( `free()` , `[Symbol.dispose]()` )
151
270
. replaceAll ( `(typeof FinalizationRegistry === 'undefined')` , `true` )
271
+ . replaceAll ( `.register(this, this.__wbg_ptr, this)` , `` )
272
+ . replaceAll ( `.register(obj, obj.__wbg_ptr, obj)` , `` )
273
+ . replaceAll ( `.unregister(this)` , `` )
152
274
. replaceAll ( `module_or_path = new URL('${ name } _bg.wasm', import.meta.url);` , `throw new Error();` )
153
275
154
276
const glueTs = readFileSync ( `./src/wasm/pkg/${ name } .d.ts` , "utf8" )
0 commit comments