Index: runtime/bin/builtin.cc |
diff --git a/runtime/bin/builtin.cc b/runtime/bin/builtin.cc |
index 272976fed9b2d105baa7e24e4c6f28819c6b7e10..62c79983447a3b984a66c5219c1a9965e240b605 100644 |
--- a/runtime/bin/builtin.cc |
+++ b/runtime/bin/builtin.cc |
@@ -18,6 +18,24 @@ Builtin::builtin_lib_props Builtin::builtin_libraries_[] = { |
{ DartUtils::kBuiltinLibURL, _builtin_source_paths_, NULL, NULL, true }, |
{ DartUtils::kIOLibURL, io_source_paths_, |
DartUtils::kIOLibPatchURL, io_patch_paths_, true }, |
+ |
+#if defined(DART_NO_SNAPSHOT) |
+ // Only include these libraries in the dart_bootstrap case for now. |
+ { "dart:html", html_source_paths_, NULL, NULL, true }, |
+ { "dart:html_common", html_common_source_paths_, NULL, NULL, true}, |
+ { "dart:js", js_source_paths_, NULL, NULL, true}, |
+ { "dart:_blink", blink_source_paths_, NULL, NULL, true }, |
+ { "dart:indexed_db", indexeddb_source_paths_, NULL, NULL, true }, |
+ { "cached_patches.dart", cached_patches_source_paths_, NULL, NULL, true }, |
+ { "dart:web_gl", web_gl_source_paths_, NULL, NULL, true }, |
+ { "metadata.dart", metadata_source_paths_, NULL, NULL, true }, |
+ { "dart:web_sql", websql_source_paths_, NULL, NULL, true }, |
+ { "dart:svg", svg_source_paths_, NULL, NULL, true }, |
+ { "dart:web_audio", webaudio_source_paths_, NULL, NULL, true }, |
+#endif // defined(DART_NO_SNAPSHOT) |
+ |
+ // End marker. |
+ { NULL, NULL, NULL, NULL, false } |
}; |
Dart_Port Builtin::load_port_ = ILLEGAL_PORT; |
@@ -49,7 +67,7 @@ static void LoadPatchFiles(Dart_Handle library, |
Dart_Handle Builtin::Source(BuiltinLibraryId id) { |
ASSERT((sizeof(builtin_libraries_) / sizeof(builtin_lib_props)) == |
- kInvalidLibrary); |
+ kInvalidLibrary + 1); |
ASSERT(id >= kBuiltinLibrary && id < kInvalidLibrary); |
// Try to read the source using the path specified for the uri. |
@@ -61,7 +79,7 @@ Dart_Handle Builtin::Source(BuiltinLibraryId id) { |
Dart_Handle Builtin::PartSource(BuiltinLibraryId id, const char* part_uri) { |
ASSERT((sizeof(builtin_libraries_) / sizeof(builtin_lib_props)) == |
- kInvalidLibrary); |
+ kInvalidLibrary + 1); |
ASSERT(id >= kBuiltinLibrary && id < kInvalidLibrary); |
// Try to read the source using the path specified for the uri. |
@@ -97,6 +115,9 @@ void Builtin::SetNativeResolver(BuiltinLibraryId id) { |
Dart_Handle Builtin::LoadLibrary(Dart_Handle url, BuiltinLibraryId id) { |
+ ASSERT(static_cast<int>(id) >= 0); |
+ ASSERT(static_cast<int>(id) < kInvalidLibrary); |
+ |
Dart_Handle library = Dart_LoadLibrary(url, Source(id), 0, 0); |
if (!Dart_IsError(library) && (builtin_libraries_[id].has_natives_)) { |
// Setup the native resolver for built in library functions. |
@@ -113,9 +134,23 @@ Dart_Handle Builtin::LoadLibrary(Dart_Handle url, BuiltinLibraryId id) { |
} |
+Builtin::BuiltinLibraryId Builtin::FindId(const char* url_string) { |
+ int id = 0; |
+ while (true) { |
+ if (builtin_libraries_[id].url_ == NULL) { |
+ return kInvalidLibrary; |
+ } |
+ if (strcmp(url_string, builtin_libraries_[id].url_) == 0) { |
+ return static_cast<BuiltinLibraryId>(id); |
+ } |
+ id++; |
+ } |
+} |
+ |
+ |
Dart_Handle Builtin::LoadAndCheckLibrary(BuiltinLibraryId id) { |
ASSERT((sizeof(builtin_libraries_) / sizeof(builtin_lib_props)) == |
- kInvalidLibrary); |
+ kInvalidLibrary + 1); |
ASSERT(id >= kBuiltinLibrary && id < kInvalidLibrary); |
Dart_Handle url = DartUtils::NewString(builtin_libraries_[id].url_); |
Dart_Handle library = Dart_LookupLibrary(url); |