17 const int kTypeArgsLen = 0;
18 const Array& fun_arguments =
19 Array::CheckedHandle(zone, arguments->NativeArgAt(0));
20 const Array& fun_arg_names =
21 Array::CheckedHandle(zone, arguments->NativeArgAt(1));
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())) {
116 Closure::CheckedHandle(zone, arguments->NativeArgAt(0));
124 Closure::CheckedHandle(zone, arguments->NativeArgAt(0));
static ArrayPtr NewBoxed(intptr_t type_args_len, intptr_t num_arguments, const Array &optional_arguments_names, Heap::Space space=Heap::kOld)
static const Bool & Get(bool value)
ContextPtr GetContext() const
TypeArgumentsPtr instantiator_type_arguments() const
TypeArgumentsPtr delayed_type_arguments() const
TypeArgumentsPtr function_type_arguments() const
InstancePtr GetImplicitClosureReceiver() const
FunctionPtr function() const
uword ComputeHash() const
static ObjectPtr InvokeClosure(Thread *thread, const Array &arguments)
static DART_NORETURN void PropagateError(const Error &error)
static SmiPtr New(intptr_t value)
static bool ClosureEqualsHelper(Zone *zone, const Closure &receiver, const Object &other)
DEFINE_NATIVE_ENTRY(List_allocate, 0, 2)
#define GET_NATIVE_ARGUMENT(type, name, value)