Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(792)

Side by Side Diff: runtime/vm/object.cc

Issue 82793004: Add field and function view for libraries. Rough cut. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 5900 matching lines...) Expand 10 before | Expand all | Expand 10 after
5911 void Field::PrintToJSONStream(JSONStream* stream, bool ref) const { 5911 void Field::PrintToJSONStream(JSONStream* stream, bool ref) const {
5912 JSONObject jsobj(stream); 5912 JSONObject jsobj(stream);
5913 const char* internal_field_name = String::Handle(name()).ToCString(); 5913 const char* internal_field_name = String::Handle(name()).ToCString();
5914 const char* field_name = String::Handle(UserVisibleName()).ToCString(); 5914 const char* field_name = String::Handle(UserVisibleName()).ToCString();
5915 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); 5915 ObjectIdRing* ring = Isolate::Current()->object_id_ring();
5916 intptr_t id = ring->GetIdForObject(raw()); 5916 intptr_t id = ring->GetIdForObject(raw());
5917 jsobj.AddProperty("type", JSONType(ref)); 5917 jsobj.AddProperty("type", JSONType(ref));
5918 jsobj.AddProperty("id", id); 5918 jsobj.AddProperty("id", id);
5919 jsobj.AddProperty("name", internal_field_name); 5919 jsobj.AddProperty("name", internal_field_name);
5920 jsobj.AddProperty("user_name", field_name); 5920 jsobj.AddProperty("user_name", field_name);
5921 if (is_static()) {
5922 const Object& valueObj = Object::Handle(value());
5923 jsobj.AddProperty("value", valueObj);
5924 }
5925 Class& cls = Class::Handle(owner());
5926 jsobj.AddProperty("owner", cls);
5927 AbstractType& declared_type = AbstractType::Handle(type());
5928 cls = declared_type.type_class();
5929 jsobj.AddProperty("declared_type", cls);
5930 jsobj.AddProperty("static", is_static());
5931 jsobj.AddProperty("final", is_final());
5932 jsobj.AddProperty("const", is_const());
5921 if (ref) { 5933 if (ref) {
5922 return; 5934 return;
5923 } 5935 }
5924 Class& cls = Class::Handle(owner());
5925 jsobj.AddProperty("type", "Field");
5926 jsobj.AddProperty("id", id);
5927 jsobj.AddProperty("name", internal_field_name);
5928 jsobj.AddProperty("user_name", field_name);
5929 jsobj.AddProperty("class", cls);
5930 jsobj.AddProperty("static", is_static());
5931 jsobj.AddProperty("final", is_final());
5932 jsobj.AddProperty("const", is_const());
5933 jsobj.AddProperty("guard_nullable", is_nullable()); 5936 jsobj.AddProperty("guard_nullable", is_nullable());
5934 if (guarded_cid() == kIllegalCid) { 5937 if (guarded_cid() == kIllegalCid) {
5935 jsobj.AddProperty("guard_class", "unknown"); 5938 jsobj.AddProperty("guard_class", "unknown");
5936 } else if (guarded_cid() == kDynamicCid) { 5939 } else if (guarded_cid() == kDynamicCid) {
5937 jsobj.AddProperty("guard_class", "dynamic"); 5940 jsobj.AddProperty("guard_class", "dynamic");
5938 } else { 5941 } else {
5939 ClassTable* table = Isolate::Current()->class_table(); 5942 ClassTable* table = Isolate::Current()->class_table();
5940 ASSERT(table->IsValidIndex(guarded_cid())); 5943 ASSERT(table->IsValidIndex(guarded_cid()));
5941 cls ^= table->At(guarded_cid()); 5944 cls ^= table->At(guarded_cid());
5942 jsobj.AddProperty("guard_class", cls); 5945 jsobj.AddProperty("guard_class", cls);
(...skipping 2173 matching lines...) Expand 10 before | Expand all | Expand 10 after
8116 8119
8117 void Library::PrintToJSONStream(JSONStream* stream, bool ref) const { 8120 void Library::PrintToJSONStream(JSONStream* stream, bool ref) const {
8118 const char* library_name = String::Handle(name()).ToCString(); 8121 const char* library_name = String::Handle(name()).ToCString();
8119 const char* library_url = String::Handle(url()).ToCString(); 8122 const char* library_url = String::Handle(url()).ToCString();
8120 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); 8123 ObjectIdRing* ring = Isolate::Current()->object_id_ring();
8121 intptr_t id = ring->GetIdForObject(raw()); 8124 intptr_t id = ring->GetIdForObject(raw());
8122 JSONObject jsobj(stream); 8125 JSONObject jsobj(stream);
8123 jsobj.AddProperty("type", JSONType(ref)); 8126 jsobj.AddProperty("type", JSONType(ref));
8124 jsobj.AddProperty("id", id); 8127 jsobj.AddProperty("id", id);
8125 jsobj.AddProperty("name", library_name); 8128 jsobj.AddProperty("name", library_name);
8129 jsobj.AddProperty("url", library_url);
8126 if (ref) return; 8130 if (ref) return;
8127 jsobj.AddProperty("url", library_url);
8128 { 8131 {
8129 JSONArray jsarr(&jsobj, "classes"); 8132 JSONArray jsarr(&jsobj, "classes");
8130 ClassDictionaryIterator class_iter(*this); 8133 ClassDictionaryIterator class_iter(*this);
8131 Class& klass = Class::Handle(); 8134 Class& klass = Class::Handle();
8132 while (class_iter.HasNext()) { 8135 while (class_iter.HasNext()) {
8133 klass = class_iter.GetNextClass(); 8136 klass = class_iter.GetNextClass();
8134 jsarr.AddValue(klass); 8137 if (!klass.IsCanonicalSignatureClass() &&
8138 !klass.IsAnonymousMixinApplication()) {
8139 jsarr.AddValue(klass);
8140 }
8135 } 8141 }
8136 } 8142 }
8137 { 8143 {
8138 JSONArray jsarr(&jsobj, "libraries"); 8144 JSONArray jsarr(&jsobj, "libraries");
8139 Library& lib = Library::Handle(); 8145 Library& lib = Library::Handle();
8140 for (intptr_t i = 0; i < num_imports(); i++) { 8146 for (intptr_t i = 0; i < num_imports(); i++) {
8141 lib = ImportLibraryAt(i); 8147 lib = ImportLibraryAt(i);
8142 jsarr.AddValue(lib); 8148 jsarr.AddValue(lib);
8143 } 8149 }
8144 } 8150 }
8151 {
8152 JSONArray jsarr(&jsobj, "variables");
8153 DictionaryIterator entries(*this);
8154 Object& entry = Object::Handle();
8155 while (entries.HasNext()) {
8156 entry = entries.GetNext();
8157 if (entry.IsField()) {
8158 jsarr.AddValue(entry);
8159 }
8160 }
8161 }
8162 {
8163 JSONArray jsarr(&jsobj, "functions");
8164 DictionaryIterator entries(*this);
8165 Object& entry = Object::Handle();
8166 while (entries.HasNext()) {
8167 entry = entries.GetNext();
8168 if (entry.IsFunction()) {
8169 const Function& func = Function::Cast(entry);
8170 if (func.kind() == RawFunction::kRegularFunction ||
8171 func.kind() == RawFunction::kGetterFunction ||
8172 func.kind() == RawFunction::kSetterFunction) {
8173 jsarr.AddValue(func);
8174 }
8175 }
8176 }
8177 }
8145 } 8178 }
8146 8179
8147 8180
8148 RawLibrary* LibraryPrefix::GetLibrary(int index) const { 8181 RawLibrary* LibraryPrefix::GetLibrary(int index) const {
8149 if ((index >= 0) || (index < num_imports())) { 8182 if ((index >= 0) || (index < num_imports())) {
8150 const Array& imports = Array::Handle(this->imports()); 8183 const Array& imports = Array::Handle(this->imports());
8151 Namespace& import = Namespace::Handle(); 8184 Namespace& import = Namespace::Handle();
8152 import ^= imports.At(index); 8185 import ^= imports.At(index);
8153 return import.library(); 8186 return import.library();
8154 } 8187 }
(...skipping 3180 matching lines...) Expand 10 before | Expand all | Expand 10 after
11335 // Calculate the size of the string. 11368 // Calculate the size of the string.
11336 intptr_t len = OS::SNPrint(NULL, 0, kFormat, type_name.ToCString()) + 1; 11369 intptr_t len = OS::SNPrint(NULL, 0, kFormat, type_name.ToCString()) + 1;
11337 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); 11370 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
11338 OS::SNPrint(chars, len, kFormat, type_name.ToCString()); 11371 OS::SNPrint(chars, len, kFormat, type_name.ToCString());
11339 return chars; 11372 return chars;
11340 } 11373 }
11341 } 11374 }
11342 11375
11343 11376
11344 void Instance::PrintToJSONStream(JSONStream* stream, bool ref) const { 11377 void Instance::PrintToJSONStream(JSONStream* stream, bool ref) const {
11378 ObjectIdRing* ring = Isolate::Current()->object_id_ring();
11379 intptr_t id = ring->GetIdForObject(raw());
11380
11345 JSONObject jsobj(stream); 11381 JSONObject jsobj(stream);
11382 jsobj.AddProperty("type", JSONType(ref));
11383 jsobj.AddProperty("id", id);
11384
11385 // Set the "preview" property for this instance.
11386 if (IsNull()) {
11387 jsobj.AddProperty("preview", "null");
11388 } else if (raw() == Object::sentinel().raw() ||
11389 raw() == Object::transition_sentinel().raw()) {
11390 jsobj.AddProperty("preview", "<uninitialized>");
11391 } else {
11392 // TODO(turnidge): Handle special characters? Truncate?
11393 jsobj.AddProperty("preview", ToCString());
11394 }
11346 } 11395 }
11347 11396
11348 11397
11349 bool AbstractType::IsResolved() const { 11398 bool AbstractType::IsResolved() const {
11350 // AbstractType is an abstract class. 11399 // AbstractType is an abstract class.
11351 UNREACHABLE(); 11400 UNREACHABLE();
11352 return false; 11401 return false;
11353 } 11402 }
11354 11403
11355 11404
(...skipping 1314 matching lines...) Expand 10 before | Expand all | Expand 10 after
12670 12719
12671 12720
12672 const char* Number::ToCString() const { 12721 const char* Number::ToCString() const {
12673 // Number is an interface. No instances of Number should exist. 12722 // Number is an interface. No instances of Number should exist.
12674 UNREACHABLE(); 12723 UNREACHABLE();
12675 return "Number"; 12724 return "Number";
12676 } 12725 }
12677 12726
12678 12727
12679 void Number::PrintToJSONStream(JSONStream* stream, bool ref) const { 12728 void Number::PrintToJSONStream(JSONStream* stream, bool ref) const {
12680 JSONObject jsobj(stream); 12729 Instance::PrintToJSONStream(stream, ref);
12681 } 12730 }
12682 12731
12683 12732
12684 const char* Integer::ToCString() const { 12733 const char* Integer::ToCString() const {
12685 // Integer is an interface. No instances of Integer should exist. 12734 // Integer is an interface. No instances of Integer should exist.
12686 UNREACHABLE(); 12735 UNREACHABLE();
12687 return "Integer"; 12736 return "Integer";
12688 } 12737 }
12689 12738
12690 12739
12691 void Integer::PrintToJSONStream(JSONStream* stream, bool ref) const { 12740 void Integer::PrintToJSONStream(JSONStream* stream, bool ref) const {
12692 JSONObject jsobj(stream); 12741 Number::PrintToJSONStream(stream, ref);
12693 } 12742 }
12694 12743
12695 12744
12696 // Throw JavascriptIntegerOverflow exception. 12745 // Throw JavascriptIntegerOverflow exception.
12697 static void ThrowJavascriptIntegerOverflow(const Integer& i) { 12746 static void ThrowJavascriptIntegerOverflow(const Integer& i) {
12698 const Array& exc_args = Array::Handle(Array::New(1)); 12747 const Array& exc_args = Array::Handle(Array::New(1));
12699 const String& i_str = String::Handle(String::New(i.ToCString())); 12748 const String& i_str = String::Handle(String::New(i.ToCString()));
12700 exc_args.SetAt(0, i_str); 12749 exc_args.SetAt(0, i_str);
12701 Exceptions::ThrowByType(Exceptions::kJavascriptIntegerOverflowError, 12750 Exceptions::ThrowByType(Exceptions::kJavascriptIntegerOverflowError,
12702 exc_args); 12751 exc_args);
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
13100 const char* kFormat = "%ld"; 13149 const char* kFormat = "%ld";
13101 // Calculate the size of the string. 13150 // Calculate the size of the string.
13102 intptr_t len = OS::SNPrint(NULL, 0, kFormat, Value()) + 1; 13151 intptr_t len = OS::SNPrint(NULL, 0, kFormat, Value()) + 1;
13103 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); 13152 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
13104 OS::SNPrint(chars, len, kFormat, Value()); 13153 OS::SNPrint(chars, len, kFormat, Value());
13105 return chars; 13154 return chars;
13106 } 13155 }
13107 13156
13108 13157
13109 void Smi::PrintToJSONStream(JSONStream* stream, bool ref) const { 13158 void Smi::PrintToJSONStream(JSONStream* stream, bool ref) const {
13110 JSONObject jsobj(stream); 13159 Number::PrintToJSONStream(stream, ref);
13111 } 13160 }
13112 13161
13113 13162
13114 RawClass* Smi::Class() { 13163 RawClass* Smi::Class() {
13115 return Isolate::Current()->object_store()->smi_class(); 13164 return Isolate::Current()->object_store()->smi_class();
13116 } 13165 }
13117 13166
13118 13167
13119 void Mint::set_value(int64_t value) const { 13168 void Mint::set_value(int64_t value) const {
13120 raw_ptr()->value_ = value; 13169 raw_ptr()->value_ = value;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
13219 const char* kFormat = "%lld"; 13268 const char* kFormat = "%lld";
13220 // Calculate the size of the string. 13269 // Calculate the size of the string.
13221 intptr_t len = OS::SNPrint(NULL, 0, kFormat, value()) + 1; 13270 intptr_t len = OS::SNPrint(NULL, 0, kFormat, value()) + 1;
13222 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); 13271 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
13223 OS::SNPrint(chars, len, kFormat, value()); 13272 OS::SNPrint(chars, len, kFormat, value());
13224 return chars; 13273 return chars;
13225 } 13274 }
13226 13275
13227 13276
13228 void Mint::PrintToJSONStream(JSONStream* stream, bool ref) const { 13277 void Mint::PrintToJSONStream(JSONStream* stream, bool ref) const {
13229 JSONObject jsobj(stream); 13278 Number::PrintToJSONStream(stream, ref);
13230 } 13279 }
13231 13280
13232 13281
13233 void Double::set_value(double value) const { 13282 void Double::set_value(double value) const {
13234 raw_ptr()->value_ = value; 13283 raw_ptr()->value_ = value;
13235 } 13284 }
13236 13285
13237 13286
13238 bool Double::EqualsToDouble(double value) const { 13287 bool Double::EqualsToDouble(double value) const {
13239 intptr_t value_offset = Double::value_offset(); 13288 intptr_t value_offset = Double::value_offset();
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
13325 } 13374 }
13326 const int kBufferSize = 128; 13375 const int kBufferSize = 128;
13327 char* buffer = Isolate::Current()->current_zone()->Alloc<char>(kBufferSize); 13376 char* buffer = Isolate::Current()->current_zone()->Alloc<char>(kBufferSize);
13328 buffer[kBufferSize - 1] = '\0'; 13377 buffer[kBufferSize - 1] = '\0';
13329 DoubleToCString(value(), buffer, kBufferSize); 13378 DoubleToCString(value(), buffer, kBufferSize);
13330 return buffer; 13379 return buffer;
13331 } 13380 }
13332 13381
13333 13382
13334 void Double::PrintToJSONStream(JSONStream* stream, bool ref) const { 13383 void Double::PrintToJSONStream(JSONStream* stream, bool ref) const {
13335 JSONObject jsobj(stream); 13384 Number::PrintToJSONStream(stream, ref);
13336 } 13385 }
13337 13386
13338 13387
13339 RawBigint* Integer::AsBigint() const { 13388 RawBigint* Integer::AsBigint() const {
13340 ASSERT(!IsNull()); 13389 ASSERT(!IsNull());
13341 if (IsSmi()) { 13390 if (IsSmi()) {
13342 Smi& smi = Smi::Handle(); 13391 Smi& smi = Smi::Handle();
13343 smi ^= raw(); 13392 smi ^= raw();
13344 return BigintOperations::NewFromSmi(smi); 13393 return BigintOperations::NewFromSmi(smi);
13345 } else if (IsMint()) { 13394 } else if (IsMint()) {
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
13496 return zone->AllocUnsafe(size); 13545 return zone->AllocUnsafe(size);
13497 } 13546 }
13498 13547
13499 13548
13500 const char* Bigint::ToCString() const { 13549 const char* Bigint::ToCString() const {
13501 return BigintOperations::ToDecimalCString(*this, &BigintAllocator); 13550 return BigintOperations::ToDecimalCString(*this, &BigintAllocator);
13502 } 13551 }
13503 13552
13504 13553
13505 void Bigint::PrintToJSONStream(JSONStream* stream, bool ref) const { 13554 void Bigint::PrintToJSONStream(JSONStream* stream, bool ref) const {
13506 JSONObject jsobj(stream); 13555 Number::PrintToJSONStream(stream, ref);
13507 } 13556 }
13508 13557
13509 13558
13510 // Synchronize with implementation in compiler (intrinsifier). 13559 // Synchronize with implementation in compiler (intrinsifier).
13511 class StringHasher : ValueObject { 13560 class StringHasher : ValueObject {
13512 public: 13561 public:
13513 StringHasher() : hash_(0) {} 13562 StringHasher() : hash_(0) {}
13514 void Add(int32_t ch) { 13563 void Add(int32_t ch) {
13515 hash_ += ch; 13564 hash_ += ch;
13516 hash_ += hash_ << 10; 13565 hash_ += hash_ << 10;
(...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after
14119 const intptr_t len = Utf8::Length(*this); 14168 const intptr_t len = Utf8::Length(*this);
14120 Zone* zone = Isolate::Current()->current_zone(); 14169 Zone* zone = Isolate::Current()->current_zone();
14121 uint8_t* result = zone->Alloc<uint8_t>(len + 1); 14170 uint8_t* result = zone->Alloc<uint8_t>(len + 1);
14122 ToUTF8(result, len); 14171 ToUTF8(result, len);
14123 result[len] = 0; 14172 result[len] = 0;
14124 return reinterpret_cast<const char*>(result); 14173 return reinterpret_cast<const char*>(result);
14125 } 14174 }
14126 14175
14127 14176
14128 void String::PrintToJSONStream(JSONStream* stream, bool ref) const { 14177 void String::PrintToJSONStream(JSONStream* stream, bool ref) const {
14129 JSONObject jsobj(stream); 14178 Instance::PrintToJSONStream(stream, ref);
14130 } 14179 }
14131 14180
14132 14181
14133 void String::ToUTF8(uint8_t* utf8_array, intptr_t array_len) const { 14182 void String::ToUTF8(uint8_t* utf8_array, intptr_t array_len) const {
14134 ASSERT(array_len >= Utf8::Length(*this)); 14183 ASSERT(array_len >= Utf8::Length(*this));
14135 Utf8::Encode(*this, reinterpret_cast<char*>(utf8_array), array_len); 14184 Utf8::Encode(*this, reinterpret_cast<char*>(utf8_array), array_len);
14136 } 14185 }
14137 14186
14138 14187
14139 static FinalizablePersistentHandle* AddFinalizer( 14188 static FinalizablePersistentHandle* AddFinalizer(
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after
14877 return result.raw(); 14926 return result.raw();
14878 } 14927 }
14879 14928
14880 14929
14881 const char* Bool::ToCString() const { 14930 const char* Bool::ToCString() const {
14882 return value() ? "true" : "false"; 14931 return value() ? "true" : "false";
14883 } 14932 }
14884 14933
14885 14934
14886 void Bool::PrintToJSONStream(JSONStream* stream, bool ref) const { 14935 void Bool::PrintToJSONStream(JSONStream* stream, bool ref) const {
14887 JSONObject jsobj(stream); 14936 Instance::PrintToJSONStream(stream, ref);
14888 } 14937 }
14889 14938
14890 14939
14891 bool Array::Equals(const Instance& other) const { 14940 bool Array::Equals(const Instance& other) const {
14892 if (this->raw() == other.raw()) { 14941 if (this->raw() == other.raw()) {
14893 // Both handles point to the same raw instance. 14942 // Both handles point to the same raw instance.
14894 return true; 14943 return true;
14895 } 14944 }
14896 14945
14897 // An Array may be compared to an ImmutableArray. 14946 // An Array may be compared to an ImmutableArray.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
14963 const char* format = IsImmutable() ? 15012 const char* format = IsImmutable() ?
14964 "_ImmutableList len:%" Pd : "_List len:%" Pd; 15013 "_ImmutableList len:%" Pd : "_List len:%" Pd;
14965 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; 15014 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1;
14966 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); 15015 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
14967 OS::SNPrint(chars, len, format, Length()); 15016 OS::SNPrint(chars, len, format, Length());
14968 return chars; 15017 return chars;
14969 } 15018 }
14970 15019
14971 15020
14972 void Array::PrintToJSONStream(JSONStream* stream, bool ref) const { 15021 void Array::PrintToJSONStream(JSONStream* stream, bool ref) const {
14973 JSONObject jsobj(stream); 15022 Instance::PrintToJSONStream(stream, ref);
14974 } 15023 }
14975 15024
14976 15025
14977 RawArray* Array::Grow(const Array& source, int new_length, Heap::Space space) { 15026 RawArray* Array::Grow(const Array& source, int new_length, Heap::Space space) {
14978 const Array& result = Array::Handle(Array::New(new_length, space)); 15027 const Array& result = Array::Handle(Array::New(new_length, space));
14979 intptr_t len = 0; 15028 intptr_t len = 0;
14980 if (!source.IsNull()) { 15029 if (!source.IsNull()) {
14981 len = source.Length(); 15030 len = source.Length();
14982 result.SetTypeArguments( 15031 result.SetTypeArguments(
14983 AbstractTypeArguments::Handle(source.GetTypeArguments())); 15032 AbstractTypeArguments::Handle(source.GetTypeArguments()));
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
15176 const char* format = "_GrowableList len:%" Pd ""; 15225 const char* format = "_GrowableList len:%" Pd "";
15177 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; 15226 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1;
15178 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); 15227 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
15179 OS::SNPrint(chars, len, format, Length()); 15228 OS::SNPrint(chars, len, format, Length());
15180 return chars; 15229 return chars;
15181 } 15230 }
15182 15231
15183 15232
15184 void GrowableObjectArray::PrintToJSONStream(JSONStream* stream, 15233 void GrowableObjectArray::PrintToJSONStream(JSONStream* stream,
15185 bool ref) const { 15234 bool ref) const {
15186 JSONObject jsobj(stream); 15235 Instance::PrintToJSONStream(stream, ref);
15187 } 15236 }
15188 15237
15189 15238
15190 RawFloat32x4* Float32x4::New(float v0, float v1, float v2, float v3, 15239 RawFloat32x4* Float32x4::New(float v0, float v1, float v2, float v3,
15191 Heap::Space space) { 15240 Heap::Space space) {
15192 ASSERT(Isolate::Current()->object_store()->float32x4_class() != 15241 ASSERT(Isolate::Current()->object_store()->float32x4_class() !=
15193 Class::null()); 15242 Class::null());
15194 Float32x4& result = Float32x4::Handle(); 15243 Float32x4& result = Float32x4::Handle();
15195 { 15244 {
15196 RawObject* raw = Object::Allocate(Float32x4::kClassId, 15245 RawObject* raw = Object::Allocate(Float32x4::kClassId,
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
15281 float _w = w(); 15330 float _w = w();
15282 // Calculate the size of the string. 15331 // Calculate the size of the string.
15283 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1; 15332 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1;
15284 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); 15333 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
15285 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w); 15334 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w);
15286 return chars; 15335 return chars;
15287 } 15336 }
15288 15337
15289 15338
15290 void Float32x4::PrintToJSONStream(JSONStream* stream, bool ref) const { 15339 void Float32x4::PrintToJSONStream(JSONStream* stream, bool ref) const {
15291 JSONObject jsobj(stream); 15340 Instance::PrintToJSONStream(stream, ref);
15292 } 15341 }
15293 15342
15294 15343
15295 RawInt32x4* Int32x4::New(int32_t v0, int32_t v1, int32_t v2, int32_t v3, 15344 RawInt32x4* Int32x4::New(int32_t v0, int32_t v1, int32_t v2, int32_t v3,
15296 Heap::Space space) { 15345 Heap::Space space) {
15297 ASSERT(Isolate::Current()->object_store()->int32x4_class() != 15346 ASSERT(Isolate::Current()->object_store()->int32x4_class() !=
15298 Class::null()); 15347 Class::null());
15299 Int32x4& result = Int32x4::Handle(); 15348 Int32x4& result = Int32x4::Handle();
15300 { 15349 {
15301 RawObject* raw = Object::Allocate(Int32x4::kClassId, 15350 RawObject* raw = Object::Allocate(Int32x4::kClassId,
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
15386 int32_t _w = w(); 15435 int32_t _w = w();
15387 // Calculate the size of the string. 15436 // Calculate the size of the string.
15388 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1; 15437 intptr_t len = OS::SNPrint(NULL, 0, kFormat, _x, _y, _z, _w) + 1;
15389 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); 15438 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
15390 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w); 15439 OS::SNPrint(chars, len, kFormat, _x, _y, _z, _w);
15391 return chars; 15440 return chars;
15392 } 15441 }
15393 15442
15394 15443
15395 void Int32x4::PrintToJSONStream(JSONStream* stream, bool ref) const { 15444 void Int32x4::PrintToJSONStream(JSONStream* stream, bool ref) const {
15396 JSONObject jsobj(stream); 15445 Instance::PrintToJSONStream(stream, ref);
15397 } 15446 }
15398 15447
15399 15448
15400 const intptr_t TypedData::element_size[] = { 15449 const intptr_t TypedData::element_size[] = {
15401 1, // kTypedDataInt8ArrayCid. 15450 1, // kTypedDataInt8ArrayCid.
15402 1, // kTypedDataUint8ArrayCid. 15451 1, // kTypedDataUint8ArrayCid.
15403 1, // kTypedDataUint8ClampedArrayCid. 15452 1, // kTypedDataUint8ClampedArrayCid.
15404 2, // kTypedDataInt16ArrayCid. 15453 2, // kTypedDataInt16ArrayCid.
15405 2, // kTypedDataUint16ArrayCid. 15454 2, // kTypedDataUint16ArrayCid.
15406 4, // kTypedDataInt32ArrayCid. 15455 4, // kTypedDataInt32ArrayCid.
(...skipping 29 matching lines...) Expand all
15436 return result.raw(); 15485 return result.raw();
15437 } 15486 }
15438 15487
15439 15488
15440 const char* TypedData::ToCString() const { 15489 const char* TypedData::ToCString() const {
15441 return "TypedData"; 15490 return "TypedData";
15442 } 15491 }
15443 15492
15444 15493
15445 void TypedData::PrintToJSONStream(JSONStream* stream, bool ref) const { 15494 void TypedData::PrintToJSONStream(JSONStream* stream, bool ref) const {
15446 JSONObject jsobj(stream); 15495 Instance::PrintToJSONStream(stream, ref);
15447 } 15496 }
15448 15497
15449 15498
15450 FinalizablePersistentHandle* ExternalTypedData::AddFinalizer( 15499 FinalizablePersistentHandle* ExternalTypedData::AddFinalizer(
15451 void* peer, Dart_WeakPersistentHandleFinalizer callback) const { 15500 void* peer, Dart_WeakPersistentHandleFinalizer callback) const {
15452 SetPeer(peer); 15501 SetPeer(peer);
15453 return dart::AddFinalizer(*this, peer, callback); 15502 return dart::AddFinalizer(*this, peer, callback);
15454 } 15503 }
15455 15504
15456 15505
(...skipping 15 matching lines...) Expand all
15472 } 15521 }
15473 15522
15474 15523
15475 const char* ExternalTypedData::ToCString() const { 15524 const char* ExternalTypedData::ToCString() const {
15476 return "ExternalTypedData"; 15525 return "ExternalTypedData";
15477 } 15526 }
15478 15527
15479 15528
15480 void ExternalTypedData::PrintToJSONStream(JSONStream* stream, 15529 void ExternalTypedData::PrintToJSONStream(JSONStream* stream,
15481 bool ref) const { 15530 bool ref) const {
15482 JSONObject jsobj(stream); 15531 Instance::PrintToJSONStream(stream, ref);
15483 } 15532 }
15484 15533
15485 15534
15486 15535
15487 const char* Closure::ToCString(const Instance& closure) { 15536 const char* Closure::ToCString(const Instance& closure) {
15488 const Function& fun = Function::Handle(Closure::function(closure)); 15537 const Function& fun = Function::Handle(Closure::function(closure));
15489 const bool is_implicit_closure = fun.IsImplicitClosureFunction(); 15538 const bool is_implicit_closure = fun.IsImplicitClosureFunction();
15490 const char* fun_sig = String::Handle(fun.UserVisibleSignature()).ToCString(); 15539 const char* fun_sig = String::Handle(fun.UserVisibleSignature()).ToCString();
15491 const char* from = is_implicit_closure ? " from " : ""; 15540 const char* from = is_implicit_closure ? " from " : "";
15492 const char* fun_desc = is_implicit_closure ? fun.ToCString() : ""; 15541 const char* fun_desc = is_implicit_closure ? fun.ToCString() : "";
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
15659 } 15708 }
15660 15709
15661 15710
15662 const char* Stacktrace::ToCString() const { 15711 const char* Stacktrace::ToCString() const {
15663 const String& trace = String::Handle(FullStacktrace()); 15712 const String& trace = String::Handle(FullStacktrace());
15664 return trace.ToCString(); 15713 return trace.ToCString();
15665 } 15714 }
15666 15715
15667 15716
15668 void Stacktrace::PrintToJSONStream(JSONStream* stream, bool ref) const { 15717 void Stacktrace::PrintToJSONStream(JSONStream* stream, bool ref) const {
15669 JSONObject jsobj(stream); 15718 Instance::PrintToJSONStream(stream, ref);
15670 } 15719 }
15671 15720
15672 15721
15673 static intptr_t PrintOneStacktrace(Isolate* isolate, 15722 static intptr_t PrintOneStacktrace(Isolate* isolate,
15674 GrowableArray<char*>* frame_strings, 15723 GrowableArray<char*>* frame_strings,
15675 uword pc, 15724 uword pc,
15676 const Function& function, 15725 const Function& function,
15677 const Code& code, 15726 const Code& code,
15678 intptr_t frame_index) { 15727 intptr_t frame_index) {
15679 const char* kFormatWithCol = "#%-6d %s (%s:%d:%d)\n"; 15728 const char* kFormatWithCol = "#%-6d %s (%s:%d:%d)\n";
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
15869 const String& str = String::Handle(pattern()); 15918 const String& str = String::Handle(pattern());
15870 const char* format = "JSRegExp: pattern=%s flags=%s"; 15919 const char* format = "JSRegExp: pattern=%s flags=%s";
15871 intptr_t len = OS::SNPrint(NULL, 0, format, str.ToCString(), Flags()); 15920 intptr_t len = OS::SNPrint(NULL, 0, format, str.ToCString(), Flags());
15872 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len + 1); 15921 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len + 1);
15873 OS::SNPrint(chars, (len + 1), format, str.ToCString(), Flags()); 15922 OS::SNPrint(chars, (len + 1), format, str.ToCString(), Flags());
15874 return chars; 15923 return chars;
15875 } 15924 }
15876 15925
15877 15926
15878 void JSRegExp::PrintToJSONStream(JSONStream* stream, bool ref) const { 15927 void JSRegExp::PrintToJSONStream(JSONStream* stream, bool ref) const {
15879 JSONObject jsobj(stream); 15928 Instance::PrintToJSONStream(stream, ref);
15880 } 15929 }
15881 15930
15882 15931
15883 RawWeakProperty* WeakProperty::New(Heap::Space space) { 15932 RawWeakProperty* WeakProperty::New(Heap::Space space) {
15884 ASSERT(Isolate::Current()->object_store()->weak_property_class() 15933 ASSERT(Isolate::Current()->object_store()->weak_property_class()
15885 != Class::null()); 15934 != Class::null());
15886 RawObject* raw = Object::Allocate(WeakProperty::kClassId, 15935 RawObject* raw = Object::Allocate(WeakProperty::kClassId,
15887 WeakProperty::InstanceSize(), 15936 WeakProperty::InstanceSize(),
15888 space); 15937 space);
15889 return reinterpret_cast<RawWeakProperty*>(raw); 15938 return reinterpret_cast<RawWeakProperty*>(raw);
15890 } 15939 }
15891 15940
15892 15941
15893 const char* WeakProperty::ToCString() const { 15942 const char* WeakProperty::ToCString() const {
15894 return "_WeakProperty"; 15943 return "_WeakProperty";
15895 } 15944 }
15896 15945
15897 15946
15898 void WeakProperty::PrintToJSONStream(JSONStream* stream, bool ref) const { 15947 void WeakProperty::PrintToJSONStream(JSONStream* stream, bool ref) const {
15899 JSONObject jsobj(stream); 15948 Instance::PrintToJSONStream(stream, ref);
15900 } 15949 }
15901 15950
15902 RawAbstractType* MirrorReference::GetAbstractTypeReferent() const { 15951 RawAbstractType* MirrorReference::GetAbstractTypeReferent() const {
15903 ASSERT(Object::Handle(referent()).IsAbstractType()); 15952 ASSERT(Object::Handle(referent()).IsAbstractType());
15904 return AbstractType::Cast(Object::Handle(referent())).raw(); 15953 return AbstractType::Cast(Object::Handle(referent())).raw();
15905 } 15954 }
15906 15955
15907 15956
15908 RawClass* MirrorReference::GetClassReferent() const { 15957 RawClass* MirrorReference::GetClassReferent() const {
15909 ASSERT(Object::Handle(referent()).IsClass()); 15958 ASSERT(Object::Handle(referent()).IsClass());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
15951 return result.raw(); 16000 return result.raw();
15952 } 16001 }
15953 16002
15954 16003
15955 const char* MirrorReference::ToCString() const { 16004 const char* MirrorReference::ToCString() const {
15956 return "_MirrorReference"; 16005 return "_MirrorReference";
15957 } 16006 }
15958 16007
15959 16008
15960 void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const { 16009 void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const {
15961 JSONObject jsobj(stream); 16010 Instance::PrintToJSONStream(stream, ref);
15962 } 16011 }
15963 16012
15964 16013
15965 } // namespace dart 16014 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698