Index: runtime/vm/object.cc |
=================================================================== |
--- runtime/vm/object.cc (revision 18894) |
+++ runtime/vm/object.cc (working copy) |
@@ -698,8 +698,10 @@ |
GrowableObjectArray::Handle(GrowableObjectArray::New(Heap::kOld)); |
object_store->set_libraries(libraries); |
- // Basic infrastructure has been setup, initialize the class dictionary. |
+ // Pre-register the core library. |
Library::InitCoreLibrary(isolate); |
+ |
+ // Basic infrastructure has been setup, initialize the class dictionary. |
Library& core_lib = Library::Handle(Library::CoreLibrary()); |
ASSERT(!core_lib.IsNull()); |
@@ -821,7 +823,20 @@ |
object_store->set_weak_property_class(cls); |
RegisterPrivateClass(cls, Symbols::_WeakProperty(), core_lib); |
+ // Setup some default native field classes which can be extended for |
+ // specifying native fields in dart classes. |
+ Library::InitNativeWrappersLibrary(isolate); |
+ ASSERT(isolate->object_store()->native_wrappers_library() != Library::null()); |
+ |
+ // Pre-register the remaining internal librarie. |
+ Library::InitAsyncLibrary(isolate); |
+ Library::InitCollectionLibrary(isolate); |
+ Library::InitCollectionDevLibrary(isolate); |
+ Library::InitMathLibrary(isolate); |
+ Library::InitIsolateLibrary(isolate); |
+ Library::InitMirrorsLibrary(isolate); |
Library::InitScalarlistLibrary(isolate); |
siva
2013/02/23 00:11:03
When we clean up the library init stuff some of th
Ivan Posva
2013/02/25 22:20:14
Already cleaned up.
|
+ |
Library& scalarlist_lib = Library::Handle(Library::ScalarlistLibrary()); |
cls = Class::New<Int8Array>(); |
@@ -993,11 +1008,6 @@ |
type = Type::NewNonParameterizedType(cls); |
object_store->set_dynamic_type(type); |
- // Setup some default native field classes which can be extended for |
- // specifying native fields in dart classes. |
- Library::InitNativeWrappersLibrary(isolate); |
- ASSERT(isolate->object_store()->native_wrappers_library() != Library::null()); |
- |
// Finish the initialization by compiling the bootstrap scripts containing the |
// base interfaces and the implementation of the internal classes. |
Error& error = Error::Handle(); |
@@ -1010,16 +1020,15 @@ |
if (!error.IsNull()) { |
return error.raw(); |
} |
- Library::InitASyncLibrary(isolate); |
const Script& async_script = |
- Script::Handle(Bootstrap::LoadASyncScript(false)); |
- const Library& async_lib = Library::Handle(Library::ASyncLibrary()); |
+ Script::Handle(Bootstrap::LoadAsyncScript(false)); |
+ const Library& async_lib = Library::Handle(Library::AsyncLibrary()); |
ASSERT(!async_lib.IsNull()); |
error = Bootstrap::Compile(async_lib, async_script); |
if (!error.IsNull()) { |
return error.raw(); |
} |
- patch_script = Bootstrap::LoadASyncScript(true); |
+ patch_script = Bootstrap::LoadAsyncScript(true); |
error = async_lib.Patch(patch_script); |
if (!error.IsNull()) { |
return error.raw(); |
@@ -1056,7 +1065,6 @@ |
} |
const Script& isolate_script = Script::Handle( |
Bootstrap::LoadIsolateScript(false)); |
- Library::InitIsolateLibrary(isolate); |
const Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); |
ASSERT(!isolate_lib.IsNull()); |
error = Bootstrap::Compile(isolate_lib, isolate_script); |
@@ -1070,7 +1078,6 @@ |
} |
const Script& mirrors_script = Script::Handle( |
Bootstrap::LoadMirrorsScript(false)); |
- Library::InitMirrorsLibrary(isolate); |
const Library& mirrors_lib = Library::Handle(Library::MirrorsLibrary()); |
ASSERT(!mirrors_lib.IsNull()); |
error = Bootstrap::Compile(mirrors_lib, mirrors_script); |
@@ -6340,7 +6347,7 @@ |
} |
-void Library::InitASyncLibrary(Isolate* isolate) { |
+void Library::InitAsyncLibrary(Isolate* isolate) { |
const String& url = Symbols::DartAsync(); |
const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
lib.Register(); |
@@ -6354,23 +6361,6 @@ |
Library::Handle(Library::NewLibraryHelper(core_lib_url, false)); |
core_lib.Register(); |
isolate->object_store()->set_core_library(core_lib); |
- Library::InitMathLibrary(isolate); |
- const Library& math_lib = Library::Handle(Library::MathLibrary()); |
- const Namespace& math_ns = Namespace::Handle( |
- Namespace::New(math_lib, Array::Handle(), Array::Handle())); |
- Library::InitCollectionDevLibrary(isolate); |
- const Library& collection_dev_lib = |
- Library::Handle(Library::CollectionDevLibrary()); |
- const Namespace& collection_dev_ns = Namespace::Handle( |
- Namespace::New(collection_dev_lib, Array::Handle(), Array::Handle())); |
- Library::InitCollectionLibrary(isolate); |
- const Library& collection_lib = |
- Library::Handle(Library::CollectionLibrary()); |
- const Namespace& collection_ns = Namespace::Handle( |
- Namespace::New(collection_lib, Array::Handle(), Array::Handle())); |
- core_lib.AddImport(math_ns); |
- core_lib.AddImport(collection_ns); |
- core_lib.AddImport(collection_dev_ns); |
isolate->object_store()->set_root_library(Library::Handle()); |
// Hook up predefined classes without setting their library pointers. These |
@@ -6385,15 +6375,6 @@ |
const String& url = Symbols::DartCollection(); |
const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
lib.Register(); |
- const Library& math_lib = Library::Handle(Library::MathLibrary()); |
- const Namespace& math_ns = Namespace::Handle( |
- Namespace::New(math_lib, Array::Handle(), Array::Handle())); |
- const Library& collection_dev_lib = |
- Library::Handle(Library::CollectionDevLibrary()); |
- const Namespace& collection_dev_ns = Namespace::Handle( |
- Namespace::New(collection_dev_lib, Array::Handle(), Array::Handle())); |
- lib.AddImport(math_ns); |
- lib.AddImport(collection_dev_ns); |
isolate->object_store()->set_collection_library(lib); |
} |
@@ -6410,10 +6391,6 @@ |
const String& url = Symbols::DartCrypto(); |
const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
lib.Register(); |
- const Library& math_lib = Library::Handle(Library::MathLibrary()); |
- const Namespace& math_ns = Namespace::Handle( |
- Namespace::New(math_lib, Array::Handle(), Array::Handle())); |
- lib.AddImport(math_ns); |
isolate->object_store()->set_crypto_library(lib); |
} |
@@ -6422,10 +6399,6 @@ |
const String& url = Symbols::DartIsolate(); |
const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
lib.Register(); |
- const Library& async_lib = Library::Handle(Library::ASyncLibrary()); |
- const Namespace& async_ns = Namespace::Handle( |
- Namespace::New(async_lib, Array::Handle(), Array::Handle())); |
- lib.AddImport(async_ns); |
isolate->object_store()->set_isolate_library(lib); |
} |
@@ -6450,16 +6423,8 @@ |
const String& url = Symbols::DartMirrors(); |
const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
lib.Register(); |
- const Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); |
- const Namespace& isolate_ns = Namespace::Handle( |
- Namespace::New(isolate_lib, Array::Handle(), Array::Handle())); |
- lib.AddImport(isolate_ns); |
- const Library& async_lib = Library::Handle(Library::ASyncLibrary()); |
- const Namespace& async_ns = Namespace::Handle( |
- Namespace::New(async_lib, Array::Handle(), Array::Handle())); |
- lib.AddImport(async_ns); |
const Library& wrappers_lib = |
- Library::Handle(Library::NativeWrappersLibrary()); |
+ Library::Handle(Library::NativeWrappersLibrary()); |
const Namespace& wrappers_ns = Namespace::Handle( |
Namespace::New(wrappers_lib, Array::Handle(), Array::Handle())); |
lib.AddImport(wrappers_ns); |
@@ -6496,11 +6461,6 @@ |
const String& url = Symbols::DartScalarlist(); |
const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
lib.Register(); |
- const Library& collection_lib = |
- Library::Handle(Library::CollectionLibrary()); |
- const Namespace& collection_ns = Namespace::Handle( |
- Namespace::New(collection_lib, Array::Handle(), Array::Handle())); |
- lib.AddImport(collection_ns); |
isolate->object_store()->set_scalarlist_library(lib); |
} |
@@ -6509,14 +6469,6 @@ |
const String& url = Symbols::DartUri(); |
const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
lib.Register(); |
- const Library& math_lib = Library::Handle(Library::MathLibrary()); |
- const Namespace& math_ns = Namespace::Handle( |
- Namespace::New(math_lib, Array::Handle(), Array::Handle())); |
- const Library& utf_lib = Library::Handle(Library::UtfLibrary()); |
- const Namespace& utf_ns = Namespace::Handle( |
- Namespace::New(utf_lib, Array::Handle(), Array::Handle())); |
- lib.AddImport(math_ns); |
- lib.AddImport(utf_ns); |
isolate->object_store()->set_uri_library(lib); |
} |
@@ -6525,10 +6477,6 @@ |
const String& url = Symbols::DartUtf(); |
const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
lib.Register(); |
- const Library& async_lib = Library::Handle(Library::ASyncLibrary()); |
- const Namespace& async_ns = Namespace::Handle( |
- Namespace::New(async_lib, Array::Handle(), Array::Handle())); |
- lib.AddImport(async_ns); |
isolate->object_store()->set_utf_library(lib); |
} |
@@ -6626,7 +6574,7 @@ |
} |
-RawLibrary* Library::ASyncLibrary() { |
+RawLibrary* Library::AsyncLibrary() { |
return Isolate::Current()->object_store()->async_library(); |
} |