@@ -3253,55 +3253,28 @@ Expression* SExpressionWasmBuilder::makeRefAs(Element& s, RefAsOp op) {
3253
3253
3254
3254
Expression*
3255
3255
SExpressionWasmBuilder::makeStringNew (Element& s, StringNewOp op, bool try_) {
3256
- size_t i = 1 ;
3257
3256
Expression* length = nullptr ;
3258
3257
if (op == StringNewWTF8) {
3259
- if (s[i]->isStr ()) {
3260
- // legacy syntax
3261
- std::string_view str = s[i++]->str ().str ;
3262
- if (str == " utf8" ) {
3263
- op = StringNewUTF8;
3264
- } else if (str == " wtf8" ) {
3265
- op = StringNewWTF8;
3266
- } else if (str == " replace" ) {
3267
- op = StringNewLossyUTF8;
3268
- } else {
3269
- throw SParseException (" bad string.new op" , s);
3270
- }
3271
- }
3272
- length = parseExpression (s[i + 1 ]);
3273
- return Builder (wasm).makeStringNew (op, parseExpression (s[i]), length, try_);
3258
+ length = parseExpression (s[2 ]);
3259
+ return Builder (wasm).makeStringNew (op, parseExpression (s[1 ]), length, try_);
3274
3260
} else if (op == StringNewUTF8 || op == StringNewLossyUTF8 ||
3275
3261
op == StringNewWTF16) {
3276
- length = parseExpression (s[i + 1 ]);
3277
- return Builder (wasm).makeStringNew (op, parseExpression (s[i ]), length, try_);
3262
+ length = parseExpression (s[2 ]);
3263
+ return Builder (wasm).makeStringNew (op, parseExpression (s[1 ]), length, try_);
3278
3264
} else if (op == StringNewWTF8Array) {
3279
- if (s[i]->isStr ()) {
3280
- // legacy syntax
3281
- std::string_view str = s[i++]->str ().str ;
3282
- if (str == " utf8" ) {
3283
- op = StringNewUTF8Array;
3284
- } else if (str == " wtf8" ) {
3285
- op = StringNewWTF8Array;
3286
- } else if (str == " replace" ) {
3287
- op = StringNewLossyUTF8Array;
3288
- } else {
3289
- throw SParseException (" bad string.new op" , s);
3290
- }
3291
- }
3292
- auto * start = parseExpression (s[i + 1 ]);
3293
- auto * end = parseExpression (s[i + 2 ]);
3265
+ auto * start = parseExpression (s[2 ]);
3266
+ auto * end = parseExpression (s[3 ]);
3294
3267
return Builder (wasm).makeStringNew (
3295
- op, parseExpression (s[i ]), start, end, try_);
3268
+ op, parseExpression (s[1 ]), start, end, try_);
3296
3269
} else if (op == StringNewUTF8Array || op == StringNewLossyUTF8Array ||
3297
3270
op == StringNewWTF16Array) {
3298
- auto * start = parseExpression (s[i + 1 ]);
3299
- auto * end = parseExpression (s[i + 2 ]);
3271
+ auto * start = parseExpression (s[2 ]);
3272
+ auto * end = parseExpression (s[3 ]);
3300
3273
return Builder (wasm).makeStringNew (
3301
- op, parseExpression (s[i ]), start, end, try_);
3274
+ op, parseExpression (s[1 ]), start, end, try_);
3302
3275
} else if (op == StringNewFromCodePoint) {
3303
3276
return Builder (wasm).makeStringNew (
3304
- op, parseExpression (s[i ]), nullptr , try_);
3277
+ op, parseExpression (s[1 ]), nullptr , try_);
3305
3278
} else {
3306
3279
throw SParseException (" bad string.new op" , s);
3307
3280
}
@@ -3316,60 +3289,18 @@ Expression* SExpressionWasmBuilder::makeStringConst(Element& s) {
3316
3289
3317
3290
Expression* SExpressionWasmBuilder::makeStringMeasure (Element& s,
3318
3291
StringMeasureOp op) {
3319
- size_t i = 1 ;
3320
- if (op == StringMeasureWTF8 && s[i]->isStr ()) {
3321
- // legacy syntax
3322
- std::string_view str = s[i++]->str ().str ;
3323
- if (str == " utf8" ) {
3324
- op = StringMeasureUTF8;
3325
- } else if (str == " wtf8" ) {
3326
- op = StringMeasureWTF8;
3327
- } else {
3328
- throw SParseException (" bad string.measure op" , s);
3329
- }
3330
- }
3331
- return Builder (wasm).makeStringMeasure (op, parseExpression (s[i]));
3292
+ return Builder (wasm).makeStringMeasure (op, parseExpression (s[1 ]));
3332
3293
}
3333
3294
3334
3295
Expression* SExpressionWasmBuilder::makeStringEncode (Element& s,
3335
3296
StringEncodeOp op) {
3336
- size_t i = 1 ;
3337
3297
Expression* start = nullptr ;
3338
- if (op == StringEncodeWTF8) {
3339
- if (s[i]->isStr ()) {
3340
- // legacy syntax
3341
- std::string_view str = s[i++]->str ().str ;
3342
- if (str == " utf8" ) {
3343
- op = StringEncodeUTF8;
3344
- } else if (str == " replace" ) {
3345
- op = StringEncodeLossyUTF8;
3346
- } else if (str == " wtf8" ) {
3347
- op = StringEncodeWTF8;
3348
- } else {
3349
- throw SParseException (" bad string.new op" , s);
3350
- }
3351
- }
3352
- } else if (op == StringEncodeWTF8Array) {
3353
- if (s[i]->isStr ()) {
3354
- // legacy syntax
3355
- std::string_view str = s[i++]->str ().str ;
3356
- if (str == " utf8" ) {
3357
- op = StringEncodeUTF8Array;
3358
- } else if (str == " replace" ) {
3359
- op = StringEncodeLossyUTF8Array;
3360
- } else if (str == " wtf8" ) {
3361
- op = StringEncodeWTF8Array;
3362
- } else {
3363
- throw SParseException (" bad string.new op" , s);
3364
- }
3365
- }
3366
- start = parseExpression (s[i + 2 ]);
3367
- } else if (op == StringEncodeUTF8Array || op == StringEncodeLossyUTF8Array ||
3368
- op == StringEncodeWTF16Array) {
3369
- start = parseExpression (s[i + 2 ]);
3298
+ if (op == StringEncodeWTF8Array || op == StringEncodeUTF8Array ||
3299
+ op == StringEncodeLossyUTF8Array || op == StringEncodeWTF16Array) {
3300
+ start = parseExpression (s[3 ]);
3370
3301
}
3371
3302
return Builder (wasm).makeStringEncode (
3372
- op, parseExpression (s[i ]), parseExpression (s[i + 1 ]), start);
3303
+ op, parseExpression (s[1 ]), parseExpression (s[2 ]), start);
3373
3304
}
3374
3305
3375
3306
Expression* SExpressionWasmBuilder::makeStringConcat (Element& s) {
0 commit comments