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/cpu.h" | 10 #include "vm/cpu.h" |
(...skipping 1468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1479 | 1479 |
1480 cls = Class::New<UserTag>(); | 1480 cls = Class::New<UserTag>(); |
1481 } | 1481 } |
1482 | 1482 |
1483 | 1483 |
1484 void Object::Print() const { | 1484 void Object::Print() const { |
1485 OS::Print("%s\n", ToCString()); | 1485 OS::Print("%s\n", ToCString()); |
1486 } | 1486 } |
1487 | 1487 |
1488 | 1488 |
| 1489 void Object::PrintJSON(JSONStream* stream, bool ref) const { |
| 1490 if (IsNull()) { |
| 1491 JSONObject jsobj(stream); |
| 1492 jsobj.AddProperty("type", ref ? "@Null" : "Null"); |
| 1493 jsobj.AddProperty("id", "objects/null"); |
| 1494 jsobj.AddProperty("valueAsString", "null"); |
| 1495 } else { |
| 1496 PrintJSONImpl(stream, ref); |
| 1497 } |
| 1498 } |
| 1499 |
| 1500 |
1489 RawString* Object::DictionaryName() const { | 1501 RawString* Object::DictionaryName() const { |
1490 return String::null(); | 1502 return String::null(); |
1491 } | 1503 } |
1492 | 1504 |
1493 | 1505 |
1494 void Object::InitializeObject(uword address, intptr_t class_id, intptr_t size) { | 1506 void Object::InitializeObject(uword address, intptr_t class_id, intptr_t size) { |
1495 // TODO(iposva): Get a proper halt instruction from the assembler which | 1507 // TODO(iposva): Get a proper halt instruction from the assembler which |
1496 // would be needed here for code objects. | 1508 // would be needed here for code objects. |
1497 uword initial_value = reinterpret_cast<uword>(null_); | 1509 uword initial_value = reinterpret_cast<uword>(null_); |
1498 uword cur = address; | 1510 uword cur = address; |
(...skipping 2383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3882 const Library& lib = Library::Handle(library()); | 3894 const Library& lib = Library::Handle(library()); |
3883 const char* library_name = lib.IsNull() ? "" : lib.ToCString(); | 3895 const char* library_name = lib.IsNull() ? "" : lib.ToCString(); |
3884 const char* class_name = String::Handle(Name()).ToCString(); | 3896 const char* class_name = String::Handle(Name()).ToCString(); |
3885 intptr_t len = OS::SNPrint(NULL, 0, format, library_name, class_name) + 1; | 3897 intptr_t len = OS::SNPrint(NULL, 0, format, library_name, class_name) + 1; |
3886 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 3898 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
3887 OS::SNPrint(chars, len, format, library_name, class_name); | 3899 OS::SNPrint(chars, len, format, library_name, class_name); |
3888 return chars; | 3900 return chars; |
3889 } | 3901 } |
3890 | 3902 |
3891 | 3903 |
3892 void Class::PrintToJSONStream(JSONStream* stream, bool ref) const { | 3904 void Class::PrintJSONImpl(JSONStream* stream, bool ref) const { |
3893 JSONObject jsobj(stream); | 3905 JSONObject jsobj(stream); |
3894 if ((raw() == Class::null()) || (id() == kFreeListElement)) { | 3906 if ((raw() == Class::null()) || (id() == kFreeListElement)) { |
3895 jsobj.AddProperty("type", "Null"); | 3907 jsobj.AddProperty("type", "Null"); |
3896 return; | 3908 return; |
3897 } | 3909 } |
3898 const char* internal_class_name = String::Handle(Name()).ToCString(); | 3910 const char* internal_class_name = String::Handle(Name()).ToCString(); |
3899 const char* user_visible_class_name = | 3911 const char* user_visible_class_name = |
3900 String::Handle(UserVisibleName()).ToCString(); | 3912 String::Handle(UserVisibleName()).ToCString(); |
3901 jsobj.AddProperty("type", JSONType(ref)); | 3913 jsobj.AddProperty("type", JSONType(ref)); |
3902 jsobj.AddPropertyF("id", "classes/%" Pd "", id()); | 3914 jsobj.AddPropertyF("id", "classes/%" Pd "", id()); |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4063 const char* UnresolvedClass::ToCString() const { | 4075 const char* UnresolvedClass::ToCString() const { |
4064 const char* format = "unresolved class '%s'"; | 4076 const char* format = "unresolved class '%s'"; |
4065 const char* cname = String::Handle(Name()).ToCString(); | 4077 const char* cname = String::Handle(Name()).ToCString(); |
4066 intptr_t len = OS::SNPrint(NULL, 0, format, cname) + 1; | 4078 intptr_t len = OS::SNPrint(NULL, 0, format, cname) + 1; |
4067 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 4079 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
4068 OS::SNPrint(chars, len, format, cname); | 4080 OS::SNPrint(chars, len, format, cname); |
4069 return chars; | 4081 return chars; |
4070 } | 4082 } |
4071 | 4083 |
4072 | 4084 |
4073 void UnresolvedClass::PrintToJSONStream(JSONStream* stream, bool ref) const { | 4085 void UnresolvedClass::PrintJSONImpl(JSONStream* stream, bool ref) const { |
4074 Object::PrintToJSONStream(stream, ref); | 4086 Object::PrintJSONImpl(stream, ref); |
4075 } | 4087 } |
4076 | 4088 |
4077 | 4089 |
4078 static uint32_t CombineHashes(uint32_t hash, uint32_t other_hash) { | 4090 static uint32_t CombineHashes(uint32_t hash, uint32_t other_hash) { |
4079 hash += other_hash; | 4091 hash += other_hash; |
4080 hash += hash << 10; | 4092 hash += hash << 10; |
4081 hash ^= hash >> 6; // Logical shift, unsigned hash. | 4093 hash ^= hash >> 6; // Logical shift, unsigned hash. |
4082 return hash; | 4094 return hash; |
4083 } | 4095 } |
4084 | 4096 |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4218 other_type = other.TypeAt(from_index + i); | 4230 other_type = other.TypeAt(from_index + i); |
4219 ASSERT(!other_type.IsNull()); | 4231 ASSERT(!other_type.IsNull()); |
4220 if (!type.TypeTest(test_kind, other_type, bound_error)) { | 4232 if (!type.TypeTest(test_kind, other_type, bound_error)) { |
4221 return false; | 4233 return false; |
4222 } | 4234 } |
4223 } | 4235 } |
4224 return true; | 4236 return true; |
4225 } | 4237 } |
4226 | 4238 |
4227 | 4239 |
4228 void TypeArguments::PrintToJSONStream(JSONStream* stream, bool ref) const { | 4240 void TypeArguments::PrintJSONImpl(JSONStream* stream, bool ref) const { |
4229 JSONObject jsobj(stream); | 4241 JSONObject jsobj(stream); |
4230 if (IsNull()) { | |
4231 jsobj.AddProperty("type", ref ? "@Null" : "Null"); | |
4232 jsobj.AddProperty("id", "objects/null"); | |
4233 return; | |
4234 } | |
4235 // The index in the canonical_type_arguments table cannot be used as part of | 4242 // The index in the canonical_type_arguments table cannot be used as part of |
4236 // the object id (as in typearguments/id), because the indices are not | 4243 // the object id (as in typearguments/id), because the indices are not |
4237 // preserved when the table grows and the entries get rehashed. Use the ring. | 4244 // preserved when the table grows and the entries get rehashed. Use the ring. |
4238 Isolate* isolate = Isolate::Current(); | 4245 Isolate* isolate = Isolate::Current(); |
4239 ObjectStore* object_store = isolate->object_store(); | 4246 ObjectStore* object_store = isolate->object_store(); |
4240 const Array& table = Array::Handle(object_store->canonical_type_arguments()); | 4247 const Array& table = Array::Handle(object_store->canonical_type_arguments()); |
4241 ASSERT(table.Length() > 0); | 4248 ASSERT(table.Length() > 0); |
4242 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 4249 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
4243 const intptr_t id = ring->GetIdForObject(raw()); | 4250 const intptr_t id = ring->GetIdForObject(raw()); |
4244 jsobj.AddProperty("type", JSONType(ref)); | 4251 jsobj.AddProperty("type", JSONType(ref)); |
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4818 const char* kFormat = "PatchClass for %s"; | 4825 const char* kFormat = "PatchClass for %s"; |
4819 const Class& cls = Class::Handle(patched_class()); | 4826 const Class& cls = Class::Handle(patched_class()); |
4820 const char* cls_name = cls.ToCString(); | 4827 const char* cls_name = cls.ToCString(); |
4821 intptr_t len = OS::SNPrint(NULL, 0, kFormat, cls_name) + 1; | 4828 intptr_t len = OS::SNPrint(NULL, 0, kFormat, cls_name) + 1; |
4822 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 4829 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
4823 OS::SNPrint(chars, len, kFormat, cls_name); | 4830 OS::SNPrint(chars, len, kFormat, cls_name); |
4824 return chars; | 4831 return chars; |
4825 } | 4832 } |
4826 | 4833 |
4827 | 4834 |
4828 void PatchClass::PrintToJSONStream(JSONStream* stream, bool ref) const { | 4835 void PatchClass::PrintJSONImpl(JSONStream* stream, bool ref) const { |
4829 Object::PrintToJSONStream(stream, ref); | 4836 Object::PrintJSONImpl(stream, ref); |
4830 } | 4837 } |
4831 | 4838 |
4832 | 4839 |
4833 RawPatchClass* PatchClass::New(const Class& patched_class, | 4840 RawPatchClass* PatchClass::New(const Class& patched_class, |
4834 const Class& source_class) { | 4841 const Class& source_class) { |
4835 const PatchClass& result = PatchClass::Handle(PatchClass::New()); | 4842 const PatchClass& result = PatchClass::Handle(PatchClass::New()); |
4836 result.set_patched_class(patched_class); | 4843 result.set_patched_class(patched_class); |
4837 result.set_source_class(source_class); | 4844 result.set_source_class(source_class); |
4838 return result.raw(); | 4845 return result.raw(); |
4839 } | 4846 } |
(...skipping 1579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6419 const char* function_name = String::Handle(name()).ToCString(); | 6426 const char* function_name = String::Handle(name()).ToCString(); |
6420 intptr_t len = OS::SNPrint(NULL, 0, kFormat, function_name, | 6427 intptr_t len = OS::SNPrint(NULL, 0, kFormat, function_name, |
6421 static_str, abstract_str, kind_str, const_str) + 1; | 6428 static_str, abstract_str, kind_str, const_str) + 1; |
6422 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 6429 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
6423 OS::SNPrint(chars, len, kFormat, function_name, | 6430 OS::SNPrint(chars, len, kFormat, function_name, |
6424 static_str, abstract_str, kind_str, const_str); | 6431 static_str, abstract_str, kind_str, const_str); |
6425 return chars; | 6432 return chars; |
6426 } | 6433 } |
6427 | 6434 |
6428 | 6435 |
6429 void Function::PrintToJSONStream(JSONStream* stream, bool ref) const { | 6436 void Function::PrintJSONImpl(JSONStream* stream, bool ref) const { |
6430 const char* internal_name = String::Handle(name()).ToCString(); | 6437 const char* internal_name = String::Handle(name()).ToCString(); |
6431 const char* user_name = | 6438 const char* user_name = |
6432 String::Handle(UserVisibleName()).ToCString(); | 6439 String::Handle(UserVisibleName()).ToCString(); |
6433 Class& cls = Class::Handle(Owner()); | 6440 Class& cls = Class::Handle(Owner()); |
6434 ASSERT(!cls.IsNull()); | 6441 ASSERT(!cls.IsNull()); |
6435 Error& err = Error::Handle(); | 6442 Error& err = Error::Handle(); |
6436 err ^= cls.EnsureIsFinalized(Isolate::Current()); | 6443 err ^= cls.EnsureIsFinalized(Isolate::Current()); |
6437 ASSERT(err.IsNull()); | 6444 ASSERT(err.IsNull()); |
6438 intptr_t id = -1; | 6445 intptr_t id = -1; |
6439 const char* selector = NULL; | 6446 const char* selector = NULL; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6529 Heap::kOld); | 6536 Heap::kOld); |
6530 return reinterpret_cast<RawClosureData*>(raw); | 6537 return reinterpret_cast<RawClosureData*>(raw); |
6531 } | 6538 } |
6532 | 6539 |
6533 | 6540 |
6534 const char* ClosureData::ToCString() const { | 6541 const char* ClosureData::ToCString() const { |
6535 return "ClosureData class"; | 6542 return "ClosureData class"; |
6536 } | 6543 } |
6537 | 6544 |
6538 | 6545 |
6539 void ClosureData::PrintToJSONStream(JSONStream* stream, bool ref) const { | 6546 void ClosureData::PrintJSONImpl(JSONStream* stream, bool ref) const { |
6540 Object::PrintToJSONStream(stream, ref); | 6547 Object::PrintJSONImpl(stream, ref); |
6541 } | 6548 } |
6542 | 6549 |
6543 | 6550 |
6544 void RedirectionData::set_type(const Type& value) const { | 6551 void RedirectionData::set_type(const Type& value) const { |
6545 ASSERT(!value.IsNull()); | 6552 ASSERT(!value.IsNull()); |
6546 StorePointer(&raw_ptr()->type_, value.raw()); | 6553 StorePointer(&raw_ptr()->type_, value.raw()); |
6547 } | 6554 } |
6548 | 6555 |
6549 | 6556 |
6550 void RedirectionData::set_identifier(const String& value) const { | 6557 void RedirectionData::set_identifier(const String& value) const { |
(...skipping 13 matching lines...) Expand all Loading... |
6564 Heap::kOld); | 6571 Heap::kOld); |
6565 return reinterpret_cast<RawRedirectionData*>(raw); | 6572 return reinterpret_cast<RawRedirectionData*>(raw); |
6566 } | 6573 } |
6567 | 6574 |
6568 | 6575 |
6569 const char* RedirectionData::ToCString() const { | 6576 const char* RedirectionData::ToCString() const { |
6570 return "RedirectionData class"; | 6577 return "RedirectionData class"; |
6571 } | 6578 } |
6572 | 6579 |
6573 | 6580 |
6574 void RedirectionData::PrintToJSONStream(JSONStream* stream, bool ref) const { | 6581 void RedirectionData::PrintJSONImpl(JSONStream* stream, bool ref) const { |
6575 Object::PrintToJSONStream(stream, ref); | 6582 Object::PrintJSONImpl(stream, ref); |
6576 } | 6583 } |
6577 | 6584 |
6578 | 6585 |
6579 RawString* Field::GetterName(const String& field_name) { | 6586 RawString* Field::GetterName(const String& field_name) { |
6580 CompilerStats::make_accessor_name++; | 6587 CompilerStats::make_accessor_name++; |
6581 return String::Concat(Symbols::GetterPrefix(), field_name); | 6588 return String::Concat(Symbols::GetterPrefix(), field_name); |
6582 } | 6589 } |
6583 | 6590 |
6584 | 6591 |
6585 RawString* Field::GetterSymbol(const String& field_name) { | 6592 RawString* Field::GetterSymbol(const String& field_name) { |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6769 const char* field_name = String::Handle(name()).ToCString(); | 6776 const char* field_name = String::Handle(name()).ToCString(); |
6770 const Class& cls = Class::Handle(owner()); | 6777 const Class& cls = Class::Handle(owner()); |
6771 const char* cls_name = String::Handle(cls.Name()).ToCString(); | 6778 const char* cls_name = String::Handle(cls.Name()).ToCString(); |
6772 intptr_t len = | 6779 intptr_t len = |
6773 OS::SNPrint(NULL, 0, kFormat, cls_name, field_name, kF0, kF1, kF2) + 1; | 6780 OS::SNPrint(NULL, 0, kFormat, cls_name, field_name, kF0, kF1, kF2) + 1; |
6774 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 6781 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
6775 OS::SNPrint(chars, len, kFormat, cls_name, field_name, kF0, kF1, kF2); | 6782 OS::SNPrint(chars, len, kFormat, cls_name, field_name, kF0, kF1, kF2); |
6776 return chars; | 6783 return chars; |
6777 } | 6784 } |
6778 | 6785 |
6779 void Field::PrintToJSONStream(JSONStream* stream, bool ref) const { | 6786 void Field::PrintJSONImpl(JSONStream* stream, bool ref) const { |
6780 JSONObject jsobj(stream); | 6787 JSONObject jsobj(stream); |
6781 const char* internal_field_name = String::Handle(name()).ToCString(); | 6788 const char* internal_field_name = String::Handle(name()).ToCString(); |
6782 const char* field_name = String::Handle(UserVisibleName()).ToCString(); | 6789 const char* field_name = String::Handle(UserVisibleName()).ToCString(); |
6783 Class& cls = Class::Handle(owner()); | 6790 Class& cls = Class::Handle(owner()); |
6784 intptr_t id = cls.FindFieldIndex(*this); | 6791 intptr_t id = cls.FindFieldIndex(*this); |
6785 ASSERT(id >= 0); | 6792 ASSERT(id >= 0); |
6786 intptr_t cid = cls.id(); | 6793 intptr_t cid = cls.id(); |
6787 jsobj.AddProperty("type", JSONType(ref)); | 6794 jsobj.AddProperty("type", JSONType(ref)); |
6788 jsobj.AddPropertyF("id", "classes/%" Pd "/fields/%" Pd "", cid, id); | 6795 jsobj.AddPropertyF("id", "classes/%" Pd "/fields/%" Pd "", cid, id); |
6789 jsobj.AddProperty("name", internal_field_name); | 6796 jsobj.AddProperty("name", internal_field_name); |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7041 return result.raw(); | 7048 return result.raw(); |
7042 } | 7049 } |
7043 | 7050 |
7044 | 7051 |
7045 const char* LiteralToken::ToCString() const { | 7052 const char* LiteralToken::ToCString() const { |
7046 const String& token = String::Handle(literal()); | 7053 const String& token = String::Handle(literal()); |
7047 return token.ToCString(); | 7054 return token.ToCString(); |
7048 } | 7055 } |
7049 | 7056 |
7050 | 7057 |
7051 void LiteralToken::PrintToJSONStream(JSONStream* stream, bool ref) const { | 7058 void LiteralToken::PrintJSONImpl(JSONStream* stream, bool ref) const { |
7052 Object::PrintToJSONStream(stream, ref); | 7059 Object::PrintJSONImpl(stream, ref); |
7053 } | 7060 } |
7054 | 7061 |
7055 | 7062 |
7056 RawArray* TokenStream::TokenObjects() const { | 7063 RawArray* TokenStream::TokenObjects() const { |
7057 return raw_ptr()->token_objects_; | 7064 return raw_ptr()->token_objects_; |
7058 } | 7065 } |
7059 | 7066 |
7060 | 7067 |
7061 void TokenStream::SetTokenObjects(const Array& value) const { | 7068 void TokenStream::SetTokenObjects(const Array& value) const { |
7062 StorePointer(&raw_ptr()->token_objects_, value.raw()); | 7069 StorePointer(&raw_ptr()->token_objects_, value.raw()); |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7486 } | 7493 } |
7487 return result.raw(); | 7494 return result.raw(); |
7488 } | 7495 } |
7489 | 7496 |
7490 | 7497 |
7491 const char* TokenStream::ToCString() const { | 7498 const char* TokenStream::ToCString() const { |
7492 return "TokenStream"; | 7499 return "TokenStream"; |
7493 } | 7500 } |
7494 | 7501 |
7495 | 7502 |
7496 void TokenStream::PrintToJSONStream(JSONStream* stream, bool ref) const { | 7503 void TokenStream::PrintJSONImpl(JSONStream* stream, bool ref) const { |
7497 Object::PrintToJSONStream(stream, ref); | 7504 Object::PrintJSONImpl(stream, ref); |
7498 } | 7505 } |
7499 | 7506 |
7500 | 7507 |
7501 TokenStream::Iterator::Iterator(const TokenStream& tokens, | 7508 TokenStream::Iterator::Iterator(const TokenStream& tokens, |
7502 intptr_t token_pos, | 7509 intptr_t token_pos, |
7503 Iterator::StreamType stream_type) | 7510 Iterator::StreamType stream_type) |
7504 : tokens_(TokenStream::Handle(tokens.raw())), | 7511 : tokens_(TokenStream::Handle(tokens.raw())), |
7505 data_(ExternalTypedData::Handle(tokens.GetStream())), | 7512 data_(ExternalTypedData::Handle(tokens.GetStream())), |
7506 stream_(reinterpret_cast<uint8_t*>(data_.DataAddr(0)), data_.Length()), | 7513 stream_(reinterpret_cast<uint8_t*>(data_.DataAddr(0)), data_.Length()), |
7507 token_objects_(Array::Handle(tokens.TokenObjects())), | 7514 token_objects_(Array::Handle(tokens.TokenObjects())), |
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7990 return result.raw(); | 7997 return result.raw(); |
7991 } | 7998 } |
7992 | 7999 |
7993 | 8000 |
7994 const char* Script::ToCString() const { | 8001 const char* Script::ToCString() const { |
7995 return "Script"; | 8002 return "Script"; |
7996 } | 8003 } |
7997 | 8004 |
7998 | 8005 |
7999 // See also Dart_ScriptGetTokenInfo. | 8006 // See also Dart_ScriptGetTokenInfo. |
8000 void Script::PrintToJSONStream(JSONStream* stream, bool ref) const { | 8007 void Script::PrintJSONImpl(JSONStream* stream, bool ref) const { |
8001 JSONObject jsobj(stream); | 8008 JSONObject jsobj(stream); |
8002 jsobj.AddProperty("type", JSONType(ref)); | 8009 jsobj.AddProperty("type", JSONType(ref)); |
8003 const String& name = String::Handle(url()); | 8010 const String& name = String::Handle(url()); |
8004 ASSERT(!name.IsNull()); | 8011 ASSERT(!name.IsNull()); |
8005 const String& encoded_url = String::Handle(String::EncodeURI(name)); | 8012 const String& encoded_url = String::Handle(String::EncodeURI(name)); |
8006 ASSERT(!encoded_url.IsNull()); | 8013 ASSERT(!encoded_url.IsNull()); |
8007 jsobj.AddPropertyF("id", "scripts/%s", encoded_url.ToCString()); | 8014 jsobj.AddPropertyF("id", "scripts/%s", encoded_url.ToCString()); |
8008 jsobj.AddProperty("name", name.ToCString()); | 8015 jsobj.AddProperty("name", name.ToCString()); |
8009 jsobj.AddProperty("user_name", name.ToCString()); | 8016 jsobj.AddProperty("user_name", name.ToCString()); |
8010 jsobj.AddProperty("kind", GetKindAsCString()); | 8017 jsobj.AddProperty("kind", GetKindAsCString()); |
(...skipping 1247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9258 const char* Library::ToCString() const { | 9265 const char* Library::ToCString() const { |
9259 const char* kFormat = "Library:'%s'"; | 9266 const char* kFormat = "Library:'%s'"; |
9260 const String& name = String::Handle(url()); | 9267 const String& name = String::Handle(url()); |
9261 intptr_t len = OS::SNPrint(NULL, 0, kFormat, name.ToCString()) + 1; | 9268 intptr_t len = OS::SNPrint(NULL, 0, kFormat, name.ToCString()) + 1; |
9262 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 9269 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
9263 OS::SNPrint(chars, len, kFormat, name.ToCString()); | 9270 OS::SNPrint(chars, len, kFormat, name.ToCString()); |
9264 return chars; | 9271 return chars; |
9265 } | 9272 } |
9266 | 9273 |
9267 | 9274 |
9268 void Library::PrintToJSONStream(JSONStream* stream, bool ref) const { | 9275 void Library::PrintJSONImpl(JSONStream* stream, bool ref) const { |
9269 const char* library_name = String::Handle(name()).ToCString(); | 9276 const char* library_name = String::Handle(name()).ToCString(); |
9270 intptr_t id = index(); | 9277 intptr_t id = index(); |
9271 ASSERT(id >= 0); | 9278 ASSERT(id >= 0); |
9272 JSONObject jsobj(stream); | 9279 JSONObject jsobj(stream); |
9273 jsobj.AddProperty("type", JSONType(ref)); | 9280 jsobj.AddProperty("type", JSONType(ref)); |
9274 jsobj.AddPropertyF("id", "libraries/%" Pd "", id); | 9281 jsobj.AddPropertyF("id", "libraries/%" Pd "", id); |
9275 jsobj.AddProperty("user_name", library_name); | 9282 jsobj.AddProperty("user_name", library_name); |
9276 jsobj.AddProperty("name", library_name); | 9283 jsobj.AddProperty("name", library_name); |
9277 if (ref) { | 9284 if (ref) { |
9278 return; | 9285 return; |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9555 const char* LibraryPrefix::ToCString() const { | 9562 const char* LibraryPrefix::ToCString() const { |
9556 const char* kFormat = "LibraryPrefix:'%s'"; | 9563 const char* kFormat = "LibraryPrefix:'%s'"; |
9557 const String& prefix = String::Handle(name()); | 9564 const String& prefix = String::Handle(name()); |
9558 intptr_t len = OS::SNPrint(NULL, 0, kFormat, prefix.ToCString()) + 1; | 9565 intptr_t len = OS::SNPrint(NULL, 0, kFormat, prefix.ToCString()) + 1; |
9559 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 9566 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
9560 OS::SNPrint(chars, len, kFormat, prefix.ToCString()); | 9567 OS::SNPrint(chars, len, kFormat, prefix.ToCString()); |
9561 return chars; | 9568 return chars; |
9562 } | 9569 } |
9563 | 9570 |
9564 | 9571 |
9565 void LibraryPrefix::PrintToJSONStream(JSONStream* stream, bool ref) const { | 9572 void LibraryPrefix::PrintJSONImpl(JSONStream* stream, bool ref) const { |
9566 Object::PrintToJSONStream(stream, ref); | 9573 Object::PrintJSONImpl(stream, ref); |
9567 } | 9574 } |
9568 | 9575 |
9569 | 9576 |
9570 void Namespace::set_metadata_field(const Field& value) const { | 9577 void Namespace::set_metadata_field(const Field& value) const { |
9571 StorePointer(&raw_ptr()->metadata_field_, value.raw()); | 9578 StorePointer(&raw_ptr()->metadata_field_, value.raw()); |
9572 } | 9579 } |
9573 | 9580 |
9574 | 9581 |
9575 void Namespace::AddMetadata(intptr_t token_pos, const Class& owner_class) { | 9582 void Namespace::AddMetadata(intptr_t token_pos, const Class& owner_class) { |
9576 ASSERT(Field::Handle(metadata_field()).IsNull()); | 9583 ASSERT(Field::Handle(metadata_field()).IsNull()); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9609 const char* Namespace::ToCString() const { | 9616 const char* Namespace::ToCString() const { |
9610 const char* kFormat = "Namespace for library '%s'"; | 9617 const char* kFormat = "Namespace for library '%s'"; |
9611 const Library& lib = Library::Handle(library()); | 9618 const Library& lib = Library::Handle(library()); |
9612 intptr_t len = OS::SNPrint(NULL, 0, kFormat, lib.ToCString()) + 1; | 9619 intptr_t len = OS::SNPrint(NULL, 0, kFormat, lib.ToCString()) + 1; |
9613 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 9620 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
9614 OS::SNPrint(chars, len, kFormat, lib.ToCString()); | 9621 OS::SNPrint(chars, len, kFormat, lib.ToCString()); |
9615 return chars; | 9622 return chars; |
9616 } | 9623 } |
9617 | 9624 |
9618 | 9625 |
9619 void Namespace::PrintToJSONStream(JSONStream* stream, bool ref) const { | 9626 void Namespace::PrintJSONImpl(JSONStream* stream, bool ref) const { |
9620 Object::PrintToJSONStream(stream, ref); | 9627 Object::PrintJSONImpl(stream, ref); |
9621 } | 9628 } |
9622 | 9629 |
9623 | 9630 |
9624 bool Namespace::HidesName(const String& name) const { | 9631 bool Namespace::HidesName(const String& name) const { |
9625 // Quick check for common case with no combinators. | 9632 // Quick check for common case with no combinators. |
9626 if (hide_names() == show_names()) { | 9633 if (hide_names() == show_names()) { |
9627 ASSERT(hide_names() == Array::null()); | 9634 ASSERT(hide_names() == Array::null()); |
9628 return false; | 9635 return false; |
9629 } | 9636 } |
9630 const String* plain_name = &name; | 9637 const String* plain_name = &name; |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9875 } | 9882 } |
9876 return result.raw(); | 9883 return result.raw(); |
9877 } | 9884 } |
9878 | 9885 |
9879 | 9886 |
9880 const char* Instructions::ToCString() const { | 9887 const char* Instructions::ToCString() const { |
9881 return "Instructions"; | 9888 return "Instructions"; |
9882 } | 9889 } |
9883 | 9890 |
9884 | 9891 |
9885 void Instructions::PrintToJSONStream(JSONStream* stream, bool ref) const { | 9892 void Instructions::PrintJSONImpl(JSONStream* stream, bool ref) const { |
9886 Object::PrintToJSONStream(stream, ref); | 9893 Object::PrintJSONImpl(stream, ref); |
9887 } | 9894 } |
9888 | 9895 |
9889 | 9896 |
9890 intptr_t PcDescriptors::Length() const { | 9897 intptr_t PcDescriptors::Length() const { |
9891 return raw_ptr()->length_; | 9898 return raw_ptr()->length_; |
9892 } | 9899 } |
9893 | 9900 |
9894 | 9901 |
9895 void PcDescriptors::SetLength(intptr_t value) const { | 9902 void PcDescriptors::SetLength(intptr_t value) const { |
9896 raw_ptr()->length_ = value; | 9903 raw_ptr()->length_ = value; |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10027 PC(i), | 10034 PC(i), |
10028 KindAsStr(i), | 10035 KindAsStr(i), |
10029 DeoptId(i), | 10036 DeoptId(i), |
10030 TokenPos(i), | 10037 TokenPos(i), |
10031 TryIndex(i)); | 10038 TryIndex(i)); |
10032 } | 10039 } |
10033 return buffer; | 10040 return buffer; |
10034 } | 10041 } |
10035 | 10042 |
10036 | 10043 |
10037 void PcDescriptors::PrintToJSONStream(JSONStream* stream, bool ref) const { | 10044 void PcDescriptors::PrintJSONImpl(JSONStream* stream, bool ref) const { |
10038 Object::PrintToJSONStream(stream, ref); | 10045 Object::PrintJSONImpl(stream, ref); |
10039 } | 10046 } |
10040 | 10047 |
10041 | 10048 |
10042 // Verify assumptions (in debug mode only). | 10049 // Verify assumptions (in debug mode only). |
10043 // - No two deopt descriptors have the same deoptimization id. | 10050 // - No two deopt descriptors have the same deoptimization id. |
10044 // - No two ic-call descriptors have the same deoptimization id (type feedback). | 10051 // - No two ic-call descriptors have the same deoptimization id (type feedback). |
10045 // A function without unique ids is marked as non-optimizable (e.g., because of | 10052 // A function without unique ids is marked as non-optimizable (e.g., because of |
10046 // finally blocks). | 10053 // finally blocks). |
10047 void PcDescriptors::Verify(const Function& function) const { | 10054 void PcDescriptors::Verify(const Function& function) const { |
10048 #if defined(DEBUG) | 10055 #if defined(DEBUG) |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10177 intptr_t index = OS::SNPrint(chars, alloc_size, kFormat, PC()); | 10184 intptr_t index = OS::SNPrint(chars, alloc_size, kFormat, PC()); |
10178 for (intptr_t i = 0; i < Length(); i++) { | 10185 for (intptr_t i = 0; i < Length(); i++) { |
10179 chars[index++] = IsObject(i) ? '1' : '0'; | 10186 chars[index++] = IsObject(i) ? '1' : '0'; |
10180 } | 10187 } |
10181 chars[index] = '\0'; | 10188 chars[index] = '\0'; |
10182 return chars; | 10189 return chars; |
10183 } | 10190 } |
10184 } | 10191 } |
10185 | 10192 |
10186 | 10193 |
10187 void Stackmap::PrintToJSONStream(JSONStream* stream, bool ref) const { | 10194 void Stackmap::PrintJSONImpl(JSONStream* stream, bool ref) const { |
10188 Object::PrintToJSONStream(stream, ref); | 10195 Object::PrintJSONImpl(stream, ref); |
10189 } | 10196 } |
10190 | 10197 |
10191 | 10198 |
10192 RawString* LocalVarDescriptors::GetName(intptr_t var_index) const { | 10199 RawString* LocalVarDescriptors::GetName(intptr_t var_index) const { |
10193 ASSERT(var_index < Length()); | 10200 ASSERT(var_index < Length()); |
10194 const Array& names = Array::Handle(raw_ptr()->names_); | 10201 const Array& names = Array::Handle(raw_ptr()->names_); |
10195 ASSERT(Length() == names.Length()); | 10202 ASSERT(Length() == names.Length()); |
10196 String& name = String::Handle(); | 10203 String& name = String::Handle(); |
10197 name ^= names.At(var_index); | 10204 name ^= names.At(var_index); |
10198 return name.raw(); | 10205 return name.raw(); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10252 info.kind, | 10259 info.kind, |
10253 info.scope_id, | 10260 info.scope_id, |
10254 info.begin_pos, | 10261 info.begin_pos, |
10255 info.end_pos, | 10262 info.end_pos, |
10256 var_name.ToCString()); | 10263 var_name.ToCString()); |
10257 } | 10264 } |
10258 return buffer; | 10265 return buffer; |
10259 } | 10266 } |
10260 | 10267 |
10261 | 10268 |
10262 void LocalVarDescriptors::PrintToJSONStream(JSONStream* stream, | 10269 void LocalVarDescriptors::PrintJSONImpl(JSONStream* stream, |
10263 bool ref) const { | 10270 bool ref) const { |
10264 Object::PrintToJSONStream(stream, ref); | 10271 Object::PrintJSONImpl(stream, ref); |
10265 } | 10272 } |
10266 | 10273 |
10267 | 10274 |
10268 RawLocalVarDescriptors* LocalVarDescriptors::New(intptr_t num_variables) { | 10275 RawLocalVarDescriptors* LocalVarDescriptors::New(intptr_t num_variables) { |
10269 ASSERT(Object::var_descriptors_class() != Class::null()); | 10276 ASSERT(Object::var_descriptors_class() != Class::null()); |
10270 if (num_variables < 0 || num_variables > kMaxElements) { | 10277 if (num_variables < 0 || num_variables > kMaxElements) { |
10271 // This should be caught before we reach here. | 10278 // This should be caught before we reach here. |
10272 FATAL1("Fatal error in LocalVarDescriptors::New: " | 10279 FATAL1("Fatal error in LocalVarDescriptors::New: " |
10273 "invalid num_variables %" Pd "\n", num_variables); | 10280 "invalid num_variables %" Pd "\n", num_variables); |
10274 } | 10281 } |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10436 type ^= handled_types.At(k); | 10443 type ^= handled_types.At(k); |
10437 num_chars += OS::SNPrint((buffer + num_chars), | 10444 num_chars += OS::SNPrint((buffer + num_chars), |
10438 (len - num_chars), | 10445 (len - num_chars), |
10439 kFormat2, k, type.ToCString()); | 10446 kFormat2, k, type.ToCString()); |
10440 } | 10447 } |
10441 } | 10448 } |
10442 return buffer; | 10449 return buffer; |
10443 } | 10450 } |
10444 | 10451 |
10445 | 10452 |
10446 void ExceptionHandlers::PrintToJSONStream(JSONStream* stream, | 10453 void ExceptionHandlers::PrintJSONImpl(JSONStream* stream, |
10447 bool ref) const { | 10454 bool ref) const { |
10448 Object::PrintToJSONStream(stream, ref); | 10455 Object::PrintJSONImpl(stream, ref); |
10449 } | 10456 } |
10450 | 10457 |
10451 | 10458 |
10452 intptr_t DeoptInfo::Length() const { | 10459 intptr_t DeoptInfo::Length() const { |
10453 return Smi::Value(raw_ptr()->length_); | 10460 return Smi::Value(raw_ptr()->length_); |
10454 } | 10461 } |
10455 | 10462 |
10456 | 10463 |
10457 intptr_t DeoptInfo::FromIndex(intptr_t index) const { | 10464 intptr_t DeoptInfo::FromIndex(intptr_t index) const { |
10458 return *(EntryAddr(index, kFromIndex)); | 10465 return *(EntryAddr(index, kFromIndex)); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10554 GrowableArray<DeoptInstr*> unpacked(length); | 10561 GrowableArray<DeoptInstr*> unpacked(length); |
10555 ToInstructions(deopt_table, &unpacked); | 10562 ToInstructions(deopt_table, &unpacked); |
10556 ASSERT(unpacked.length() == original.length()); | 10563 ASSERT(unpacked.length() == original.length()); |
10557 for (intptr_t i = 0; i < unpacked.length(); ++i) { | 10564 for (intptr_t i = 0; i < unpacked.length(); ++i) { |
10558 ASSERT(unpacked[i]->Equals(*original[i])); | 10565 ASSERT(unpacked[i]->Equals(*original[i])); |
10559 } | 10566 } |
10560 return true; | 10567 return true; |
10561 } | 10568 } |
10562 | 10569 |
10563 | 10570 |
10564 void DeoptInfo::PrintToJSONStream(JSONStream* stream, bool ref) const { | 10571 void DeoptInfo::PrintJSONImpl(JSONStream* stream, bool ref) const { |
10565 Object::PrintToJSONStream(stream, ref); | 10572 Object::PrintJSONImpl(stream, ref); |
10566 } | 10573 } |
10567 | 10574 |
10568 | 10575 |
10569 RawDeoptInfo* DeoptInfo::New(intptr_t num_commands) { | 10576 RawDeoptInfo* DeoptInfo::New(intptr_t num_commands) { |
10570 ASSERT(Object::deopt_info_class() != Class::null()); | 10577 ASSERT(Object::deopt_info_class() != Class::null()); |
10571 if ((num_commands < 0) || (num_commands > kMaxElements)) { | 10578 if ((num_commands < 0) || (num_commands > kMaxElements)) { |
10572 FATAL1("Fatal error in DeoptInfo::New(): invalid num_commands %" Pd "\n", | 10579 FATAL1("Fatal error in DeoptInfo::New(): invalid num_commands %" Pd "\n", |
10573 num_commands); | 10580 num_commands); |
10574 } | 10581 } |
10575 DeoptInfo& result = DeoptInfo::Handle(); | 10582 DeoptInfo& result = DeoptInfo::Handle(); |
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11109 // Number of array elements in one test entry. | 11116 // Number of array elements in one test entry. |
11110 intptr_t len = result.TestEntryLength(); | 11117 intptr_t len = result.TestEntryLength(); |
11111 // IC data array must be null terminated (sentinel entry). | 11118 // IC data array must be null terminated (sentinel entry). |
11112 const Array& ic_data = Array::Handle(Array::New(len, Heap::kOld)); | 11119 const Array& ic_data = Array::Handle(Array::New(len, Heap::kOld)); |
11113 result.set_ic_data(ic_data); | 11120 result.set_ic_data(ic_data); |
11114 result.WriteSentinel(ic_data); | 11121 result.WriteSentinel(ic_data); |
11115 return result.raw(); | 11122 return result.raw(); |
11116 } | 11123 } |
11117 | 11124 |
11118 | 11125 |
11119 void ICData::PrintToJSONStream(JSONStream* stream, bool ref) const { | 11126 void ICData::PrintJSONImpl(JSONStream* stream, bool ref) const { |
11120 Object::PrintToJSONStream(stream, ref); | 11127 Object::PrintJSONImpl(stream, ref); |
11121 } | 11128 } |
11122 | 11129 |
11123 | 11130 |
11124 Code::Comments& Code::Comments::New(intptr_t count) { | 11131 Code::Comments& Code::Comments::New(intptr_t count) { |
11125 Comments* comments; | 11132 Comments* comments; |
11126 if (count < 0 || count > (kIntptrMax / kNumberOfEntries)) { | 11133 if (count < 0 || count > (kIntptrMax / kNumberOfEntries)) { |
11127 // This should be caught before we reach here. | 11134 // This should be caught before we reach here. |
11128 FATAL1("Fatal error in Code::Comments::New: invalid count %" Pd "\n", | 11135 FATAL1("Fatal error in Code::Comments::New: invalid count %" Pd "\n", |
11129 count); | 11136 count); |
11130 } | 11137 } |
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11593 ASSERT(!cls_name.IsNull()); | 11600 ASSERT(!cls_name.IsNull()); |
11594 return String::Concat(Symbols::AllocationStubFor(), cls_name); | 11601 return String::Concat(Symbols::AllocationStubFor(), cls_name); |
11595 } else { | 11602 } else { |
11596 ASSERT(obj.IsFunction()); | 11603 ASSERT(obj.IsFunction()); |
11597 // Dart function. | 11604 // Dart function. |
11598 return Function::Cast(obj).QualifiedUserVisibleName(); | 11605 return Function::Cast(obj).QualifiedUserVisibleName(); |
11599 } | 11606 } |
11600 } | 11607 } |
11601 | 11608 |
11602 | 11609 |
11603 void Code::PrintToJSONStream(JSONStream* stream, bool ref) const { | 11610 void Code::PrintJSONImpl(JSONStream* stream, bool ref) const { |
11604 JSONObject jsobj(stream); | 11611 JSONObject jsobj(stream); |
11605 jsobj.AddProperty("type", JSONType(ref)); | 11612 jsobj.AddProperty("type", JSONType(ref)); |
11606 jsobj.AddPropertyF("id", "code/%" Px64"-%" Px "", compile_timestamp(), | 11613 jsobj.AddPropertyF("id", "code/%" Px64"-%" Px "", compile_timestamp(), |
11607 EntryPoint()); | 11614 EntryPoint()); |
11608 jsobj.AddPropertyF("start", "%" Px "", EntryPoint()); | 11615 jsobj.AddPropertyF("start", "%" Px "", EntryPoint()); |
11609 jsobj.AddPropertyF("end", "%" Px "", EntryPoint() + Size()); | 11616 jsobj.AddPropertyF("end", "%" Px "", EntryPoint() + Size()); |
11610 jsobj.AddProperty("is_optimized", is_optimized()); | 11617 jsobj.AddProperty("is_optimized", is_optimized()); |
11611 jsobj.AddProperty("is_alive", is_alive()); | 11618 jsobj.AddProperty("is_alive", is_alive()); |
11612 jsobj.AddProperty("kind", "Dart"); | 11619 jsobj.AddProperty("kind", "Dart"); |
11613 const String& name = String::Handle(Name()); | 11620 const String& name = String::Handle(Name()); |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11805 | 11812 |
11806 const Context& parent_ctx = Context::Handle(parent()); | 11813 const Context& parent_ctx = Context::Handle(parent()); |
11807 if (!parent_ctx.IsNull()) { | 11814 if (!parent_ctx.IsNull()) { |
11808 parent_ctx.Dump(indent + 2); | 11815 parent_ctx.Dump(indent + 2); |
11809 } | 11816 } |
11810 IndentN(indent); | 11817 IndentN(indent); |
11811 OS::PrintErr("}\n"); | 11818 OS::PrintErr("}\n"); |
11812 } | 11819 } |
11813 | 11820 |
11814 | 11821 |
11815 void Context::PrintToJSONStream(JSONStream* stream, bool ref) const { | 11822 void Context::PrintJSONImpl(JSONStream* stream, bool ref) const { |
11816 Object::PrintToJSONStream(stream, ref); | 11823 Object::PrintJSONImpl(stream, ref); |
11817 } | 11824 } |
11818 | 11825 |
11819 | 11826 |
11820 RawContextScope* ContextScope::New(intptr_t num_variables) { | 11827 RawContextScope* ContextScope::New(intptr_t num_variables) { |
11821 ASSERT(Object::context_scope_class() != Class::null()); | 11828 ASSERT(Object::context_scope_class() != Class::null()); |
11822 if (num_variables < 0 || num_variables > kMaxElements) { | 11829 if (num_variables < 0 || num_variables > kMaxElements) { |
11823 // This should be caught before we reach here. | 11830 // This should be caught before we reach here. |
11824 FATAL1("Fatal error in ContextScope::New: invalid num_variables %" Pd "\n", | 11831 FATAL1("Fatal error in ContextScope::New: invalid num_variables %" Pd "\n", |
11825 num_variables); | 11832 num_variables); |
11826 } | 11833 } |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11924 intptr_t context_level) const { | 11931 intptr_t context_level) const { |
11925 VariableDescAddr(scope_index)->context_level = Smi::New(context_level); | 11932 VariableDescAddr(scope_index)->context_level = Smi::New(context_level); |
11926 } | 11933 } |
11927 | 11934 |
11928 | 11935 |
11929 const char* ContextScope::ToCString() const { | 11936 const char* ContextScope::ToCString() const { |
11930 return "ContextScope"; | 11937 return "ContextScope"; |
11931 } | 11938 } |
11932 | 11939 |
11933 | 11940 |
11934 void ContextScope::PrintToJSONStream(JSONStream* stream, bool ref) const { | 11941 void ContextScope::PrintJSONImpl(JSONStream* stream, bool ref) const { |
11935 Object::PrintToJSONStream(stream, ref); | 11942 Object::PrintJSONImpl(stream, ref); |
11936 } | 11943 } |
11937 | 11944 |
11938 | 11945 |
11939 RawArray* MegamorphicCache::buckets() const { | 11946 RawArray* MegamorphicCache::buckets() const { |
11940 return raw_ptr()->buckets_; | 11947 return raw_ptr()->buckets_; |
11941 } | 11948 } |
11942 | 11949 |
11943 | 11950 |
11944 void MegamorphicCache::set_buckets(const Array& buckets) const { | 11951 void MegamorphicCache::set_buckets(const Array& buckets) const { |
11945 StorePointer(&raw_ptr()->buckets_, buckets.raw()); | 11952 StorePointer(&raw_ptr()->buckets_, buckets.raw()); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12040 } while (i != index); | 12047 } while (i != index); |
12041 UNREACHABLE(); | 12048 UNREACHABLE(); |
12042 } | 12049 } |
12043 | 12050 |
12044 | 12051 |
12045 const char* MegamorphicCache::ToCString() const { | 12052 const char* MegamorphicCache::ToCString() const { |
12046 return ""; | 12053 return ""; |
12047 } | 12054 } |
12048 | 12055 |
12049 | 12056 |
12050 void MegamorphicCache::PrintToJSONStream(JSONStream* stream, bool ref) const { | 12057 void MegamorphicCache::PrintJSONImpl(JSONStream* stream, bool ref) const { |
12051 Object::PrintToJSONStream(stream, ref); | 12058 Object::PrintJSONImpl(stream, ref); |
12052 } | 12059 } |
12053 | 12060 |
12054 | 12061 |
12055 RawSubtypeTestCache* SubtypeTestCache::New() { | 12062 RawSubtypeTestCache* SubtypeTestCache::New() { |
12056 ASSERT(Object::subtypetestcache_class() != Class::null()); | 12063 ASSERT(Object::subtypetestcache_class() != Class::null()); |
12057 SubtypeTestCache& result = SubtypeTestCache::Handle(); | 12064 SubtypeTestCache& result = SubtypeTestCache::Handle(); |
12058 { | 12065 { |
12059 // SubtypeTestCache objects are long living objects, allocate them in the | 12066 // SubtypeTestCache objects are long living objects, allocate them in the |
12060 // old generation. | 12067 // old generation. |
12061 RawObject* raw = Object::Allocate(SubtypeTestCache::kClassId, | 12068 RawObject* raw = Object::Allocate(SubtypeTestCache::kClassId, |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12116 data.At(data_pos + kInstantiatorTypeArguments); | 12123 data.At(data_pos + kInstantiatorTypeArguments); |
12117 *test_result ^= data.At(data_pos + kTestResult); | 12124 *test_result ^= data.At(data_pos + kTestResult); |
12118 } | 12125 } |
12119 | 12126 |
12120 | 12127 |
12121 const char* SubtypeTestCache::ToCString() const { | 12128 const char* SubtypeTestCache::ToCString() const { |
12122 return "SubtypeTestCache"; | 12129 return "SubtypeTestCache"; |
12123 } | 12130 } |
12124 | 12131 |
12125 | 12132 |
12126 void SubtypeTestCache::PrintToJSONStream(JSONStream* stream, bool ref) const { | 12133 void SubtypeTestCache::PrintJSONImpl(JSONStream* stream, bool ref) const { |
12127 Object::PrintToJSONStream(stream, ref); | 12134 Object::PrintJSONImpl(stream, ref); |
12128 } | 12135 } |
12129 | 12136 |
12130 | 12137 |
12131 const char* Error::ToErrorCString() const { | 12138 const char* Error::ToErrorCString() const { |
12132 UNREACHABLE(); | 12139 UNREACHABLE(); |
12133 return "Internal Error"; | 12140 return "Internal Error"; |
12134 } | 12141 } |
12135 | 12142 |
12136 | 12143 |
12137 const char* Error::ToCString() const { | 12144 const char* Error::ToCString() const { |
12138 // Error is an abstract class. We should never reach here. | 12145 // Error is an abstract class. We should never reach here. |
12139 UNREACHABLE(); | 12146 UNREACHABLE(); |
12140 return "Error"; | 12147 return "Error"; |
12141 } | 12148 } |
12142 | 12149 |
12143 | 12150 |
12144 void Error::PrintToJSONStream(JSONStream* stream, bool ref) const { | 12151 void Error::PrintJSONImpl(JSONStream* stream, bool ref) const { |
12145 UNREACHABLE(); | 12152 UNREACHABLE(); |
12146 } | 12153 } |
12147 | 12154 |
12148 | 12155 |
12149 RawApiError* ApiError::New() { | 12156 RawApiError* ApiError::New() { |
12150 ASSERT(Object::api_error_class() != Class::null()); | 12157 ASSERT(Object::api_error_class() != Class::null()); |
12151 RawObject* raw = Object::Allocate(ApiError::kClassId, | 12158 RawObject* raw = Object::Allocate(ApiError::kClassId, |
12152 ApiError::InstanceSize(), | 12159 ApiError::InstanceSize(), |
12153 Heap::kOld); | 12160 Heap::kOld); |
12154 return reinterpret_cast<RawApiError*>(raw); | 12161 return reinterpret_cast<RawApiError*>(raw); |
(...skipping 24 matching lines...) Expand all Loading... |
12179 const String& msg_str = String::Handle(message()); | 12186 const String& msg_str = String::Handle(message()); |
12180 return msg_str.ToCString(); | 12187 return msg_str.ToCString(); |
12181 } | 12188 } |
12182 | 12189 |
12183 | 12190 |
12184 const char* ApiError::ToCString() const { | 12191 const char* ApiError::ToCString() const { |
12185 return "ApiError"; | 12192 return "ApiError"; |
12186 } | 12193 } |
12187 | 12194 |
12188 | 12195 |
12189 void ApiError::PrintToJSONStream(JSONStream* stream, bool ref) const { | 12196 void ApiError::PrintJSONImpl(JSONStream* stream, bool ref) const { |
12190 JSONObject jsobj(stream); | 12197 JSONObject jsobj(stream); |
12191 jsobj.AddProperty("type", "Error"); | 12198 jsobj.AddProperty("type", "Error"); |
12192 jsobj.AddProperty("id", ""); | 12199 jsobj.AddProperty("id", ""); |
12193 jsobj.AddProperty("kind", JSONType(false)); | 12200 jsobj.AddProperty("kind", JSONType(false)); |
12194 jsobj.AddProperty("message", ToErrorCString()); | 12201 jsobj.AddProperty("message", ToErrorCString()); |
12195 } | 12202 } |
12196 | 12203 |
12197 | 12204 |
12198 RawLanguageError* LanguageError::New() { | 12205 RawLanguageError* LanguageError::New() { |
12199 ASSERT(Object::language_error_class() != Class::null()); | 12206 ASSERT(Object::language_error_class() != Class::null()); |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12367 const String& msg_str = String::Handle(FormatMessage()); | 12374 const String& msg_str = String::Handle(FormatMessage()); |
12368 return msg_str.ToCString(); | 12375 return msg_str.ToCString(); |
12369 } | 12376 } |
12370 | 12377 |
12371 | 12378 |
12372 const char* LanguageError::ToCString() const { | 12379 const char* LanguageError::ToCString() const { |
12373 return "LanguageError"; | 12380 return "LanguageError"; |
12374 } | 12381 } |
12375 | 12382 |
12376 | 12383 |
12377 void LanguageError::PrintToJSONStream(JSONStream* stream, bool ref) const { | 12384 void LanguageError::PrintJSONImpl(JSONStream* stream, bool ref) const { |
12378 JSONObject jsobj(stream); | 12385 JSONObject jsobj(stream); |
12379 jsobj.AddProperty("type", "Error"); | 12386 jsobj.AddProperty("type", "Error"); |
12380 jsobj.AddProperty("id", ""); | 12387 jsobj.AddProperty("id", ""); |
12381 jsobj.AddProperty("kind", JSONType(false)); | 12388 jsobj.AddProperty("kind", JSONType(false)); |
12382 jsobj.AddProperty("message", ToErrorCString()); | 12389 jsobj.AddProperty("message", ToErrorCString()); |
12383 } | 12390 } |
12384 | 12391 |
12385 | 12392 |
12386 RawUnhandledException* UnhandledException::New(const Instance& exception, | 12393 RawUnhandledException* UnhandledException::New(const Instance& exception, |
12387 const Instance& stacktrace, | 12394 const Instance& stacktrace, |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12445 return chars; | 12452 return chars; |
12446 } | 12453 } |
12447 | 12454 |
12448 | 12455 |
12449 const char* UnhandledException::ToCString() const { | 12456 const char* UnhandledException::ToCString() const { |
12450 return "UnhandledException"; | 12457 return "UnhandledException"; |
12451 } | 12458 } |
12452 | 12459 |
12453 | 12460 |
12454 | 12461 |
12455 void UnhandledException::PrintToJSONStream(JSONStream* stream, | 12462 void UnhandledException::PrintJSONImpl(JSONStream* stream, |
12456 bool ref) const { | 12463 bool ref) const { |
12457 JSONObject jsobj(stream); | 12464 JSONObject jsobj(stream); |
12458 jsobj.AddProperty("type", "Error"); | 12465 jsobj.AddProperty("type", "Error"); |
12459 jsobj.AddProperty("id", ""); | 12466 jsobj.AddProperty("id", ""); |
12460 jsobj.AddProperty("kind", JSONType(false)); | 12467 jsobj.AddProperty("kind", JSONType(false)); |
12461 jsobj.AddProperty("message", ToErrorCString()); | 12468 jsobj.AddProperty("message", ToErrorCString()); |
12462 | 12469 |
12463 Instance& instance = Instance::Handle(); | 12470 Instance& instance = Instance::Handle(); |
12464 instance = exception(); | 12471 instance = exception(); |
12465 jsobj.AddProperty("exception", instance); | 12472 jsobj.AddProperty("exception", instance); |
12466 instance = stacktrace(); | 12473 instance = stacktrace(); |
(...skipping 25 matching lines...) Expand all Loading... |
12492 const String& msg_str = String::Handle(message()); | 12499 const String& msg_str = String::Handle(message()); |
12493 return msg_str.ToCString(); | 12500 return msg_str.ToCString(); |
12494 } | 12501 } |
12495 | 12502 |
12496 | 12503 |
12497 const char* UnwindError::ToCString() const { | 12504 const char* UnwindError::ToCString() const { |
12498 return "UnwindError"; | 12505 return "UnwindError"; |
12499 } | 12506 } |
12500 | 12507 |
12501 | 12508 |
12502 void UnwindError::PrintToJSONStream(JSONStream* stream, bool ref) const { | 12509 void UnwindError::PrintJSONImpl(JSONStream* stream, bool ref) const { |
12503 JSONObject jsobj(stream); | 12510 JSONObject jsobj(stream); |
12504 jsobj.AddProperty("type", "Error"); | 12511 jsobj.AddProperty("type", "Error"); |
12505 jsobj.AddProperty("id", ""); | 12512 jsobj.AddProperty("id", ""); |
12506 jsobj.AddProperty("kind", JSONType(false)); | 12513 jsobj.AddProperty("kind", JSONType(false)); |
12507 jsobj.AddProperty("message", ToErrorCString()); | 12514 jsobj.AddProperty("message", ToErrorCString()); |
12508 } | 12515 } |
12509 | 12516 |
12510 | 12517 |
12511 RawObject* Instance::Evaluate(const String& expr, | 12518 RawObject* Instance::Evaluate(const String& expr, |
12512 const Array& param_names, | 12519 const Array& param_names, |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12937 for (intptr_t i = 0; i < NumNativeFields(); i++) { | 12944 for (intptr_t i = 0; i < NumNativeFields(); i++) { |
12938 intptr_t value = GetNativeField(i); | 12945 intptr_t value = GetNativeField(i); |
12939 JSONObject jsfield(&jsarr); | 12946 JSONObject jsfield(&jsarr); |
12940 jsfield.AddProperty("index", i); | 12947 jsfield.AddProperty("index", i); |
12941 jsfield.AddProperty("value", value); | 12948 jsfield.AddProperty("value", value); |
12942 } | 12949 } |
12943 } | 12950 } |
12944 } | 12951 } |
12945 | 12952 |
12946 | 12953 |
12947 void Instance::PrintToJSONStream(JSONStream* stream, bool ref) const { | 12954 void Instance::PrintJSONImpl(JSONStream* stream, bool ref) const { |
12948 JSONObject jsobj(stream); | 12955 JSONObject jsobj(stream); |
12949 | 12956 |
12950 // Handle certain special instance values. | 12957 // Handle certain special instance values. |
12951 if (IsNull()) { | 12958 if (raw() == Object::sentinel().raw()) { |
12952 jsobj.AddProperty("type", ref ? "@Null" : "Null"); | |
12953 jsobj.AddProperty("id", "objects/null"); | |
12954 jsobj.AddProperty("valueAsString", "null"); | |
12955 return; | |
12956 } else if (raw() == Object::sentinel().raw()) { | |
12957 jsobj.AddProperty("type", ref ? "@Null" : "Null"); | 12959 jsobj.AddProperty("type", ref ? "@Null" : "Null"); |
12958 jsobj.AddProperty("id", "objects/not-initialized"); | 12960 jsobj.AddProperty("id", "objects/not-initialized"); |
12959 jsobj.AddProperty("valueAsString", "<not initialized>"); | 12961 jsobj.AddProperty("valueAsString", "<not initialized>"); |
12960 return; | 12962 return; |
12961 } else if (raw() == Object::transition_sentinel().raw()) { | 12963 } else if (raw() == Object::transition_sentinel().raw()) { |
12962 jsobj.AddProperty("type", ref ? "@Null" : "Null"); | 12964 jsobj.AddProperty("type", ref ? "@Null" : "Null"); |
12963 jsobj.AddProperty("id", "objects/being-initialized"); | 12965 jsobj.AddProperty("id", "objects/being-initialized"); |
12964 jsobj.AddProperty("valueAsString", "<being initialized>"); | 12966 jsobj.AddProperty("valueAsString", "<being initialized>"); |
12965 return; | 12967 return; |
12966 } | 12968 } |
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13411 } | 13413 } |
13412 | 13414 |
13413 | 13415 |
13414 const char* AbstractType::ToCString() const { | 13416 const char* AbstractType::ToCString() const { |
13415 // AbstractType is an abstract class. | 13417 // AbstractType is an abstract class. |
13416 UNREACHABLE(); | 13418 UNREACHABLE(); |
13417 return "AbstractType"; | 13419 return "AbstractType"; |
13418 } | 13420 } |
13419 | 13421 |
13420 | 13422 |
13421 void AbstractType::PrintToJSONStream(JSONStream* stream, bool ref) const { | 13423 void AbstractType::PrintJSONImpl(JSONStream* stream, bool ref) const { |
13422 UNREACHABLE(); | 13424 UNREACHABLE(); |
13423 } | 13425 } |
13424 | 13426 |
13425 | 13427 |
13426 RawType* Type::NullType() { | 13428 RawType* Type::NullType() { |
13427 return Isolate::Current()->object_store()->null_type(); | 13429 return Isolate::Current()->object_store()->null_type(); |
13428 } | 13430 } |
13429 | 13431 |
13430 | 13432 |
13431 RawType* Type::DynamicType() { | 13433 RawType* Type::DynamicType() { |
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14015 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 14017 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
14016 OS::SNPrint(chars, len, format, class_name, args_cstr); | 14018 OS::SNPrint(chars, len, format, class_name, args_cstr); |
14017 return chars; | 14019 return chars; |
14018 } | 14020 } |
14019 } else { | 14021 } else { |
14020 return "Unresolved Type"; | 14022 return "Unresolved Type"; |
14021 } | 14023 } |
14022 } | 14024 } |
14023 | 14025 |
14024 | 14026 |
14025 void Type::PrintToJSONStream(JSONStream* stream, bool ref) const { | 14027 void Type::PrintJSONImpl(JSONStream* stream, bool ref) const { |
14026 JSONObject jsobj(stream); | 14028 JSONObject jsobj(stream); |
14027 PrintSharedInstanceJSON(&jsobj, ref); | 14029 PrintSharedInstanceJSON(&jsobj, ref); |
14028 if (IsCanonical()) { | 14030 if (IsCanonical()) { |
14029 const Class& type_cls = Class::Handle(type_class()); | 14031 const Class& type_cls = Class::Handle(type_class()); |
14030 intptr_t id = type_cls.FindCanonicalTypeIndex(*this); | 14032 intptr_t id = type_cls.FindCanonicalTypeIndex(*this); |
14031 ASSERT(id >= 0); | 14033 ASSERT(id >= 0); |
14032 intptr_t cid = type_cls.id(); | 14034 intptr_t cid = type_cls.id(); |
14033 jsobj.AddPropertyF("id", "classes/%" Pd "/types/%" Pd "", cid, id); | 14035 jsobj.AddPropertyF("id", "classes/%" Pd "/types/%" Pd "", cid, id); |
14034 jsobj.AddProperty("type_class", type_cls); | 14036 jsobj.AddProperty("type_class", type_cls); |
14035 } else { | 14037 } else { |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14188 } else { | 14190 } else { |
14189 const char* format = "TypeRef: %s<...>"; | 14191 const char* format = "TypeRef: %s<...>"; |
14190 const intptr_t len = OS::SNPrint(NULL, 0, format, type_cstr) + 1; | 14192 const intptr_t len = OS::SNPrint(NULL, 0, format, type_cstr) + 1; |
14191 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 14193 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
14192 OS::SNPrint(chars, len, format, type_cstr); | 14194 OS::SNPrint(chars, len, format, type_cstr); |
14193 return chars; | 14195 return chars; |
14194 } | 14196 } |
14195 } | 14197 } |
14196 | 14198 |
14197 | 14199 |
14198 void TypeRef::PrintToJSONStream(JSONStream* stream, bool ref) const { | 14200 void TypeRef::PrintJSONImpl(JSONStream* stream, bool ref) const { |
14199 JSONObject jsobj(stream); | 14201 JSONObject jsobj(stream); |
14200 PrintSharedInstanceJSON(&jsobj, ref); | 14202 PrintSharedInstanceJSON(&jsobj, ref); |
14201 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 14203 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
14202 const intptr_t id = ring->GetIdForObject(raw()); | 14204 const intptr_t id = ring->GetIdForObject(raw()); |
14203 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 14205 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
14204 const char* name = String::Handle(Name()).ToCString(); | 14206 const char* name = String::Handle(Name()).ToCString(); |
14205 const char* user_name = String::Handle(UserVisibleName()).ToCString(); | 14207 const char* user_name = String::Handle(UserVisibleName()).ToCString(); |
14206 jsobj.AddProperty("name", name); | 14208 jsobj.AddProperty("name", name); |
14207 jsobj.AddProperty("user_name", user_name); | 14209 jsobj.AddProperty("user_name", user_name); |
14208 if (ref) { | 14210 if (ref) { |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14405 const AbstractType& upper_bound = AbstractType::Handle(bound()); | 14407 const AbstractType& upper_bound = AbstractType::Handle(bound()); |
14406 const char* bound_cstr = String::Handle(upper_bound.Name()).ToCString(); | 14408 const char* bound_cstr = String::Handle(upper_bound.Name()).ToCString(); |
14407 intptr_t len = OS::SNPrint( | 14409 intptr_t len = OS::SNPrint( |
14408 NULL, 0, format, name_cstr, index(), cls_cstr, bound_cstr) + 1; | 14410 NULL, 0, format, name_cstr, index(), cls_cstr, bound_cstr) + 1; |
14409 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 14411 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
14410 OS::SNPrint(chars, len, format, name_cstr, index(), cls_cstr, bound_cstr); | 14412 OS::SNPrint(chars, len, format, name_cstr, index(), cls_cstr, bound_cstr); |
14411 return chars; | 14413 return chars; |
14412 } | 14414 } |
14413 | 14415 |
14414 | 14416 |
14415 void TypeParameter::PrintToJSONStream(JSONStream* stream, bool ref) const { | 14417 void TypeParameter::PrintJSONImpl(JSONStream* stream, bool ref) const { |
14416 JSONObject jsobj(stream); | 14418 JSONObject jsobj(stream); |
14417 PrintSharedInstanceJSON(&jsobj, ref); | 14419 PrintSharedInstanceJSON(&jsobj, ref); |
14418 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 14420 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
14419 const intptr_t id = ring->GetIdForObject(raw()); | 14421 const intptr_t id = ring->GetIdForObject(raw()); |
14420 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 14422 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
14421 const char* name = String::Handle(Name()).ToCString(); | 14423 const char* name = String::Handle(Name()).ToCString(); |
14422 const char* user_name = String::Handle(UserVisibleName()).ToCString(); | 14424 const char* user_name = String::Handle(UserVisibleName()).ToCString(); |
14423 jsobj.AddProperty("name", name); | 14425 jsobj.AddProperty("name", name); |
14424 jsobj.AddProperty("user_name", user_name); | 14426 jsobj.AddProperty("user_name", user_name); |
14425 const Class& param_cls = Class::Handle(parameterized_class()); | 14427 const Class& param_cls = Class::Handle(parameterized_class()); |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14609 const char* cls_cstr = String::Handle(cls.Name()).ToCString(); | 14611 const char* cls_cstr = String::Handle(cls.Name()).ToCString(); |
14610 intptr_t len = OS::SNPrint( | 14612 intptr_t len = OS::SNPrint( |
14611 NULL, 0, format, type_cstr, bound_cstr, type_param_cstr, cls_cstr) + 1; | 14613 NULL, 0, format, type_cstr, bound_cstr, type_param_cstr, cls_cstr) + 1; |
14612 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 14614 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
14613 OS::SNPrint( | 14615 OS::SNPrint( |
14614 chars, len, format, type_cstr, bound_cstr, type_param_cstr, cls_cstr); | 14616 chars, len, format, type_cstr, bound_cstr, type_param_cstr, cls_cstr); |
14615 return chars; | 14617 return chars; |
14616 } | 14618 } |
14617 | 14619 |
14618 | 14620 |
14619 void BoundedType::PrintToJSONStream(JSONStream* stream, bool ref) const { | 14621 void BoundedType::PrintJSONImpl(JSONStream* stream, bool ref) const { |
14620 JSONObject jsobj(stream); | 14622 JSONObject jsobj(stream); |
14621 PrintSharedInstanceJSON(&jsobj, ref); | 14623 PrintSharedInstanceJSON(&jsobj, ref); |
14622 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 14624 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
14623 const intptr_t id = ring->GetIdForObject(raw()); | 14625 const intptr_t id = ring->GetIdForObject(raw()); |
14624 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 14626 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
14625 const char* name = String::Handle(Name()).ToCString(); | 14627 const char* name = String::Handle(Name()).ToCString(); |
14626 const char* user_name = String::Handle(UserVisibleName()).ToCString(); | 14628 const char* user_name = String::Handle(UserVisibleName()).ToCString(); |
14627 jsobj.AddProperty("name", name); | 14629 jsobj.AddProperty("name", name); |
14628 jsobj.AddProperty("user_name", user_name); | 14630 jsobj.AddProperty("user_name", user_name); |
14629 if (ref) { | 14631 if (ref) { |
(...skipping 26 matching lines...) Expand all Loading... |
14656 const char* first_mixin_type_cstr = String::Handle(AbstractType::Handle( | 14658 const char* first_mixin_type_cstr = String::Handle(AbstractType::Handle( |
14657 MixinTypeAt(0)).Name()).ToCString(); | 14659 MixinTypeAt(0)).Name()).ToCString(); |
14658 intptr_t len = OS::SNPrint( | 14660 intptr_t len = OS::SNPrint( |
14659 NULL, 0, format, super_type_cstr, first_mixin_type_cstr) + 1; | 14661 NULL, 0, format, super_type_cstr, first_mixin_type_cstr) + 1; |
14660 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 14662 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
14661 OS::SNPrint(chars, len, format, super_type_cstr, first_mixin_type_cstr); | 14663 OS::SNPrint(chars, len, format, super_type_cstr, first_mixin_type_cstr); |
14662 return chars; | 14664 return chars; |
14663 } | 14665 } |
14664 | 14666 |
14665 | 14667 |
14666 void MixinAppType::PrintToJSONStream(JSONStream* stream, bool ref) const { | 14668 void MixinAppType::PrintJSONImpl(JSONStream* stream, bool ref) const { |
14667 UNREACHABLE(); | 14669 UNREACHABLE(); |
14668 } | 14670 } |
14669 | 14671 |
14670 | 14672 |
14671 RawAbstractType* MixinAppType::MixinTypeAt(intptr_t depth) const { | 14673 RawAbstractType* MixinAppType::MixinTypeAt(intptr_t depth) const { |
14672 return AbstractType::RawCast(Array::Handle(mixin_types()).At(depth)); | 14674 return AbstractType::RawCast(Array::Handle(mixin_types()).At(depth)); |
14673 } | 14675 } |
14674 | 14676 |
14675 | 14677 |
14676 void MixinAppType::set_super_type(const AbstractType& value) const { | 14678 void MixinAppType::set_super_type(const AbstractType& value) const { |
(...skipping 27 matching lines...) Expand all Loading... |
14704 } | 14706 } |
14705 | 14707 |
14706 | 14708 |
14707 const char* Number::ToCString() const { | 14709 const char* Number::ToCString() const { |
14708 // Number is an interface. No instances of Number should exist. | 14710 // Number is an interface. No instances of Number should exist. |
14709 UNREACHABLE(); | 14711 UNREACHABLE(); |
14710 return "Number"; | 14712 return "Number"; |
14711 } | 14713 } |
14712 | 14714 |
14713 | 14715 |
14714 void Number::PrintToJSONStream(JSONStream* stream, bool ref) const { | 14716 void Number::PrintJSONImpl(JSONStream* stream, bool ref) const { |
14715 JSONObject jsobj(stream); | 14717 JSONObject jsobj(stream); |
14716 PrintSharedInstanceJSON(&jsobj, ref); | 14718 PrintSharedInstanceJSON(&jsobj, ref); |
14717 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 14719 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
14718 const intptr_t id = ring->GetIdForObject(raw()); | 14720 const intptr_t id = ring->GetIdForObject(raw()); |
14719 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 14721 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
14720 jsobj.AddProperty("valueAsString", ToCString()); | 14722 jsobj.AddProperty("valueAsString", ToCString()); |
14721 } | 14723 } |
14722 | 14724 |
14723 | 14725 |
14724 const char* Integer::ToCString() const { | 14726 const char* Integer::ToCString() const { |
14725 // Integer is an interface. No instances of Integer should exist. | 14727 // Integer is an interface. No instances of Integer should exist. |
14726 UNREACHABLE(); | 14728 UNREACHABLE(); |
14727 return "Integer"; | 14729 return "Integer"; |
14728 } | 14730 } |
14729 | 14731 |
14730 | 14732 |
14731 void Integer::PrintToJSONStream(JSONStream* stream, bool ref) const { | 14733 void Integer::PrintJSONImpl(JSONStream* stream, bool ref) const { |
14732 Number::PrintToJSONStream(stream, ref); | 14734 Number::PrintJSONImpl(stream, ref); |
14733 } | 14735 } |
14734 | 14736 |
14735 | 14737 |
14736 // Throw JavascriptIntegerOverflow exception. | 14738 // Throw JavascriptIntegerOverflow exception. |
14737 static void ThrowJavascriptIntegerOverflow(const Integer& i) { | 14739 static void ThrowJavascriptIntegerOverflow(const Integer& i) { |
14738 const Array& exc_args = Array::Handle(Array::New(1)); | 14740 const Array& exc_args = Array::Handle(Array::New(1)); |
14739 const String& i_str = String::Handle(String::New(i.ToCString())); | 14741 const String& i_str = String::Handle(String::New(i.ToCString())); |
14740 exc_args.SetAt(0, i_str); | 14742 exc_args.SetAt(0, i_str); |
14741 Exceptions::ThrowByType(Exceptions::kJavascriptIntegerOverflowError, | 14743 Exceptions::ThrowByType(Exceptions::kJavascriptIntegerOverflowError, |
14742 exc_args); | 14744 exc_args); |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15150 const char* Smi::ToCString() const { | 15152 const char* Smi::ToCString() const { |
15151 const char* kFormat = "%ld"; | 15153 const char* kFormat = "%ld"; |
15152 // Calculate the size of the string. | 15154 // Calculate the size of the string. |
15153 intptr_t len = OS::SNPrint(NULL, 0, kFormat, Value()) + 1; | 15155 intptr_t len = OS::SNPrint(NULL, 0, kFormat, Value()) + 1; |
15154 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 15156 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
15155 OS::SNPrint(chars, len, kFormat, Value()); | 15157 OS::SNPrint(chars, len, kFormat, Value()); |
15156 return chars; | 15158 return chars; |
15157 } | 15159 } |
15158 | 15160 |
15159 | 15161 |
15160 void Smi::PrintToJSONStream(JSONStream* stream, bool ref) const { | 15162 void Smi::PrintJSONImpl(JSONStream* stream, bool ref) const { |
15161 JSONObject jsobj(stream); | 15163 JSONObject jsobj(stream); |
15162 PrintSharedInstanceJSON(&jsobj, ref); | 15164 PrintSharedInstanceJSON(&jsobj, ref); |
15163 jsobj.AddPropertyF("id", "objects/int-%" Pd "", Value()); | 15165 jsobj.AddPropertyF("id", "objects/int-%" Pd "", Value()); |
15164 jsobj.AddPropertyF("valueAsString", "%" Pd "", Value()); | 15166 jsobj.AddPropertyF("valueAsString", "%" Pd "", Value()); |
15165 } | 15167 } |
15166 | 15168 |
15167 | 15169 |
15168 RawClass* Smi::Class() { | 15170 RawClass* Smi::Class() { |
15169 return Isolate::Current()->object_store()->smi_class(); | 15171 return Isolate::Current()->object_store()->smi_class(); |
15170 } | 15172 } |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15277 const char* Mint::ToCString() const { | 15279 const char* Mint::ToCString() const { |
15278 const char* kFormat = "%lld"; | 15280 const char* kFormat = "%lld"; |
15279 // Calculate the size of the string. | 15281 // Calculate the size of the string. |
15280 intptr_t len = OS::SNPrint(NULL, 0, kFormat, value()) + 1; | 15282 intptr_t len = OS::SNPrint(NULL, 0, kFormat, value()) + 1; |
15281 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 15283 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
15282 OS::SNPrint(chars, len, kFormat, value()); | 15284 OS::SNPrint(chars, len, kFormat, value()); |
15283 return chars; | 15285 return chars; |
15284 } | 15286 } |
15285 | 15287 |
15286 | 15288 |
15287 void Mint::PrintToJSONStream(JSONStream* stream, bool ref) const { | 15289 void Mint::PrintJSONImpl(JSONStream* stream, bool ref) const { |
15288 Number::PrintToJSONStream(stream, ref); | 15290 Number::PrintJSONImpl(stream, ref); |
15289 } | 15291 } |
15290 | 15292 |
15291 | 15293 |
15292 void Double::set_value(double value) const { | 15294 void Double::set_value(double value) const { |
15293 raw_ptr()->value_ = value; | 15295 raw_ptr()->value_ = value; |
15294 } | 15296 } |
15295 | 15297 |
15296 | 15298 |
15297 bool Double::EqualsToDouble(double value) const { | 15299 bool Double::EqualsToDouble(double value) const { |
15298 intptr_t value_offset = Double::value_offset(); | 15300 intptr_t value_offset = Double::value_offset(); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15383 return value() < 0 ? "-Infinity" : "Infinity"; | 15385 return value() < 0 ? "-Infinity" : "Infinity"; |
15384 } | 15386 } |
15385 const int kBufferSize = 128; | 15387 const int kBufferSize = 128; |
15386 char* buffer = Isolate::Current()->current_zone()->Alloc<char>(kBufferSize); | 15388 char* buffer = Isolate::Current()->current_zone()->Alloc<char>(kBufferSize); |
15387 buffer[kBufferSize - 1] = '\0'; | 15389 buffer[kBufferSize - 1] = '\0'; |
15388 DoubleToCString(value(), buffer, kBufferSize); | 15390 DoubleToCString(value(), buffer, kBufferSize); |
15389 return buffer; | 15391 return buffer; |
15390 } | 15392 } |
15391 | 15393 |
15392 | 15394 |
15393 void Double::PrintToJSONStream(JSONStream* stream, bool ref) const { | 15395 void Double::PrintJSONImpl(JSONStream* stream, bool ref) const { |
15394 Number::PrintToJSONStream(stream, ref); | 15396 Number::PrintJSONImpl(stream, ref); |
15395 } | 15397 } |
15396 | 15398 |
15397 | 15399 |
15398 RawBigint* Integer::AsBigint() const { | 15400 RawBigint* Integer::AsBigint() const { |
15399 ASSERT(!IsNull()); | 15401 ASSERT(!IsNull()); |
15400 if (IsSmi()) { | 15402 if (IsSmi()) { |
15401 Smi& smi = Smi::Handle(); | 15403 Smi& smi = Smi::Handle(); |
15402 smi ^= raw(); | 15404 smi ^= raw(); |
15403 return BigintOperations::NewFromSmi(smi); | 15405 return BigintOperations::NewFromSmi(smi); |
15404 } else if (IsMint()) { | 15406 } else if (IsMint()) { |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15559 Zone* zone = Isolate::Current()->current_zone(); | 15561 Zone* zone = Isolate::Current()->current_zone(); |
15560 return zone->AllocUnsafe(size); | 15562 return zone->AllocUnsafe(size); |
15561 } | 15563 } |
15562 | 15564 |
15563 | 15565 |
15564 const char* Bigint::ToCString() const { | 15566 const char* Bigint::ToCString() const { |
15565 return BigintOperations::ToDecimalCString(*this, &BigintAllocator); | 15567 return BigintOperations::ToDecimalCString(*this, &BigintAllocator); |
15566 } | 15568 } |
15567 | 15569 |
15568 | 15570 |
15569 void Bigint::PrintToJSONStream(JSONStream* stream, bool ref) const { | 15571 void Bigint::PrintJSONImpl(JSONStream* stream, bool ref) const { |
15570 Number::PrintToJSONStream(stream, ref); | 15572 Number::PrintJSONImpl(stream, ref); |
15571 } | 15573 } |
15572 | 15574 |
15573 | 15575 |
15574 // Synchronize with implementation in compiler (intrinsifier). | 15576 // Synchronize with implementation in compiler (intrinsifier). |
15575 class StringHasher : ValueObject { | 15577 class StringHasher : ValueObject { |
15576 public: | 15578 public: |
15577 StringHasher() : hash_(0) {} | 15579 StringHasher() : hash_(0) {} |
15578 void Add(int32_t ch) { | 15580 void Add(int32_t ch) { |
15579 hash_ = CombineHashes(hash_, ch); | 15581 hash_ = CombineHashes(hash_, ch); |
15580 } | 15582 } |
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
16414 buffer[pos++] = '.'; | 16416 buffer[pos++] = '.'; |
16415 buffer[pos++] = '.'; | 16417 buffer[pos++] = '.'; |
16416 } | 16418 } |
16417 ASSERT(pos <= buffer_len); | 16419 ASSERT(pos <= buffer_len); |
16418 buffer[pos++] = '\0'; | 16420 buffer[pos++] = '\0'; |
16419 | 16421 |
16420 return buffer; | 16422 return buffer; |
16421 } | 16423 } |
16422 | 16424 |
16423 | 16425 |
16424 void String::PrintToJSONStream(JSONStream* stream, bool ref) const { | 16426 void String::PrintJSONImpl(JSONStream* stream, bool ref) const { |
16425 JSONObject jsobj(stream); | 16427 JSONObject jsobj(stream); |
16426 if (raw() == Symbols::OptimizedOut().raw()) { | 16428 if (raw() == Symbols::OptimizedOut().raw()) { |
16427 // TODO(turnidge): This is a hack. The user could have this | 16429 // TODO(turnidge): This is a hack. The user could have this |
16428 // special string in their program. Fixing this involves updating | 16430 // special string in their program. Fixing this involves updating |
16429 // the debugging api a bit. | 16431 // the debugging api a bit. |
16430 jsobj.AddProperty("type", ref ? "@Null" : "Null"); | 16432 jsobj.AddProperty("type", ref ? "@Null" : "Null"); |
16431 jsobj.AddProperty("id", "objects/optimized-out"); | 16433 jsobj.AddProperty("id", "objects/optimized-out"); |
16432 jsobj.AddProperty("valueAsString", "<optimized out>"); | 16434 jsobj.AddProperty("valueAsString", "<optimized out>"); |
16433 return; | 16435 return; |
16434 } | 16436 } |
(...skipping 800 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17235 result.SetCanonical(); | 17237 result.SetCanonical(); |
17236 return result.raw(); | 17238 return result.raw(); |
17237 } | 17239 } |
17238 | 17240 |
17239 | 17241 |
17240 const char* Bool::ToCString() const { | 17242 const char* Bool::ToCString() const { |
17241 return value() ? "true" : "false"; | 17243 return value() ? "true" : "false"; |
17242 } | 17244 } |
17243 | 17245 |
17244 | 17246 |
17245 void Bool::PrintToJSONStream(JSONStream* stream, bool ref) const { | 17247 void Bool::PrintJSONImpl(JSONStream* stream, bool ref) const { |
17246 const char* str = ToCString(); | 17248 const char* str = ToCString(); |
17247 JSONObject jsobj(stream); | 17249 JSONObject jsobj(stream); |
17248 jsobj.AddProperty("type", JSONType(ref)); | 17250 jsobj.AddProperty("type", JSONType(ref)); |
17249 jsobj.AddPropertyF("id", "objects/bool-%s", str); | 17251 jsobj.AddPropertyF("id", "objects/bool-%s", str); |
17250 class Class& cls = Class::Handle(this->clazz()); | 17252 class Class& cls = Class::Handle(this->clazz()); |
17251 jsobj.AddProperty("class", cls); | 17253 jsobj.AddProperty("class", cls); |
17252 jsobj.AddPropertyF("valueAsString", "%s", str); | 17254 jsobj.AddPropertyF("valueAsString", "%s", str); |
17253 } | 17255 } |
17254 | 17256 |
17255 | 17257 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17325 } | 17327 } |
17326 const char* format = IsImmutable() ? | 17328 const char* format = IsImmutable() ? |
17327 "_ImmutableList len:%" Pd : "_List len:%" Pd; | 17329 "_ImmutableList len:%" Pd : "_List len:%" Pd; |
17328 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; | 17330 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; |
17329 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 17331 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
17330 OS::SNPrint(chars, len, format, Length()); | 17332 OS::SNPrint(chars, len, format, Length()); |
17331 return chars; | 17333 return chars; |
17332 } | 17334 } |
17333 | 17335 |
17334 | 17336 |
17335 void Array::PrintToJSONStream(JSONStream* stream, bool ref) const { | 17337 void Array::PrintJSONImpl(JSONStream* stream, bool ref) const { |
17336 JSONObject jsobj(stream); | 17338 JSONObject jsobj(stream); |
17337 PrintSharedInstanceJSON(&jsobj, ref); | 17339 PrintSharedInstanceJSON(&jsobj, ref); |
17338 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 17340 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
17339 const intptr_t id = ring->GetIdForObject(raw()); | 17341 const intptr_t id = ring->GetIdForObject(raw()); |
17340 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 17342 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
17341 jsobj.AddProperty("length", Length()); | 17343 jsobj.AddProperty("length", Length()); |
17342 if (ref) { | 17344 if (ref) { |
17343 return; | 17345 return; |
17344 } | 17346 } |
17345 { | 17347 { |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17561 return "_GrowableList NULL"; | 17563 return "_GrowableList NULL"; |
17562 } | 17564 } |
17563 const char* format = "Instance(length:%" Pd ") of '_GrowableList'"; | 17565 const char* format = "Instance(length:%" Pd ") of '_GrowableList'"; |
17564 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; | 17566 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; |
17565 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 17567 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
17566 OS::SNPrint(chars, len, format, Length()); | 17568 OS::SNPrint(chars, len, format, Length()); |
17567 return chars; | 17569 return chars; |
17568 } | 17570 } |
17569 | 17571 |
17570 | 17572 |
17571 void GrowableObjectArray::PrintToJSONStream(JSONStream* stream, | 17573 void GrowableObjectArray::PrintJSONImpl(JSONStream* stream, |
17572 bool ref) const { | 17574 bool ref) const { |
17573 JSONObject jsobj(stream); | 17575 JSONObject jsobj(stream); |
17574 PrintSharedInstanceJSON(&jsobj, ref); | 17576 PrintSharedInstanceJSON(&jsobj, ref); |
17575 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 17577 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
17576 const intptr_t id = ring->GetIdForObject(raw()); | 17578 const intptr_t id = ring->GetIdForObject(raw()); |
17577 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 17579 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
17578 jsobj.AddProperty("length", Length()); | 17580 jsobj.AddProperty("length", Length()); |
17579 if (ref) { | 17581 if (ref) { |
17580 return; | 17582 return; |
17581 } | 17583 } |
17582 { | 17584 { |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17685 float _z = z(); | 17687 float _z = z(); |
17686 float _w = w(); | 17688 float _w = w(); |
17687 // Calculate the size of the string. | 17689 // Calculate the size of the string. |
17688 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1; | 17690 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1; |
17689 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 17691 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
17690 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w); | 17692 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w); |
17691 return chars; | 17693 return chars; |
17692 } | 17694 } |
17693 | 17695 |
17694 | 17696 |
17695 void Float32x4::PrintToJSONStream(JSONStream* stream, bool ref) const { | 17697 void Float32x4::PrintJSONImpl(JSONStream* stream, bool ref) const { |
17696 Instance::PrintToJSONStream(stream, ref); | 17698 Instance::PrintJSONImpl(stream, ref); |
17697 } | 17699 } |
17698 | 17700 |
17699 | 17701 |
17700 RawInt32x4* Int32x4::New(int32_t v0, int32_t v1, int32_t v2, int32_t v3, | 17702 RawInt32x4* Int32x4::New(int32_t v0, int32_t v1, int32_t v2, int32_t v3, |
17701 Heap::Space space) { | 17703 Heap::Space space) { |
17702 ASSERT(Isolate::Current()->object_store()->int32x4_class() != | 17704 ASSERT(Isolate::Current()->object_store()->int32x4_class() != |
17703 Class::null()); | 17705 Class::null()); |
17704 Int32x4& result = Int32x4::Handle(); | 17706 Int32x4& result = Int32x4::Handle(); |
17705 { | 17707 { |
17706 RawObject* raw = Object::Allocate(Int32x4::kClassId, | 17708 RawObject* raw = Object::Allocate(Int32x4::kClassId, |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17790 int32_t _z = z(); | 17792 int32_t _z = z(); |
17791 int32_t _w = w(); | 17793 int32_t _w = w(); |
17792 // Calculate the size of the string. | 17794 // Calculate the size of the string. |
17793 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1; | 17795 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1; |
17794 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 17796 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
17795 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w); | 17797 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w); |
17796 return chars; | 17798 return chars; |
17797 } | 17799 } |
17798 | 17800 |
17799 | 17801 |
17800 void Int32x4::PrintToJSONStream(JSONStream* stream, bool ref) const { | 17802 void Int32x4::PrintJSONImpl(JSONStream* stream, bool ref) const { |
17801 Instance::PrintToJSONStream(stream, ref); | 17803 Instance::PrintJSONImpl(stream, ref); |
17802 } | 17804 } |
17803 | 17805 |
17804 | 17806 |
17805 RawFloat64x2* Float64x2::New(double value0, double value1, Heap::Space space) { | 17807 RawFloat64x2* Float64x2::New(double value0, double value1, Heap::Space space) { |
17806 ASSERT(Isolate::Current()->object_store()->float64x2_class() != | 17808 ASSERT(Isolate::Current()->object_store()->float64x2_class() != |
17807 Class::null()); | 17809 Class::null()); |
17808 Float64x2& result = Float64x2::Handle(); | 17810 Float64x2& result = Float64x2::Handle(); |
17809 { | 17811 { |
17810 RawObject* raw = Object::Allocate(Float64x2::kClassId, | 17812 RawObject* raw = Object::Allocate(Float64x2::kClassId, |
17811 Float64x2::InstanceSize(), | 17813 Float64x2::InstanceSize(), |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17870 double _x = x(); | 17872 double _x = x(); |
17871 double _y = y(); | 17873 double _y = y(); |
17872 // Calculate the size of the string. | 17874 // Calculate the size of the string. |
17873 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y) + 1; | 17875 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y) + 1; |
17874 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 17876 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
17875 OS::SNPrint(chars, len, kFormat, _x, _y); | 17877 OS::SNPrint(chars, len, kFormat, _x, _y); |
17876 return chars; | 17878 return chars; |
17877 } | 17879 } |
17878 | 17880 |
17879 | 17881 |
17880 void Float64x2::PrintToJSONStream(JSONStream* stream, bool ref) const { | 17882 void Float64x2::PrintJSONImpl(JSONStream* stream, bool ref) const { |
17881 Instance::PrintToJSONStream(stream, ref); | 17883 Instance::PrintJSONImpl(stream, ref); |
17882 } | 17884 } |
17883 | 17885 |
17884 | 17886 |
17885 const intptr_t TypedData::element_size[] = { | 17887 const intptr_t TypedData::element_size[] = { |
17886 1, // kTypedDataInt8ArrayCid. | 17888 1, // kTypedDataInt8ArrayCid. |
17887 1, // kTypedDataUint8ArrayCid. | 17889 1, // kTypedDataUint8ArrayCid. |
17888 1, // kTypedDataUint8ClampedArrayCid. | 17890 1, // kTypedDataUint8ClampedArrayCid. |
17889 2, // kTypedDataInt16ArrayCid. | 17891 2, // kTypedDataInt16ArrayCid. |
17890 2, // kTypedDataUint16ArrayCid. | 17892 2, // kTypedDataUint16ArrayCid. |
17891 4, // kTypedDataInt32ArrayCid. | 17893 4, // kTypedDataInt32ArrayCid. |
(...skipping 29 matching lines...) Expand all Loading... |
17921 } | 17923 } |
17922 return result.raw(); | 17924 return result.raw(); |
17923 } | 17925 } |
17924 | 17926 |
17925 | 17927 |
17926 const char* TypedData::ToCString() const { | 17928 const char* TypedData::ToCString() const { |
17927 return "TypedData"; | 17929 return "TypedData"; |
17928 } | 17930 } |
17929 | 17931 |
17930 | 17932 |
17931 void TypedData::PrintToJSONStream(JSONStream* stream, bool ref) const { | 17933 void TypedData::PrintJSONImpl(JSONStream* stream, bool ref) const { |
17932 Instance::PrintToJSONStream(stream, ref); | 17934 Instance::PrintJSONImpl(stream, ref); |
17933 } | 17935 } |
17934 | 17936 |
17935 | 17937 |
17936 FinalizablePersistentHandle* ExternalTypedData::AddFinalizer( | 17938 FinalizablePersistentHandle* ExternalTypedData::AddFinalizer( |
17937 void* peer, Dart_WeakPersistentHandleFinalizer callback) const { | 17939 void* peer, Dart_WeakPersistentHandleFinalizer callback) const { |
17938 return dart::AddFinalizer(*this, peer, callback); | 17940 return dart::AddFinalizer(*this, peer, callback); |
17939 } | 17941 } |
17940 | 17942 |
17941 | 17943 |
17942 RawExternalTypedData* ExternalTypedData::New(intptr_t class_id, | 17944 RawExternalTypedData* ExternalTypedData::New(intptr_t class_id, |
(...skipping 12 matching lines...) Expand all Loading... |
17955 } | 17957 } |
17956 return result.raw(); | 17958 return result.raw(); |
17957 } | 17959 } |
17958 | 17960 |
17959 | 17961 |
17960 const char* ExternalTypedData::ToCString() const { | 17962 const char* ExternalTypedData::ToCString() const { |
17961 return "ExternalTypedData"; | 17963 return "ExternalTypedData"; |
17962 } | 17964 } |
17963 | 17965 |
17964 | 17966 |
17965 void ExternalTypedData::PrintToJSONStream(JSONStream* stream, | 17967 void ExternalTypedData::PrintJSONImpl(JSONStream* stream, |
17966 bool ref) const { | 17968 bool ref) const { |
17967 Instance::PrintToJSONStream(stream, ref); | 17969 Instance::PrintJSONImpl(stream, ref); |
17968 } | 17970 } |
17969 | 17971 |
17970 | 17972 |
17971 RawCapability* Capability::New(uint64_t id, Heap::Space space) { | 17973 RawCapability* Capability::New(uint64_t id, Heap::Space space) { |
17972 Capability& result = Capability::Handle(); | 17974 Capability& result = Capability::Handle(); |
17973 { | 17975 { |
17974 RawObject* raw = Object::Allocate(Capability::kClassId, | 17976 RawObject* raw = Object::Allocate(Capability::kClassId, |
17975 Capability::InstanceSize(), | 17977 Capability::InstanceSize(), |
17976 space); | 17978 space); |
17977 NoGCScope no_gc; | 17979 NoGCScope no_gc; |
17978 result ^= raw; | 17980 result ^= raw; |
17979 result.raw_ptr()->id_ = id; | 17981 result.raw_ptr()->id_ = id; |
17980 } | 17982 } |
17981 return result.raw(); | 17983 return result.raw(); |
17982 } | 17984 } |
17983 | 17985 |
17984 | 17986 |
17985 const char* Capability::ToCString() const { | 17987 const char* Capability::ToCString() const { |
17986 return "Capability"; | 17988 return "Capability"; |
17987 } | 17989 } |
17988 | 17990 |
17989 | 17991 |
17990 void Capability::PrintToJSONStream(JSONStream* stream, bool ref) const { | 17992 void Capability::PrintJSONImpl(JSONStream* stream, bool ref) const { |
17991 Instance::PrintToJSONStream(stream, ref); | 17993 Instance::PrintJSONImpl(stream, ref); |
17992 } | 17994 } |
17993 | 17995 |
17994 | 17996 |
17995 RawReceivePort* ReceivePort::New(Dart_Port id, Heap::Space space) { | 17997 RawReceivePort* ReceivePort::New(Dart_Port id, Heap::Space space) { |
17996 Isolate* isolate = Isolate::Current(); | 17998 Isolate* isolate = Isolate::Current(); |
17997 const SendPort& send_port = SendPort::Handle(isolate, SendPort::New(id)); | 17999 const SendPort& send_port = SendPort::Handle(isolate, SendPort::New(id)); |
17998 | 18000 |
17999 ReceivePort& result = ReceivePort::Handle(isolate); | 18001 ReceivePort& result = ReceivePort::Handle(isolate); |
18000 { | 18002 { |
18001 RawObject* raw = Object::Allocate(ReceivePort::kClassId, | 18003 RawObject* raw = Object::Allocate(ReceivePort::kClassId, |
18002 ReceivePort::InstanceSize(), | 18004 ReceivePort::InstanceSize(), |
18003 space); | 18005 space); |
18004 NoGCScope no_gc; | 18006 NoGCScope no_gc; |
18005 result ^= raw; | 18007 result ^= raw; |
18006 result.raw_ptr()->send_port_ = send_port.raw(); | 18008 result.raw_ptr()->send_port_ = send_port.raw(); |
18007 } | 18009 } |
18008 PortMap::SetLive(id); | 18010 PortMap::SetLive(id); |
18009 return result.raw(); | 18011 return result.raw(); |
18010 } | 18012 } |
18011 | 18013 |
18012 | 18014 |
18013 const char* ReceivePort::ToCString() const { | 18015 const char* ReceivePort::ToCString() const { |
18014 return "ReceivePort"; | 18016 return "ReceivePort"; |
18015 } | 18017 } |
18016 | 18018 |
18017 | 18019 |
18018 void ReceivePort::PrintToJSONStream(JSONStream* stream, bool ref) const { | 18020 void ReceivePort::PrintJSONImpl(JSONStream* stream, bool ref) const { |
18019 Instance::PrintToJSONStream(stream, ref); | 18021 Instance::PrintJSONImpl(stream, ref); |
18020 } | 18022 } |
18021 | 18023 |
18022 | 18024 |
18023 RawSendPort* SendPort::New(Dart_Port id, Heap::Space space) { | 18025 RawSendPort* SendPort::New(Dart_Port id, Heap::Space space) { |
18024 SendPort& result = SendPort::Handle(); | 18026 SendPort& result = SendPort::Handle(); |
18025 { | 18027 { |
18026 RawObject* raw = Object::Allocate(SendPort::kClassId, | 18028 RawObject* raw = Object::Allocate(SendPort::kClassId, |
18027 SendPort::InstanceSize(), | 18029 SendPort::InstanceSize(), |
18028 space); | 18030 space); |
18029 NoGCScope no_gc; | 18031 NoGCScope no_gc; |
18030 result ^= raw; | 18032 result ^= raw; |
18031 result.raw_ptr()->id_ = id; | 18033 result.raw_ptr()->id_ = id; |
18032 } | 18034 } |
18033 return result.raw(); | 18035 return result.raw(); |
18034 } | 18036 } |
18035 | 18037 |
18036 | 18038 |
18037 const char* SendPort::ToCString() const { | 18039 const char* SendPort::ToCString() const { |
18038 return "SendPort"; | 18040 return "SendPort"; |
18039 } | 18041 } |
18040 | 18042 |
18041 | 18043 |
18042 void SendPort::PrintToJSONStream(JSONStream* stream, bool ref) const { | 18044 void SendPort::PrintJSONImpl(JSONStream* stream, bool ref) const { |
18043 Instance::PrintToJSONStream(stream, ref); | 18045 Instance::PrintJSONImpl(stream, ref); |
18044 } | 18046 } |
18045 | 18047 |
18046 | 18048 |
18047 const char* Closure::ToCString(const Instance& closure) { | 18049 const char* Closure::ToCString(const Instance& closure) { |
18048 const Function& fun = Function::Handle(Closure::function(closure)); | 18050 const Function& fun = Function::Handle(Closure::function(closure)); |
18049 const bool is_implicit_closure = fun.IsImplicitClosureFunction(); | 18051 const bool is_implicit_closure = fun.IsImplicitClosureFunction(); |
18050 const char* fun_sig = String::Handle(fun.UserVisibleSignature()).ToCString(); | 18052 const char* fun_sig = String::Handle(fun.UserVisibleSignature()).ToCString(); |
18051 const char* from = is_implicit_closure ? " from " : ""; | 18053 const char* from = is_implicit_closure ? " from " : ""; |
18052 const char* fun_desc = is_implicit_closure ? fun.ToCString() : ""; | 18054 const char* fun_desc = is_implicit_closure ? fun.ToCString() : ""; |
18053 const char* format = "Closure: %s%s%s"; | 18055 const char* format = "Closure: %s%s%s"; |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18218 return String::New(ToCStringInternal(&idx)); | 18220 return String::New(ToCStringInternal(&idx)); |
18219 } | 18221 } |
18220 | 18222 |
18221 | 18223 |
18222 const char* Stacktrace::ToCString() const { | 18224 const char* Stacktrace::ToCString() const { |
18223 const String& trace = String::Handle(FullStacktrace()); | 18225 const String& trace = String::Handle(FullStacktrace()); |
18224 return trace.ToCString(); | 18226 return trace.ToCString(); |
18225 } | 18227 } |
18226 | 18228 |
18227 | 18229 |
18228 void Stacktrace::PrintToJSONStream(JSONStream* stream, bool ref) const { | 18230 void Stacktrace::PrintJSONImpl(JSONStream* stream, bool ref) const { |
18229 Instance::PrintToJSONStream(stream, ref); | 18231 Instance::PrintJSONImpl(stream, ref); |
18230 } | 18232 } |
18231 | 18233 |
18232 | 18234 |
18233 static intptr_t PrintOneStacktrace(Isolate* isolate, | 18235 static intptr_t PrintOneStacktrace(Isolate* isolate, |
18234 GrowableArray<char*>* frame_strings, | 18236 GrowableArray<char*>* frame_strings, |
18235 uword pc, | 18237 uword pc, |
18236 const Function& function, | 18238 const Function& function, |
18237 const Code& code, | 18239 const Code& code, |
18238 intptr_t frame_index) { | 18240 intptr_t frame_index) { |
18239 const char* kFormatWithCol = "#%-6d %s (%s:%d:%d)\n"; | 18241 const char* kFormatWithCol = "#%-6d %s (%s:%d:%d)\n"; |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18430 const char* JSRegExp::ToCString() const { | 18432 const char* JSRegExp::ToCString() const { |
18431 const String& str = String::Handle(pattern()); | 18433 const String& str = String::Handle(pattern()); |
18432 const char* format = "JSRegExp: pattern=%s flags=%s"; | 18434 const char* format = "JSRegExp: pattern=%s flags=%s"; |
18433 intptr_t len = OS::SNPrint(NULL, 0, format, str.ToCString(), Flags()); | 18435 intptr_t len = OS::SNPrint(NULL, 0, format, str.ToCString(), Flags()); |
18434 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len + 1); | 18436 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len + 1); |
18435 OS::SNPrint(chars, (len + 1), format, str.ToCString(), Flags()); | 18437 OS::SNPrint(chars, (len + 1), format, str.ToCString(), Flags()); |
18436 return chars; | 18438 return chars; |
18437 } | 18439 } |
18438 | 18440 |
18439 | 18441 |
18440 void JSRegExp::PrintToJSONStream(JSONStream* stream, bool ref) const { | 18442 void JSRegExp::PrintJSONImpl(JSONStream* stream, bool ref) const { |
18441 Instance::PrintToJSONStream(stream, ref); | 18443 Instance::PrintJSONImpl(stream, ref); |
18442 } | 18444 } |
18443 | 18445 |
18444 | 18446 |
18445 RawWeakProperty* WeakProperty::New(Heap::Space space) { | 18447 RawWeakProperty* WeakProperty::New(Heap::Space space) { |
18446 ASSERT(Isolate::Current()->object_store()->weak_property_class() | 18448 ASSERT(Isolate::Current()->object_store()->weak_property_class() |
18447 != Class::null()); | 18449 != Class::null()); |
18448 RawObject* raw = Object::Allocate(WeakProperty::kClassId, | 18450 RawObject* raw = Object::Allocate(WeakProperty::kClassId, |
18449 WeakProperty::InstanceSize(), | 18451 WeakProperty::InstanceSize(), |
18450 space); | 18452 space); |
18451 return reinterpret_cast<RawWeakProperty*>(raw); | 18453 return reinterpret_cast<RawWeakProperty*>(raw); |
18452 } | 18454 } |
18453 | 18455 |
18454 | 18456 |
18455 const char* WeakProperty::ToCString() const { | 18457 const char* WeakProperty::ToCString() const { |
18456 return "_WeakProperty"; | 18458 return "_WeakProperty"; |
18457 } | 18459 } |
18458 | 18460 |
18459 | 18461 |
18460 void WeakProperty::PrintToJSONStream(JSONStream* stream, bool ref) const { | 18462 void WeakProperty::PrintJSONImpl(JSONStream* stream, bool ref) const { |
18461 Instance::PrintToJSONStream(stream, ref); | 18463 Instance::PrintJSONImpl(stream, ref); |
18462 } | 18464 } |
18463 | 18465 |
18464 RawAbstractType* MirrorReference::GetAbstractTypeReferent() const { | 18466 RawAbstractType* MirrorReference::GetAbstractTypeReferent() const { |
18465 ASSERT(Object::Handle(referent()).IsAbstractType()); | 18467 ASSERT(Object::Handle(referent()).IsAbstractType()); |
18466 return AbstractType::Cast(Object::Handle(referent())).raw(); | 18468 return AbstractType::Cast(Object::Handle(referent())).raw(); |
18467 } | 18469 } |
18468 | 18470 |
18469 | 18471 |
18470 RawClass* MirrorReference::GetClassReferent() const { | 18472 RawClass* MirrorReference::GetClassReferent() const { |
18471 ASSERT(Object::Handle(referent()).IsClass()); | 18473 ASSERT(Object::Handle(referent()).IsClass()); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18510 result.set_referent(referent); | 18512 result.set_referent(referent); |
18511 return result.raw(); | 18513 return result.raw(); |
18512 } | 18514 } |
18513 | 18515 |
18514 | 18516 |
18515 const char* MirrorReference::ToCString() const { | 18517 const char* MirrorReference::ToCString() const { |
18516 return "_MirrorReference"; | 18518 return "_MirrorReference"; |
18517 } | 18519 } |
18518 | 18520 |
18519 | 18521 |
18520 void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const { | 18522 void MirrorReference::PrintJSONImpl(JSONStream* stream, bool ref) const { |
18521 Instance::PrintToJSONStream(stream, ref); | 18523 Instance::PrintJSONImpl(stream, ref); |
18522 } | 18524 } |
18523 | 18525 |
18524 | 18526 |
18525 void UserTag::MakeActive() const { | 18527 void UserTag::MakeActive() const { |
18526 Isolate* isolate = Isolate::Current(); | 18528 Isolate* isolate = Isolate::Current(); |
18527 ASSERT(isolate != NULL); | 18529 ASSERT(isolate != NULL); |
18528 isolate->set_current_tag(*this); | 18530 isolate->set_current_tag(*this); |
18529 } | 18531 } |
18530 | 18532 |
18531 | 18533 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18634 return UserTag::null(); | 18636 return UserTag::null(); |
18635 } | 18637 } |
18636 | 18638 |
18637 | 18639 |
18638 const char* UserTag::ToCString() const { | 18640 const char* UserTag::ToCString() const { |
18639 const String& tag_label = String::Handle(label()); | 18641 const String& tag_label = String::Handle(label()); |
18640 return tag_label.ToCString(); | 18642 return tag_label.ToCString(); |
18641 } | 18643 } |
18642 | 18644 |
18643 | 18645 |
18644 void UserTag::PrintToJSONStream(JSONStream* stream, bool ref) const { | 18646 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
18645 Instance::PrintToJSONStream(stream, ref); | 18647 Instance::PrintJSONImpl(stream, ref); |
18646 } | 18648 } |
18647 | 18649 |
18648 | 18650 |
18649 } // namespace dart | 18651 } // namespace dart |
OLD | NEW |