37 {
42
45 bool* auto_setup_scope) {
50 }
53 *auto_setup_scope = true;
55 for (size_t i = 0; i < num_entries; i++) {
57 if (!strcmp(function_name, entry.name) &&
59 return entry.function;
60 }
61 }
62 return nullptr;
63}
64
67 for (size_t i = 0; i < num_entries; i++) {
69 if (entry.function == native_function)
70 return reinterpret_cast<const uint8_t*>(entry.name);
71 }
72 return nullptr;
73}
74
77 uint8_t* chars = nullptr;
82 } else {
83 fwrite(chars, 1,
length, stdout);
84 fputc('\n', stdout);
85 fflush(stdout);
86 }
87}
88
92 return;
94}
95
96}
97
99 fdio_ns_t* namespc,
100 int stdoutfd,
101 int stderrfd,
102 zx::channel directory_request,
103 bool service_isolate) {
104
105
106 if (!service_isolate) {
108 }
109
110
111
115 BuiltinNativeSymbol);
117
118
119
125
126
127
130
131
132
133
136
139
142
145
146#if !defined(AOT_RUNTIME)
147
148
149
150
153#endif
154
155
159
162
163
165 if (service_isolate) {
166
168 isolate_lib,
ToDart(
"_getIsolateScheduleImmediateClosure"), 0,
nullptr);
169 } else {
170
172 builtin_lib,
ToDart(
"_getScheduleMicrotaskClosure"), 0,
nullptr);
173 }
175
177 schedule_args[0] = schedule_immediate_closure;
179 schedule_args);
181
182
186
188 namespace_args[0] =
ToDart(
reinterpret_cast<intptr_t
>(namespc));
192
193
194 namespace_type =
197
199 ToDart(
reinterpret_cast<intptr_t
>(namespc)));
201
202
209
210
214
218
219
222
223
227
230
238}
239
240}
#define BUILTIN_NATIVE_LIST(V)
#define REGISTER_FUNCTION(name, count)
void ScheduleMicrotask(Dart_Handle callback)
static DartMicrotaskQueue * GetForCurrentThread()
DART_EXPORT Dart_Handle Dart_GetNonNullableType(Dart_Handle library, Dart_Handle class_name, intptr_t number_of_type_arguments, Dart_Handle *type_arguments)
DART_EXPORT Dart_Handle Dart_SetNativeResolver(Dart_Handle library, Dart_NativeEntryResolver resolver, Dart_NativeEntrySymbol symbol)
struct _Dart_Handle * Dart_Handle
DART_EXPORT void Dart_PropagateError(Dart_Handle handle)
DART_EXPORT DART_WARN_UNUSED_RESULT Dart_Handle Dart_Invoke(Dart_Handle target, Dart_Handle name, int number_of_arguments, Dart_Handle *arguments)
DART_EXPORT Dart_Handle Dart_GetNativeArgument(Dart_NativeArguments args, int index)
DART_EXPORT Dart_Handle Dart_LookupLibrary(Dart_Handle url)
DART_EXPORT DART_WARN_UNUSED_RESULT Dart_Handle Dart_FinalizeLoading(bool complete_futures)
struct _Dart_NativeArguments * Dart_NativeArguments
DART_EXPORT DART_WARN_UNUSED_RESULT Dart_Handle Dart_SetField(Dart_Handle container, Dart_Handle name, Dart_Handle value)
DART_EXPORT Dart_Handle Dart_False(void)
DART_EXPORT Dart_Handle Dart_StringToUTF8(Dart_Handle str, uint8_t **utf8_array, intptr_t *length)
DART_EXPORT Dart_Handle Dart_StringToCString(Dart_Handle str, const char **cstr)
void(* Dart_NativeFunction)(Dart_NativeArguments arguments)
DART_EXPORT Dart_Handle Dart_NewInteger(int64_t value)
DART_EXPORT bool Dart_IsError(Dart_Handle handle)
DART_EXPORT bool Dart_IsClosure(Dart_Handle object)
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
#define FML_CHECK(condition)
#define FML_DCHECK(condition)
const uint8_t * IONativeSymbol(Dart_NativeFunction nf)
Dart_NativeFunction IONativeLookup(Dart_Handle name, int argument_count, bool *auto_setup_scope)
void InitBuiltinLibrariesForIsolate(const std::string &script_uri, fdio_ns_t *namespc, int stdoutfd, int stderrfd, zx::channel directory_request, bool service_isolate)
size_t ArraySize(T(&array)[SIZE])
const char *const function_name
std::function< void(Dart_NativeArguments)> NativeEntry
std::function< void()> closure
void Initialize(zx::channel directory_request, std::optional< zx::eventpair > view_ref)
Initializes Dart bindings for the Fuchsia application model.
Dart_Handle ToDart(const T &object)
bool CheckAndHandleError(Dart_Handle handle)