blob: dd4c70f7dc97b5acf87b28b4b91e794c5ea1149d [file] [edit]
(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
)
)