[vm] Add useful type getters to C API

This allows direct access to String, int, bool, double, Object types
instead of requiring name based lookups via Dart_LookupLibrary and
Dart_GetType.

R=dacoharkes@google.com

TEST=vm/cc/DartAPI_CoreTypes

Change-Id: I2aba317be3b4be21f37d61843a328a5146417e54
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/450160
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Auto-Submit: Art Snake <art-snake@yandex-team.ru>
Commit-Queue: Slava Egorov <vegorov@google.com>
This commit is contained in:
Artem Strygin
2025-09-18 04:45:29 -07:00
committed by Commit Queue
parent 9eea7a334d
commit 522e611c9d
5 changed files with 148 additions and 0 deletions
+35
View File
@@ -2307,6 +2307,41 @@ DART_EXPORT Dart_Handle Dart_TypeNever() {
return Api::NewHandle(T, Type::NeverType());
}
DART_EXPORT Dart_Handle Dart_TypeString() {
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
API_TIMELINE_DURATION(T);
return Api::NewHandle(T, T->isolate_group()->object_store()->string_type());
}
DART_EXPORT Dart_Handle Dart_TypeDouble() {
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
API_TIMELINE_DURATION(T);
return Api::NewHandle(T, T->isolate_group()->object_store()->double_type());
}
DART_EXPORT Dart_Handle Dart_TypeInt() {
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
API_TIMELINE_DURATION(T);
return Api::NewHandle(T, T->isolate_group()->object_store()->int_type());
}
DART_EXPORT Dart_Handle Dart_TypeBoolean() {
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
API_TIMELINE_DURATION(T);
return Api::NewHandle(T, T->isolate_group()->object_store()->bool_type());
}
DART_EXPORT Dart_Handle Dart_TypeObject() {
DARTSCOPE(Thread::Current());
CHECK_CALLBACK_STATE(T);
API_TIMELINE_DURATION(T);
return Api::NewHandle(T, T->isolate_group()->object_store()->object_type());
}
DART_EXPORT Dart_Handle Dart_ObjectEquals(Dart_Handle obj1,
Dart_Handle obj2,
bool* value) {