@@ -552,7 +552,9 @@ export class Module {
552
552
v128 ( bytes : Uint8Array ) : ExpressionRef {
553
553
assert ( bytes . length == 16 ) ;
554
554
var out = this . lit ;
555
- for ( let i = 0 ; i < 16 ; ++ i ) binaryen . __i32_store8 ( out + i , bytes [ i ] ) ;
555
+ for ( let i = 0 ; i < 16 ; ++ i ) {
556
+ binaryen . __i32_store8 ( out + i , bytes [ i ] ) ;
557
+ }
556
558
binaryen . _BinaryenLiteralVec128 ( out , out ) ;
557
559
return binaryen . _BinaryenConst ( this . ref , out ) ;
558
560
}
@@ -585,7 +587,9 @@ export class Module {
585
587
) : ExpressionRef {
586
588
var cStr = this . allocStringCached ( name ) ;
587
589
var cArr = allocPtrArray ( operands ) ;
588
- var ret = binaryen . _BinaryenHost ( this . ref , op , cStr , cArr , operands ? ( < ExpressionRef [ ] > operands ) . length : 0 ) ;
590
+ var ret = binaryen . _BinaryenHost (
591
+ this . ref , op , cStr , cArr , operands ? ( < ExpressionRef [ ] > operands ) . length : 0
592
+ ) ;
589
593
binaryen . _free ( cArr ) ;
590
594
return ret ;
591
595
}
@@ -1095,7 +1099,15 @@ export class Module {
1095
1099
) : FunctionRef {
1096
1100
var cStr = this . allocStringCached ( name ) ;
1097
1101
var cArr = allocPtrArray ( varTypes ) ;
1098
- var ret = binaryen . _BinaryenAddFunction ( this . ref , cStr , params , results , cArr , varTypes ? varTypes . length : 0 , body ) ;
1102
+ var ret = binaryen . _BinaryenAddFunction (
1103
+ this . ref ,
1104
+ cStr ,
1105
+ params ,
1106
+ results ,
1107
+ cArr ,
1108
+ varTypes ? varTypes . length : 0 ,
1109
+ body
1110
+ ) ;
1099
1111
binaryen . _free ( cArr ) ;
1100
1112
return ret ;
1101
1113
}
@@ -1114,7 +1126,11 @@ export class Module {
1114
1126
1115
1127
private hasTemporaryFunction : bool = false ;
1116
1128
1117
- addTemporaryFunction ( result : NativeType , paramTypes : NativeType [ ] | null , body : ExpressionRef ) : FunctionRef {
1129
+ addTemporaryFunction (
1130
+ result : NativeType ,
1131
+ paramTypes : NativeType [ ] | null ,
1132
+ body : ExpressionRef
1133
+ ) : FunctionRef {
1118
1134
this . hasTemporaryFunction = assert ( ! this . hasTemporaryFunction ) ;
1119
1135
var tempName = this . allocStringCached ( "" ) ;
1120
1136
var cArr = allocPtrArray ( paramTypes ) ;
@@ -1276,8 +1292,9 @@ export class Module {
1276
1292
var offs = new Array < ExpressionRef > ( k ) ;
1277
1293
var sizs = new Array < Index > ( k ) ;
1278
1294
for ( let i = 0 ; i < k ; ++ i ) {
1279
- let buffer = segments [ i ] . buffer ;
1280
- let offset = segments [ i ] . offset ;
1295
+ let segment = segments [ i ] ;
1296
+ let buffer = segment . buffer ;
1297
+ let offset = segment . offset ;
1281
1298
segs [ i ] = allocU8Array ( buffer ) ;
1282
1299
psvs [ i ] = 0 ; // no passive segments currently
1283
1300
offs [ i ] = target == Target . WASM64
@@ -1289,12 +1306,16 @@ export class Module {
1289
1306
var cArr2 = allocU8Array ( psvs ) ;
1290
1307
var cArr3 = allocPtrArray ( offs ) ;
1291
1308
var cArr4 = allocU32Array ( sizs ) ;
1292
- binaryen . _BinaryenSetMemory ( this . ref , initial , maximum , cStr , cArr1 , cArr2 , cArr3 , cArr4 , k , shared ) ;
1309
+ binaryen . _BinaryenSetMemory (
1310
+ this . ref , initial , maximum , cStr , cArr1 , cArr2 , cArr3 , cArr4 , k , shared
1311
+ ) ;
1293
1312
binaryen . _free ( cArr4 ) ;
1294
1313
binaryen . _free ( cArr3 ) ;
1295
1314
binaryen . _free ( cArr2 ) ;
1296
1315
binaryen . _free ( cArr1 ) ;
1297
- for ( let i = k - 1 ; i >= 0 ; -- i ) binaryen . _free ( segs [ i ] ) ;
1316
+ for ( let i = k - 1 ; i >= 0 ; -- i ) {
1317
+ binaryen . _free ( segs [ i ] ) ;
1318
+ }
1298
1319
}
1299
1320
1300
1321
// table
@@ -1314,7 +1335,9 @@ export class Module {
1314
1335
names [ i ] = this . allocStringCached ( funcs [ i ] ) ;
1315
1336
}
1316
1337
var cArr = allocPtrArray ( names ) ;
1317
- binaryen . _BinaryenSetFunctionTable ( this . ref , initial , maximum , cArr , numNames , offset ) ;
1338
+ binaryen . _BinaryenSetFunctionTable (
1339
+ this . ref , initial , maximum , cArr , numNames , offset
1340
+ ) ;
1318
1341
binaryen . _free ( cArr ) ;
1319
1342
}
1320
1343
@@ -2256,20 +2279,20 @@ export function hasSideEffects(expr: ExpressionRef, features: FeatureFlags = Fea
2256
2279
2257
2280
function allocU8Array ( u8s : Uint8Array | null ) : usize {
2258
2281
if ( ! u8s ) return 0 ;
2259
- var numValues = u8s . length ;
2260
- var ptr = binaryen . _malloc ( numValues ) ;
2261
- var idx = ptr ;
2262
- for ( let i = 0 ; i < numValues ; ++ i ) {
2263
- binaryen . __i32_store8 ( idx ++ , u8s [ i ] ) ;
2282
+ var len = u8s . length ;
2283
+ var ptr = binaryen . _malloc ( len ) ;
2284
+ for ( let i = 0 ; i < len ; ++ i ) {
2285
+ binaryen . __i32_store8 ( ptr + i , u8s [ i ] ) ;
2264
2286
}
2265
2287
return ptr ;
2266
2288
}
2267
2289
2268
2290
function allocI32Array ( i32s : i32 [ ] | null ) : usize {
2269
2291
if ( ! i32s ) return 0 ;
2270
- var ptr = binaryen . _malloc ( i32s . length << 2 ) ;
2292
+ var len = i32s . length ;
2293
+ var ptr = binaryen . _malloc ( len << 2 ) ;
2271
2294
var idx = ptr ;
2272
- for ( let i = 0 , k = i32s . length ; i < k ; ++ i ) {
2295
+ for ( let i = 0 ; i < len ; ++ i ) {
2273
2296
let val = i32s [ i ] ;
2274
2297
binaryen . __i32_store ( idx , val ) ;
2275
2298
idx += 4 ;
@@ -2279,9 +2302,10 @@ function allocI32Array(i32s: i32[] | null): usize {
2279
2302
2280
2303
function allocU32Array ( u32s : u32 [ ] | null ) : usize {
2281
2304
if ( ! u32s ) return 0 ;
2282
- var ptr = binaryen . _malloc ( u32s . length << 2 ) ;
2305
+ var len = u32s . length ;
2306
+ var ptr = binaryen . _malloc ( len << 2 ) ;
2283
2307
var idx = ptr ;
2284
- for ( let i = 0 , k = u32s . length ; i < k ; ++ i ) {
2308
+ for ( let i = 0 ; i < len ; ++ i ) {
2285
2309
let val = u32s [ i ] ;
2286
2310
binaryen . __i32_store ( idx , val ) ;
2287
2311
idx += 4 ;
@@ -2293,9 +2317,10 @@ function allocPtrArray(ptrs: usize[] | null): usize {
2293
2317
if ( ! ptrs ) return 0 ;
2294
2318
// TODO: WASM64
2295
2319
assert ( ASC_TARGET != Target . WASM64 ) ;
2296
- var ptr = binaryen . _malloc ( ptrs . length << 2 ) ;
2320
+ var len = ptrs . length ;
2321
+ var ptr = binaryen . _malloc ( len << 2 ) ;
2297
2322
var idx = ptr ;
2298
- for ( let i = 0 , k = ptrs . length ; i < k ; ++ i ) {
2323
+ for ( let i = 0 , k = len ; i < k ; ++ i ) {
2299
2324
let val = ptrs [ i ] ;
2300
2325
binaryen . __i32_store ( idx , < i32 > val ) ;
2301
2326
idx += 4 ;
@@ -2329,7 +2354,7 @@ function stringLengthUTF8(str: string): usize {
2329
2354
2330
2355
function allocString ( str : string | null ) : usize {
2331
2356
if ( str === null ) return 0 ;
2332
- var ptr = binaryen . _malloc ( stringLengthUTF8 ( str ) + 1 ) ;
2357
+ var ptr = binaryen . _malloc ( stringLengthUTF8 ( str ) + 1 ) >>> 0 ;
2333
2358
// the following is based on Emscripten's stringToUTF8Array
2334
2359
var idx = ptr ;
2335
2360
for ( let i = 0 , k = str . length ; i < k ; ++ i ) {
@@ -2370,17 +2395,17 @@ function allocString(str: string | null): usize {
2370
2395
return ptr ;
2371
2396
}
2372
2397
2373
- function readBuffer ( ptr : usize , length : i32 ) : Uint8Array {
2374
- var ret = new Uint8Array ( length ) ;
2375
- for ( let i = 0 ; i < length ; ++ i ) {
2398
+ function readBuffer ( ptr : usize , len : i32 ) : Uint8Array {
2399
+ var ret = new Uint8Array ( len ) ;
2400
+ for ( let i = 0 ; i < len ; ++ i ) {
2376
2401
ret [ i ] = binaryen . __i32_load8_u ( ptr + < usize > i ) ;
2377
2402
}
2378
2403
return ret ;
2379
2404
}
2380
2405
2381
2406
export function readString ( ptr : usize ) : string | null {
2382
2407
if ( ! ptr ) return null ;
2383
- var arr = new Array < i32 > ( ) ;
2408
+ var arr = new Array < u32 > ( ) ;
2384
2409
// the following is based on Emscripten's UTF8ArrayToString
2385
2410
var cp : u32 ;
2386
2411
var u1 : u32 , u2 : u32 , u3 : u32 , u4 : u32 , u5 : u32 ;
@@ -2416,12 +2441,11 @@ export function readString(ptr: usize): string | null {
2416
2441
arr . push ( cp ) ;
2417
2442
} else {
2418
2443
let ch = cp - 0x10000 ;
2419
- arr . push ( 0xD800 | ( ch >> 10 ) ) ;
2444
+ arr . push ( 0xD800 | ( ch >>> 10 ) ) ;
2420
2445
arr . push ( 0xDC00 | ( ch & 0x3FF ) ) ;
2421
2446
}
2422
2447
}
2423
2448
return String . fromCharCodes ( arr ) ;
2424
- // return String.fromCodePoints(arr);
2425
2449
}
2426
2450
2427
2451
/** Result structure of {@link Module#toBinary}. */
0 commit comments