| Index: runtime/bin/main.cc
|
| diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
|
| index c61016f8f4581164f05321792f3d22608d755fc9..77625d80cb43adcef525d7e9007e74761c9d2d7b 100644
|
| --- a/runtime/bin/main.cc
|
| +++ b/runtime/bin/main.cc
|
| @@ -743,30 +743,29 @@ static Dart_Isolate CreateIsolateAndSetupHelper(const char* script_uri,
|
| return isolate;
|
| }
|
|
|
| - // Load the specified application script into the newly created isolate.
|
| -
|
| - // Prepare builtin and its dependent libraries for use to resolve URIs.
|
| - // The builtin library is part of the core snapshot and would already be
|
| - // available here in the case of script snapshot loading.
|
| - Dart_Handle builtin_lib =
|
| - Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
|
| - CHECK_RESULT(builtin_lib);
|
| -
|
| - // Prepare for script loading by setting up the 'print' and 'timer'
|
| - // closures and setting up 'package root' for URI resolution.
|
| - result = DartUtils::PrepareForScriptLoading(package_root,
|
| - packages_config,
|
| - false,
|
| - has_trace_loading,
|
| - builtin_lib);
|
| + // Prepare builtin and other core libraries for use to resolve URIs.
|
| + // Set up various closures, e.g: printing, timers etc.
|
| + // Set up 'package root' for URI resolution.
|
| + result = DartUtils::PrepareForScriptLoading(false, has_trace_loading);
|
| + CHECK_RESULT(result);
|
| +
|
| + // Set up the load port provided by the service isolate so that we can
|
| + // load scripts.
|
| + result = DartUtils::SetupServiceLoadPort();
|
| + CHECK_RESULT(result);
|
| +
|
| + // Setup package root if specified.
|
| + result = DartUtils::SetupPackageRoot(package_root, packages_config);
|
| CHECK_RESULT(result);
|
|
|
| result = Dart_SetEnvironmentCallback(EnvironmentCallback);
|
| CHECK_RESULT(result);
|
|
|
| if (!has_run_precompiled_snapshot) {
|
| + // Load the specified application script into the newly created isolate.
|
| +
|
| // Load the script.
|
| - result = DartUtils::LoadScript(script_uri, builtin_lib);
|
| + result = DartUtils::LoadScript(script_uri);
|
| CHECK_RESULT(result);
|
|
|
| // Run event-loop and wait for script loading to complete.
|
| @@ -1174,11 +1173,10 @@ bool RunMainIsolate(const char* script_name,
|
| Dart_Handle root_lib = Dart_RootLibrary();
|
| // Import the root library into the builtin library so that we can easily
|
| // lookup the main entry point exported from the root library.
|
| - Dart_Handle builtin_lib =
|
| - Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
|
| - ASSERT(!Dart_IsError(builtin_lib));
|
| - result = Dart_LibraryImportLibrary(builtin_lib, root_lib, Dart_Null());
|
| -
|
| + IsolateData* isolate_data =
|
| + reinterpret_cast<IsolateData*>(Dart_IsolateData(isolate));
|
| + result = Dart_LibraryImportLibrary(
|
| + isolate_data->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.
|
| @@ -1268,7 +1266,7 @@ bool RunMainIsolate(const char* script_name,
|
| // The helper function _getMainClosure creates a closure for the main
|
| // entry point which is either explicitly or implictly exported from the
|
| // root library.
|
| - Dart_Handle main_closure = Dart_Invoke(builtin_lib,
|
| + Dart_Handle main_closure = Dart_Invoke(isolate_data->builtin_lib(),
|
| Dart_NewStringFromCString("_getMainClosure"), 0, NULL);
|
| CHECK_RESULT(main_closure);
|
|
|
|
|