| Index: runtime/bin/loader.cc
|
| diff --git a/runtime/bin/loader.cc b/runtime/bin/loader.cc
|
| index 92da2ed1743262e60557a05a4b104ead1a4307fb..fb5fad38763dfa96c4e3f16ea47be065b328f18d 100644
|
| --- a/runtime/bin/loader.cc
|
| +++ b/runtime/bin/loader.cc
|
| @@ -7,6 +7,7 @@
|
|
|
| #include "bin/builtin.h"
|
| #include "bin/dartutils.h"
|
| +#include "bin/dfe.h"
|
| #include "bin/extensions.h"
|
| #include "bin/file.h"
|
| #include "bin/lockers.h"
|
| @@ -19,6 +20,10 @@ namespace bin {
|
|
|
| // Development flag.
|
| static bool trace_loader = false;
|
| +#if !defined(DART_PRECOMPILED_RUNTIME)
|
| +extern DFE dfe;
|
| +#endif
|
| +
|
| // Keep in sync with loader.dart.
|
| static const intptr_t _Dart_kImportExtension = 9;
|
| static const intptr_t _Dart_kResolveAsFilePath = 10;
|
| @@ -638,6 +643,19 @@ Dart_Handle Loader::DartColonLibraryTagHandler(Dart_LibraryTag tag,
|
| Dart_Handle Loader::LibraryTagHandler(Dart_LibraryTag tag,
|
| Dart_Handle library,
|
| Dart_Handle url) {
|
| + if (dfe.UseDartFrontend()) {
|
| + Dart_Isolate current = Dart_CurrentIsolate();
|
| + if (!Dart_IsServiceIsolate(current) && !Dart_IsKernelIsolate(current)) {
|
| + // When using DFE the library tag handler should be called only when we
|
| + // are reloading scripts.
|
| + // TODO(asiva) We need to ensure that the kernel and service isolates
|
| + // and the spawnURI paths are always loaded from a kernel IR and do
|
| + // not use this path.
|
| + if (tag == Dart_kScriptTag) {
|
| + return dfe.ReloadScript(current, url);
|
| + }
|
| + }
|
| + }
|
| if (tag == Dart_kCanonicalizeUrl) {
|
| Dart_Handle library_url = Dart_LibraryUrl(library);
|
| if (Dart_IsError(library_url)) {
|
|
|