[io] Provide dart::bin::SetupDartIoLibrary

Instead of requiring embedder to initialize dart:io by bits and pieces
by invoking various hooks and setting fields provide a structured C++
API for preparing dart:io for execution.

TEST=ci

CoreLibraryReviewExempt: VM specific changes only
Change-Id: I66e95c0a451d384b4f7582d1df059e506a6a6964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/454062
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
This commit is contained in:
Slava Egorov
2025-10-14 13:15:21 -07:00
committed by Commit Queue
parent afda7beb42
commit dec87b98f0
27 changed files with 232 additions and 253 deletions
+2 -2
View File
@@ -27,7 +27,7 @@ source_set("engine_jit_set") {
deps = [
"..:libdart_jit",
"../bin:dart_io_api",
"../bin:common_embedder_dart_io",
"../bin:dart_kernel_platform_cc",
"../bin:libdart_builtin",
]
@@ -59,7 +59,7 @@ source_set("engine_aot_set") {
deps = [
"..:libdart_aotruntime",
"../bin:dart_io_api",
"../bin:common_embedder_dart_io",
"../bin:libdart_builtin",
]
}
+3 -2
View File
@@ -194,8 +194,9 @@ Dart_Isolate Engine::StartIsolate(DartEngine_SnapshotData snapshot,
// In fact, this call initializes core libraries, (e.g. `print` doesn't work
// without it).
Dart_Handle core_libs_result = bin::DartUtils::PrepareForScriptLoading(
false, false, /*flag_profile_microtasks=*/false);
Dart_Handle core_libs_result = bin::DartUtils::SetupCoreLibraries(
/*is_service_isolate=*/false, /*trace_loading=*/false,
/*flag_profile_microtasks=*/false, bin::DartIoSettings{});
if (Dart_IsError(core_libs_result)) {
*error = Utils::StrDup(Dart_GetError(core_libs_result));
Dart_ShutdownIsolate();