@@ -137,40 +137,50 @@ async function instantiate(module, imports = {}) {
137
137
} ,
138
138
staticarrayFunction ( a , b ) {
139
139
// 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 ( ) ;
142
142
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 ) ;
144
144
} finally {
145
145
__release ( a ) ;
146
146
}
147
147
} ,
148
148
staticarrayU16 ( a ) {
149
149
// 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 ) ;
152
152
} ,
153
153
staticarrayI64 ( a ) {
154
154
// 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 ) ;
157
157
} ,
158
158
arrayFunction ( a , b ) {
159
159
// 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 ( ) ;
162
162
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 ) ;
164
174
} finally {
165
175
__release ( a ) ;
166
176
}
167
177
} ,
168
178
objectFunction ( a , b ) {
169
179
// 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 ( ) ;
172
182
try {
173
- return __liftRecord12 ( exports . objectFunction ( a , b ) >>> 0 ) ;
183
+ return __liftRecord13 ( exports . objectFunction ( a , b ) >>> 0 ) ;
174
184
} finally {
175
185
__release ( a ) ;
176
186
}
@@ -202,51 +212,51 @@ async function instantiate(module, imports = {}) {
202
212
}
203
213
} ,
204
214
} , exports ) ;
205
- function __lowerRecord12 ( value ) {
215
+ function __lowerRecord13 ( value ) {
206
216
// bindings/esm/PlainObject
207
217
// Hint: Opt-out from lowering as a record by providing an empty constructor
208
218
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 ) ) ;
226
236
exports . __unpin ( pointer ) ;
227
237
return pointer ;
228
238
}
229
- function __liftRecord12 ( pointer ) {
239
+ function __liftRecord13 ( pointer ) {
230
240
// bindings/esm/PlainObject
231
241
// Hint: Opt-out from lifting as a record by providing an empty constructor
232
242
if ( ! pointer ) return null ;
233
243
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 ) ) ,
250
260
} ;
251
261
}
252
262
function __liftBuffer ( pointer ) {
@@ -282,9 +292,8 @@ async function instantiate(module, imports = {}) {
282
292
function __liftArray ( liftElement , align , pointer ) {
283
293
if ( ! pointer ) return null ;
284
294
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 ) ,
288
297
values = new Array ( length ) ;
289
298
for ( let i = 0 ; i < length ; ++ i ) values [ i ] = liftElement ( dataStart + ( i << align >>> 0 ) ) ;
290
299
return values ;
@@ -294,44 +303,41 @@ async function instantiate(module, imports = {}) {
294
303
const
295
304
length = values . length ,
296
305
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 ) ;
303
311
for ( let i = 0 ; i < length ; ++ i ) lowerElement ( buffer + ( i << align >>> 0 ) , values [ i ] ) ;
304
312
exports . __unpin ( buffer ) ;
305
313
exports . __unpin ( header ) ;
306
314
return header ;
307
315
}
308
316
function __liftTypedArray ( constructor , pointer ) {
309
317
if ( ! pointer ) return null ;
310
- const memoryU32 = new Uint32Array ( memory . buffer ) ;
311
318
return new constructor (
312
319
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
315
322
) . slice ( ) ;
316
323
}
317
324
function __lowerTypedArray ( constructor , id , align , values ) {
318
325
if ( values == null ) return 0 ;
319
326
const
320
327
length = values . length ,
321
328
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 ) ;
327
333
new constructor ( memory . buffer , buffer , length ) . set ( values ) ;
328
334
exports . __unpin ( buffer ) ;
329
335
return header ;
330
336
}
331
337
function __liftStaticArray ( liftElement , align , pointer ) {
332
338
if ( ! pointer ) return null ;
333
339
const
334
- length = new Uint32Array ( memory . buffer ) [ pointer - 4 >>> 2 ] >>> align ,
340
+ length = __getU32 ( pointer - 4 ) >>> align ,
335
341
values = new Array ( length ) ;
336
342
for ( let i = 0 ; i < length ; ++ i ) values [ i ] = liftElement ( pointer + ( i << align >>> 0 ) ) ;
337
343
return values ;
@@ -382,8 +388,134 @@ async function instantiate(module, imports = {}) {
382
388
function __notnull ( ) {
383
389
throw TypeError ( "value must not be null" ) ;
384
390
}
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
+ }
387
519
}
388
520
exports . _start ( ) ;
389
521
return adaptedExports ;
@@ -408,6 +540,7 @@ export const {
408
540
staticarrayU16,
409
541
staticarrayI64,
410
542
arrayFunction,
543
+ arrayOfStringsFunction,
411
544
objectFunction,
412
545
newInternref,
413
546
internrefFunction,
0 commit comments