| Index: runtime/bin/main.cc
|
| diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
|
| index 09040450188a265484e71e16e96a86bf078a87e9..b814bcb71fca65571cd37f371cf7f6ada28fcfa8 100644
|
| --- a/runtime/bin/main.cc
|
| +++ b/runtime/bin/main.cc
|
| @@ -12,6 +12,7 @@
|
| #include "bin/builtin.h"
|
| #include "bin/dartutils.h"
|
| #include "bin/eventhandler.h"
|
| +#include "bin/extensions.h"
|
| #include "bin/file.h"
|
| #include "bin/platform.h"
|
| #include "bin/process.h"
|
| @@ -257,10 +258,11 @@ static Dart_Handle LibraryTagHandler(Dart_LibraryTag tag,
|
| return Dart_Error("accessing url characters failed");
|
| }
|
| bool is_dart_scheme_url = DartUtils::IsDartSchemeURL(url_string);
|
| + bool is_dart_extension_url = DartUtils::IsDartExtensionSchemeURL(url_string);
|
| if (tag == kCanonicalizeUrl) {
|
| // If this is a Dart Scheme URL then it is not modified as it will be
|
| // handled by the VM internally.
|
| - if (is_dart_scheme_url) {
|
| + if (is_dart_scheme_url || is_dart_extension_url) {
|
| return url;
|
| }
|
| // Create a canonical path based on the including library and current url.
|
| @@ -280,6 +282,11 @@ static Dart_Handle LibraryTagHandler(Dart_LibraryTag tag,
|
| } else {
|
| return Dart_Error("Do not know how to load '%s'", url_string);
|
| }
|
| + } else if (is_dart_extension_url) {
|
| + if (tag != kImportTag) {
|
| + return Dart_Error("Dart extensions must use import: '%s'", url_string);
|
| + }
|
| + return Extensions::LoadExtension(url_string, library);
|
| }
|
| result = DartUtils::LoadSource(NULL,
|
| library,
|
|
|