36 if (receiver.
ptr() == other.
ptr()) {
39 if (!other.IsClosure()) {
42 const auto& other_closure = Closure::Cast(other);
46 if (func_a.ptr() != func_b.ptr()) {
48 if (!func_a.IsImplicitClosureFunction() ||
49 !func_b.IsImplicitClosureFunction()) {
55 if ((func_a.name() != func_b.name() || func_a.Owner() != func_b.Owner() ||
56 func_a.is_static() != func_b.is_static())) {
62 other_closure.delayed_type_arguments()) {
64 ASSERT(func_a.IsGeneric() || func_b.IsGeneric());
65 const auto& type_args_a =
67 const auto& type_args_b =
69 if (type_args_a.IsNull() || type_args_b.IsNull() ||
70 (type_args_a.Length() != type_args_b.Length()) ||
75 if (func_a.IsImplicitClosureFunction()) {
76 ASSERT(func_b.IsImplicitClosureFunction());
77 if (!func_a.is_static()) {
78 ASSERT(!func_b.is_static());
84 return receiver_a.
ptr() == receiver_b.
ptr();
87 ASSERT(!func_b.IsImplicitClosureFunction());
88 if (func_a.IsGeneric()) {
99 if ((receiver.
GetContext() != other_closure.GetContext()) ||
101 other_closure.instantiator_type_arguments()) ||
103 other_closure.function_type_arguments())) {
static ObjectPtr InvokeClosure(Thread *thread, const Array &arguments)
#define DEFINE_NATIVE_ENTRY(name, type_argument_count, argument_count)
#define GET_NATIVE_ARGUMENT(type, name, value)