Chromium Code Reviews| Index: runtime/vm/dart_api_impl.cc |
| =================================================================== |
| --- runtime/vm/dart_api_impl.cc (revision 37402) |
| +++ runtime/vm/dart_api_impl.cc (working copy) |
| @@ -5106,6 +5106,33 @@ |
| } |
| +// Finalizes classes and invokes Dart core library function that completes |
| +// futures of loadLibrary calls (deferred library loading). |
| +DART_EXPORT Dart_Handle Dart_FinalizeLoading() { |
| + Isolate* isolate = Isolate::Current(); |
| + CHECK_ISOLATE_SCOPE(isolate); |
|
siva
2014/06/17 20:43:19
DARTSCOPE(isolate); so we get a new scope instead
hausner
2014/06/17 20:55:54
Done.
|
| + CHECK_CALLBACK_STATE(isolate); |
| + |
| + // Finalize all classes if needed. |
| + Dart_Handle state = Api::CheckIsolateState(isolate); |
| + if (::Dart_IsError(state)) { |
| + 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(); |
| + Dart_Handle res = |
| + Api::NewHandle(isolate, DartEntry::InvokeFunction(function, args)); |
|
siva
2014/06/17 20:43:19
_completeDeferredLoads does not seem to return any
hausner
2014/06/17 20:55:54
Done.
|
| + return res; |
| +} |
| + |
| + |
| DART_EXPORT Dart_Handle Dart_SetNativeResolver( |
| Dart_Handle library, |
| Dart_NativeEntryResolver resolver, |