Index: runtime/bin/main.cc |
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc |
index 680dea3926f8702c7d36544b23117ba11e6e59c4..53b14539db6baecedeef686004cdb7f55f15465d 100644 |
--- a/runtime/bin/main.cc |
+++ b/runtime/bin/main.cc |
@@ -764,7 +764,9 @@ static Dart_Isolate CreateIsolateAndSetupHelper(const char* script_uri, |
if (Dart_IsServiceIsolate(isolate)) { |
// If this is the service isolate, load embedder specific bits and return. |
- if (!VmService::Setup(vm_service_server_ip, vm_service_server_port)) { |
+ if (!VmService::Setup(vm_service_server_ip, |
+ vm_service_server_port, |
+ has_run_precompiled_snapshot)) { |
*error = strdup(VmService::GetErrorMessage()); |
return NULL; |
} |
@@ -1225,6 +1227,18 @@ bool RunMainIsolate(const char* script_name, |
ASSERT(!Dart_IsError(builtin_lib)); |
result = Dart_LibraryImportLibrary(builtin_lib, root_lib, Dart_Null()); |
+ if (has_gen_precompiled_snapshot) { |
+ // Load the embedder's portion of the VM service's Dart code so it will |
+ // be included in the precompiled snapshot. |
+ if (!VmService::LoadForGenPrecompiled()) { |
+ fprintf(stderr, |
+ "VM service loading failed: %s\n", |
+ VmService::GetErrorMessage()); |
+ fflush(stderr); |
+ exit(kErrorExitCode); |
+ } |
+ } |
+ |
if (has_noopt || has_gen_precompiled_snapshot) { |
Dart_QualifiedFunctionName standalone_entry_points[] = { |
{ "dart:_builtin", "::", "_getMainClosure" }, |
@@ -1236,6 +1250,7 @@ bool RunMainIsolate(const char* script_name, |
{ "dart:io", "::", "_makeUint8ListView" }, |
{ "dart:io", "::", "_makeDatagram" }, |
{ "dart:io", "::", "_setupHooks" }, |
+ { "dart:io", "::", "_getWatchSignalInternal" }, |
{ "dart:io", "CertificateException", "CertificateException." }, |
{ "dart:io", "HandshakeException", "HandshakeException." }, |
{ "dart:io", "OSError", "OSError." }, |
@@ -1249,6 +1264,7 @@ bool RunMainIsolate(const char* script_name, |
{ "dart:io", "_SecureFilterImpl", "get:SIZE" }, |
{ "dart:vmservice_io", "::", "_addResource" }, |
{ "dart:vmservice_io", "::", "main" }, |
+ { "dart:vmservice_io", "::", "boot" }, |
{ NULL, NULL, NULL } // Must be terminated with NULL entries. |
}; |