| Index: runtime/vm/dart_api_impl.cc
|
| diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
|
| index aba87520b599c1a0240a1b53a88629820f7654bb..a3ec66662280f08529d190bf8bb252af43b6fd0e 100644
|
| --- a/runtime/vm/dart_api_impl.cc
|
| +++ b/runtime/vm/dart_api_impl.cc
|
| @@ -59,10 +59,8 @@ namespace dart {
|
| // Facilitate quick access to the current zone once we have the current thread.
|
| #define Z (T->zone())
|
|
|
| -DECLARE_FLAG(bool, use_dart_frontend);
|
| DECLARE_FLAG(bool, print_class_table);
|
| DECLARE_FLAG(bool, verify_handles);
|
| -DECLARE_FLAG(bool, use_dart_frontend);
|
| #if defined(DART_NO_SNAPSHOT)
|
| DEFINE_FLAG(bool,
|
| check_function_fingerprints,
|
| @@ -1093,7 +1091,8 @@ DART_EXPORT char* Dart_Initialize(Dart_InitializeParams* params) {
|
| params->vm_snapshot_data, params->vm_snapshot_instructions,
|
| params->create, params->shutdown, params->cleanup, params->thread_exit,
|
| params->file_open, params->file_read, params->file_write,
|
| - params->file_close, params->entropy_source, params->get_service_assets);
|
| + params->file_close, params->entropy_source, params->get_service_assets,
|
| + params->start_kernel_isolate);
|
| }
|
|
|
| DART_EXPORT char* Dart_Cleanup() {
|
| @@ -1227,6 +1226,13 @@ DART_EXPORT Dart_Isolate Dart_CreateIsolateFromKernel(const char* script_uri,
|
| Dart_IsolateFlags* flags,
|
| void* callback_data,
|
| char** error) {
|
| + // Setup default flags in case none were passed.
|
| + Dart_IsolateFlags api_flags;
|
| + if (flags == NULL) {
|
| + Isolate::FlagsInitialize(&api_flags);
|
| + flags = &api_flags;
|
| + }
|
| + flags->use_dart_frontend = true;
|
| return CreateIsolate(script_uri, main, NULL, NULL, -1,
|
| reinterpret_cast<kernel::Program*>(kernel_program),
|
| flags, callback_data, error);
|
| @@ -5116,7 +5122,7 @@ DART_EXPORT Dart_Handle Dart_LoadScript(Dart_Handle url,
|
|
|
| Dart_Handle result;
|
| #if !defined(DART_PRECOMPILED_RUNTIME)
|
| - if (FLAG_use_dart_frontend && !KernelIsolate::IsKernelIsolate(I)) {
|
| + if (I->use_dart_frontend()) {
|
| if ((source == Api::Null()) || (source == NULL)) {
|
| RETURN_NULL_ERROR(source);
|
| }
|
| @@ -5470,10 +5476,7 @@ DART_EXPORT Dart_Handle Dart_LoadLibrary(Dart_Handle url,
|
| }
|
| Dart_Handle result;
|
| #if !defined(DART_PRECOMPILED_RUNTIME)
|
| - // Kernel isolate is loaded from script in case of dart_bootstrap
|
| - // even when FLAG_use_dart_frontend is true. Hence, do not interpret
|
| - // |source| as a kernel if the current isolate is the kernel isolate.
|
| - if (FLAG_use_dart_frontend && !KernelIsolate::IsKernelIsolate(I)) {
|
| + if (I->use_dart_frontend()) {
|
| result = LoadKernelProgram(T, url_str, reinterpret_cast<void*>(source));
|
| if (::Dart_IsError(result)) {
|
| return result;
|
|
|