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 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
624 const String& public_class_name, | 624 const String& public_class_name, |
625 const Library& lib) { | 625 const Library& lib) { |
626 ASSERT(public_class_name.Length() > 0); | 626 ASSERT(public_class_name.Length() > 0); |
627 ASSERT(public_class_name.CharAt(0) == '_'); | 627 ASSERT(public_class_name.CharAt(0) == '_'); |
628 String& str = String::Handle(); | 628 String& str = String::Handle(); |
629 str = lib.PrivateName(public_class_name); | 629 str = lib.PrivateName(public_class_name); |
630 cls.set_name(str); | 630 cls.set_name(str); |
631 lib.AddClass(cls); | 631 lib.AddClass(cls); |
632 } | 632 } |
633 | 633 |
| 634 #define INIT_LIBRARY(name, raw_script, raw_lib) \ |
| 635 script ^= raw_script; \ |
| 636 Library::Init##name##Library(isolate); \ |
| 637 lib ^= raw_lib; \ |
| 638 ASSERT(!lib.IsNull()); \ |
| 639 error = Bootstrap::Compile(lib, script); \ |
| 640 if (!error.IsNull()) { \ |
| 641 return error.raw(); \ |
| 642 } \ |
| 643 |
634 | 644 |
635 RawError* Object::Init(Isolate* isolate) { | 645 RawError* Object::Init(Isolate* isolate) { |
636 TIMERSCOPE(time_bootstrap); | 646 TIMERSCOPE(time_bootstrap); |
637 ObjectStore* object_store = isolate->object_store(); | 647 ObjectStore* object_store = isolate->object_store(); |
638 | 648 |
639 Class& cls = Class::Handle(); | 649 Class& cls = Class::Handle(); |
640 Type& type = Type::Handle(); | 650 Type& type = Type::Handle(); |
641 Array& array = Array::Handle(); | 651 Array& array = Array::Handle(); |
642 | 652 |
643 // All RawArray fields will be initialized to an empty array, therefore | 653 // All RawArray fields will be initialized to an empty array, therefore |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 RegisterClass(cls, Symbols::Stacktrace(), core_lib); | 764 RegisterClass(cls, Symbols::Stacktrace(), core_lib); |
755 pending_classes.Add(cls, Heap::kOld); | 765 pending_classes.Add(cls, Heap::kOld); |
756 // Super type set below, after Object is allocated. | 766 // Super type set below, after Object is allocated. |
757 | 767 |
758 cls = Class::New<JSRegExp>(); | 768 cls = Class::New<JSRegExp>(); |
759 object_store->set_jsregexp_class(cls); | 769 object_store->set_jsregexp_class(cls); |
760 RegisterPrivateClass(cls, Symbols::JSSyntaxRegExp(), core_lib); | 770 RegisterPrivateClass(cls, Symbols::JSSyntaxRegExp(), core_lib); |
761 pending_classes.Add(cls, Heap::kOld); | 771 pending_classes.Add(cls, Heap::kOld); |
762 | 772 |
763 // Initialize the base interfaces used by the core VM classes. | 773 // Initialize the base interfaces used by the core VM classes. |
764 const Script& script = Script::Handle(Bootstrap::LoadCoreScript(false)); | 774 Script& script = Script::Handle(Bootstrap::LoadCoreScript(false)); |
765 | 775 |
766 // Allocate and initialize the pre-allocated classes in the core library. | 776 // Allocate and initialize the pre-allocated classes in the core library. |
767 cls = Class::New<Instance>(kInstanceCid); | 777 cls = Class::New<Instance>(kInstanceCid); |
768 object_store->set_object_class(cls); | 778 object_store->set_object_class(cls); |
769 cls.set_name(Symbols::Object()); | 779 cls.set_name(Symbols::Object()); |
770 cls.set_script(script); | 780 cls.set_script(script); |
771 cls.set_is_prefinalized(); | 781 cls.set_is_prefinalized(); |
772 core_lib.AddClass(cls); | 782 core_lib.AddClass(cls); |
773 pending_classes.Add(cls, Heap::kOld); | 783 pending_classes.Add(cls, Heap::kOld); |
774 type = Type::NewNonParameterizedType(cls); | 784 type = Type::NewNonParameterizedType(cls); |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1077 ASSERT(!scalarlist_lib.IsNull()); | 1087 ASSERT(!scalarlist_lib.IsNull()); |
1078 error = Bootstrap::Compile(scalarlist_lib, scalarlist_script); | 1088 error = Bootstrap::Compile(scalarlist_lib, scalarlist_script); |
1079 if (!error.IsNull()) { | 1089 if (!error.IsNull()) { |
1080 return error.raw(); | 1090 return error.raw(); |
1081 } | 1091 } |
1082 patch_script = Bootstrap::LoadScalarlistScript(true); | 1092 patch_script = Bootstrap::LoadScalarlistScript(true); |
1083 error = scalarlist_lib.Patch(patch_script); | 1093 error = scalarlist_lib.Patch(patch_script); |
1084 if (!error.IsNull()) { | 1094 if (!error.IsNull()) { |
1085 return error.raw(); | 1095 return error.raw(); |
1086 } | 1096 } |
| 1097 Library& lib = Library::Handle(); |
| 1098 INIT_LIBRARY(Crypto, |
| 1099 Bootstrap::LoadCryptoScript(false), |
| 1100 Library::CryptoLibrary()); |
| 1101 INIT_LIBRARY(Json, |
| 1102 Bootstrap::LoadJsonScript(false), |
| 1103 Library::JsonLibrary()); |
| 1104 INIT_LIBRARY(Utf, |
| 1105 Bootstrap::LoadUtfScript(false), |
| 1106 Library::UtfLibrary()); |
| 1107 INIT_LIBRARY(Uri, |
| 1108 Bootstrap::LoadUriScript(false), |
| 1109 Library::UriLibrary()); |
1087 Bootstrap::SetupNativeResolver(); | 1110 Bootstrap::SetupNativeResolver(); |
1088 | 1111 |
1089 // Remove the Object superclass cycle by setting the super type to null (not | 1112 // Remove the Object superclass cycle by setting the super type to null (not |
1090 // to the type of null). | 1113 // to the type of null). |
1091 cls = object_store->object_class(); | 1114 cls = object_store->object_class(); |
1092 cls.set_super_type(Type::Handle()); | 1115 cls.set_super_type(Type::Handle()); |
1093 | 1116 |
1094 ClassFinalizer::VerifyBootstrapClasses(); | 1117 ClassFinalizer::VerifyBootstrapClasses(); |
1095 MarkInvisibleFunctions(); | 1118 MarkInvisibleFunctions(); |
1096 | 1119 |
(...skipping 5279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6376 | 6399 |
6377 | 6400 |
6378 void Library::InitCollectionDevLibrary(Isolate* isolate) { | 6401 void Library::InitCollectionDevLibrary(Isolate* isolate) { |
6379 const String& url = Symbols::DartCollectionDev(); | 6402 const String& url = Symbols::DartCollectionDev(); |
6380 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6403 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
6381 lib.Register(); | 6404 lib.Register(); |
6382 isolate->object_store()->set_collection_dev_library(lib); | 6405 isolate->object_store()->set_collection_dev_library(lib); |
6383 } | 6406 } |
6384 | 6407 |
6385 | 6408 |
6386 void Library::InitMathLibrary(Isolate* isolate) { | 6409 void Library::InitCryptoLibrary(Isolate* isolate) { |
6387 const String& url = Symbols::DartMath(); | 6410 const String& url = Symbols::DartCrypto(); |
6388 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6411 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
6389 lib.Register(); | 6412 lib.Register(); |
6390 isolate->object_store()->set_math_library(lib); | 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); |
6391 } | 6418 } |
6392 | 6419 |
6393 | 6420 |
6394 void Library::InitIsolateLibrary(Isolate* isolate) { | 6421 void Library::InitIsolateLibrary(Isolate* isolate) { |
6395 const String& url = Symbols::DartIsolate(); | 6422 const String& url = Symbols::DartIsolate(); |
6396 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6423 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
6397 lib.Register(); | 6424 lib.Register(); |
6398 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); | 6425 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); |
6399 const Namespace& async_ns = Namespace::Handle( | 6426 const Namespace& async_ns = Namespace::Handle( |
6400 Namespace::New(async_lib, Array::Handle(), Array::Handle())); | 6427 Namespace::New(async_lib, Array::Handle(), Array::Handle())); |
6401 lib.AddImport(async_ns); | 6428 lib.AddImport(async_ns); |
6402 isolate->object_store()->set_isolate_library(lib); | 6429 isolate->object_store()->set_isolate_library(lib); |
6403 } | 6430 } |
6404 | 6431 |
6405 | 6432 |
| 6433 void Library::InitJsonLibrary(Isolate* isolate) { |
| 6434 const String& url = Symbols::DartJson(); |
| 6435 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6436 lib.Register(); |
| 6437 isolate->object_store()->set_json_library(lib); |
| 6438 } |
| 6439 |
| 6440 |
| 6441 void Library::InitMathLibrary(Isolate* isolate) { |
| 6442 const String& url = Symbols::DartMath(); |
| 6443 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6444 lib.Register(); |
| 6445 isolate->object_store()->set_math_library(lib); |
| 6446 } |
| 6447 |
| 6448 |
6406 void Library::InitMirrorsLibrary(Isolate* isolate) { | 6449 void Library::InitMirrorsLibrary(Isolate* isolate) { |
6407 const String& url = Symbols::DartMirrors(); | 6450 const String& url = Symbols::DartMirrors(); |
6408 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | 6451 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
6409 lib.Register(); | 6452 lib.Register(); |
6410 const Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); | 6453 const Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); |
6411 const Namespace& isolate_ns = Namespace::Handle( | 6454 const Namespace& isolate_ns = Namespace::Handle( |
6412 Namespace::New(isolate_lib, Array::Handle(), Array::Handle())); | 6455 Namespace::New(isolate_lib, Array::Handle(), Array::Handle())); |
6413 lib.AddImport(isolate_ns); | 6456 lib.AddImport(isolate_ns); |
6414 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); | 6457 const Library& async_lib = Library::Handle(Library::ASyncLibrary()); |
6415 const Namespace& async_ns = Namespace::Handle( | 6458 const Namespace& async_ns = Namespace::Handle( |
6416 Namespace::New(async_lib, Array::Handle(), Array::Handle())); | 6459 Namespace::New(async_lib, Array::Handle(), Array::Handle())); |
6417 lib.AddImport(async_ns); | 6460 lib.AddImport(async_ns); |
6418 const Library& wrappers_lib = | 6461 const Library& wrappers_lib = |
6419 Library::Handle(Library::NativeWrappersLibrary()); | 6462 Library::Handle(Library::NativeWrappersLibrary()); |
6420 const Namespace& wrappers_ns = Namespace::Handle( | 6463 const Namespace& wrappers_ns = Namespace::Handle( |
6421 Namespace::New(wrappers_lib, Array::Handle(), Array::Handle())); | 6464 Namespace::New(wrappers_lib, Array::Handle(), Array::Handle())); |
6422 lib.AddImport(wrappers_ns); | 6465 lib.AddImport(wrappers_ns); |
6423 isolate->object_store()->set_mirrors_library(lib); | 6466 isolate->object_store()->set_mirrors_library(lib); |
6424 } | 6467 } |
6425 | 6468 |
6426 | 6469 |
6427 void Library::InitScalarlistLibrary(Isolate* isolate) { | |
6428 const String& url = Symbols::DartScalarlist(); | |
6429 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); | |
6430 lib.Register(); | |
6431 const Library& collection_lib = | |
6432 Library::Handle(Library::CollectionLibrary()); | |
6433 const Namespace& collection_ns = Namespace::Handle( | |
6434 Namespace::New(collection_lib, Array::Handle(), Array::Handle())); | |
6435 lib.AddImport(collection_ns); | |
6436 isolate->object_store()->set_scalarlist_library(lib); | |
6437 } | |
6438 | |
6439 | |
6440 void Library::InitNativeWrappersLibrary(Isolate* isolate) { | 6470 void Library::InitNativeWrappersLibrary(Isolate* isolate) { |
6441 static const int kNumNativeWrappersClasses = 4; | 6471 static const int kNumNativeWrappersClasses = 4; |
6442 ASSERT(kNumNativeWrappersClasses > 0 && kNumNativeWrappersClasses < 10); | 6472 ASSERT(kNumNativeWrappersClasses > 0 && kNumNativeWrappersClasses < 10); |
6443 const String& native_flds_lib_url = Symbols::DartNativeWrappers(); | 6473 const String& native_flds_lib_url = Symbols::DartNativeWrappers(); |
6444 const Library& native_flds_lib = Library::Handle( | 6474 const Library& native_flds_lib = Library::Handle( |
6445 Library::NewLibraryHelper(native_flds_lib_url, false)); | 6475 Library::NewLibraryHelper(native_flds_lib_url, false)); |
6446 native_flds_lib.Register(); | 6476 native_flds_lib.Register(); |
6447 isolate->object_store()->set_native_wrappers_library(native_flds_lib); | 6477 isolate->object_store()->set_native_wrappers_library(native_flds_lib); |
6448 static const char* const kNativeWrappersClass = "NativeFieldWrapperClass"; | 6478 static const char* const kNativeWrappersClass = "NativeFieldWrapperClass"; |
6449 static const int kNameLength = 25; | 6479 static const int kNameLength = 25; |
6450 ASSERT(kNameLength == (strlen(kNativeWrappersClass) + 1 + 1)); | 6480 ASSERT(kNameLength == (strlen(kNativeWrappersClass) + 1 + 1)); |
6451 char name_buffer[kNameLength]; | 6481 char name_buffer[kNameLength]; |
6452 String& cls_name = String::Handle(); | 6482 String& cls_name = String::Handle(); |
6453 for (int fld_cnt = 1; fld_cnt <= kNumNativeWrappersClasses; fld_cnt++) { | 6483 for (int fld_cnt = 1; fld_cnt <= kNumNativeWrappersClasses; fld_cnt++) { |
6454 OS::SNPrint(name_buffer, | 6484 OS::SNPrint(name_buffer, |
6455 kNameLength, | 6485 kNameLength, |
6456 "%s%d", | 6486 "%s%d", |
6457 kNativeWrappersClass, | 6487 kNativeWrappersClass, |
6458 fld_cnt); | 6488 fld_cnt); |
6459 cls_name = Symbols::New(name_buffer); | 6489 cls_name = Symbols::New(name_buffer); |
6460 Class::NewNativeWrapper(native_flds_lib, cls_name, fld_cnt); | 6490 Class::NewNativeWrapper(native_flds_lib, cls_name, fld_cnt); |
6461 } | 6491 } |
6462 } | 6492 } |
6463 | 6493 |
6464 | 6494 |
| 6495 void Library::InitScalarlistLibrary(Isolate* isolate) { |
| 6496 const String& url = Symbols::DartScalarlist(); |
| 6497 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6498 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); |
| 6505 } |
| 6506 |
| 6507 |
| 6508 void Library::InitUriLibrary(Isolate* isolate) { |
| 6509 const String& url = Symbols::DartUri(); |
| 6510 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6511 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); |
| 6521 } |
| 6522 |
| 6523 |
| 6524 void Library::InitUtfLibrary(Isolate* isolate) { |
| 6525 const String& url = Symbols::DartUtf(); |
| 6526 const Library& lib = Library::Handle(Library::NewLibraryHelper(url, true)); |
| 6527 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); |
| 6533 } |
| 6534 |
| 6535 |
6465 RawLibrary* Library::LookupLibrary(const String &url) { | 6536 RawLibrary* Library::LookupLibrary(const String &url) { |
6466 Isolate* isolate = Isolate::Current(); | 6537 Isolate* isolate = Isolate::Current(); |
6467 Library& lib = Library::Handle(isolate, Library::null()); | 6538 Library& lib = Library::Handle(isolate, Library::null()); |
6468 String& lib_url = String::Handle(isolate, String::null()); | 6539 String& lib_url = String::Handle(isolate, String::null()); |
6469 GrowableObjectArray& libs = GrowableObjectArray::Handle( | 6540 GrowableObjectArray& libs = GrowableObjectArray::Handle( |
6470 isolate, isolate->object_store()->libraries()); | 6541 isolate, isolate->object_store()->libraries()); |
6471 for (int i = 0; i < libs.Length(); i++) { | 6542 for (int i = 0; i < libs.Length(); i++) { |
6472 lib ^= libs.At(i); | 6543 lib ^= libs.At(i); |
6473 lib_url ^= lib.url(); | 6544 lib_url ^= lib.url(); |
6474 if (lib_url.Equals(url)) { | 6545 if (lib_url.Equals(url)) { |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6568 RawLibrary* Library::CollectionLibrary() { | 6639 RawLibrary* Library::CollectionLibrary() { |
6569 return Isolate::Current()->object_store()->collection_library(); | 6640 return Isolate::Current()->object_store()->collection_library(); |
6570 } | 6641 } |
6571 | 6642 |
6572 | 6643 |
6573 RawLibrary* Library::CollectionDevLibrary() { | 6644 RawLibrary* Library::CollectionDevLibrary() { |
6574 return Isolate::Current()->object_store()->collection_dev_library(); | 6645 return Isolate::Current()->object_store()->collection_dev_library(); |
6575 } | 6646 } |
6576 | 6647 |
6577 | 6648 |
6578 RawLibrary* Library::MathLibrary() { | 6649 RawLibrary* Library::CryptoLibrary() { |
6579 return Isolate::Current()->object_store()->math_library(); | 6650 return Isolate::Current()->object_store()->crypto_library(); |
6580 } | 6651 } |
6581 | 6652 |
6582 | 6653 |
6583 RawLibrary* Library::IsolateLibrary() { | 6654 RawLibrary* Library::IsolateLibrary() { |
6584 return Isolate::Current()->object_store()->isolate_library(); | 6655 return Isolate::Current()->object_store()->isolate_library(); |
6585 } | 6656 } |
6586 | 6657 |
6587 | 6658 |
| 6659 RawLibrary* Library::JsonLibrary() { |
| 6660 return Isolate::Current()->object_store()->json_library(); |
| 6661 } |
| 6662 |
| 6663 |
| 6664 RawLibrary* Library::MathLibrary() { |
| 6665 return Isolate::Current()->object_store()->math_library(); |
| 6666 } |
| 6667 |
| 6668 |
6588 RawLibrary* Library::MirrorsLibrary() { | 6669 RawLibrary* Library::MirrorsLibrary() { |
6589 return Isolate::Current()->object_store()->mirrors_library(); | 6670 return Isolate::Current()->object_store()->mirrors_library(); |
6590 } | 6671 } |
6591 | 6672 |
6592 | 6673 |
| 6674 RawLibrary* Library::NativeWrappersLibrary() { |
| 6675 return Isolate::Current()->object_store()->native_wrappers_library(); |
| 6676 } |
| 6677 |
| 6678 |
6593 RawLibrary* Library::ScalarlistLibrary() { | 6679 RawLibrary* Library::ScalarlistLibrary() { |
6594 return Isolate::Current()->object_store()->scalarlist_library(); | 6680 return Isolate::Current()->object_store()->scalarlist_library(); |
6595 } | 6681 } |
6596 | 6682 |
6597 | 6683 |
6598 RawLibrary* Library::NativeWrappersLibrary() { | 6684 RawLibrary* Library::UriLibrary() { |
6599 return Isolate::Current()->object_store()->native_wrappers_library(); | 6685 return Isolate::Current()->object_store()->uri_library(); |
| 6686 } |
| 6687 |
| 6688 |
| 6689 RawLibrary* Library::UtfLibrary() { |
| 6690 return Isolate::Current()->object_store()->utf_library(); |
6600 } | 6691 } |
6601 | 6692 |
6602 | 6693 |
6603 const char* Library::ToCString() const { | 6694 const char* Library::ToCString() const { |
6604 const char* kFormat = "Library:'%s'"; | 6695 const char* kFormat = "Library:'%s'"; |
6605 const String& name = String::Handle(url()); | 6696 const String& name = String::Handle(url()); |
6606 intptr_t len = OS::SNPrint(NULL, 0, kFormat, name.ToCString()) + 1; | 6697 intptr_t len = OS::SNPrint(NULL, 0, kFormat, name.ToCString()) + 1; |
6607 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 6698 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
6608 OS::SNPrint(chars, len, kFormat, name.ToCString()); | 6699 OS::SNPrint(chars, len, kFormat, name.ToCString()); |
6609 return chars; | 6700 return chars; |
(...skipping 6291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12901 } | 12992 } |
12902 return result.raw(); | 12993 return result.raw(); |
12903 } | 12994 } |
12904 | 12995 |
12905 | 12996 |
12906 const char* WeakProperty::ToCString() const { | 12997 const char* WeakProperty::ToCString() const { |
12907 return "_WeakProperty"; | 12998 return "_WeakProperty"; |
12908 } | 12999 } |
12909 | 13000 |
12910 } // namespace dart | 13001 } // namespace dart |
OLD | NEW |