7fce125300
This CL adds a Node.toText method together with an AstPrinter. These facility and better toString implementation on AST nodes while allowing for toString independent printing of AST to use in testing. This also add support for an integrated toString of custom/internal nodes. Some work is still needed in bringing the toString implementation on all nodes to the old quality, and not all internal nodes have customized textual representations yet. This work is left for future CLs. Change-Id: Ib0bf8a0bc02f489dfacdc8aa5f96da9c52f26058 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150923 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Jens Johansen <jensj@google.com>
2555 lines
81 KiB
Plaintext
2555 lines
81 KiB
Plaintext
main = #lib::main;
|
|
[@vm.bytecode=
|
|
BytecodeMetadata {
|
|
Bytecode (version: stable)
|
|
Main library: #lib
|
|
Library '#lib'
|
|
name '#lib'
|
|
script '#lib'
|
|
|
|
Class '', script = '#lib'
|
|
|
|
|
|
Function 'simpleClosure', static, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Bytecode {
|
|
Entry 4
|
|
CheckStack 0
|
|
AllocateContext 0, 1
|
|
PopLocal r0
|
|
Push r0
|
|
PushInt 5
|
|
StoreContextVar 0, 0
|
|
AllocateClosure CP#0
|
|
StoreLocal r3
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#7
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#9
|
|
Push r3
|
|
PushConstant CP#0
|
|
StoreFieldTOS CP#11
|
|
Push r3
|
|
Push r0
|
|
StoreFieldTOS CP#1
|
|
PopLocal r2
|
|
Push r2
|
|
StoreLocal r3
|
|
PushInt 3
|
|
Push r3
|
|
UncheckedClosureCall CP#13, 2
|
|
Drop1
|
|
Push r0
|
|
LoadContextVar 0, 0
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ClosureFunction 0
|
|
[1] = InstanceField dart:core::_Closure::_context (field)
|
|
[2] = Reserved
|
|
[3] = Type dart:core::int
|
|
[4] = ObjectRef 'y'
|
|
[5] = SubtypeTestCache
|
|
[6] = EndClosureFunctionScope
|
|
[7] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
|
|
[8] = Reserved
|
|
[9] = InstanceField dart:core::_Closure::_function_type_arguments (field)
|
|
[10] = Reserved
|
|
[11] = InstanceField dart:core::_Closure::_function (field)
|
|
[12] = Reserved
|
|
[13] = ObjectRef ArgDesc num-args 2, num-type-args 0, names []
|
|
}
|
|
Closure #lib::simpleClosure::'<anonymous closure>' (dart:core::int y) -> dart:core::Null
|
|
ClosureCode {
|
|
EntryFixed 2, 3
|
|
Push FP[-6]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
JumpIfUnchecked L1
|
|
Push FP[-5]
|
|
PushConstant CP#3
|
|
PushNull
|
|
PushNull
|
|
PushConstant CP#4
|
|
AssertAssignable 1, CP#5
|
|
Drop1
|
|
L1:
|
|
Push r0
|
|
Push r0
|
|
LoadContextVar 0, 0
|
|
Push FP[-5]
|
|
AddInt
|
|
StoreContextVar 0, 0
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
|
|
Function 'callWithArgs', static, reflectable, debuggable
|
|
type-params <dart:core::Object T1, dart:core::Object T2, dart:core::Object T3, dart:core::Object T4, dart:core::Object T5, dart:core::Object T6, dart:core::Object T7, dart:core::Object T8>
|
|
parameters [] (required: 0)
|
|
return-type void
|
|
|
|
Bytecode {
|
|
Entry 2
|
|
CheckFunctionTypeArgs 8, r0
|
|
CheckStack 0
|
|
PushConstant CP#0
|
|
StoreLocal r1
|
|
Push r1
|
|
PushInt 8
|
|
CreateArrayTOS
|
|
StoreLocal r1
|
|
Push r1
|
|
PushInt 0
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#1
|
|
StoreIndexedTOS
|
|
Push r1
|
|
PushInt 1
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#2
|
|
StoreIndexedTOS
|
|
Push r1
|
|
PushInt 2
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#3
|
|
StoreIndexedTOS
|
|
Push r1
|
|
PushInt 3
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#4
|
|
StoreIndexedTOS
|
|
Push r1
|
|
PushInt 4
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#5
|
|
StoreIndexedTOS
|
|
Push r1
|
|
PushInt 5
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#6
|
|
StoreIndexedTOS
|
|
Push r1
|
|
PushInt 6
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#7
|
|
StoreIndexedTOS
|
|
Push r1
|
|
PushInt 7
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#8
|
|
StoreIndexedTOS
|
|
DirectCall CP#9, 2
|
|
DirectCall CP#11, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef < dart:core::Type >
|
|
[1] = Type #lib::callWithArgs::TypeParam/0
|
|
[2] = Type #lib::callWithArgs::TypeParam/1
|
|
[3] = Type #lib::callWithArgs::TypeParam/2
|
|
[4] = Type #lib::callWithArgs::TypeParam/3
|
|
[5] = Type #lib::callWithArgs::TypeParam/4
|
|
[6] = Type #lib::callWithArgs::TypeParam/5
|
|
[7] = Type #lib::callWithArgs::TypeParam/6
|
|
[8] = Type #lib::callWithArgs::TypeParam/7
|
|
[9] = DirectCall 'dart:core::List::_fromLiteral (constructor)', ArgDesc num-args 2, num-type-args 0, names []
|
|
[10] = Reserved
|
|
[11] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
|
|
[12] = Reserved
|
|
}
|
|
|
|
|
|
Function 'callA', static, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type void
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
PushConstant CP#0
|
|
PushConstant CP#2
|
|
PushConstant CP#1
|
|
AllocateT
|
|
StoreLocal r0
|
|
Push r0
|
|
DirectCall CP#3, 1
|
|
Drop1
|
|
InterfaceCall CP#5, 2
|
|
Drop1
|
|
PushConstant CP#7
|
|
PushConstant CP#2
|
|
PushConstant CP#1
|
|
AllocateT
|
|
StoreLocal r0
|
|
Push r0
|
|
DirectCall CP#3, 1
|
|
Drop1
|
|
InterfaceCall CP#5, 2
|
|
Drop1
|
|
PushConstant CP#7
|
|
PushConstant CP#8
|
|
PushConstant CP#1
|
|
AllocateT
|
|
StoreLocal r0
|
|
Push r0
|
|
DirectCall CP#3, 1
|
|
Drop1
|
|
InterfaceCall CP#5, 2
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef < #lib::C3, #lib::C4 >
|
|
[1] = Class #lib::A
|
|
[2] = ObjectRef < #lib::C1, #lib::C2 >
|
|
[3] = DirectCall '#lib::A:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[4] = Reserved
|
|
[5] = InterfaceCall '#lib::A::foo', ArgDesc num-args 1, num-type-args 2, names []
|
|
[6] = Reserved
|
|
[7] = ObjectRef < dart:core::List < #lib::C3 >, dart:core::List < #lib::C4 > >
|
|
[8] = ObjectRef < dart:core::List < #lib::C1 >, dart:core::List < #lib::C2 > >
|
|
}
|
|
|
|
|
|
Function 'testPartialInstantiation', static, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type FunctionType (dart:core::int) -> dynamic
|
|
|
|
Bytecode {
|
|
Entry 7
|
|
CheckStack 0
|
|
AllocateClosure CP#0
|
|
StoreLocal r3
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#14
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#6
|
|
Push r3
|
|
PushConstant CP#5
|
|
StoreFieldTOS CP#3
|
|
Push r3
|
|
PushConstant CP#0
|
|
StoreFieldTOS CP#16
|
|
Push r3
|
|
Push r0
|
|
StoreFieldTOS CP#1
|
|
PopLocal r2
|
|
Push r2
|
|
StoreLocal r3
|
|
PushConstant CP#18
|
|
StoreLocal r6
|
|
DirectCall CP#19, 2
|
|
Drop1
|
|
Allocate CP#21
|
|
StoreLocal r5
|
|
Push r6
|
|
StoreFieldTOS CP#3
|
|
Push r5
|
|
Push r3
|
|
LoadFieldTOS CP#14
|
|
StoreFieldTOS CP#14
|
|
Push r5
|
|
Push r3
|
|
LoadFieldTOS CP#6
|
|
StoreFieldTOS CP#6
|
|
Push r5
|
|
Push r3
|
|
LoadFieldTOS CP#16
|
|
StoreFieldTOS CP#16
|
|
Push r5
|
|
Push r3
|
|
LoadFieldTOS CP#1
|
|
StoreFieldTOS CP#1
|
|
Push r5
|
|
PopLocal r4
|
|
Push r4
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ClosureFunction 0
|
|
[1] = InstanceField dart:core::_Closure::_context (field)
|
|
[2] = Reserved
|
|
[3] = InstanceField dart:core::_Closure::_delayed_type_arguments (field)
|
|
[4] = Reserved
|
|
[5] = EmptyTypeArguments
|
|
[6] = InstanceField dart:core::_Closure::_function_type_arguments (field)
|
|
[7] = Reserved
|
|
[8] = DirectCall 'dart:_internal::_prependTypeArguments', ArgDesc num-args 4, num-type-args 0, names []
|
|
[9] = Reserved
|
|
[10] = Type #lib::testPartialInstantiation::Closure/0::TypeParam/0
|
|
[11] = ObjectRef 't'
|
|
[12] = SubtypeTestCache
|
|
[13] = EndClosureFunctionScope
|
|
[14] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
|
|
[15] = Reserved
|
|
[16] = InstanceField dart:core::_Closure::_function (field)
|
|
[17] = Reserved
|
|
[18] = ObjectRef < dart:core::int >
|
|
[19] = DirectCall 'dart:_internal::_boundsCheckForPartialInstantiation', ArgDesc num-args 2, num-type-args 0, names []
|
|
[20] = Reserved
|
|
[21] = Class dart:core::_Closure
|
|
}
|
|
Closure #lib::testPartialInstantiation::'foo' <dart:core::Object T> (#lib::testPartialInstantiation::Closure/0::TypeParam/0 t) -> void
|
|
ClosureCode {
|
|
EntryFixed 2, 3
|
|
Push FP[-6]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r1
|
|
Push FP[-6]
|
|
LoadFieldTOS CP#3
|
|
StoreLocal r0
|
|
PushConstant CP#5
|
|
JumpIfEqStrict L1
|
|
CheckFunctionTypeArgs 0, r2
|
|
Jump L2
|
|
L1:
|
|
CheckFunctionTypeArgs 1, r0
|
|
L2:
|
|
CheckStack 0
|
|
Push r0
|
|
Push FP[-6]
|
|
LoadFieldTOS CP#6
|
|
PushInt 0
|
|
PushInt 1
|
|
DirectCall CP#8, 4
|
|
PopLocal r0
|
|
JumpIfUnchecked L3
|
|
Push FP[-5]
|
|
PushConstant CP#10
|
|
PushNull
|
|
Push r0
|
|
PushConstant CP#11
|
|
AssertAssignable 0, CP#12
|
|
Drop1
|
|
L3:
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
|
|
Function 'main', static, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
}
|
|
|
|
Class 'C1', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::C1
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'C2', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::C2
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'C3', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::C3
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'C4', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::C4
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'C5', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::C5
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'C6', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::C6
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'C7', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::C7
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'C8', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::C8
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'A', script = '#lib'
|
|
type-params <dart:core::Object T1, dart:core::Object T2> (args: 2)
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::A < #lib::A::TypeParam/0, #lib::A::TypeParam/1 >
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'foo', reflectable, debuggable
|
|
type-params <dart:core::Object T3, dart:core::Object T4>
|
|
parameters [] (required: 0)
|
|
return-type void
|
|
|
|
Bytecode {
|
|
Entry 5
|
|
CheckFunctionTypeArgs 2, r0
|
|
CheckStack 0
|
|
AllocateContext 0, 1
|
|
PopLocal r1
|
|
Push r1
|
|
Push FP[-5]
|
|
StoreContextVar 0, 0
|
|
AllocateClosure CP#0
|
|
StoreLocal r4
|
|
Push r4
|
|
Push FP[-5]
|
|
LoadTypeArgumentsField CP#14
|
|
StoreFieldTOS CP#30
|
|
Push r4
|
|
Push r0
|
|
StoreFieldTOS CP#6
|
|
Push r4
|
|
PushConstant CP#5
|
|
StoreFieldTOS CP#3
|
|
Push r4
|
|
PushConstant CP#0
|
|
StoreFieldTOS CP#32
|
|
Push r4
|
|
Push r1
|
|
StoreFieldTOS CP#1
|
|
PopLocal r3
|
|
PushConstant CP#40
|
|
Push r3
|
|
StoreLocal r4
|
|
Push r4
|
|
UncheckedClosureCall CP#37, 2
|
|
Drop1
|
|
PushConstant CP#41
|
|
Push r3
|
|
StoreLocal r4
|
|
Push r4
|
|
UncheckedClosureCall CP#37, 2
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ClosureFunction 0
|
|
[1] = InstanceField dart:core::_Closure::_context (field)
|
|
[2] = Reserved
|
|
[3] = InstanceField dart:core::_Closure::_delayed_type_arguments (field)
|
|
[4] = Reserved
|
|
[5] = EmptyTypeArguments
|
|
[6] = InstanceField dart:core::_Closure::_function_type_arguments (field)
|
|
[7] = Reserved
|
|
[8] = DirectCall 'dart:_internal::_prependTypeArguments', ArgDesc num-args 4, num-type-args 0, names []
|
|
[9] = Reserved
|
|
[10] = ClosureFunction 1
|
|
[11] = ClosureFunction 2
|
|
[12] = ObjectRef < dart:core::Type >
|
|
[13] = Type #lib::A::TypeParam/0
|
|
[14] = TypeArgumentsField #lib::A
|
|
[15] = Type #lib::A::TypeParam/1
|
|
[16] = Type #lib::A::foo::TypeParam/0
|
|
[17] = Type #lib::A::foo::TypeParam/1
|
|
[18] = Type #lib::A::foo::Closure/0::TypeParam/0
|
|
[19] = Type #lib::A::foo::Closure/0::TypeParam/1
|
|
[20] = Type #lib::A::foo::Closure/1::TypeParam/0
|
|
[21] = Type #lib::A::foo::Closure/1::TypeParam/1
|
|
[22] = DirectCall 'dart:core::List::_fromLiteral (constructor)', ArgDesc num-args 2, num-type-args 0, names []
|
|
[23] = Reserved
|
|
[24] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
|
|
[25] = Reserved
|
|
[26] = ObjectRef < #lib::A::TypeParam/0, #lib::A::TypeParam/1, #lib::A::foo::TypeParam/0, #lib::A::foo::TypeParam/1, #lib::A::foo::Closure/0::TypeParam/0, #lib::A::foo::Closure/0::TypeParam/1, #lib::A::foo::Closure/1::TypeParam/0, #lib::A::foo::Closure/1::TypeParam/1 >
|
|
[27] = DirectCall '#lib::callWithArgs', ArgDesc num-args 0, num-type-args 8, names []
|
|
[28] = Reserved
|
|
[29] = EndClosureFunctionScope
|
|
[30] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
|
|
[31] = Reserved
|
|
[32] = InstanceField dart:core::_Closure::_function (field)
|
|
[33] = Reserved
|
|
[34] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
|
|
[35] = EndClosureFunctionScope
|
|
[36] = ObjectRef < #lib::C7, #lib::C8 >
|
|
[37] = ObjectRef ArgDesc num-args 1, num-type-args 2, names []
|
|
[38] = ObjectRef < dart:core::List < #lib::C7 >, dart:core::List < #lib::C8 > >
|
|
[39] = EndClosureFunctionScope
|
|
[40] = ObjectRef < #lib::C5, #lib::C6 >
|
|
[41] = ObjectRef < dart:core::List < #lib::C5 >, dart:core::List < #lib::C6 > >
|
|
}
|
|
Closure #lib::A::foo::'nested1' <dart:core::Object T5, dart:core::Object T6> () -> void
|
|
ClosureCode {
|
|
EntryFixed 1, 5
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r1
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#3
|
|
StoreLocal r0
|
|
PushConstant CP#5
|
|
JumpIfEqStrict L1
|
|
CheckFunctionTypeArgs 0, r2
|
|
Jump L2
|
|
L1:
|
|
CheckFunctionTypeArgs 2, r0
|
|
L2:
|
|
CheckStack 0
|
|
Push r0
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#6
|
|
PushInt 2
|
|
PushInt 4
|
|
DirectCall CP#8, 4
|
|
PopLocal r0
|
|
AllocateClosure CP#10
|
|
StoreLocal r4
|
|
Push r4
|
|
Push r1
|
|
LoadContextVar 0, 0
|
|
LoadTypeArgumentsField CP#14
|
|
StoreFieldTOS CP#30
|
|
Push r4
|
|
Push r0
|
|
StoreFieldTOS CP#6
|
|
Push r4
|
|
PushConstant CP#5
|
|
StoreFieldTOS CP#3
|
|
Push r4
|
|
PushConstant CP#10
|
|
StoreFieldTOS CP#32
|
|
Push r4
|
|
Push r1
|
|
StoreFieldTOS CP#1
|
|
PopLocal r3
|
|
PushConstant CP#36
|
|
Push r3
|
|
StoreLocal r4
|
|
Push r4
|
|
UncheckedClosureCall CP#37, 2
|
|
Drop1
|
|
PushConstant CP#38
|
|
Push r3
|
|
StoreLocal r4
|
|
Push r4
|
|
UncheckedClosureCall CP#37, 2
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
Closure #lib::A::foo::Closure/0::'nested2' <dart:core::Object T7, dart:core::Object T8> () -> void
|
|
ClosureCode {
|
|
EntryFixed 1, 5
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r1
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#3
|
|
StoreLocal r0
|
|
PushConstant CP#5
|
|
JumpIfEqStrict L1
|
|
CheckFunctionTypeArgs 0, r2
|
|
Jump L2
|
|
L1:
|
|
CheckFunctionTypeArgs 2, r0
|
|
L2:
|
|
CheckStack 0
|
|
Push r0
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#6
|
|
PushInt 4
|
|
PushInt 6
|
|
DirectCall CP#8, 4
|
|
PopLocal r0
|
|
AllocateClosure CP#11
|
|
StoreLocal r4
|
|
Push r4
|
|
Push r1
|
|
LoadContextVar 0, 0
|
|
LoadTypeArgumentsField CP#14
|
|
StoreFieldTOS CP#30
|
|
Push r4
|
|
Push r0
|
|
StoreFieldTOS CP#6
|
|
Push r4
|
|
PushConstant CP#11
|
|
StoreFieldTOS CP#32
|
|
Push r4
|
|
Push r1
|
|
StoreFieldTOS CP#1
|
|
PopLocal r3
|
|
Push r3
|
|
StoreLocal r4
|
|
Push r4
|
|
UncheckedClosureCall CP#34, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
Closure #lib::A::foo::Closure/1::'<anonymous closure>' () -> dart:core::Null
|
|
ClosureCode {
|
|
EntryFixed 1, 4
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r1
|
|
CheckFunctionTypeArgs 0, r2
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#6
|
|
PopLocal r0
|
|
PushConstant CP#12
|
|
StoreLocal r3
|
|
Push r3
|
|
PushInt 8
|
|
CreateArrayTOS
|
|
StoreLocal r3
|
|
Push r3
|
|
PushInt 0
|
|
Push r1
|
|
LoadContextVar 0, 0
|
|
LoadTypeArgumentsField CP#14
|
|
PushNull
|
|
InstantiateType CP#13
|
|
StoreIndexedTOS
|
|
Push r3
|
|
PushInt 1
|
|
Push r1
|
|
LoadContextVar 0, 0
|
|
LoadTypeArgumentsField CP#14
|
|
PushNull
|
|
InstantiateType CP#15
|
|
StoreIndexedTOS
|
|
Push r3
|
|
PushInt 2
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#16
|
|
StoreIndexedTOS
|
|
Push r3
|
|
PushInt 3
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#17
|
|
StoreIndexedTOS
|
|
Push r3
|
|
PushInt 4
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#18
|
|
StoreIndexedTOS
|
|
Push r3
|
|
PushInt 5
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#19
|
|
StoreIndexedTOS
|
|
Push r3
|
|
PushInt 6
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#20
|
|
StoreIndexedTOS
|
|
Push r3
|
|
PushInt 7
|
|
PushNull
|
|
Push r0
|
|
InstantiateType CP#21
|
|
StoreIndexedTOS
|
|
DirectCall CP#22, 2
|
|
DirectCall CP#24, 1
|
|
Drop1
|
|
Push r1
|
|
LoadContextVar 0, 0
|
|
LoadTypeArgumentsField CP#14
|
|
Push r0
|
|
InstantiateTypeArgumentsTOS 0, CP#26
|
|
DirectCall CP#27, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'B', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
Field 'foo', type = dart:core::int, getter = 'get:foo', setter = 'set:foo', reflectable, has-initializer
|
|
value = null
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::B
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
Nullable fields: [#lib::B::foo (field)]
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'topLevel', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type void
|
|
|
|
Bytecode {
|
|
Entry 5
|
|
CheckStack 0
|
|
AllocateContext 0, 4
|
|
PopLocal r0
|
|
Push r0
|
|
Push FP[-5]
|
|
StoreContextVar 0, 0
|
|
Push r0
|
|
PushInt 1
|
|
StoreContextVar 0, 1
|
|
PushInt 2
|
|
PopLocal r2
|
|
Push r0
|
|
PushInt 3
|
|
StoreContextVar 0, 2
|
|
AllocateClosure CP#0
|
|
StoreLocal r4
|
|
Push r4
|
|
PushNull
|
|
StoreFieldTOS CP#10
|
|
Push r4
|
|
PushNull
|
|
StoreFieldTOS CP#12
|
|
Push r4
|
|
PushConstant CP#0
|
|
StoreFieldTOS CP#14
|
|
Push r4
|
|
Push r0
|
|
StoreFieldTOS CP#1
|
|
PopLocal r3
|
|
Push r3
|
|
StoreLocal r4
|
|
PushInt 10
|
|
Push r4
|
|
UncheckedClosureCall CP#20, 2
|
|
Drop1
|
|
Push r3
|
|
StoreLocal r4
|
|
PushInt 11
|
|
Push r4
|
|
UncheckedClosureCall CP#20, 2
|
|
Drop1
|
|
Push r2
|
|
DirectCall CP#17, 1
|
|
Drop1
|
|
Push r0
|
|
LoadContextVar 0, 2
|
|
DirectCall CP#17, 1
|
|
Drop1
|
|
Push r0
|
|
LoadContextVar 0, 1
|
|
DirectCall CP#17, 1
|
|
Drop1
|
|
Push r0
|
|
PushInt 42
|
|
StoreContextVar 0, 3
|
|
AllocateClosure CP#21
|
|
StoreLocal r3
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#10
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#12
|
|
Push r3
|
|
PushConstant CP#21
|
|
StoreFieldTOS CP#14
|
|
Push r3
|
|
Push r0
|
|
StoreFieldTOS CP#1
|
|
PopLocal r2
|
|
Push r2
|
|
StoreLocal r3
|
|
Push r3
|
|
UncheckedClosureCall CP#16, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ClosureFunction 0
|
|
[1] = InstanceField dart:core::_Closure::_context (field)
|
|
[2] = Reserved
|
|
[3] = Type dart:core::int
|
|
[4] = ObjectRef 'y'
|
|
[5] = SubtypeTestCache
|
|
[6] = ClosureFunction 1
|
|
[7] = InterfaceCall '#lib::B::get:foo', ArgDesc num-args 1, num-type-args 0, names []
|
|
[8] = Reserved
|
|
[9] = EndClosureFunctionScope
|
|
[10] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
|
|
[11] = Reserved
|
|
[12] = InstanceField dart:core::_Closure::_function_type_arguments (field)
|
|
[13] = Reserved
|
|
[14] = InstanceField dart:core::_Closure::_function (field)
|
|
[15] = Reserved
|
|
[16] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
|
|
[17] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
|
|
[18] = Reserved
|
|
[19] = EndClosureFunctionScope
|
|
[20] = ObjectRef ArgDesc num-args 2, num-type-args 0, names []
|
|
[21] = ClosureFunction 2
|
|
[22] = InterfaceCall '#lib::B::set:foo', ArgDesc num-args 2, num-type-args 0, names []
|
|
[23] = Reserved
|
|
[24] = EndClosureFunctionScope
|
|
}
|
|
Closure #lib::B::topLevel::'<anonymous closure>' (dart:core::int y) -> dart:core::Null
|
|
ClosureCode {
|
|
EntryFixed 2, 4
|
|
Push FP[-6]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
AllocateContext 1, 2
|
|
StoreLocal r1
|
|
Push r1
|
|
Push r0
|
|
StoreContextParent
|
|
PopLocal r0
|
|
Push r0
|
|
Push FP[-5]
|
|
StoreContextVar 1, 0
|
|
JumpIfUnchecked L1
|
|
Push FP[-5]
|
|
PushConstant CP#3
|
|
PushNull
|
|
PushNull
|
|
PushConstant CP#4
|
|
AssertAssignable 1, CP#5
|
|
Drop1
|
|
L1:
|
|
Push r0
|
|
LoadContextParent
|
|
Push r0
|
|
LoadContextVar 1, 0
|
|
PushInt 1
|
|
AddInt
|
|
StoreContextVar 0, 1
|
|
Push r0
|
|
LoadContextParent
|
|
LoadContextVar 0, 1
|
|
PushInt 5
|
|
CompareIntGt
|
|
JumpIfFalse L2
|
|
Push r0
|
|
PushInt 4
|
|
StoreContextVar 1, 1
|
|
AllocateClosure CP#6
|
|
StoreLocal r2
|
|
Push r2
|
|
PushNull
|
|
StoreFieldTOS CP#10
|
|
Push r2
|
|
PushNull
|
|
StoreFieldTOS CP#12
|
|
Push r2
|
|
PushConstant CP#6
|
|
StoreFieldTOS CP#14
|
|
Push r2
|
|
Push r0
|
|
StoreFieldTOS CP#1
|
|
PopLocal r3
|
|
Push r3
|
|
StoreLocal r2
|
|
Push r2
|
|
UncheckedClosureCall CP#16, 1
|
|
Drop1
|
|
Push r0
|
|
LoadContextVar 1, 1
|
|
DirectCall CP#17, 1
|
|
Drop1
|
|
L2:
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
Closure #lib::B::topLevel::Closure/0::'closure2' () -> void
|
|
ClosureCode {
|
|
EntryFixed 1, 3
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
Push r0
|
|
LoadContextParent
|
|
Push r0
|
|
LoadContextParent
|
|
LoadContextVar 0, 1
|
|
PushInt 2
|
|
AddInt
|
|
StoreContextVar 0, 2
|
|
Push r0
|
|
Push r0
|
|
LoadContextParent
|
|
LoadContextVar 0, 0
|
|
InterfaceCall CP#7, 1
|
|
Push r0
|
|
LoadContextVar 1, 0
|
|
AddInt
|
|
StoreContextVar 1, 1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
Closure #lib::B::topLevel::'<anonymous closure>' () -> dart:core::Null
|
|
ClosureCode {
|
|
EntryFixed 1, 3
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
Push r0
|
|
LoadContextVar 0, 0
|
|
Push r0
|
|
LoadContextVar 0, 3
|
|
InterfaceCall CP#22, 2
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'C', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::C
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testForLoop', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type void
|
|
|
|
Bytecode {
|
|
Entry 5
|
|
CheckStack 0
|
|
AllocateContext 0, 1
|
|
PopLocal r0
|
|
Push r0
|
|
PushInt 0
|
|
StoreContextVar 0, 0
|
|
PushConstant CP#0
|
|
PushConstant CP#1
|
|
DirectCall CP#2, 2
|
|
PopLocal r2
|
|
PushConstant CP#0
|
|
PushConstant CP#1
|
|
DirectCall CP#2, 2
|
|
PopLocal r4
|
|
AllocateContext 1, 1
|
|
StoreLocal r1
|
|
Push r1
|
|
Push r0
|
|
StoreContextParent
|
|
PopLocal r0
|
|
Push r0
|
|
PushInt 0
|
|
StoreContextVar 1, 0
|
|
L2:
|
|
CheckStack 1
|
|
Push r0
|
|
LoadContextVar 1, 0
|
|
PushInt 10
|
|
CompareIntLt
|
|
JumpIfFalse L1
|
|
Push r2
|
|
AllocateClosure CP#4
|
|
StoreLocal r3
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#8
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#10
|
|
Push r3
|
|
PushConstant CP#4
|
|
StoreFieldTOS CP#12
|
|
Push r3
|
|
Push r0
|
|
StoreFieldTOS CP#5
|
|
InstantiatedInterfaceCall CP#14, 2
|
|
Drop1
|
|
Push r4
|
|
AllocateClosure CP#17
|
|
StoreLocal r3
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#8
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#10
|
|
Push r3
|
|
PushConstant CP#17
|
|
StoreFieldTOS CP#12
|
|
Push r3
|
|
Push r0
|
|
StoreFieldTOS CP#5
|
|
InstantiatedInterfaceCall CP#14, 2
|
|
Drop1
|
|
Push r0
|
|
CloneContext 1, 1
|
|
PopLocal r0
|
|
Push r0
|
|
Push r0
|
|
LoadContextVar 1, 0
|
|
PushInt 1
|
|
AddInt
|
|
StoreLocal r3
|
|
StoreContextVar 1, 0
|
|
Push r3
|
|
Drop1
|
|
Jump L2
|
|
L1:
|
|
Push r0
|
|
LoadContextParent
|
|
PopLocal r0
|
|
Push r0
|
|
LoadContextParent
|
|
PopLocal r0
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef < dart:core::Function >
|
|
[1] = ObjectRef const <dynamic> []
|
|
[2] = DirectCall 'dart:core::List::_fromLiteral (constructor)', ArgDesc num-args 2, num-type-args 0, names []
|
|
[3] = Reserved
|
|
[4] = ClosureFunction 0
|
|
[5] = InstanceField dart:core::_Closure::_context (field)
|
|
[6] = Reserved
|
|
[7] = EndClosureFunctionScope
|
|
[8] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
|
|
[9] = Reserved
|
|
[10] = InstanceField dart:core::_Closure::_function_type_arguments (field)
|
|
[11] = Reserved
|
|
[12] = InstanceField dart:core::_Closure::_function (field)
|
|
[13] = Reserved
|
|
[14] = InstantiatedInterfaceCall 'dart:core::List::add', ArgDesc num-args 2, num-type-args 0, names [], receiver dart:core::List < dart:core::Function >
|
|
[15] = Reserved
|
|
[16] = Reserved
|
|
[17] = ClosureFunction 1
|
|
[18] = Type dart:core::int
|
|
[19] = ObjectRef 'ii'
|
|
[20] = SubtypeTestCache
|
|
[21] = EndClosureFunctionScope
|
|
}
|
|
Closure #lib::C::testForLoop::'<anonymous closure>' () -> dart:core::int
|
|
ClosureCode {
|
|
EntryFixed 1, 2
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#5
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
Push r0
|
|
LoadContextVar 1, 0
|
|
Push r0
|
|
LoadContextParent
|
|
LoadContextVar 0, 0
|
|
AddInt
|
|
ReturnTOS
|
|
}
|
|
|
|
Closure #lib::C::testForLoop::'<anonymous closure>' (dart:core::int ii) -> dart:core::Null
|
|
ClosureCode {
|
|
EntryFixed 2, 3
|
|
Push FP[-6]
|
|
LoadFieldTOS CP#5
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
JumpIfUnchecked L1
|
|
Push FP[-5]
|
|
PushConstant CP#18
|
|
PushNull
|
|
PushNull
|
|
PushConstant CP#19
|
|
AssertAssignable 1, CP#20
|
|
Drop1
|
|
L1:
|
|
Push r0
|
|
Push FP[-5]
|
|
Push r0
|
|
LoadContextParent
|
|
LoadContextVar 0, 0
|
|
AddInt
|
|
StoreContextVar 1, 0
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
|
|
Function 'testForInLoop', reflectable, debuggable
|
|
parameters [dart:core::List < dart:core::int > 'list'] (required: 1)
|
|
return-type void
|
|
|
|
Bytecode {
|
|
Entry 5
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
InterfaceCall CP#0, 1
|
|
PopLocal r2
|
|
L2:
|
|
CheckStack 1
|
|
Push r2
|
|
InterfaceCall CP#2, 1
|
|
AssertBoolean 0
|
|
JumpIfFalse L1
|
|
AllocateContext 0, 1
|
|
PopLocal r0
|
|
Push r0
|
|
Push r2
|
|
InterfaceCall CP#4, 1
|
|
StoreContextVar 0, 0
|
|
AllocateClosure CP#6
|
|
StoreLocal r4
|
|
Push r4
|
|
PushNull
|
|
StoreFieldTOS CP#10
|
|
Push r4
|
|
PushNull
|
|
StoreFieldTOS CP#12
|
|
Push r4
|
|
PushConstant CP#6
|
|
StoreFieldTOS CP#14
|
|
Push r4
|
|
Push r0
|
|
StoreFieldTOS CP#7
|
|
PopLocal r3
|
|
Push r3
|
|
StoreLocal r4
|
|
Push r4
|
|
UncheckedClosureCall CP#16, 1
|
|
Drop1
|
|
Push r0
|
|
LoadContextVar 0, 0
|
|
DirectCall CP#17, 1
|
|
Drop1
|
|
Push r0
|
|
LoadContextParent
|
|
PopLocal r0
|
|
Jump L2
|
|
L1:
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = InterfaceCall 'dart:core::Iterable::get:iterator', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
[2] = InterfaceCall 'dart:core::Iterator::moveNext', ArgDesc num-args 1, num-type-args 0, names []
|
|
[3] = Reserved
|
|
[4] = InterfaceCall 'dart:core::Iterator::get:current', ArgDesc num-args 1, num-type-args 0, names []
|
|
[5] = Reserved
|
|
[6] = ClosureFunction 0
|
|
[7] = InstanceField dart:core::_Closure::_context (field)
|
|
[8] = Reserved
|
|
[9] = EndClosureFunctionScope
|
|
[10] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
|
|
[11] = Reserved
|
|
[12] = InstanceField dart:core::_Closure::_function_type_arguments (field)
|
|
[13] = Reserved
|
|
[14] = InstanceField dart:core::_Closure::_function (field)
|
|
[15] = Reserved
|
|
[16] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
|
|
[17] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
|
|
[18] = Reserved
|
|
}
|
|
Closure #lib::C::testForInLoop::'<anonymous closure>' () -> dart:core::Null
|
|
ClosureCode {
|
|
EntryFixed 1, 3
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#7
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
Push r0
|
|
Push r0
|
|
LoadContextVar 0, 0
|
|
PushInt 1
|
|
AddInt
|
|
StoreContextVar 0, 0
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'D', script = '#lib'
|
|
type-params <dart:core::Object T> (args: 1)
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::D < #lib::D::TypeParam/0 >
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'foo', reflectable, debuggable
|
|
parameters [#lib::D::TypeParam/0 't'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 3
|
|
CheckStack 0
|
|
AllocateContext 0, 1
|
|
PopLocal r0
|
|
Push r0
|
|
Push FP[-5]
|
|
StoreContextVar 0, 0
|
|
JumpIfUnchecked L1
|
|
Push FP[-5]
|
|
PushConstant CP#0
|
|
Push FP[-6]
|
|
LoadTypeArgumentsField CP#1
|
|
PushNull
|
|
PushConstant CP#2
|
|
AssertAssignable 0, CP#3
|
|
Drop1
|
|
L1:
|
|
AllocateClosure CP#4
|
|
StoreLocal r2
|
|
Push r2
|
|
Push FP[-6]
|
|
LoadTypeArgumentsField CP#1
|
|
StoreFieldTOS CP#8
|
|
Push r2
|
|
PushNull
|
|
StoreFieldTOS CP#10
|
|
Push r2
|
|
PushConstant CP#4
|
|
StoreFieldTOS CP#12
|
|
Push r2
|
|
Push r0
|
|
StoreFieldTOS CP#5
|
|
ReturnTOS
|
|
}
|
|
Parameter flags: [2]
|
|
ConstantPool {
|
|
[0] = Type #lib::D::TypeParam/0
|
|
[1] = TypeArgumentsField #lib::D
|
|
[2] = ObjectRef 't'
|
|
[3] = SubtypeTestCache
|
|
[4] = ClosureFunction 0
|
|
[5] = InstanceField dart:core::_Closure::_context (field)
|
|
[6] = Reserved
|
|
[7] = EndClosureFunctionScope
|
|
[8] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
|
|
[9] = Reserved
|
|
[10] = InstanceField dart:core::_Closure::_function_type_arguments (field)
|
|
[11] = Reserved
|
|
[12] = InstanceField dart:core::_Closure::_function (field)
|
|
[13] = Reserved
|
|
}
|
|
Closure #lib::D::foo::'<anonymous closure>' () -> #lib::D::TypeParam/0
|
|
ClosureCode {
|
|
EntryFixed 1, 2
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#5
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
Push r0
|
|
LoadContextVar 0, 0
|
|
ReturnTOS
|
|
}
|
|
|
|
|
|
Function 'bar', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 3
|
|
CheckStack 0
|
|
AllocateContext 0, 1
|
|
PopLocal r0
|
|
Push r0
|
|
Push FP[-5]
|
|
StoreContextVar 0, 0
|
|
AllocateClosure CP#0
|
|
StoreLocal r2
|
|
Push r2
|
|
Push FP[-5]
|
|
LoadTypeArgumentsField CP#5
|
|
StoreFieldTOS CP#6
|
|
Push r2
|
|
PushNull
|
|
StoreFieldTOS CP#8
|
|
Push r2
|
|
PushConstant CP#0
|
|
StoreFieldTOS CP#10
|
|
Push r2
|
|
Push r0
|
|
StoreFieldTOS CP#1
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ClosureFunction 0
|
|
[1] = InstanceField dart:core::_Closure::_context (field)
|
|
[2] = Reserved
|
|
[3] = ClosureFunction 1
|
|
[4] = EndClosureFunctionScope
|
|
[5] = TypeArgumentsField #lib::D
|
|
[6] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
|
|
[7] = Reserved
|
|
[8] = InstanceField dart:core::_Closure::_function_type_arguments (field)
|
|
[9] = Reserved
|
|
[10] = InstanceField dart:core::_Closure::_function (field)
|
|
[11] = Reserved
|
|
[12] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
|
|
[13] = EndClosureFunctionScope
|
|
}
|
|
Closure #lib::D::bar::'<anonymous closure>' () -> dart:core::Null
|
|
ClosureCode {
|
|
EntryFixed 1, 4
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
AllocateClosure CP#3
|
|
StoreLocal r3
|
|
Push r3
|
|
Push r0
|
|
LoadContextVar 0, 0
|
|
LoadTypeArgumentsField CP#5
|
|
StoreFieldTOS CP#6
|
|
Push r3
|
|
PushNull
|
|
StoreFieldTOS CP#8
|
|
Push r3
|
|
PushConstant CP#3
|
|
StoreFieldTOS CP#10
|
|
Push r3
|
|
Push r0
|
|
StoreFieldTOS CP#1
|
|
PopLocal r2
|
|
Push r2
|
|
StoreLocal r3
|
|
Push r3
|
|
UncheckedClosureCall CP#12, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
Closure #lib::D::bar::Closure/0::'inner' () -> dart:core::Null
|
|
ClosureCode {
|
|
EntryFixed 1, 2
|
|
Push FP[-5]
|
|
LoadFieldTOS CP#1
|
|
PopLocal r0
|
|
CheckFunctionTypeArgs 0, r1
|
|
CheckStack 0
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
Class 'E', script = '#lib', abstract
|
|
extends dart:core::Object
|
|
|
|
Field 'foo1', type = FunctionType (dart:core::int, dart:core::int) -> dart:core::int, getter = 'get:foo1', setter = 'set:foo1', reflectable, has-initializer
|
|
value = null
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::E
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
Nullable fields: [#lib::E::foo1 (field)]
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'get:foo2', getter, abstract, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type FunctionType <dart:core::Object T> (null::TypeParam/0, null::TypeParam/0) -> dart:core::int
|
|
|
|
Function 'evalArg1', abstract, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'evalArg2', abstract, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'getE', abstract, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type #lib::E
|
|
|
|
Function 'testCallThroughGetter1', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Bytecode {
|
|
Entry 3
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
InterfaceCall CP#0, 1
|
|
PopLocal r0
|
|
Push FP[-5]
|
|
InterfaceCall CP#2, 1
|
|
PopLocal r1
|
|
Push FP[-5]
|
|
InterfaceCall CP#4, 1
|
|
StoreLocal r2
|
|
Push r0
|
|
Push r1
|
|
Push r2
|
|
UncheckedClosureCall CP#6, 3
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = InterfaceCall '#lib::E::evalArg1', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
[2] = InterfaceCall '#lib::E::evalArg2', ArgDesc num-args 1, num-type-args 0, names []
|
|
[3] = Reserved
|
|
[4] = InterfaceCall '#lib::E::get:foo1', ArgDesc num-args 1, num-type-args 0, names []
|
|
[5] = Reserved
|
|
[6] = ObjectRef ArgDesc num-args 3, num-type-args 0, names []
|
|
}
|
|
|
|
|
|
Function 'testCallThroughGetter2', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Bytecode {
|
|
Entry 3
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
InterfaceCall CP#0, 1
|
|
PopLocal r0
|
|
Push FP[-5]
|
|
InterfaceCall CP#2, 1
|
|
PopLocal r1
|
|
PushConstant CP#4
|
|
Push FP[-5]
|
|
InterfaceCall CP#5, 1
|
|
StoreLocal r2
|
|
Push r0
|
|
Push r1
|
|
Push r2
|
|
UncheckedClosureCall CP#7, 4
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = InterfaceCall '#lib::E::evalArg1', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
[2] = InterfaceCall '#lib::E::evalArg2', ArgDesc num-args 1, num-type-args 0, names []
|
|
[3] = Reserved
|
|
[4] = ObjectRef < dart:core::int >
|
|
[5] = InterfaceCall '#lib::E::get:foo2', ArgDesc num-args 1, num-type-args 0, names []
|
|
[6] = Reserved
|
|
[7] = ObjectRef ArgDesc num-args 3, num-type-args 1, names []
|
|
}
|
|
|
|
|
|
Function 'testCallThroughGetter3', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Bytecode {
|
|
Entry 4
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
InterfaceCall CP#0, 1
|
|
PopLocal r0
|
|
Push FP[-5]
|
|
InterfaceCall CP#2, 1
|
|
PopLocal r1
|
|
Push FP[-5]
|
|
InterfaceCall CP#4, 1
|
|
PopLocal r2
|
|
PushConstant CP#6
|
|
Push r0
|
|
InterfaceCall CP#7, 1
|
|
StoreLocal r3
|
|
Push r1
|
|
Push r2
|
|
Push r3
|
|
UncheckedClosureCall CP#9, 4
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = InterfaceCall '#lib::E::getE', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
[2] = InterfaceCall '#lib::E::evalArg1', ArgDesc num-args 1, num-type-args 0, names []
|
|
[3] = Reserved
|
|
[4] = InterfaceCall '#lib::E::evalArg2', ArgDesc num-args 1, num-type-args 0, names []
|
|
[5] = Reserved
|
|
[6] = ObjectRef < dart:core::int >
|
|
[7] = InterfaceCall '#lib::E::get:foo2', ArgDesc num-args 1, num-type-args 0, names []
|
|
[8] = Reserved
|
|
[9] = ObjectRef ArgDesc num-args 3, num-type-args 1, names []
|
|
}
|
|
|
|
|
|
Function 'get:_identityHashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function '_instanceOf', abstract, debuggable
|
|
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOf', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfTrue', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '_simpleInstanceOfFalse', abstract, debuggable
|
|
parameters [dynamic 'type'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function '==', abstract, debuggable
|
|
parameters [dynamic 'other'] (required: 1)
|
|
return-type dart:core::bool
|
|
|
|
Function 'get:hashCode', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::int
|
|
|
|
Function 'toString', abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::String
|
|
|
|
Function 'noSuchMethod', abstract, debuggable
|
|
parameters [dart:core::Invocation 'invocation'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Function 'get:runtimeType', getter, abstract, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dart:core::Type
|
|
|
|
}
|
|
]library #lib from "#lib" as #lib {
|
|
|
|
typedef IntFunc = (dart.core::int*) →* dynamic;
|
|
class C1 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::C1*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class C2 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::C2*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class C3 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::C3*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class C4 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::C4*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class C5 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::C5*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class C6 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::C6*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class C7 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::C7*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class C8 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::C8*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class A<T1 extends dart.core::Object* = dynamic, T2 extends dart.core::Object* = dynamic> extends dart.core::Object {
|
|
synthetic constructor •() → #lib::A<#lib::A::T1*, #lib::A::T2*>*
|
|
: super dart.core::Object::•()
|
|
;
|
|
method foo<T3 extends dart.core::Object* = dynamic, T4 extends dart.core::Object* = dynamic>() → void {
|
|
function nested1<T5 extends dart.core::Object* = dynamic, T6 extends dart.core::Object* = dynamic>() → void {
|
|
function nested2<T7 extends dart.core::Object* = dynamic, T8 extends dart.core::Object* = dynamic>() → void {
|
|
() →* dart.core::Null? nested3 = () → dart.core::Null? {
|
|
dart.core::print(<dart.core::Type*>[#lib::A::T1*, #lib::A::T2*, #lib::A::foo::T3*, #lib::A::foo::T4*, T5*, T6*, T7*, T8*]);
|
|
#lib::callWithArgs<#lib::A::T1*, #lib::A::T2*, #lib::A::foo::T3*, #lib::A::foo::T4*, T5*, T6*, T7*, T8*>();
|
|
};
|
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function()*] nested3.call();
|
|
}
|
|
[@vm.call-site-attributes.metadata=receiverType:void Function<T7, T8>()*] nested2.call<#lib::C7*, #lib::C8*>();
|
|
[@vm.call-site-attributes.metadata=receiverType:void Function<T7, T8>()*] nested2.call<dart.core::List<#lib::C7*>*, dart.core::List<#lib::C8*>*>();
|
|
}
|
|
[@vm.call-site-attributes.metadata=receiverType:void Function<T5, T6>()*] nested1.call<#lib::C5*, #lib::C6*>();
|
|
[@vm.call-site-attributes.metadata=receiverType:void Function<T5, T6>()*] nested1.call<dart.core::List<#lib::C5*>*, dart.core::List<#lib::C6*>*>();
|
|
}
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class B extends dart.core::Object {
|
|
field dart.core::int* foo = null;
|
|
synthetic constructor •() → #lib::B*
|
|
: super dart.core::Object::•()
|
|
;
|
|
method topLevel() → void {
|
|
{
|
|
dart.core::int* x = 1;
|
|
{
|
|
dart.core::int* y = 2;
|
|
dart.core::int* z = 3;
|
|
(dart.core::int*) →* dart.core::Null? closure1 = (dart.core::int* y) → dart.core::Null? {
|
|
x = y.{dart.core::num::+}(1);
|
|
if(x.{dart.core::num::>}(5)) {
|
|
dart.core::int* w = 4;
|
|
function closure2() → void {
|
|
z = x.{dart.core::num::+}(2);
|
|
w = this.{#lib::B::foo}.{dart.core::num::+}(y);
|
|
}
|
|
[@vm.call-site-attributes.metadata=receiverType:void Function()*] closure2.call();
|
|
dart.core::print(w);
|
|
}
|
|
};
|
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function(dart.core::int*)*] closure1.call(10);
|
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function(dart.core::int*)*] closure1.call(11);
|
|
dart.core::print(y);
|
|
dart.core::print(z);
|
|
}
|
|
dart.core::print(x);
|
|
}
|
|
{
|
|
dart.core::int* x = 42;
|
|
() →* dart.core::Null? closure3 = () → dart.core::Null? {
|
|
this.{#lib::B::foo} = x;
|
|
};
|
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function()*] closure3.call();
|
|
}
|
|
}
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class C extends dart.core::Object {
|
|
synthetic constructor •() → #lib::C*
|
|
: super dart.core::Object::•()
|
|
;
|
|
method testForLoop() → void {
|
|
dart.core::int* delta = 0;
|
|
dart.core::List<dart.core::Function*>* getI = <dart.core::Function*>[];
|
|
dart.core::List<dart.core::Function*>* setI = <dart.core::Function*>[];
|
|
for (dart.core::int* i = 0; i.{dart.core::num::<}(10); i = i.{dart.core::num::+}(1)) {
|
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::List<dart.core::Function*>*] getI.{dart.core::List::add}(() → dart.core::int* => i.{dart.core::num::+}(delta));
|
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::List<dart.core::Function*>*] setI.{dart.core::List::add}((dart.core::int* ii) → dart.core::Null? {
|
|
i = ii.{dart.core::num::+}(delta);
|
|
});
|
|
}
|
|
}
|
|
method testForInLoop(dart.core::List<dart.core::int*>* list) → void {
|
|
{
|
|
dart.core::Iterator<dart.core::int*>* :sync-for-iterator = list.{dart.core::Iterable::iterator};
|
|
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
|
|
dart.core::int* i = :sync-for-iterator.{dart.core::Iterator::current};
|
|
{
|
|
() →* dart.core::Null? inc = () → dart.core::Null? {
|
|
i = i.{dart.core::num::+}(1);
|
|
};
|
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function()*] inc.call();
|
|
dart.core::print(i);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
class D<T extends dart.core::Object* = dynamic> extends dart.core::Object {
|
|
synthetic constructor •() → #lib::D<#lib::D::T*>*
|
|
: super dart.core::Object::•()
|
|
;
|
|
method foo(generic-covariant-impl #lib::D::T* t) → dynamic {
|
|
return () → #lib::D::T* => t;
|
|
}
|
|
method bar() → dynamic {
|
|
return () → dart.core::Null? {
|
|
function inner() → dart.core::Null? {}
|
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function()*] inner.call();
|
|
};
|
|
}
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
abstract class E extends dart.core::Object {
|
|
field (dart.core::int*, dart.core::int*) →* dart.core::int* foo1 = null;
|
|
synthetic constructor •() → #lib::E*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract get foo2() → <T extends dart.core::Object* = dynamic>(T*, T*) →* dart.core::int*;
|
|
abstract method evalArg1() → dart.core::int*;
|
|
abstract method evalArg2() → dart.core::int*;
|
|
abstract method getE() → #lib::E*;
|
|
method testCallThroughGetter1() → dart.core::int*
|
|
return let final dart.core::int* #t1 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t2 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:dart.core::int* Function(dart.core::int*, dart.core::int*)*] this.{#lib::E::foo1}.call(#t1, #t2);
|
|
method testCallThroughGetter2() → dart.core::int*
|
|
return let final dart.core::int* #t3 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t4 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:dart.core::int* Function<T>(T*, T*)*] this.{#lib::E::foo2}.call<dart.core::int*>(#t3, #t4);
|
|
method testCallThroughGetter3() → dart.core::int*
|
|
return let final #lib::E* #t5 = this.{#lib::E::getE}() in let final dart.core::int* #t6 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t7 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:dart.core::int* Function<T>(T*, T*)*] #t5.{#lib::E::foo2}.call<dart.core::int*>(#t6, #t7);
|
|
abstract member-signature get _identityHashCode() → dart.core::int*;
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
|
|
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
|
|
abstract member-signature get hashCode() → dart.core::int*;
|
|
abstract member-signature method toString() → dart.core::String*;
|
|
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
|
|
abstract member-signature get runtimeType() → dart.core::Type*;
|
|
}
|
|
static method simpleClosure() → dart.core::int* {
|
|
dart.core::int* x = 5;
|
|
(dart.core::int*) →* dart.core::Null? inc = (dart.core::int* y) → dart.core::Null? {
|
|
x = x.{dart.core::num::+}(y);
|
|
};
|
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function(dart.core::int*)*] inc.call(3);
|
|
return x;
|
|
}
|
|
static method callWithArgs<T1 extends dart.core::Object* = dynamic, T2 extends dart.core::Object* = dynamic, T3 extends dart.core::Object* = dynamic, T4 extends dart.core::Object* = dynamic, T5 extends dart.core::Object* = dynamic, T6 extends dart.core::Object* = dynamic, T7 extends dart.core::Object* = dynamic, T8 extends dart.core::Object* = dynamic>() → void {
|
|
dart.core::print(<dart.core::Type*>[#lib::callWithArgs::T1*, #lib::callWithArgs::T2*, #lib::callWithArgs::T3*, #lib::callWithArgs::T4*, #lib::callWithArgs::T5*, #lib::callWithArgs::T6*, #lib::callWithArgs::T7*, #lib::callWithArgs::T8*]);
|
|
}
|
|
static method callA() → void {
|
|
new #lib::A::•<#lib::C1*, #lib::C2*>().{#lib::A::foo}<#lib::C3*, #lib::C4*>();
|
|
new #lib::A::•<#lib::C1*, #lib::C2*>().{#lib::A::foo}<dart.core::List<#lib::C3*>*, dart.core::List<#lib::C4*>*>();
|
|
new #lib::A::•<dart.core::List<#lib::C1*>*, dart.core::List<#lib::C2*>*>().{#lib::A::foo}<dart.core::List<#lib::C3*>*, dart.core::List<#lib::C4*>*>();
|
|
}
|
|
static method testPartialInstantiation() → (dart.core::int*) →* dynamic {
|
|
function foo<T extends dart.core::Object* = dynamic>(T* t) → void {}
|
|
(dart.core::int*) →* dynamic intFunc = foo<dart.core::int*>;
|
|
return intFunc;
|
|
}
|
|
static method main() → dynamic {}
|
|
}
|