@@ -137,40 +137,50 @@ async function instantiate(module, imports = {}) {
137137 } ,
138138 staticarrayFunction ( a , b ) {
139139 // bindings/esm/staticarrayFunction(~lib/staticarray/StaticArray<i32>, ~lib/staticarray/StaticArray<i32>) => ~lib/staticarray/StaticArray<i32>
140- a = __retain ( __lowerStaticArray ( ( pointer , value ) => { new Int32Array ( memory . buffer ) [ pointer >>> 2 ] = value ; } , 8 , 2 , a , Int32Array ) || __notnull ( ) ) ;
141- b = __lowerStaticArray ( ( pointer , value ) => { new Int32Array ( memory . buffer ) [ pointer >>> 2 ] = value ; } , 8 , 2 , b , Int32Array ) || __notnull ( ) ;
140+ a = __retain ( __lowerStaticArray ( __setU32 , 8 , 2 , a , Int32Array ) || __notnull ( ) ) ;
141+ b = __lowerStaticArray ( __setU32 , 8 , 2 , b , Int32Array ) || __notnull ( ) ;
142142 try {
143- return __liftStaticArray ( pointer => new Int32Array ( memory . buffer ) [ pointer >>> 2 ] , 2 , exports . staticarrayFunction ( a , b ) >>> 0 ) ;
143+ return __liftStaticArray ( __getI32 , 2 , exports . staticarrayFunction ( a , b ) >>> 0 ) ;
144144 } finally {
145145 __release ( a ) ;
146146 }
147147 } ,
148148 staticarrayU16 ( a ) {
149149 // bindings/esm/staticarrayU16(~lib/staticarray/StaticArray<u16>) => ~lib/staticarray/StaticArray<u16>
150- a = __lowerStaticArray ( ( pointer , value ) => { new Uint16Array ( memory . buffer ) [ pointer >>> 1 ] = value ; } , 9 , 1 , a , Uint16Array ) || __notnull ( ) ;
151- return __liftStaticArray ( pointer => new Uint16Array ( memory . buffer ) [ pointer >>> 1 ] , 1 , exports . staticarrayU16 ( a ) >>> 0 ) ;
150+ a = __lowerStaticArray ( __setU16 , 9 , 1 , a , Uint16Array ) || __notnull ( ) ;
151+ return __liftStaticArray ( __getU16 , 1 , exports . staticarrayU16 ( a ) >>> 0 ) ;
152152 } ,
153153 staticarrayI64 ( a ) {
154154 // bindings/esm/staticarrayI64(~lib/staticarray/StaticArray<i64>) => ~lib/staticarray/StaticArray<i64>
155- a = __lowerStaticArray ( ( pointer , value ) => { new BigInt64Array ( memory . buffer ) [ pointer >>> 3 ] = value || 0n ; } , 10 , 3 , a , BigInt64Array ) || __notnull ( ) ;
156- return __liftStaticArray ( pointer => new BigInt64Array ( memory . buffer ) [ pointer >>> 3 ] , 3 , exports . staticarrayI64 ( a ) >>> 0 ) ;
155+ a = __lowerStaticArray ( __setU64 , 10 , 3 , a , BigInt64Array ) || __notnull ( ) ;
156+ return __liftStaticArray ( __getI64 , 3 , exports . staticarrayI64 ( a ) >>> 0 ) ;
157157 } ,
158158 arrayFunction ( a , b ) {
159159 // bindings/esm/arrayFunction(~lib/array/Array<i32>, ~lib/array/Array<i32>) => ~lib/array/Array<i32>
160- a = __retain ( __lowerArray ( ( pointer , value ) => { new Int32Array ( memory . buffer ) [ pointer >>> 2 ] = value ; } , 11 , 2 , a ) || __notnull ( ) ) ;
161- b = __lowerArray ( ( pointer , value ) => { new Int32Array ( memory . buffer ) [ pointer >>> 2 ] = value ; } , 11 , 2 , b ) || __notnull ( ) ;
160+ a = __retain ( __lowerArray ( __setU32 , 11 , 2 , a ) || __notnull ( ) ) ;
161+ b = __lowerArray ( __setU32 , 11 , 2 , b ) || __notnull ( ) ;
162162 try {
163- return __liftArray ( pointer => new Int32Array ( memory . buffer ) [ pointer >>> 2 ] , 2 , exports . arrayFunction ( a , b ) >>> 0 ) ;
163+ return __liftArray ( __getI32 , 2 , exports . arrayFunction ( a , b ) >>> 0 ) ;
164+ } finally {
165+ __release ( a ) ;
166+ }
167+ } ,
168+ arrayOfStringsFunction ( a , b ) {
169+ // bindings/esm/arrayOfStringsFunction(~lib/array/Array<~lib/string/String>, ~lib/array/Array<~lib/string/String>) => ~lib/array/Array<~lib/string/String>
170+ a = __retain ( __lowerArray ( ( pointer , value ) => { __setU32 ( pointer , __lowerString ( value ) || __notnull ( ) ) ; } , 12 , 2 , a ) || __notnull ( ) ) ;
171+ b = __lowerArray ( ( pointer , value ) => { __setU32 ( pointer , __lowerString ( value ) || __notnull ( ) ) ; } , 12 , 2 , b ) || __notnull ( ) ;
172+ try {
173+ return __liftArray ( pointer => __liftString ( __getU32 ( pointer ) ) , 2 , exports . arrayOfStringsFunction ( a , b ) >>> 0 ) ;
164174 } finally {
165175 __release ( a ) ;
166176 }
167177 } ,
168178 objectFunction ( a , b ) {
169179 // bindings/esm/objectFunction(bindings/esm/PlainObject, bindings/esm/PlainObject) => bindings/esm/PlainObject
170- a = __retain ( __lowerRecord12 ( a ) || __notnull ( ) ) ;
171- b = __lowerRecord12 ( b ) || __notnull ( ) ;
180+ a = __retain ( __lowerRecord13 ( a ) || __notnull ( ) ) ;
181+ b = __lowerRecord13 ( b ) || __notnull ( ) ;
172182 try {
173- return __liftRecord12 ( exports . objectFunction ( a , b ) >>> 0 ) ;
183+ return __liftRecord13 ( exports . objectFunction ( a , b ) >>> 0 ) ;
174184 } finally {
175185 __release ( a ) ;
176186 }
@@ -202,51 +212,51 @@ async function instantiate(module, imports = {}) {
202212 }
203213 } ,
204214 } , exports ) ;
205- function __lowerRecord12 ( value ) {
215+ function __lowerRecord13 ( value ) {
206216 // bindings/esm/PlainObject
207217 // Hint: Opt-out from lowering as a record by providing an empty constructor
208218 if ( value == null ) return 0 ;
209- const pointer = exports . __pin ( exports . __new ( 68 , 12 ) ) ;
210- new Int8Array ( memory . buffer ) [ pointer + 0 >>> 0 ] = value . a ;
211- new Int16Array ( memory . buffer ) [ pointer + 2 >>> 1 ] = value . b ;
212- new Int32Array ( memory . buffer ) [ pointer + 4 >>> 2 ] = value . c ;
213- new BigInt64Array ( memory . buffer ) [ pointer + 8 >>> 3 ] = value . d || 0n ;
214- new Uint8Array ( memory . buffer ) [ pointer + 16 >>> 0 ] = value . e ;
215- new Uint16Array ( memory . buffer ) [ pointer + 18 >>> 1 ] = value . f ;
216- new Uint32Array ( memory . buffer ) [ pointer + 20 >>> 2 ] = value . g ;
217- new BigUint64Array ( memory . buffer ) [ pointer + 24 >>> 3 ] = value . h || 0n ;
218- new Int32Array ( memory . buffer ) [ pointer + 32 >>> 2 ] = value . i ;
219- new Uint32Array ( memory . buffer ) [ pointer + 36 >>> 2 ] = value . j ;
220- new Uint8Array ( memory . buffer ) [ pointer + 40 >>> 0 ] = value . k ? 1 : 0 ;
221- new Float32Array ( memory . buffer ) [ pointer + 44 >>> 2 ] = value . l ;
222- new Float64Array ( memory . buffer ) [ pointer + 48 >>> 3 ] = value . m ;
223- __store_ref ( pointer + 56 , __lowerString ( value . n ) ) ;
224- __store_ref ( pointer + 60 , __lowerTypedArray ( Uint8Array , 13 , 0 , value . o ) ) ;
225- __store_ref ( pointer + 64 , __lowerArray ( ( pointer , value ) => { __store_ref ( pointer , __lowerString ( value ) || __notnull ( ) ) ; } , 14 , 2 , value . p ) ) ;
219+ const pointer = exports . __pin ( exports . __new ( 68 , 13 ) ) ;
220+ __setU8 ( pointer + 0 , value . a ) ;
221+ __setU16 ( pointer + 2 , value . b ) ;
222+ __setU32 ( pointer + 4 , value . c ) ;
223+ __setU64 ( pointer + 8 , value . d || 0n ) ;
224+ __setU8 ( pointer + 16 , value . e ) ;
225+ __setU16 ( pointer + 18 , value . f ) ;
226+ __setU32 ( pointer + 20 , value . g ) ;
227+ __setU64 ( pointer + 24 , value . h || 0n ) ;
228+ __setU32 ( pointer + 32 , value . i ) ;
229+ __setU32 ( pointer + 36 , value . j ) ;
230+ __setU8 ( pointer + 40 , value . k ? 1 : 0 ) ;
231+ __setF32 ( pointer + 44 , value . l ) ;
232+ __setF64 ( pointer + 48 , value . m ) ;
233+ __setU32 ( pointer + 56 , __lowerString ( value . n ) ) ;
234+ __setU32 ( pointer + 60 , __lowerTypedArray ( Uint8Array , 14 , 0 , value . o ) ) ;
235+ __setU32 ( pointer + 64 , __lowerArray ( ( pointer , value ) => { __setU32 ( pointer , __lowerString ( value ) || __notnull ( ) ) ; } , 12 , 2 , value . p ) ) ;
226236 exports . __unpin ( pointer ) ;
227237 return pointer ;
228238 }
229- function __liftRecord12 ( pointer ) {
239+ function __liftRecord13 ( pointer ) {
230240 // bindings/esm/PlainObject
231241 // Hint: Opt-out from lifting as a record by providing an empty constructor
232242 if ( ! pointer ) return null ;
233243 return {
234- a : new Int8Array ( memory . buffer ) [ pointer + 0 >>> 0 ] ,
235- b : new Int16Array ( memory . buffer ) [ pointer + 2 >>> 1 ] ,
236- c : new Int32Array ( memory . buffer ) [ pointer + 4 >>> 2 ] ,
237- d : new BigInt64Array ( memory . buffer ) [ pointer + 8 >>> 3 ] ,
238- e : new Uint8Array ( memory . buffer ) [ pointer + 16 >>> 0 ] ,
239- f : new Uint16Array ( memory . buffer ) [ pointer + 18 >>> 1 ] ,
240- g : new Uint32Array ( memory . buffer ) [ pointer + 20 >>> 2 ] ,
241- h : new BigUint64Array ( memory . buffer ) [ pointer + 24 >>> 3 ] ,
242- i : new Int32Array ( memory . buffer ) [ pointer + 32 >>> 2 ] ,
243- j : new Uint32Array ( memory . buffer ) [ pointer + 36 >>> 2 ] ,
244- k : new Uint8Array ( memory . buffer ) [ pointer + 40 >>> 0 ] != 0 ,
245- l : new Float32Array ( memory . buffer ) [ pointer + 44 >>> 2 ] ,
246- m : new Float64Array ( memory . buffer ) [ pointer + 48 >>> 3 ] ,
247- n : __liftString ( new Uint32Array ( memory . buffer ) [ pointer + 56 >>> 2 ] ) ,
248- o : __liftTypedArray ( Uint8Array , new Uint32Array ( memory . buffer ) [ pointer + 60 >>> 2 ] ) ,
249- p : __liftArray ( pointer => __liftString ( new Uint32Array ( memory . buffer ) [ pointer >>> 2 ] ) , 2 , new Uint32Array ( memory . buffer ) [ pointer + 64 >>> 2 ] ) ,
244+ a : __getI8 ( pointer + 0 ) ,
245+ b : __getI16 ( pointer + 2 ) ,
246+ c : __getI32 ( pointer + 4 ) ,
247+ d : __getI64 ( pointer + 8 ) ,
248+ e : __getU8 ( pointer + 16 ) ,
249+ f : __getU16 ( pointer + 18 ) ,
250+ g : __getU32 ( pointer + 20 ) ,
251+ h : __getU64 ( pointer + 24 ) ,
252+ i : __getI32 ( pointer + 32 ) ,
253+ j : __getU32 ( pointer + 36 ) ,
254+ k : __getU8 ( pointer + 40 ) != 0 ,
255+ l : __getF32 ( pointer + 44 ) ,
256+ m : __getF64 ( pointer + 48 ) ,
257+ n : __liftString ( __getU32 ( pointer + 56 ) ) ,
258+ o : __liftTypedArray ( Uint8Array , __getU32 ( pointer + 60 ) ) ,
259+ p : __liftArray ( pointer => __liftString ( __getU32 ( pointer ) ) , 2 , __getU32 ( pointer + 64 ) ) ,
250260 } ;
251261 }
252262 function __liftBuffer ( pointer ) {
@@ -282,9 +292,8 @@ async function instantiate(module, imports = {}) {
282292 function __liftArray ( liftElement , align , pointer ) {
283293 if ( ! pointer ) return null ;
284294 const
285- memoryU32 = new Uint32Array ( memory . buffer ) ,
286- dataStart = memoryU32 [ pointer + 4 >>> 2 ] ,
287- length = memoryU32 [ pointer + 12 >>> 2 ] ,
295+ dataStart = __getU32 ( pointer + 4 ) ,
296+ length = __dataview . getUint32 ( pointer + 12 , true ) ,
288297 values = new Array ( length ) ;
289298 for ( let i = 0 ; i < length ; ++ i ) values [ i ] = liftElement ( dataStart + ( i << align >>> 0 ) ) ;
290299 return values ;
@@ -294,44 +303,41 @@ async function instantiate(module, imports = {}) {
294303 const
295304 length = values . length ,
296305 buffer = exports . __pin ( exports . __new ( length << align , 1 ) ) >>> 0 ,
297- header = exports . __pin ( exports . __new ( 16 , id ) ) >>> 0 ,
298- memoryU32 = new Uint32Array ( memory . buffer ) ;
299- memoryU32 [ header + 0 >>> 2 ] = buffer ;
300- memoryU32 [ header + 4 >>> 2 ] = buffer ;
301- memoryU32 [ header + 8 >>> 2 ] = length << align ;
302- memoryU32 [ header + 12 >>> 2 ] = length ;
306+ header = exports . __pin ( exports . __new ( 16 , id ) ) >>> 0 ;
307+ __setU32 ( header + 0 , buffer ) ;
308+ __dataview . setUint32 ( header + 4 , buffer , true ) ;
309+ __dataview . setUint32 ( header + 8 , length << align , true ) ;
310+ __dataview . setUint32 ( header + 12 , length , true ) ;
303311 for ( let i = 0 ; i < length ; ++ i ) lowerElement ( buffer + ( i << align >>> 0 ) , values [ i ] ) ;
304312 exports . __unpin ( buffer ) ;
305313 exports . __unpin ( header ) ;
306314 return header ;
307315 }
308316 function __liftTypedArray ( constructor , pointer ) {
309317 if ( ! pointer ) return null ;
310- const memoryU32 = new Uint32Array ( memory . buffer ) ;
311318 return new constructor (
312319 memory . buffer ,
313- memoryU32 [ pointer + 4 >>> 2 ] ,
314- memoryU32 [ pointer + 8 >>> 2 ] / constructor . BYTES_PER_ELEMENT
320+ __getU32 ( pointer + 4 ) ,
321+ __dataview . getUint32 ( pointer + 8 , true ) / constructor . BYTES_PER_ELEMENT
315322 ) . slice ( ) ;
316323 }
317324 function __lowerTypedArray ( constructor , id , align , values ) {
318325 if ( values == null ) return 0 ;
319326 const
320327 length = values . length ,
321328 buffer = exports . __pin ( exports . __new ( length << align , 1 ) ) >>> 0 ,
322- header = exports . __new ( 12 , id ) >>> 0 ,
323- memoryU32 = new Uint32Array ( memory . buffer ) ;
324- memoryU32 [ header + 0 >>> 2 ] = buffer ;
325- memoryU32 [ header + 4 >>> 2 ] = buffer ;
326- memoryU32 [ header + 8 >>> 2 ] = length << align ;
329+ header = exports . __new ( 12 , id ) >>> 0 ;
330+ __setU32 ( header + 0 , buffer ) ;
331+ __dataview . setUint32 ( header + 4 , buffer , true ) ;
332+ __dataview . setUint32 ( header + 8 , length << align , true ) ;
327333 new constructor ( memory . buffer , buffer , length ) . set ( values ) ;
328334 exports . __unpin ( buffer ) ;
329335 return header ;
330336 }
331337 function __liftStaticArray ( liftElement , align , pointer ) {
332338 if ( ! pointer ) return null ;
333339 const
334- length = new Uint32Array ( memory . buffer ) [ pointer - 4 >>> 2 ] >>> align ,
340+ length = __getU32 ( pointer - 4 ) >>> align ,
335341 values = new Array ( length ) ;
336342 for ( let i = 0 ; i < length ; ++ i ) values [ i ] = liftElement ( pointer + ( i << align >>> 0 ) ) ;
337343 return values ;
@@ -382,8 +388,134 @@ async function instantiate(module, imports = {}) {
382388 function __notnull ( ) {
383389 throw TypeError ( "value must not be null" ) ;
384390 }
385- function __store_ref ( pointer , value ) {
386- new Uint32Array ( memory . buffer ) [ pointer >>> 2 ] = value ;
391+ let __dataview = new DataView ( memory . buffer ) ;
392+ function __setU8 ( pointer , value ) {
393+ try {
394+ __dataview . setUint8 ( pointer , value , true ) ;
395+ } catch {
396+ __dataview = new DataView ( memory . buffer ) ;
397+ __dataview . setUint8 ( pointer , value , true ) ;
398+ }
399+ }
400+ function __setU16 ( pointer , value ) {
401+ try {
402+ __dataview . setUint16 ( pointer , value , true ) ;
403+ } catch {
404+ __dataview = new DataView ( memory . buffer ) ;
405+ __dataview . setUint16 ( pointer , value , true ) ;
406+ }
407+ }
408+ function __setU32 ( pointer , value ) {
409+ try {
410+ __dataview . setUint32 ( pointer , value , true ) ;
411+ } catch {
412+ __dataview = new DataView ( memory . buffer ) ;
413+ __dataview . setUint32 ( pointer , value , true ) ;
414+ }
415+ }
416+ function __setU64 ( pointer , value ) {
417+ try {
418+ __dataview . setBigUint64 ( pointer , value , true ) ;
419+ } catch {
420+ __dataview = new DataView ( memory . buffer ) ;
421+ __dataview . setBigUint64 ( pointer , value , true ) ;
422+ }
423+ }
424+ function __setF32 ( pointer , value ) {
425+ try {
426+ __dataview . setFloat32 ( pointer , value , true ) ;
427+ } catch {
428+ __dataview = new DataView ( memory . buffer ) ;
429+ __dataview . setFloat32 ( pointer , value , true ) ;
430+ }
431+ }
432+ function __setF64 ( pointer , value ) {
433+ try {
434+ __dataview . setFloat64 ( pointer , value , true ) ;
435+ } catch {
436+ __dataview = new DataView ( memory . buffer ) ;
437+ __dataview . setFloat64 ( pointer , value , true ) ;
438+ }
439+ }
440+ function __getI8 ( pointer ) {
441+ try {
442+ return __dataview . getInt8 ( pointer , true ) ;
443+ } catch {
444+ __dataview = new DataView ( memory . buffer ) ;
445+ return __dataview . getInt8 ( pointer , true ) ;
446+ }
447+ }
448+ function __getU8 ( pointer ) {
449+ try {
450+ return __dataview . getUint8 ( pointer , true ) ;
451+ } catch {
452+ __dataview = new DataView ( memory . buffer ) ;
453+ return __dataview . getUint8 ( pointer , true ) ;
454+ }
455+ }
456+ function __getI16 ( pointer ) {
457+ try {
458+ return __dataview . getInt16 ( pointer , true ) ;
459+ } catch {
460+ __dataview = new DataView ( memory . buffer ) ;
461+ return __dataview . getInt16 ( pointer , true ) ;
462+ }
463+ }
464+ function __getU16 ( pointer ) {
465+ try {
466+ return __dataview . getUint16 ( pointer , true ) ;
467+ } catch {
468+ __dataview = new DataView ( memory . buffer ) ;
469+ return __dataview . getUint16 ( pointer , true ) ;
470+ }
471+ }
472+ function __getI32 ( pointer ) {
473+ try {
474+ return __dataview . getInt32 ( pointer , true ) ;
475+ } catch {
476+ __dataview = new DataView ( memory . buffer ) ;
477+ return __dataview . getInt32 ( pointer , true ) ;
478+ }
479+ }
480+ function __getU32 ( pointer ) {
481+ try {
482+ return __dataview . getUint32 ( pointer , true ) ;
483+ } catch {
484+ __dataview = new DataView ( memory . buffer ) ;
485+ return __dataview . getUint32 ( pointer , true ) ;
486+ }
487+ }
488+ function __getI64 ( pointer ) {
489+ try {
490+ return __dataview . getBigInt64 ( pointer , true ) ;
491+ } catch {
492+ __dataview = new DataView ( memory . buffer ) ;
493+ return __dataview . getBigInt64 ( pointer , true ) ;
494+ }
495+ }
496+ function __getU64 ( pointer ) {
497+ try {
498+ return __dataview . getBigUint64 ( pointer , true ) ;
499+ } catch {
500+ __dataview = new DataView ( memory . buffer ) ;
501+ return __dataview . getBigUint64 ( pointer , true ) ;
502+ }
503+ }
504+ function __getF32 ( pointer ) {
505+ try {
506+ return __dataview . getFloat32 ( pointer , true ) ;
507+ } catch {
508+ __dataview = new DataView ( memory . buffer ) ;
509+ return __dataview . getFloat32 ( pointer , true ) ;
510+ }
511+ }
512+ function __getF64 ( pointer ) {
513+ try {
514+ return __dataview . getFloat64 ( pointer , true ) ;
515+ } catch {
516+ __dataview = new DataView ( memory . buffer ) ;
517+ return __dataview . getFloat64 ( pointer , true ) ;
518+ }
387519 }
388520 exports . _start ( ) ;
389521 return adaptedExports ;
@@ -408,6 +540,7 @@ export const {
408540 staticarrayU16,
409541 staticarrayI64,
410542 arrayFunction,
543+ arrayOfStringsFunction,
411544 objectFunction,
412545 newInternref,
413546 internrefFunction,
0 commit comments