|
357 | 357 | ) |
358 | 358 | ) |
359 | 359 |
|
360 | | - (func $illegal-result (result v128) |
| 360 | + (func $illegal-v128-result (result v128) |
361 | 361 | ;; Helper for the function below. The result is illegal for JS. |
362 | 362 | (call $log-i32 |
363 | 363 | (i32.const 910) |
364 | 364 | ) |
365 | 365 | (v128.const i32x4 1 2 3 4) |
366 | 366 | ) |
367 | 367 |
|
368 | | - ;; CHECK: [fuzz-exec] calling ref.calling.illegal-result |
| 368 | + ;; CHECK: [fuzz-exec] calling ref.calling.illegal-v128-result |
369 | 369 | ;; CHECK-NEXT: [LoggingExternalInterface logging 1] |
370 | | - (func $ref.calling.illegal-result (export "ref.calling.illegal-result") |
| 370 | + (func $ref.calling.illegal-v128-result (export "ref.calling.illegal-v128-result") |
371 | 371 | ;; The v128 result causes an error here, so we will log 1 as an exception. The JS |
372 | 372 | ;; semantics determine that we do that check *before* the call, so the logging |
373 | 373 | ;; of 910 does not go through. |
374 | 374 | (call $log-i32 |
375 | 375 | (call $call.ref.catch |
376 | | - (ref.func $illegal-result) |
| 376 | + (ref.func $illegal-v128-result) |
| 377 | + ) |
| 378 | + ) |
| 379 | + ) |
| 380 | + |
| 381 | + (func $illegal-exnref-result (result exnref) |
| 382 | + ;; Helper for the function below. The result is illegal for JS. |
| 383 | + (call $log-i32 |
| 384 | + (i32.const 911) |
| 385 | + ) |
| 386 | + (block $l (result exnref) |
| 387 | + (try_table (catch_all_ref $l) |
| 388 | + (call $throwing) |
| 389 | + ) |
| 390 | + (unreachable) |
| 391 | + ) |
| 392 | + ) |
| 393 | + |
| 394 | + ;; CHECK: [fuzz-exec] calling ref.calling.illegal-exnref-result |
| 395 | + ;; CHECK-NEXT: [LoggingExternalInterface logging 1] |
| 396 | + (func $ref.calling.illegal-exnref-result (export "ref.calling.illegal-exnref-result") |
| 397 | + ;; As above with the v128, the exnref cannot be converted to a JS value. |
| 398 | + (call $log-i32 |
| 399 | + (call $call.ref.catch |
| 400 | + (ref.func $illegal-exnref-result) |
| 401 | + ) |
| 402 | + ) |
| 403 | + ) |
| 404 | + |
| 405 | + (func $illegal-nullexnref-result (result nullexnref) |
| 406 | + ;; Helper for the function below. The result is illegal for JS. |
| 407 | + (call $log-i32 |
| 408 | + (i32.const 912) |
| 409 | + ) |
| 410 | + (ref.null noexn) |
| 411 | + ) |
| 412 | + |
| 413 | + ;; CHECK: [fuzz-exec] calling ref.calling.illegal-nullexnref-result |
| 414 | + ;; CHECK-NEXT: [LoggingExternalInterface logging 1] |
| 415 | + (func $ref.calling.illegal-nullexnref-result (export "ref.calling.illegal-nullexnref-result") |
| 416 | + ;; As above, the nullexnref cannot be converted to a JS value. |
| 417 | + (call $log-i32 |
| 418 | + (call $call.ref.catch |
| 419 | + (ref.func $illegal-nullexnref-result) |
377 | 420 | ) |
378 | 421 | ) |
379 | 422 | ) |
|
564 | 607 | ;; CHECK: [fuzz-exec] calling ref.calling.illegal-exnref |
565 | 608 | ;; CHECK-NEXT: [LoggingExternalInterface logging 1] |
566 | 609 |
|
567 | | -;; CHECK: [fuzz-exec] calling ref.calling.illegal-result |
| 610 | +;; CHECK: [fuzz-exec] calling ref.calling.illegal-v128-result |
| 611 | +;; CHECK-NEXT: [LoggingExternalInterface logging 1] |
| 612 | + |
| 613 | +;; CHECK: [fuzz-exec] calling ref.calling.illegal-exnref-result |
| 614 | +;; CHECK-NEXT: [LoggingExternalInterface logging 1] |
| 615 | + |
| 616 | +;; CHECK: [fuzz-exec] calling ref.calling.illegal-nullexnref-result |
568 | 617 | ;; CHECK-NEXT: [LoggingExternalInterface logging 1] |
569 | 618 |
|
570 | 619 | ;; CHECK: [fuzz-exec] calling ref.calling.legal-result |
|
592 | 641 | ;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.catching |
593 | 642 | ;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.illegal |
594 | 643 | ;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.illegal-exnref |
595 | | -;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.illegal-result |
| 644 | +;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.illegal-exnref-result |
| 645 | +;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.illegal-nullexnref-result |
596 | 646 | ;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.illegal-v128 |
| 647 | +;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.illegal-v128-result |
597 | 648 | ;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.legal |
598 | 649 | ;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.legal-result |
599 | 650 | ;; CHECK-NEXT: [fuzz-exec] comparing ref.calling.rethrow |
|
0 commit comments