const Function& CompilerState::TypedListGet##Upper() { \
if (typed_list_get_##Lower##_ == nullptr) { \
Thread* thread = Thread::Current(); \
Zone* zone = thread->zone(); \
const auto& cls = CompilerState::TypedListClass(); \
typed_list_get_##Lower##_ = &Function::ZoneHandle( \
zone, cls.LookupFunctionAllowPrivate(Symbols::_nativeGet##Upper())); \
ASSERT(!typed_list_get_##Lower##_->IsNull()); \
} \
return *typed_list_get_##Lower##_; \
} \
const Function& CompilerState::TypedListSet##Upper() { \
if (typed_list_set_##Lower##_ == nullptr) { \
Thread* thread = Thread::Current(); \
Zone* zone = thread->zone(); \
const auto& cls = CompilerState::TypedListClass(); \
typed_list_set_##Lower##
_ = &Function::ZoneHandle( \
zone, cls.LookupFunctionAllowPrivate(Symbols::_nativeSet##Upper())); \
ASSERT(!typed_list_set_##Lower##
_->IsNull()); \
} \
return *typed_list_set_##Lower##
_; \
}
96 { \
97 if (typed_list_get_##Lower##_ == nullptr) { \
98 Thread* thread = Thread::Current(); \
99 Zone* zone = thread->zone(); \
100 const auto& cls = CompilerState::TypedListClass(); \
101 typed_list_get_##Lower##
_ = &Function::ZoneHandle( \
102 zone, cls.LookupFunctionAllowPrivate(Symbols::_nativeGet##Upper())); \
103 ASSERT(!typed_list_get_##Lower##
_->IsNull()); \
104 } \
105 return *typed_list_get_##Lower##
_; \
106 } \
107 const Function& CompilerState::TypedListSet##Upper() { \
108 if (typed_list_set_##Lower##_ == nullptr) { \
109 Thread* thread = Thread::Current(); \
110 Zone* zone = thread->zone(); \
111 const auto& cls = CompilerState::TypedListClass(); \
112 typed_list_set_##Lower##
_ = &Function::ZoneHandle( \
113 zone, cls.LookupFunctionAllowPrivate(Symbols::_nativeSet##Upper())); \
114 ASSERT(!typed_list_set_##Lower##
_->IsNull()); \
115 } \
116 return *typed_list_set_##Lower##
_; \
117 }