| library #lib; |
| import self as self; |
| import "dart:ffi" as ffi; |
| import "dart:core" as core; |
| import "dart:_internal" as _in; |
| |
| import "dart:ffi"; |
| |
| static method testVoidNoArg() → dynamic { |
| final ffi::Pointer<ffi::NativeFunction<() → ffi::Void>> pointer = ffi::Pointer::fromAddress<ffi::NativeFunction<() → ffi::Void>>(3735928559); |
| final () → void function = block { |
| synthesized ffi::Pointer<ffi::NativeFunction<() → ffi::Void>> #ffiTarget0 = pointer; |
| @#C4 |
| function #ffiClosure0() → void { |
| return ffi::_ffiCall<void>(#ffiTarget0); |
| } |
| } =>#ffiClosure0; |
| function(){() → void}; |
| } |
| static method testIntInt() → dynamic { |
| final ffi::Pointer<ffi::NativeFunction<(ffi::Int64) → ffi::Int32>> pointer = ffi::Pointer::fromAddress<ffi::NativeFunction<(ffi::Int64) → ffi::Int32>>(3735928559); |
| final (core::int) → core::int function = block { |
| synthesized ffi::Pointer<ffi::NativeFunction<(ffi::Int64) → ffi::Int32>> #ffiTarget1 = pointer; |
| @#C6 |
| function #ffiClosure1(core::int arg1) → core::int { |
| _in::_nativeEffect(arg1); |
| return ffi::_ffiCall<core::int>(#ffiTarget1); |
| } |
| } =>#ffiClosure1; |
| return function(42){(core::int) → core::int}; |
| } |
| static method testLeaf5Args() → dynamic { |
| final ffi::Pointer<ffi::NativeFunction<(ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32) → ffi::Int32>> pointer = ffi::Pointer::fromAddress<ffi::NativeFunction<(ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32) → ffi::Int32>>(3735928559); |
| final (core::int, core::int, core::int, core::int, core::int) → core::int function = block { |
| synthesized ffi::Pointer<ffi::NativeFunction<(ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32) → ffi::Int32>> #ffiTarget2 = pointer; |
| @#C9 |
| function #ffiClosure2(core::int arg1, core::int arg2, core::int arg3, core::int arg4, core::int arg5) → core::int { |
| _in::_nativeEffect(arg1); |
| _in::_nativeEffect(arg2); |
| _in::_nativeEffect(arg3); |
| _in::_nativeEffect(arg4); |
| _in::_nativeEffect(arg5); |
| return ffi::_ffiCall<core::int>(#ffiTarget2); |
| } |
| } =>#ffiClosure2; |
| return function(1, 2, 3, 4, 5){(core::int, core::int, core::int, core::int, core::int) → core::int}; |
| } |
| static method main() → void { |
| self::testVoidNoArg(); |
| self::testIntInt(); |
| self::testLeaf5Args(); |
| } |
| constants { |
| #C1 = "vm:ffi:call-closure" |
| #C2 = false |
| #C3 = ffi::_FfiCall<() → ffi::Void> {isLeaf:#C2} |
| #C4 = core::pragma {name:#C1, options:#C3} |
| #C5 = ffi::_FfiCall<(ffi::Int64) → ffi::Int32> {isLeaf:#C2} |
| #C6 = core::pragma {name:#C1, options:#C5} |
| #C7 = true |
| #C8 = ffi::_FfiCall<(ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32) → ffi::Int32> {isLeaf:#C7} |
| #C9 = core::pragma {name:#C1, options:#C8} |
| } |