| 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 6198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6209 return result.raw(); | 6209 return result.raw(); |
| 6210 } | 6210 } |
| 6211 | 6211 |
| 6212 | 6212 |
| 6213 RawLibrary* Library::New(const String& url) { | 6213 RawLibrary* Library::New(const String& url) { |
| 6214 return NewLibraryHelper(url, false); | 6214 return NewLibraryHelper(url, false); |
| 6215 } | 6215 } |
| 6216 | 6216 |
| 6217 | 6217 |
| 6218 void Library::InitASyncLibrary(Isolate* isolate) { | 6218 void Library::InitASyncLibrary(Isolate* isolate) { |
| 6219 const String& url = String::Handle(Symbols::New("dart:async")); | 6219 const String& url = Symbols::DartAsync(); |
| 6220 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6220 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6221 lib.Register(); | 6221 lib.Register(); |
| 6222 isolate->object_store()->set_async_library(lib); | 6222 isolate->object_store()->set_async_library(lib); |
| 6223 } | 6223 } |
| 6224 | 6224 |
| 6225 | 6225 |
| 6226 void Library::InitCoreLibrary(Isolate* isolate) { | 6226 void Library::InitCoreLibrary(Isolate* isolate) { |
| 6227 const String& core_lib_url = String::Handle(Symbols::New("dart:core")); | 6227 const String& core_lib_url = Symbols::DartCore(); |
| 6228 const Library& core_lib = | 6228 const Library& core_lib = |
| 6229 Library::Handle(Library::NewLibraryHelper(core_lib_url, false)); | 6229 Library::Handle(Library::NewLibraryHelper(core_lib_url, false)); |
| 6230 core_lib.Register(); | 6230 core_lib.Register(); |
| 6231 isolate->object_store()->set_core_library(core_lib); | 6231 isolate->object_store()->set_core_library(core_lib); |
| 6232 Library::InitMathLibrary(isolate); | 6232 Library::InitMathLibrary(isolate); |
| 6233 const Library& math_lib = Library::Handle(Library::MathLibrary()); | 6233 const Library& math_lib = Library::Handle(Library::MathLibrary()); |
| 6234 const Namespace& math_ns = Namespace::Handle( | 6234 const Namespace& math_ns = Namespace::Handle( |
| 6235 Namespace::New(math_lib, Array::Handle(), Array::Handle())); | 6235 Namespace::New(math_lib, Array::Handle(), Array::Handle())); |
| 6236 Library::InitCollectionDevLibrary(isolate); | 6236 Library::InitCollectionDevLibrary(isolate); |
| 6237 const Library& collection_dev_lib = | 6237 const Library& collection_dev_lib = |
| (...skipping 12 matching lines...) Expand all Loading... |
| 6250 | 6250 |
| 6251 // Hook up predefined classes without setting their library pointers. These | 6251 // Hook up predefined classes without setting their library pointers. These |
| 6252 // classes are coming from the VM isolate, and are shared between multiple | 6252 // classes are coming from the VM isolate, and are shared between multiple |
| 6253 // isolates so setting their library pointers would be wrong. | 6253 // isolates so setting their library pointers would be wrong. |
| 6254 const Class& cls = Class::Handle(Object::dynamic_class()); | 6254 const Class& cls = Class::Handle(Object::dynamic_class()); |
| 6255 core_lib.AddObject(cls, String::Handle(cls.Name())); | 6255 core_lib.AddObject(cls, String::Handle(cls.Name())); |
| 6256 } | 6256 } |
| 6257 | 6257 |
| 6258 | 6258 |
| 6259 void Library::InitCollectionLibrary(Isolate* isolate) { | 6259 void Library::InitCollectionLibrary(Isolate* isolate) { |
| 6260 const String& url = String::Handle(Symbols::New("dart:collection")); | 6260 const String& url = Symbols::DartCollection(); |
| 6261 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6261 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6262 lib.Register(); | 6262 lib.Register(); |
| 6263 const Library& math_lib = Library::Handle(Library::MathLibrary()); | 6263 const Library& math_lib = Library::Handle(Library::MathLibrary()); |
| 6264 const Namespace& math_ns = Namespace::Handle( | 6264 const Namespace& math_ns = Namespace::Handle( |
| 6265 Namespace::New(math_lib, Array::Handle(), Array::Handle())); | 6265 Namespace::New(math_lib, Array::Handle(), Array::Handle())); |
| 6266 const Library& collection_dev_lib = | 6266 const Library& collection_dev_lib = |
| 6267 Library::Handle(Library::CollectionDevLibrary()); | 6267 Library::Handle(Library::CollectionDevLibrary()); |
| 6268 const Namespace& collection_dev_ns = Namespace::Handle( | 6268 const Namespace& collection_dev_ns = Namespace::Handle( |
| 6269 Namespace::New(collection_dev_lib, Array::Handle(), Array::Handle())); | 6269 Namespace::New(collection_dev_lib, Array::Handle(), Array::Handle())); |
| 6270 lib.AddImport(math_ns); | 6270 lib.AddImport(math_ns); |
| 6271 lib.AddImport(collection_dev_ns); | 6271 lib.AddImport(collection_dev_ns); |
| 6272 isolate->object_store()->set_collection_library(lib); | 6272 isolate->object_store()->set_collection_library(lib); |
| 6273 } | 6273 } |
| 6274 | 6274 |
| 6275 | 6275 |
| 6276 void Library::InitCollectionDevLibrary(Isolate* isolate) { | 6276 void Library::InitCollectionDevLibrary(Isolate* isolate) { |
| 6277 const String& url = String::Handle(Symbols::New("dart:collection-dev")); | 6277 const String& url = Symbols::DartCollectionDev(); |
| 6278 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6278 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6279 lib.Register(); | 6279 lib.Register(); |
| 6280 isolate->object_store()->set_collection_dev_library(lib); | 6280 isolate->object_store()->set_collection_dev_library(lib); |
| 6281 } | 6281 } |
| 6282 | 6282 |
| 6283 | 6283 |
| 6284 void Library::InitMathLibrary(Isolate* isolate) { | 6284 void Library::InitMathLibrary(Isolate* isolate) { |
| 6285 const String& url = String::Handle(Symbols::New("dart:math")); | 6285 const String& url = Symbols::DartMath(); |
| 6286 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6286 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6287 lib.Register(); | 6287 lib.Register(); |
| 6288 isolate->object_store()->set_math_library(lib); | 6288 isolate->object_store()->set_math_library(lib); |
| 6289 } | 6289 } |
| 6290 | 6290 |
| 6291 | 6291 |
| 6292 void Library::InitIsolateLibrary(Isolate* isolate) { | 6292 void Library::InitIsolateLibrary(Isolate* isolate) { |
| 6293 const String& url = String::Handle(Symbols::New("dart:isolate")); | 6293 const String& url = Symbols::DartIsolate(); |
| 6294 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6294 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6295 lib.Register(); | 6295 lib.Register(); |
| 6296 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); | 6296 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); |
| 6297 const Namespace& async_ns = Namespace::Handle( | 6297 const Namespace& async_ns = Namespace::Handle( |
| 6298 Namespace::New(async_lib, Array::Handle(), Array::Handle())); | 6298 Namespace::New(async_lib, Array::Handle(), Array::Handle())); |
| 6299 lib.AddImport(async_ns); | 6299 lib.AddImport(async_ns); |
| 6300 isolate->object_store()->set_isolate_library(lib); | 6300 isolate->object_store()->set_isolate_library(lib); |
| 6301 } | 6301 } |
| 6302 | 6302 |
| 6303 | 6303 |
| 6304 void Library::InitMirrorsLibrary(Isolate* isolate) { | 6304 void Library::InitMirrorsLibrary(Isolate* isolate) { |
| 6305 const String& url = String::Handle(Symbols::New("dart:mirrors")); | 6305 const String& url = Symbols::DartMirrors(); |
| 6306 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6306 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6307 lib.Register(); | 6307 lib.Register(); |
| 6308 const Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); | 6308 const Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); |
| 6309 const Namespace& isolate_ns = Namespace::Handle( | 6309 const Namespace& isolate_ns = Namespace::Handle( |
| 6310 Namespace::New(isolate_lib, Array::Handle(), Array::Handle())); | 6310 Namespace::New(isolate_lib, Array::Handle(), Array::Handle())); |
| 6311 lib.AddImport(isolate_ns); | 6311 lib.AddImport(isolate_ns); |
| 6312 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); | 6312 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); |
| 6313 const Namespace& async_ns = Namespace::Handle( | 6313 const Namespace& async_ns = Namespace::Handle( |
| 6314 Namespace::New(async_lib, Array::Handle(), Array::Handle())); | 6314 Namespace::New(async_lib, Array::Handle(), Array::Handle())); |
| 6315 lib.AddImport(async_ns); | 6315 lib.AddImport(async_ns); |
| 6316 const Library& wrappers_lib = | 6316 const Library& wrappers_lib = |
| 6317 Library::Handle(Library::NativeWrappersLibrary()); | 6317 Library::Handle(Library::NativeWrappersLibrary()); |
| 6318 const Namespace& wrappers_ns = Namespace::Handle( | 6318 const Namespace& wrappers_ns = Namespace::Handle( |
| 6319 Namespace::New(wrappers_lib, Array::Handle(), Array::Handle())); | 6319 Namespace::New(wrappers_lib, Array::Handle(), Array::Handle())); |
| 6320 lib.AddImport(wrappers_ns); | 6320 lib.AddImport(wrappers_ns); |
| 6321 isolate->object_store()->set_mirrors_library(lib); | 6321 isolate->object_store()->set_mirrors_library(lib); |
| 6322 } | 6322 } |
| 6323 | 6323 |
| 6324 | 6324 |
| 6325 void Library::InitScalarlistLibrary(Isolate* isolate) { | 6325 void Library::InitScalarlistLibrary(Isolate* isolate) { |
| 6326 const String& url = String::Handle(Symbols::New("dart:scalarlist")); | 6326 const String& url = Symbols::DartScalarlist(); |
| 6327 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6327 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6328 lib.Register(); | 6328 lib.Register(); |
| 6329 const Library& collection_lib = | 6329 const Library& collection_lib = |
| 6330 Library::Handle(Library::CollectionLibrary()); | 6330 Library::Handle(Library::CollectionLibrary()); |
| 6331 const Namespace& collection_ns = Namespace::Handle( | 6331 const Namespace& collection_ns = Namespace::Handle( |
| 6332 Namespace::New(collection_lib, Array::Handle(), Array::Handle())); | 6332 Namespace::New(collection_lib, Array::Handle(), Array::Handle())); |
| 6333 lib.AddImport(collection_ns); | 6333 lib.AddImport(collection_ns); |
| 6334 isolate->object_store()->set_scalarlist_library(lib); | 6334 isolate->object_store()->set_scalarlist_library(lib); |
| 6335 } | 6335 } |
| 6336 | 6336 |
| 6337 | 6337 |
| 6338 void Library::InitNativeWrappersLibrary(Isolate* isolate) { | 6338 void Library::InitNativeWrappersLibrary(Isolate* isolate) { |
| 6339 static const int kNumNativeWrappersClasses = 4; | 6339 static const int kNumNativeWrappersClasses = 4; |
| 6340 ASSERT(kNumNativeWrappersClasses > 0 && kNumNativeWrappersClasses < 10); | 6340 ASSERT(kNumNativeWrappersClasses > 0 && kNumNativeWrappersClasses < 10); |
| 6341 const String& native_flds_lib_url = String::Handle( | 6341 const String& native_flds_lib_url = Symbols::DartNativeWrappers(); |
| 6342 Symbols::New("dart:nativewrappers")); | |
| 6343 const Library& native_flds_lib = Library::Handle( | 6342 const Library& native_flds_lib = Library::Handle( |
| 6344 Library::NewLibraryHelper(native_flds_lib_url, false)); | 6343 Library::NewLibraryHelper(native_flds_lib_url, false)); |
| 6345 native_flds_lib.Register(); | 6344 native_flds_lib.Register(); |
| 6346 isolate->object_store()->set_native_wrappers_library(native_flds_lib); | 6345 isolate->object_store()->set_native_wrappers_library(native_flds_lib); |
| 6347 static const char* const kNativeWrappersClass = "NativeFieldWrapperClass"; | 6346 static const char* const kNativeWrappersClass = "NativeFieldWrapperClass"; |
| 6348 static const int kNameLength = 25; | 6347 static const int kNameLength = 25; |
| 6349 ASSERT(kNameLength == (strlen(kNativeWrappersClass) + 1 + 1)); | 6348 ASSERT(kNameLength == (strlen(kNativeWrappersClass) + 1 + 1)); |
| 6350 char name_buffer[kNameLength]; | 6349 char name_buffer[kNameLength]; |
| 6351 String& cls_name = String::Handle(); | 6350 String& cls_name = String::Handle(); |
| 6352 for (int fld_cnt = 1; fld_cnt <= kNumNativeWrappersClasses; fld_cnt++) { | 6351 for (int fld_cnt = 1; fld_cnt <= kNumNativeWrappersClasses; fld_cnt++) { |
| (...skipping 6444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12797 } | 12796 } |
| 12798 return result.raw(); | 12797 return result.raw(); |
| 12799 } | 12798 } |
| 12800 | 12799 |
| 12801 | 12800 |
| 12802 const char* WeakProperty::ToCString() const { | 12801 const char* WeakProperty::ToCString() const { |
| 12803 return "_WeakProperty"; | 12802 return "_WeakProperty"; |
| 12804 } | 12803 } |
| 12805 | 12804 |
| 12806 } // namespace dart | 12805 } // namespace dart |
| OLD | NEW |