Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/object.h" | 5 #include "vm/object.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
| 10 #include "vm/bigint_operations.h" | 10 #include "vm/bigint_operations.h" |
| (...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 691 object_store->set_two_byte_string_class(cls); | 691 object_store->set_two_byte_string_class(cls); |
| 692 | 692 |
| 693 // Setup the symbol table for the symbols created in the isolate. | 693 // Setup the symbol table for the symbols created in the isolate. |
| 694 Symbols::SetupSymbolTable(isolate); | 694 Symbols::SetupSymbolTable(isolate); |
| 695 | 695 |
| 696 // Set up the libraries array before initializing the core library. | 696 // Set up the libraries array before initializing the core library. |
| 697 const GrowableObjectArray& libraries = | 697 const GrowableObjectArray& libraries = |
| 698 GrowableObjectArray::Handle(GrowableObjectArray::New(Heap::kOld)); | 698 GrowableObjectArray::Handle(GrowableObjectArray::New(Heap::kOld)); |
| 699 object_store->set_libraries(libraries); | 699 object_store->set_libraries(libraries); |
| 700 | 700 |
| 701 // Pre-register the core library. | |
| 702 Library::InitCoreLibrary(isolate); | |
| 703 | |
| 701 // Basic infrastructure has been setup, initialize the class dictionary. | 704 // Basic infrastructure has been setup, initialize the class dictionary. |
| 702 Library::InitCoreLibrary(isolate); | |
| 703 Library& core_lib = Library::Handle(Library::CoreLibrary()); | 705 Library& core_lib = Library::Handle(Library::CoreLibrary()); |
| 704 ASSERT(!core_lib.IsNull()); | 706 ASSERT(!core_lib.IsNull()); |
| 705 | 707 |
| 706 const GrowableObjectArray& pending_classes = | 708 const GrowableObjectArray& pending_classes = |
| 707 GrowableObjectArray::Handle(GrowableObjectArray::New(Heap::kOld)); | 709 GrowableObjectArray::Handle(GrowableObjectArray::New(Heap::kOld)); |
| 708 object_store->set_pending_classes(pending_classes); | 710 object_store->set_pending_classes(pending_classes); |
| 709 | 711 |
| 710 Context& context = Context::Handle(Context::New(0, Heap::kOld)); | 712 Context& context = Context::Handle(Context::New(0, Heap::kOld)); |
| 711 object_store->set_empty_context(context); | 713 object_store->set_empty_context(context); |
| 712 | 714 |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 814 | 816 |
| 815 cls = Class::New<Double>(); | 817 cls = Class::New<Double>(); |
| 816 object_store->set_double_class(cls); | 818 object_store->set_double_class(cls); |
| 817 RegisterPrivateClass(cls, Symbols::_Double(), core_lib); | 819 RegisterPrivateClass(cls, Symbols::_Double(), core_lib); |
| 818 pending_classes.Add(cls, Heap::kOld); | 820 pending_classes.Add(cls, Heap::kOld); |
| 819 | 821 |
| 820 cls = Class::New<WeakProperty>(); | 822 cls = Class::New<WeakProperty>(); |
| 821 object_store->set_weak_property_class(cls); | 823 object_store->set_weak_property_class(cls); |
| 822 RegisterPrivateClass(cls, Symbols::_WeakProperty(), core_lib); | 824 RegisterPrivateClass(cls, Symbols::_WeakProperty(), core_lib); |
| 823 | 825 |
| 826 // Setup some default native field classes which can be extended for | |
| 827 // specifying native fields in dart classes. | |
| 828 Library::InitNativeWrappersLibrary(isolate); | |
| 829 ASSERT(isolate->object_store()->native_wrappers_library() != Library::null()); | |
| 830 | |
| 831 // Pre-register the remaining internal librarie. | |
| 832 Library::InitAsyncLibrary(isolate); | |
| 833 Library::InitCollectionLibrary(isolate); | |
| 834 Library::InitCollectionDevLibrary(isolate); | |
| 835 Library::InitMathLibrary(isolate); | |
| 836 Library::InitIsolateLibrary(isolate); | |
| 837 Library::InitMirrorsLibrary(isolate); | |
| 824 Library::InitScalarlistLibrary(isolate); | 838 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.
| |
| 839 | |
| 825 Library& scalarlist_lib = Library::Handle(Library::ScalarlistLibrary()); | 840 Library& scalarlist_lib = Library::Handle(Library::ScalarlistLibrary()); |
| 826 | 841 |
| 827 cls = Class::New<Int8Array>(); | 842 cls = Class::New<Int8Array>(); |
| 828 object_store->set_int8_array_class(cls); | 843 object_store->set_int8_array_class(cls); |
| 829 RegisterPrivateClass(cls, Symbols::_Int8Array(), scalarlist_lib); | 844 RegisterPrivateClass(cls, Symbols::_Int8Array(), scalarlist_lib); |
| 830 | 845 |
| 831 cls = Class::New<Uint8Array>(); | 846 cls = Class::New<Uint8Array>(); |
| 832 object_store->set_uint8_array_class(cls); | 847 object_store->set_uint8_array_class(cls); |
| 833 RegisterPrivateClass(cls, Symbols::_Uint8Array(), scalarlist_lib); | 848 RegisterPrivateClass(cls, Symbols::_Uint8Array(), scalarlist_lib); |
| 834 | 849 |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 986 object_store->set_void_type(type); | 1001 object_store->set_void_type(type); |
| 987 | 1002 |
| 988 // The class 'dynamic' is registered in the class dictionary because its name | 1003 // The class 'dynamic' is registered in the class dictionary because its name |
| 989 // is a built-in identifier, rather than a reserved keyword. Its name is not | 1004 // is a built-in identifier, rather than a reserved keyword. Its name is not |
| 990 // heap allocated, because the class resides in the VM isolate. | 1005 // heap allocated, because the class resides in the VM isolate. |
| 991 // The corresponding type, the "unknown type", is stored in the object store. | 1006 // The corresponding type, the "unknown type", is stored in the object store. |
| 992 cls = dynamic_class(); | 1007 cls = dynamic_class(); |
| 993 type = Type::NewNonParameterizedType(cls); | 1008 type = Type::NewNonParameterizedType(cls); |
| 994 object_store->set_dynamic_type(type); | 1009 object_store->set_dynamic_type(type); |
| 995 | 1010 |
| 996 // Setup some default native field classes which can be extended for | |
| 997 // specifying native fields in dart classes. | |
| 998 Library::InitNativeWrappersLibrary(isolate); | |
| 999 ASSERT(isolate->object_store()->native_wrappers_library() != Library::null()); | |
| 1000 | |
| 1001 // Finish the initialization by compiling the bootstrap scripts containing the | 1011 // Finish the initialization by compiling the bootstrap scripts containing the |
| 1002 // base interfaces and the implementation of the internal classes. | 1012 // base interfaces and the implementation of the internal classes. |
| 1003 Error& error = Error::Handle(); | 1013 Error& error = Error::Handle(); |
| 1004 error = Bootstrap::Compile(core_lib, script); | 1014 error = Bootstrap::Compile(core_lib, script); |
| 1005 if (!error.IsNull()) { | 1015 if (!error.IsNull()) { |
| 1006 return error.raw(); | 1016 return error.raw(); |
| 1007 } | 1017 } |
| 1008 Script& patch_script = Script::Handle(Bootstrap::LoadCoreScript(true)); | 1018 Script& patch_script = Script::Handle(Bootstrap::LoadCoreScript(true)); |
| 1009 error = core_lib.Patch(patch_script); | 1019 error = core_lib.Patch(patch_script); |
| 1010 if (!error.IsNull()) { | 1020 if (!error.IsNull()) { |
| 1011 return error.raw(); | 1021 return error.raw(); |
| 1012 } | 1022 } |
| 1013 Library::InitASyncLibrary(isolate); | |
| 1014 const Script& async_script = | 1023 const Script& async_script = |
| 1015 Script::Handle(Bootstrap::LoadASyncScript(false)); | 1024 Script::Handle(Bootstrap::LoadAsyncScript(false)); |
| 1016 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); | 1025 const Library& async_lib = Library::Handle(Library::AsyncLibrary()); |
| 1017 ASSERT(!async_lib.IsNull()); | 1026 ASSERT(!async_lib.IsNull()); |
| 1018 error = Bootstrap::Compile(async_lib, async_script); | 1027 error = Bootstrap::Compile(async_lib, async_script); |
| 1019 if (!error.IsNull()) { | 1028 if (!error.IsNull()) { |
| 1020 return error.raw(); | 1029 return error.raw(); |
| 1021 } | 1030 } |
| 1022 patch_script = Bootstrap::LoadASyncScript(true); | 1031 patch_script = Bootstrap::LoadAsyncScript(true); |
| 1023 error = async_lib.Patch(patch_script); | 1032 error = async_lib.Patch(patch_script); |
| 1024 if (!error.IsNull()) { | 1033 if (!error.IsNull()) { |
| 1025 return error.raw(); | 1034 return error.raw(); |
| 1026 } | 1035 } |
| 1027 const Script& collection_script = | 1036 const Script& collection_script = |
| 1028 Script::Handle(Bootstrap::LoadCollectionScript(false)); | 1037 Script::Handle(Bootstrap::LoadCollectionScript(false)); |
| 1029 const Library& collection_lib = | 1038 const Library& collection_lib = |
| 1030 Library::Handle(Library::CollectionLibrary()); | 1039 Library::Handle(Library::CollectionLibrary()); |
| 1031 ASSERT(!collection_lib.IsNull()); | 1040 ASSERT(!collection_lib.IsNull()); |
| 1032 error = Bootstrap::Compile(collection_lib, collection_script); | 1041 error = Bootstrap::Compile(collection_lib, collection_script); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 1049 if (!error.IsNull()) { | 1058 if (!error.IsNull()) { |
| 1050 return error.raw(); | 1059 return error.raw(); |
| 1051 } | 1060 } |
| 1052 patch_script = Bootstrap::LoadMathScript(true); | 1061 patch_script = Bootstrap::LoadMathScript(true); |
| 1053 error = math_lib.Patch(patch_script); | 1062 error = math_lib.Patch(patch_script); |
| 1054 if (!error.IsNull()) { | 1063 if (!error.IsNull()) { |
| 1055 return error.raw(); | 1064 return error.raw(); |
| 1056 } | 1065 } |
| 1057 const Script& isolate_script = Script::Handle( | 1066 const Script& isolate_script = Script::Handle( |
| 1058 Bootstrap::LoadIsolateScript(false)); | 1067 Bootstrap::LoadIsolateScript(false)); |
| 1059 Library::InitIsolateLibrary(isolate); | |
| 1060 const Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); | 1068 const Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); |
| 1061 ASSERT(!isolate_lib.IsNull()); | 1069 ASSERT(!isolate_lib.IsNull()); |
| 1062 error = Bootstrap::Compile(isolate_lib, isolate_script); | 1070 error = Bootstrap::Compile(isolate_lib, isolate_script); |
| 1063 if (!error.IsNull()) { | 1071 if (!error.IsNull()) { |
| 1064 return error.raw(); | 1072 return error.raw(); |
| 1065 } | 1073 } |
| 1066 patch_script = Bootstrap::LoadIsolateScript(true); | 1074 patch_script = Bootstrap::LoadIsolateScript(true); |
| 1067 error = isolate_lib.Patch(patch_script); | 1075 error = isolate_lib.Patch(patch_script); |
| 1068 if (!error.IsNull()) { | 1076 if (!error.IsNull()) { |
| 1069 return error.raw(); | 1077 return error.raw(); |
| 1070 } | 1078 } |
| 1071 const Script& mirrors_script = Script::Handle( | 1079 const Script& mirrors_script = Script::Handle( |
| 1072 Bootstrap::LoadMirrorsScript(false)); | 1080 Bootstrap::LoadMirrorsScript(false)); |
| 1073 Library::InitMirrorsLibrary(isolate); | |
| 1074 const Library& mirrors_lib = Library::Handle(Library::MirrorsLibrary()); | 1081 const Library& mirrors_lib = Library::Handle(Library::MirrorsLibrary()); |
| 1075 ASSERT(!mirrors_lib.IsNull()); | 1082 ASSERT(!mirrors_lib.IsNull()); |
| 1076 error = Bootstrap::Compile(mirrors_lib, mirrors_script); | 1083 error = Bootstrap::Compile(mirrors_lib, mirrors_script); |
| 1077 if (!error.IsNull()) { | 1084 if (!error.IsNull()) { |
| 1078 return error.raw(); | 1085 return error.raw(); |
| 1079 } | 1086 } |
| 1080 patch_script = Bootstrap::LoadMirrorsScript(true); | 1087 patch_script = Bootstrap::LoadMirrorsScript(true); |
| 1081 error = mirrors_lib.Patch(patch_script); | 1088 error = mirrors_lib.Patch(patch_script); |
| 1082 if (!error.IsNull()) { | 1089 if (!error.IsNull()) { |
| 1083 return error.raw(); | 1090 return error.raw(); |
| (...skipping 5249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6333 } | 6340 } |
| 6334 return result.raw(); | 6341 return result.raw(); |
| 6335 } | 6342 } |
| 6336 | 6343 |
| 6337 | 6344 |
| 6338 RawLibrary* Library::New(const String& url) { | 6345 RawLibrary* Library::New(const String& url) { |
| 6339 return NewLibraryHelper(url, false); | 6346 return NewLibraryHelper(url, false); |
| 6340 } | 6347 } |
| 6341 | 6348 |
| 6342 | 6349 |
| 6343 void Library::InitASyncLibrary(Isolate* isolate) { | 6350 void Library::InitAsyncLibrary(Isolate* isolate) { |
| 6344 const String& url = Symbols::DartAsync(); | 6351 const String& url = Symbols::DartAsync(); |
| 6345 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6352 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6346 lib.Register(); | 6353 lib.Register(); |
| 6347 isolate->object_store()->set_async_library(lib); | 6354 isolate->object_store()->set_async_library(lib); |
| 6348 } | 6355 } |
| 6349 | 6356 |
| 6350 | 6357 |
| 6351 void Library::InitCoreLibrary(Isolate* isolate) { | 6358 void Library::InitCoreLibrary(Isolate* isolate) { |
| 6352 const String& core_lib_url = Symbols::DartCore(); | 6359 const String& core_lib_url = Symbols::DartCore(); |
| 6353 const Library& core_lib = | 6360 const Library& core_lib = |
| 6354 Library::Handle(Library::NewLibraryHelper(core_lib_url, false)); | 6361 Library::Handle(Library::NewLibraryHelper(core_lib_url, false)); |
| 6355 core_lib.Register(); | 6362 core_lib.Register(); |
| 6356 isolate->object_store()->set_core_library(core_lib); | 6363 isolate->object_store()->set_core_library(core_lib); |
| 6357 Library::InitMathLibrary(isolate); | |
| 6358 const Library& math_lib = Library::Handle(Library::MathLibrary()); | |
| 6359 const Namespace& math_ns = Namespace::Handle( | |
| 6360 Namespace::New(math_lib, Array::Handle(), Array::Handle())); | |
| 6361 Library::InitCollectionDevLibrary(isolate); | |
| 6362 const Library& collection_dev_lib = | |
| 6363 Library::Handle(Library::CollectionDevLibrary()); | |
| 6364 const Namespace& collection_dev_ns = Namespace::Handle( | |
| 6365 Namespace::New(collection_dev_lib, Array::Handle(), Array::Handle())); | |
| 6366 Library::InitCollectionLibrary(isolate); | |
| 6367 const Library& collection_lib = | |
| 6368 Library::Handle(Library::CollectionLibrary()); | |
| 6369 const Namespace& collection_ns = Namespace::Handle( | |
| 6370 Namespace::New(collection_lib, Array::Handle(), Array::Handle())); | |
| 6371 core_lib.AddImport(math_ns); | |
| 6372 core_lib.AddImport(collection_ns); | |
| 6373 core_lib.AddImport(collection_dev_ns); | |
| 6374 isolate->object_store()->set_root_library(Library::Handle()); | 6364 isolate->object_store()->set_root_library(Library::Handle()); |
| 6375 | 6365 |
| 6376 // Hook up predefined classes without setting their library pointers. These | 6366 // Hook up predefined classes without setting their library pointers. These |
| 6377 // classes are coming from the VM isolate, and are shared between multiple | 6367 // classes are coming from the VM isolate, and are shared between multiple |
| 6378 // isolates so setting their library pointers would be wrong. | 6368 // isolates so setting their library pointers would be wrong. |
| 6379 const Class& cls = Class::Handle(Object::dynamic_class()); | 6369 const Class& cls = Class::Handle(Object::dynamic_class()); |
| 6380 core_lib.AddObject(cls, String::Handle(cls.Name())); | 6370 core_lib.AddObject(cls, String::Handle(cls.Name())); |
| 6381 } | 6371 } |
| 6382 | 6372 |
| 6383 | 6373 |
| 6384 void Library::InitCollectionLibrary(Isolate* isolate) { | 6374 void Library::InitCollectionLibrary(Isolate* isolate) { |
| 6385 const String& url = Symbols::DartCollection(); | 6375 const String& url = Symbols::DartCollection(); |
| 6386 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6376 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6387 lib.Register(); | 6377 lib.Register(); |
| 6388 const Library& math_lib = Library::Handle(Library::MathLibrary()); | |
| 6389 const Namespace& math_ns = Namespace::Handle( | |
| 6390 Namespace::New(math_lib, Array::Handle(), Array::Handle())); | |
| 6391 const Library& collection_dev_lib = | |
| 6392 Library::Handle(Library::CollectionDevLibrary()); | |
| 6393 const Namespace& collection_dev_ns = Namespace::Handle( | |
| 6394 Namespace::New(collection_dev_lib, Array::Handle(), Array::Handle())); | |
| 6395 lib.AddImport(math_ns); | |
| 6396 lib.AddImport(collection_dev_ns); | |
| 6397 isolate->object_store()->set_collection_library(lib); | 6378 isolate->object_store()->set_collection_library(lib); |
| 6398 } | 6379 } |
| 6399 | 6380 |
| 6400 | 6381 |
| 6401 void Library::InitCollectionDevLibrary(Isolate* isolate) { | 6382 void Library::InitCollectionDevLibrary(Isolate* isolate) { |
| 6402 const String& url = Symbols::DartCollectionDev(); | 6383 const String& url = Symbols::DartCollectionDev(); |
| 6403 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6384 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6404 lib.Register(); | 6385 lib.Register(); |
| 6405 isolate->object_store()->set_collection_dev_library(lib); | 6386 isolate->object_store()->set_collection_dev_library(lib); |
| 6406 } | 6387 } |
| 6407 | 6388 |
| 6408 | 6389 |
| 6409 void Library::InitCryptoLibrary(Isolate* isolate) { | 6390 void Library::InitCryptoLibrary(Isolate* isolate) { |
| 6410 const String& url = Symbols::DartCrypto(); | 6391 const String& url = Symbols::DartCrypto(); |
| 6411 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6392 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6412 lib.Register(); | 6393 lib.Register(); |
| 6413 const Library& math_lib = Library::Handle(Library::MathLibrary()); | |
| 6414 const Namespace& math_ns = Namespace::Handle( | |
| 6415 Namespace::New(math_lib, Array::Handle(), Array::Handle())); | |
| 6416 lib.AddImport(math_ns); | |
| 6417 isolate->object_store()->set_crypto_library(lib); | 6394 isolate->object_store()->set_crypto_library(lib); |
| 6418 } | 6395 } |
| 6419 | 6396 |
| 6420 | 6397 |
| 6421 void Library::InitIsolateLibrary(Isolate* isolate) { | 6398 void Library::InitIsolateLibrary(Isolate* isolate) { |
| 6422 const String& url = Symbols::DartIsolate(); | 6399 const String& url = Symbols::DartIsolate(); |
| 6423 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6400 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6424 lib.Register(); | 6401 lib.Register(); |
| 6425 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); | |
| 6426 const Namespace& async_ns = Namespace::Handle( | |
| 6427 Namespace::New(async_lib, Array::Handle(), Array::Handle())); | |
| 6428 lib.AddImport(async_ns); | |
| 6429 isolate->object_store()->set_isolate_library(lib); | 6402 isolate->object_store()->set_isolate_library(lib); |
| 6430 } | 6403 } |
| 6431 | 6404 |
| 6432 | 6405 |
| 6433 void Library::InitJsonLibrary(Isolate* isolate) { | 6406 void Library::InitJsonLibrary(Isolate* isolate) { |
| 6434 const String& url = Symbols::DartJson(); | 6407 const String& url = Symbols::DartJson(); |
| 6435 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6408 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6436 lib.Register(); | 6409 lib.Register(); |
| 6437 isolate->object_store()->set_json_library(lib); | 6410 isolate->object_store()->set_json_library(lib); |
| 6438 } | 6411 } |
| 6439 | 6412 |
| 6440 | 6413 |
| 6441 void Library::InitMathLibrary(Isolate* isolate) { | 6414 void Library::InitMathLibrary(Isolate* isolate) { |
| 6442 const String& url = Symbols::DartMath(); | 6415 const String& url = Symbols::DartMath(); |
| 6443 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6416 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6444 lib.Register(); | 6417 lib.Register(); |
| 6445 isolate->object_store()->set_math_library(lib); | 6418 isolate->object_store()->set_math_library(lib); |
| 6446 } | 6419 } |
| 6447 | 6420 |
| 6448 | 6421 |
| 6449 void Library::InitMirrorsLibrary(Isolate* isolate) { | 6422 void Library::InitMirrorsLibrary(Isolate* isolate) { |
| 6450 const String& url = Symbols::DartMirrors(); | 6423 const String& url = Symbols::DartMirrors(); |
| 6451 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6424 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6452 lib.Register(); | 6425 lib.Register(); |
| 6453 const Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); | |
| 6454 const Namespace& isolate_ns = Namespace::Handle( | |
| 6455 Namespace::New(isolate_lib, Array::Handle(), Array::Handle())); | |
| 6456 lib.AddImport(isolate_ns); | |
| 6457 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); | |
| 6458 const Namespace& async_ns = Namespace::Handle( | |
| 6459 Namespace::New(async_lib, Array::Handle(), Array::Handle())); | |
| 6460 lib.AddImport(async_ns); | |
| 6461 const Library& wrappers_lib = | 6426 const Library& wrappers_lib = |
| 6462 Library::Handle(Library::NativeWrappersLibrary()); | 6427 Library::Handle(Library::NativeWrappersLibrary()); |
| 6463 const Namespace& wrappers_ns = Namespace::Handle( | 6428 const Namespace& wrappers_ns = Namespace::Handle( |
| 6464 Namespace::New(wrappers_lib, Array::Handle(), Array::Handle())); | 6429 Namespace::New(wrappers_lib, Array::Handle(), Array::Handle())); |
| 6465 lib.AddImport(wrappers_ns); | 6430 lib.AddImport(wrappers_ns); |
| 6466 isolate->object_store()->set_mirrors_library(lib); | 6431 isolate->object_store()->set_mirrors_library(lib); |
| 6467 } | 6432 } |
| 6468 | 6433 |
| 6469 | 6434 |
| 6470 void Library::InitNativeWrappersLibrary(Isolate* isolate) { | 6435 void Library::InitNativeWrappersLibrary(Isolate* isolate) { |
| 6471 static const int kNumNativeWrappersClasses = 4; | 6436 static const int kNumNativeWrappersClasses = 4; |
| 6472 ASSERT(kNumNativeWrappersClasses > 0 && kNumNativeWrappersClasses < 10); | 6437 ASSERT(kNumNativeWrappersClasses > 0 && kNumNativeWrappersClasses < 10); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 6489 cls_name = Symbols::New(name_buffer); | 6454 cls_name = Symbols::New(name_buffer); |
| 6490 Class::NewNativeWrapper(native_flds_lib, cls_name, fld_cnt); | 6455 Class::NewNativeWrapper(native_flds_lib, cls_name, fld_cnt); |
| 6491 } | 6456 } |
| 6492 } | 6457 } |
| 6493 | 6458 |
| 6494 | 6459 |
| 6495 void Library::InitScalarlistLibrary(Isolate* isolate) { | 6460 void Library::InitScalarlistLibrary(Isolate* isolate) { |
| 6496 const String& url = Symbols::DartScalarlist(); | 6461 const String& url = Symbols::DartScalarlist(); |
| 6497 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6462 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6498 lib.Register(); | 6463 lib.Register(); |
| 6499 const Library& collection_lib = | |
| 6500 Library::Handle(Library::CollectionLibrary()); | |
| 6501 const Namespace& collection_ns = Namespace::Handle( | |
| 6502 Namespace::New(collection_lib, Array::Handle(), Array::Handle())); | |
| 6503 lib.AddImport(collection_ns); | |
| 6504 isolate->object_store()->set_scalarlist_library(lib); | 6464 isolate->object_store()->set_scalarlist_library(lib); |
| 6505 } | 6465 } |
| 6506 | 6466 |
| 6507 | 6467 |
| 6508 void Library::InitUriLibrary(Isolate* isolate) { | 6468 void Library::InitUriLibrary(Isolate* isolate) { |
| 6509 const String& url = Symbols::DartUri(); | 6469 const String& url = Symbols::DartUri(); |
| 6510 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6470 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6511 lib.Register(); | 6471 lib.Register(); |
| 6512 const Library& math_lib = Library::Handle(Library::MathLibrary()); | |
| 6513 const Namespace& math_ns = Namespace::Handle( | |
| 6514 Namespace::New(math_lib, Array::Handle(), Array::Handle())); | |
| 6515 const Library& utf_lib = Library::Handle(Library::UtfLibrary()); | |
| 6516 const Namespace& utf_ns = Namespace::Handle( | |
| 6517 Namespace::New(utf_lib, Array::Handle(), Array::Handle())); | |
| 6518 lib.AddImport(math_ns); | |
| 6519 lib.AddImport(utf_ns); | |
| 6520 isolate->object_store()->set_uri_library(lib); | 6472 isolate->object_store()->set_uri_library(lib); |
| 6521 } | 6473 } |
| 6522 | 6474 |
| 6523 | 6475 |
| 6524 void Library::InitUtfLibrary(Isolate* isolate) { | 6476 void Library::InitUtfLibrary(Isolate* isolate) { |
| 6525 const String& url = Symbols::DartUtf(); | 6477 const String& url = Symbols::DartUtf(); |
| 6526 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6478 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6527 lib.Register(); | 6479 lib.Register(); |
| 6528 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); | |
| 6529 const Namespace& async_ns = Namespace::Handle( | |
| 6530 Namespace::New(async_lib, Array::Handle(), Array::Handle())); | |
| 6531 lib.AddImport(async_ns); | |
| 6532 isolate->object_store()->set_utf_library(lib); | 6480 isolate->object_store()->set_utf_library(lib); |
| 6533 } | 6481 } |
| 6534 | 6482 |
| 6535 | 6483 |
| 6536 RawLibrary* Library::LookupLibrary(const String &url) { | 6484 RawLibrary* Library::LookupLibrary(const String &url) { |
| 6537 Isolate* isolate = Isolate::Current(); | 6485 Isolate* isolate = Isolate::Current(); |
| 6538 Library& lib = Library::Handle(isolate, Library::null()); | 6486 Library& lib = Library::Handle(isolate, Library::null()); |
| 6539 String& lib_url = String::Handle(isolate, String::null()); | 6487 String& lib_url = String::Handle(isolate, String::null()); |
| 6540 GrowableObjectArray& libs = GrowableObjectArray::Handle( | 6488 GrowableObjectArray& libs = GrowableObjectArray::Handle( |
| 6541 isolate, isolate->object_store()->libraries()); | 6489 isolate, isolate->object_store()->libraries()); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6619 ASSERT(Library::LookupLibrary(String::Handle(url())) == Library::null()); | 6567 ASSERT(Library::LookupLibrary(String::Handle(url())) == Library::null()); |
| 6620 ObjectStore* object_store = Isolate::Current()->object_store(); | 6568 ObjectStore* object_store = Isolate::Current()->object_store(); |
| 6621 GrowableObjectArray& libs = | 6569 GrowableObjectArray& libs = |
| 6622 GrowableObjectArray::Handle(object_store->libraries()); | 6570 GrowableObjectArray::Handle(object_store->libraries()); |
| 6623 ASSERT(!libs.IsNull()); | 6571 ASSERT(!libs.IsNull()); |
| 6624 set_index(libs.Length()); | 6572 set_index(libs.Length()); |
| 6625 libs.Add(*this); | 6573 libs.Add(*this); |
| 6626 } | 6574 } |
| 6627 | 6575 |
| 6628 | 6576 |
| 6629 RawLibrary* Library::ASyncLibrary() { | 6577 RawLibrary* Library::AsyncLibrary() { |
| 6630 return Isolate::Current()->object_store()->async_library(); | 6578 return Isolate::Current()->object_store()->async_library(); |
| 6631 } | 6579 } |
| 6632 | 6580 |
| 6633 | 6581 |
| 6634 RawLibrary* Library::CoreLibrary() { | 6582 RawLibrary* Library::CoreLibrary() { |
| 6635 return Isolate::Current()->object_store()->core_library(); | 6583 return Isolate::Current()->object_store()->core_library(); |
| 6636 } | 6584 } |
| 6637 | 6585 |
| 6638 | 6586 |
| 6639 RawLibrary* Library::CollectionLibrary() { | 6587 RawLibrary* Library::CollectionLibrary() { |
| (...skipping 6352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 12992 } | 12940 } |
| 12993 return result.raw(); | 12941 return result.raw(); |
| 12994 } | 12942 } |
| 12995 | 12943 |
| 12996 | 12944 |
| 12997 const char* WeakProperty::ToCString() const { | 12945 const char* WeakProperty::ToCString() const { |
| 12998 return "_WeakProperty"; | 12946 return "_WeakProperty"; |
| 12999 } | 12947 } |
| 13000 | 12948 |
| 13001 } // namespace dart | 12949 } // namespace dart |
| OLD | NEW |