| (module $M | |
| (type $"<context file:///.../async_try_blocks.dart:17:31>" <...>) | |
| (type $"<context file:///.../async_try_blocks.dart:28:33>" <...>) | |
| (type $#Top <...>) | |
| (type $JSExternWrapper <...>) | |
| (type $JavaScriptStack <...>) | |
| (type $Object <...>) | |
| (type $_Future <...>) | |
| (type $_InterfaceType <...>) | |
| (type $_TopType <...>) | |
| (type $_Type <...>) | |
| (rec | |
| (type $type0 <...>) | |
| (type $_AsyncSuspendState <...>) | |
| ) | |
| (tag $WebAssembly.JSTag (import "WebAssembly" "JSTag") (param externref)) | |
| (tag $tag0 (param (ref $#Top) (ref $Object))) | |
| (global $"\"caught \"" (ref $JSExternWrapper) <...>) | |
| (global $"\"caught js \"" (ref $JSExternWrapper) <...>) | |
| (global $"\"dart error\"" (ref $JSExternWrapper) <...>) | |
| (global $"\"finally\"" (ref $JSExternWrapper) <...>) | |
| (global $"\"try js\"" (ref $JSExternWrapper) <...>) | |
| (global $"\"try\"" (ref $JSExternWrapper) <...>) | |
| (global $_InterfaceType (ref $_InterfaceType) <...>) | |
| (global $_TopType (ref $_TopType) <...>) | |
| (global $global0 (ref $type0) <...>) | |
| (global $global2 (ref $type0) <...>) | |
| (func $"testAsyncTryCatch inner" (param $var0 (ref $_AsyncSuspendState)) (param $var1 (ref null $#Top)) (param $var2 (ref null $#Top)) (param $var3 (ref null $Object)) (result (ref null $#Top)) | |
| (local $context (ref null $"<context file:///.../async_try_blocks.dart:17:31>")) | |
| (local $targetIndex i32) | |
| (local $var4 (ref $#Top)) | |
| (local $var5 (ref $Object)) | |
| (local $var6 (ref $Object)) | |
| (local $var7 (ref $#Top)) | |
| (local $var8 (ref null $#Top)) | |
| (local $var9 (ref null $Object)) | |
| (local $var10 externref) | |
| (local $var11 (ref $Object)) | |
| (local $var12 (ref $#Top)) | |
| (local $var13 (ref null $#Top)) | |
| (local $var14 (ref null $Object)) | |
| (local $var15 externref) | |
| (local $var16 (ref $Object)) | |
| (local $var17 (ref $#Top)) | |
| (local $var18 (ref null $#Top)) | |
| (local $var19 (ref null $Object)) | |
| (local $var20 externref) | |
| (local $var21 (ref $Object)) | |
| (local $var22 (ref $#Top)) | |
| (local $var23 (ref null $#Top)) | |
| (local $var24 (ref null $Object)) | |
| (local $var25 externref) | |
| (local $var26 (ref $Object)) | |
| (local $var27 (ref $#Top)) | |
| (local $var28 (ref null $#Top)) | |
| (local $var29 (ref null $Object)) | |
| (local $var30 externref) | |
| (local $var31 (ref $Object)) | |
| (local $var32 (ref $#Top)) | |
| (local $var33 externref) | |
| ;; Future<void> testAsyncTryCatch🎯() async { file:///.../async_try_blocks.dart:17 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_targetIndex | |
| local.set $targetIndex | |
| block $label0 (result (ref $#Top)) (result (ref $Object)) | |
| block $label1 (result externref) | |
| try_table $label2 (catch $tag0 $label0) (catch $WebAssembly.JSTag $label1) | |
| loop $label3 | |
| block $label4 | |
| block $label5 | |
| block $label6 | |
| block $label7 | |
| block $label8 | |
| block $label9 | |
| block $label10 | |
| local.get $targetIndex | |
| br_table $label10 $label9 $label8 $label7 $label6 $label5 $label4 | |
| end $label10 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_context | |
| ref.cast null $"<context file:///.../async_try_blocks.dart:17:31>" | |
| local.set $context | |
| ;; <unmapped> | |
| local.get $context | |
| i64.const 0 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| block $label11 | |
| block $label12 (result (ref $#Top)) (result (ref $Object)) | |
| block $label13 (result externref) | |
| try_table $label14 (catch $tag0 $label12) (catch $WebAssembly.JSTag $label13) | |
| ;; 🎯try { file:///.../async_try_blocks.dart:18 | |
| block $label15 | |
| block $label16 (result (ref $#Top)) (result (ref $Object)) | |
| block $label17 (result externref) | |
| try_table $label18 (catch $tag0 $label16) (catch $WebAssembly.JSTag $label17) | |
| ;; print(🎯"try"); file:///.../async_try_blocks.dart:19 | |
| global.get $"\"try\"" | |
| ;; 🎯print("try"); | |
| call $print | |
| ref.null none | |
| drop | |
| ;; throw 🎯"dart error"; file:///.../async_try_blocks.dart:20 | |
| global.get $"\"dart error\"" | |
| ;; 🎯throw "dart error"; | |
| local.set $var4 | |
| call $StackTrace.current | |
| local.set $var5 | |
| local.get $context | |
| i64.const 2 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| local.get $context | |
| local.get $var4 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| local.get $context | |
| local.get $var5 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| local.get $var4 | |
| local.get $var5 | |
| call $Error._throw | |
| unreachable | |
| ;; 🎯try { file:///.../async_try_blocks.dart:18 | |
| end | |
| unreachable | |
| end $label17 | |
| local.tee $var10 | |
| call $boxJsException | |
| local.set $var7 | |
| local.get $var10 | |
| call $jsExceptionStackTrace | |
| local.set $var6 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var8 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var9 | |
| local.get $var0 | |
| local.get $var7 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var6 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label9 | |
| end $label16 | |
| local.set $var6 | |
| local.set $var7 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var8 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var9 | |
| local.get $var0 | |
| local.get $var7 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var6 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label9 | |
| end | |
| br $label11 | |
| end | |
| unreachable | |
| end $label13 | |
| local.tee $var15 | |
| call $boxJsException | |
| local.set $var12 | |
| local.get $var15 | |
| call $jsExceptionStackTrace | |
| local.set $var11 | |
| local.get $context | |
| i64.const 2 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| local.get $context | |
| local.get $var12 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| local.get $context | |
| local.get $var11 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var13 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var14 | |
| local.get $var0 | |
| local.get $var12 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var11 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label6 | |
| end $label12 | |
| local.set $var11 | |
| local.set $var12 | |
| local.get $context | |
| i64.const 2 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| local.get $context | |
| local.get $var12 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| local.get $context | |
| local.get $var11 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var13 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var14 | |
| local.get $var0 | |
| local.get $var12 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var11 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label6 | |
| end $label11 | |
| end $label9 | |
| block $label19 | |
| block $label20 (result (ref $#Top)) (result (ref $Object)) | |
| block $label21 (result externref) | |
| try_table $label22 (catch $tag0 $label20) (catch $WebAssembly.JSTag $label21) | |
| local.get $context | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| ref.as_non_null | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field3 | |
| local.get $context | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field4 | |
| ;; print(🎯"caught $e"); file:///.../async_try_blocks.dart:22 | |
| global.get $"\"caught \"" | |
| ;; print("caught $🎯e"); | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field3 | |
| ;; print(🎯"caught $e"); | |
| call $JSStringImpl._interpolate2 | |
| ;; 🎯print("caught $e"); | |
| call $print | |
| ref.null none | |
| drop | |
| ;; <unmapped> | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field3 | |
| drop | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field4 | |
| drop | |
| ;; 🎯try { file:///.../async_try_blocks.dart:18 | |
| br $label8 | |
| end | |
| unreachable | |
| end $label21 | |
| local.tee $var20 | |
| call $boxJsException | |
| local.set $var17 | |
| local.get $var20 | |
| call $jsExceptionStackTrace | |
| local.set $var16 | |
| local.get $context | |
| i64.const 2 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| local.get $context | |
| local.get $var17 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| local.get $context | |
| local.get $var16 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var18 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var19 | |
| local.get $var0 | |
| local.get $var17 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var16 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label6 | |
| end $label20 | |
| local.set $var16 | |
| local.set $var17 | |
| local.get $context | |
| i64.const 2 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| local.get $context | |
| local.get $var17 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| local.get $context | |
| local.get $var16 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var18 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var19 | |
| local.get $var0 | |
| local.get $var17 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var16 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label6 | |
| end | |
| end $label8 | |
| block $label23 | |
| block $label24 (result (ref $#Top)) (result (ref $Object)) | |
| block $label25 (result externref) | |
| try_table $label26 (catch $tag0 $label24) (catch $WebAssembly.JSTag $label25) | |
| local.get $var0 | |
| local.get $var18 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var19 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label7 | |
| end | |
| unreachable | |
| end $label25 | |
| local.tee $var25 | |
| call $boxJsException | |
| local.set $var22 | |
| local.get $var25 | |
| call $jsExceptionStackTrace | |
| local.set $var21 | |
| local.get $context | |
| i64.const 2 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| local.get $context | |
| local.get $var22 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| local.get $context | |
| local.get $var21 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var23 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var24 | |
| local.get $var0 | |
| local.get $var22 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var21 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label6 | |
| end $label24 | |
| local.set $var21 | |
| local.set $var22 | |
| local.get $context | |
| i64.const 2 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| local.get $context | |
| local.get $var22 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| local.get $context | |
| local.get $var21 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var23 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var24 | |
| local.get $var0 | |
| local.get $var22 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var21 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label6 | |
| end | |
| end $label7 | |
| block $label27 | |
| block $label28 (result (ref $#Top)) (result (ref $Object)) | |
| block $label29 (result externref) | |
| try_table $label30 (catch $tag0 $label28) (catch $WebAssembly.JSTag $label29) | |
| ;; <unmapped> | |
| local.get $context | |
| i64.const 0 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| br $label6 | |
| end | |
| unreachable | |
| end $label29 | |
| local.tee $var30 | |
| call $boxJsException | |
| local.set $var27 | |
| local.get $var30 | |
| call $jsExceptionStackTrace | |
| local.set $var26 | |
| local.get $context | |
| i64.const 2 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| local.get $context | |
| local.get $var27 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| local.get $context | |
| local.get $var26 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var28 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var29 | |
| local.get $var0 | |
| local.get $var27 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var26 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label6 | |
| end $label28 | |
| local.set $var26 | |
| local.set $var27 | |
| local.get $context | |
| i64.const 2 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| local.get $context | |
| local.get $var27 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| local.get $context | |
| local.get $var26 | |
| struct.set $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var28 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var29 | |
| local.get $var0 | |
| local.get $var27 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var26 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label6 | |
| end | |
| end $label6 | |
| ;; print(🎯"finally"); file:///.../async_try_blocks.dart:24 | |
| global.get $"\"finally\"" | |
| ;; 🎯print("finally"); | |
| call $print | |
| ref.null none | |
| drop | |
| ;; <unmapped> | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| drop | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| drop | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| drop | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| i32.wrap_i64 | |
| i32.eqz | |
| if | |
| br $label5 | |
| end | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| i32.wrap_i64 | |
| i32.const 1 | |
| i32.eq | |
| if | |
| local.get $var0 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentReturnValue | |
| call $_AsyncSuspendState._complete | |
| ref.null none | |
| return | |
| end | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| i32.wrap_i64 | |
| i32.const 2 | |
| i32.eq | |
| if | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field1 | |
| ref.as_non_null | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field2 | |
| ref.as_non_null | |
| throw $tag0 | |
| end | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:17:31>" $field0 | |
| i32.wrap_i64 | |
| i32.const 3 | |
| i32.sub | |
| local.set $targetIndex | |
| br $label3 | |
| end $label5 | |
| ;; Future<void> testAsyncTryCatch🎯() async { file:///.../async_try_blocks.dart:17 | |
| end $label4 | |
| local.get $var0 | |
| ref.null $#Top | |
| call $_AsyncSuspendState._complete | |
| ref.null none | |
| return | |
| end $label3 | |
| end | |
| unreachable | |
| end $label1 | |
| local.tee $var33 | |
| call $boxJsException | |
| local.set $var32 | |
| local.get $var33 | |
| call $jsExceptionStackTrace | |
| local.set $var31 | |
| local.get $var0 | |
| local.get $var32 | |
| local.get $var31 | |
| call $_AsyncSuspendState._completeError | |
| ref.null none | |
| return | |
| end $label0 | |
| local.set $var31 | |
| local.set $var32 | |
| local.get $var0 | |
| local.get $var32 | |
| local.get $var31 | |
| call $_AsyncSuspendState._completeError | |
| ref.null none | |
| return | |
| ) | |
| (func $"testAsyncTryCatchJs inner" (param $var0 (ref $_AsyncSuspendState)) (param $var1 (ref null $#Top)) (param $var2 (ref null $#Top)) (param $var3 (ref null $Object)) (result (ref null $#Top)) | |
| (local $context (ref null $"<context file:///.../async_try_blocks.dart:28:33>")) | |
| (local $targetIndex i32) | |
| (local $var4 (ref $Object)) | |
| (local $var5 (ref $#Top)) | |
| (local $var6 (ref null $#Top)) | |
| (local $var7 (ref null $Object)) | |
| (local $var8 externref) | |
| (local $var9 (ref $Object)) | |
| (local $var10 (ref $#Top)) | |
| (local $var11 externref) | |
| ;; Future<void> testAsyncTryCatchJs🎯() async { file:///.../async_try_blocks.dart:28 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_targetIndex | |
| local.set $targetIndex | |
| block $label0 (result (ref $#Top)) (result (ref $Object)) | |
| block $label1 (result externref) | |
| try_table $label2 (catch $tag0 $label0) (catch $WebAssembly.JSTag $label1) | |
| loop $label3 | |
| block $label4 | |
| block $label5 | |
| block $label6 | |
| block $label7 | |
| block $label8 | |
| local.get $targetIndex | |
| br_table $label8 $label7 $label6 $label5 $label4 | |
| end $label8 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_context | |
| ref.cast null $"<context file:///.../async_try_blocks.dart:28:33>" | |
| local.set $context | |
| ;; 🎯try { file:///.../async_try_blocks.dart:29 | |
| block $label9 | |
| block $label10 (result (ref $#Top)) (result (ref $Object)) | |
| block $label11 (result externref) | |
| try_table $label12 (catch $tag0 $label10) (catch $WebAssembly.JSTag $label11) | |
| ;; print(🎯"try js"); file:///.../async_try_blocks.dart:30 | |
| global.get $"\"try js\"" | |
| ;; 🎯print("try js"); | |
| call $print | |
| ref.null none | |
| drop | |
| ;; 🎯try { file:///.../async_try_blocks.dart:29 | |
| br $label5 | |
| end | |
| unreachable | |
| end $label11 | |
| local.tee $var8 | |
| call $boxJsException | |
| local.set $var5 | |
| local.get $var8 | |
| call $jsExceptionStackTrace | |
| local.set $var4 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var6 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var7 | |
| local.get $var0 | |
| local.get $var5 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var4 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label7 | |
| end $label10 | |
| local.set $var4 | |
| local.set $var5 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| local.set $var6 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| local.set $var7 | |
| local.get $var0 | |
| local.get $var5 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var4 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label7 | |
| end | |
| end $label7 | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| ref.as_non_null | |
| global.get $_InterfaceType | |
| call $_isSubtype | |
| i32.eqz | |
| if | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| ref.as_non_null | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| ref.as_non_null | |
| throw $tag0 | |
| end | |
| local.get $context | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentException | |
| ref.cast $JSExternWrapper | |
| struct.set $"<context file:///.../async_try_blocks.dart:28:33>" $field0 | |
| local.get $context | |
| local.get $var0 | |
| struct.get $_AsyncSuspendState $_currentExceptionStackTrace | |
| struct.set $"<context file:///.../async_try_blocks.dart:28:33>" $field1 | |
| ;; print(🎯"caught js $e"); file:///.../async_try_blocks.dart:34 | |
| global.get $"\"caught js \"" | |
| ;; print("caught js $🎯e"); | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:28:33>" $field0 | |
| ;; print(🎯"caught js $e"); | |
| call $JSStringImpl._interpolate2 | |
| ;; 🎯print("caught js $e"); | |
| call $print | |
| ref.null none | |
| drop | |
| ;; <unmapped> | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:28:33>" $field0 | |
| drop | |
| local.get $context | |
| struct.get $"<context file:///.../async_try_blocks.dart:28:33>" $field1 | |
| drop | |
| ;; 🎯try { file:///.../async_try_blocks.dart:29 | |
| br $label6 | |
| end $label6 | |
| local.get $var0 | |
| local.get $var6 | |
| struct.set $_AsyncSuspendState $_currentException | |
| local.get $var0 | |
| local.get $var7 | |
| struct.set $_AsyncSuspendState $_currentExceptionStackTrace | |
| br $label5 | |
| end $label5 | |
| ;; Future<void> testAsyncTryCatchJs🎯() async { file:///.../async_try_blocks.dart:28 | |
| end $label4 | |
| local.get $var0 | |
| ref.null $#Top | |
| call $_AsyncSuspendState._complete | |
| ref.null none | |
| return | |
| end | |
| end | |
| unreachable | |
| end $label1 | |
| local.tee $var11 | |
| call $boxJsException | |
| local.set $var10 | |
| local.get $var11 | |
| call $jsExceptionStackTrace | |
| local.set $var9 | |
| local.get $var0 | |
| local.get $var10 | |
| local.get $var9 | |
| call $_AsyncSuspendState._completeError | |
| ref.null none | |
| return | |
| end $label0 | |
| local.set $var9 | |
| local.set $var10 | |
| local.get $var0 | |
| local.get $var10 | |
| local.get $var9 | |
| call $_AsyncSuspendState._completeError | |
| ref.null none | |
| return | |
| ) | |
| (func $Error._throw (param $var0 (ref $#Top)) (param $var1 (ref $Object)) <...>) | |
| (func $JSStringImpl._interpolate2 (param $value1 (ref null $#Top)) (param $value2 (ref null $#Top)) (result (ref $JSExternWrapper)) <...>) | |
| (func $StackTrace.current (result (ref $JavaScriptStack)) <...>) | |
| (func $_AsyncSuspendState._complete (param $this (ref $_AsyncSuspendState)) (param $value (ref null $#Top)) <...>) | |
| (func $_AsyncSuspendState._completeError (param $this (ref $_AsyncSuspendState)) (param $error (ref $#Top)) (param $stackTrace (ref $Object)) <...>) | |
| (func $_isSubtype (param $o (ref null $#Top)) (param $t (ref $_Type)) (result i32) <...>) | |
| (func $_makeFuture (param $var0 (ref $_Type)) (result (ref $_Future)) <...>) | |
| (func $_newAsyncSuspendState (param $resume (ref $type0)) (param $context structref) (param $future (ref $_Future)) (result (ref $_AsyncSuspendState)) <...>) | |
| (func $boxJsException (param $ref externref) (result (ref $#Top)) <...>) | |
| (func $jsExceptionStackTrace (param $ref externref) (result (ref $JavaScriptStack)) <...>) | |
| (func $print (param $object (ref null $#Top)) <...>) | |
| (func $testAsyncTryCatch (result (ref $_Future)) | |
| (local $var0 (ref null $"<context file:///.../async_try_blocks.dart:17:31>")) | |
| (local $asyncState (ref $_AsyncSuspendState)) | |
| ;; Future<void> 🎯testAsyncTryCatch() async { file:///.../async_try_blocks.dart:17 | |
| struct.new_default $"<context file:///.../async_try_blocks.dart:17:31>" | |
| local.set $var0 | |
| global.get $global0 | |
| local.get $var0 | |
| global.get $_TopType | |
| call $_makeFuture | |
| call $_newAsyncSuspendState | |
| local.set $asyncState | |
| local.get $asyncState | |
| ref.null $#Top | |
| ref.null $#Top | |
| ref.null $Object | |
| call $"testAsyncTryCatch inner" | |
| drop | |
| local.get $asyncState | |
| struct.get $_AsyncSuspendState $_future | |
| return | |
| ) | |
| (func $testAsyncTryCatchJs (result (ref $_Future)) | |
| (local $var0 (ref null $"<context file:///.../async_try_blocks.dart:28:33>")) | |
| (local $asyncState (ref $_AsyncSuspendState)) | |
| ;; Future<void> 🎯testAsyncTryCatchJs() async { file:///.../async_try_blocks.dart:28 | |
| struct.new_default $"<context file:///.../async_try_blocks.dart:28:33>" | |
| local.set $var0 | |
| global.get $global2 | |
| local.get $var0 | |
| global.get $_TopType | |
| call $_makeFuture | |
| call $_newAsyncSuspendState | |
| local.set $asyncState | |
| local.get $asyncState | |
| ref.null $#Top | |
| ref.null $#Top | |
| ref.null $Object | |
| call $"testAsyncTryCatchJs inner" | |
| drop | |
| local.get $asyncState | |
| struct.get $_AsyncSuspendState $_future | |
| return | |
| ) | |
| ) |