| Index: runtime/vm/dart_api_impl.cc
|
| ===================================================================
|
| --- runtime/vm/dart_api_impl.cc (revision 38461)
|
| +++ runtime/vm/dart_api_impl.cc (working copy)
|
| @@ -5170,7 +5170,7 @@
|
|
|
| // Finalizes classes and invokes Dart core library function that completes
|
| // futures of loadLibrary calls (deferred library loading).
|
| -DART_EXPORT Dart_Handle Dart_FinalizeLoading() {
|
| +DART_EXPORT Dart_Handle Dart_FinalizeLoading(bool complete_futures) {
|
| Isolate* isolate = Isolate::Current();
|
| DARTSCOPE(isolate);
|
| CHECK_CALLBACK_STATE(isolate);
|
| @@ -5186,19 +5186,21 @@
|
| return state;
|
| }
|
|
|
| - const Library& corelib = Library::Handle(isolate, Library::CoreLibrary());
|
| - const String& function_name =
|
| - String::Handle(isolate, String::New("_completeDeferredLoads"));
|
| - const Function& function =
|
| - Function::Handle(isolate,
|
| - corelib.LookupFunctionAllowPrivate(function_name));
|
| - ASSERT(!function.IsNull());
|
| - const Array& args = Array::empty_array();
|
| + if (complete_futures) {
|
| + const Library& corelib = Library::Handle(isolate, Library::CoreLibrary());
|
| + const String& function_name =
|
| + String::Handle(isolate, String::New("_completeDeferredLoads"));
|
| + const Function& function =
|
| + Function::Handle(isolate,
|
| + corelib.LookupFunctionAllowPrivate(function_name));
|
| + ASSERT(!function.IsNull());
|
| + const Array& args = Array::empty_array();
|
|
|
| - const Object& res =
|
| - Object::Handle(isolate, DartEntry::InvokeFunction(function, args));
|
| - if (res.IsError() || res.IsUnhandledException()) {
|
| - return Api::NewHandle(isolate, res.raw());
|
| + const Object& res =
|
| + Object::Handle(isolate, DartEntry::InvokeFunction(function, args));
|
| + if (res.IsError() || res.IsUnhandledException()) {
|
| + return Api::NewHandle(isolate, res.raw());
|
| + }
|
| }
|
| return Api::Success();
|
| }
|
|
|