/* Native resolver for the extension library. */ Dart_NativeFunction ResolveName(Dart_Handle name, int argc) { /* assert(Dart_IsString(name)); */ const char* c_name; Dart_Handle check_error; check_error = Dart_StringToCString(name, &c_name); if (Dart_IsError(check_error)) { Dart_PropagateError(check_error); } if ((strcmp("TestExtension_IfNull", c_name) == 0) && (argc == 2)) { return IfNull; } if ((strcmp("TestExtension_ThrowMeTheBall", c_name) == 0) && (argc == 1)) { return ThrowMeTheBall; } return NULL; }
Dart_NativeFunction ResolveName(Dart_Handle name, int argc, bool* auto_setup_scope) { *auto_setup_scope = true; Dart_NativeFunction result; if (!Dart_IsString(name)) return NULL; Dart_EnterScope(); const char* cname; HandleError(Dart_StringToCString(name, &cname)); for (int i=0; function_list[i].name != NULL; ++i) { if (strcmp(function_list[i].name, cname) == 0) { result = function_list[i].function; break; } } Dart_ExitScope(); return result; }