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

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

Issue 1057333004: Continue improving the documentation for the vm service protocol. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: code review Created 5 years, 8 months 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
« no previous file with comments | « runtime/vm/debugger_api_impl_test.cc ('k') | runtime/vm/object_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 5284 matching lines...) Expand 10 before | Expand all | Expand 10 after
5295 ASSERT(IsRedirectingFactory()); 5295 ASSERT(IsRedirectingFactory());
5296 const Object& obj = Object::Handle(raw_ptr()->data_); 5296 const Object& obj = Object::Handle(raw_ptr()->data_);
5297 ASSERT(!obj.IsNull()); 5297 ASSERT(!obj.IsNull());
5298 return RedirectionData::Cast(obj).type(); 5298 return RedirectionData::Cast(obj).type();
5299 } 5299 }
5300 5300
5301 5301
5302 const char* Function::KindToCString(RawFunction::Kind kind) { 5302 const char* Function::KindToCString(RawFunction::Kind kind) {
5303 switch (kind) { 5303 switch (kind) {
5304 case RawFunction::kRegularFunction: 5304 case RawFunction::kRegularFunction:
5305 return "kRegularFunction"; 5305 return "RegularFunction";
5306 break; 5306 break;
5307 case RawFunction::kClosureFunction: 5307 case RawFunction::kClosureFunction:
5308 return "kClosureFunction"; 5308 return "ClosureFunction";
5309 break; 5309 break;
5310 case RawFunction::kSignatureFunction: 5310 case RawFunction::kSignatureFunction:
5311 return "kSignatureFunction"; 5311 return "SignatureFunction";
5312 break; 5312 break;
5313 case RawFunction::kGetterFunction: 5313 case RawFunction::kGetterFunction:
5314 return "kGetterFunction"; 5314 return "GetterFunction";
5315 break; 5315 break;
5316 case RawFunction::kSetterFunction: 5316 case RawFunction::kSetterFunction:
5317 return "kSetterFunction"; 5317 return "SetterFunction";
5318 break; 5318 break;
5319 case RawFunction::kConstructor: 5319 case RawFunction::kConstructor:
5320 return "kConstructor"; 5320 return "Constructor";
5321 break; 5321 break;
5322 case RawFunction::kImplicitGetter: 5322 case RawFunction::kImplicitGetter:
5323 return "kImplicitGetter"; 5323 return "ImplicitGetter";
5324 break; 5324 break;
5325 case RawFunction::kImplicitSetter: 5325 case RawFunction::kImplicitSetter:
5326 return "kImplicitSetter"; 5326 return "ImplicitSetter";
5327 break; 5327 break;
5328 case RawFunction::kImplicitStaticFinalGetter: 5328 case RawFunction::kImplicitStaticFinalGetter:
5329 return "kImplicitStaticFinalGetter"; 5329 return "ImplicitStaticFinalGetter";
5330 break; 5330 break;
5331 case RawFunction::kMethodExtractor: 5331 case RawFunction::kMethodExtractor:
5332 return "kMethodExtractor"; 5332 return "MethodExtractor";
5333 break; 5333 break;
5334 case RawFunction::kNoSuchMethodDispatcher: 5334 case RawFunction::kNoSuchMethodDispatcher:
5335 return "kNoSuchMethodDispatcher"; 5335 return "NoSuchMethodDispatcher";
5336 break; 5336 break;
5337 case RawFunction::kInvokeFieldDispatcher: 5337 case RawFunction::kInvokeFieldDispatcher:
5338 return "kInvokeFieldDispatcher"; 5338 return "InvokeFieldDispatcher";
5339 break; 5339 break;
5340 case RawFunction::kIrregexpFunction: 5340 case RawFunction::kIrregexpFunction:
5341 return "kIrregexpFunction"; 5341 return "IrregexpFunction";
5342 break; 5342 break;
5343 default: 5343 default:
5344 UNREACHABLE(); 5344 UNREACHABLE();
5345 return NULL; 5345 return NULL;
5346 } 5346 }
5347 } 5347 }
5348 5348
5349 5349
5350 void Function::SetRedirectionType(const Type& type) const { 5350 void Function::SetRedirectionType(const Type& type) const {
5351 ASSERT(IsFactory()); 5351 ASSERT(IsFactory());
(...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after
6238 return result.raw(); 6238 return result.raw();
6239 } 6239 }
6240 6240
6241 RawFunction* Function::ImplicitClosureFunction() const { 6241 RawFunction* Function::ImplicitClosureFunction() const {
6242 // Return the existing implicit closure function if any. 6242 // Return the existing implicit closure function if any.
6243 if (implicit_closure_function() != Function::null()) { 6243 if (implicit_closure_function() != Function::null()) {
6244 return implicit_closure_function(); 6244 return implicit_closure_function();
6245 } 6245 }
6246 ASSERT(!IsSignatureFunction() && !IsClosureFunction()); 6246 ASSERT(!IsSignatureFunction() && !IsClosureFunction());
6247 // Create closure function. 6247 // Create closure function.
6248 const String& closure_name = String::Handle(name()); 6248 const String& closure_name = Symbols::ImplicitClosure();
6249 const Function& closure_function = Function::Handle( 6249 const Function& closure_function = Function::Handle(
6250 NewClosureFunction(closure_name, *this, token_pos())); 6250 NewClosureFunction(closure_name, *this, token_pos()));
6251 6251
6252 // Set closure function's context scope. 6252 // Set closure function's context scope.
6253 ContextScope& context_scope = ContextScope::Handle(); 6253 ContextScope& context_scope = ContextScope::Handle();
6254 if (is_static()) { 6254 if (is_static()) {
6255 context_scope = ContextScope::New(0); 6255 context_scope = ContextScope::New(0);
6256 } else { 6256 } else {
6257 context_scope = LocalScope::CreateImplicitClosureScope(*this); 6257 context_scope = LocalScope::CreateImplicitClosureScope(*this);
6258 } 6258 }
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
6572 const String& suffix = String::Handle(PrettyName()); 6572 const String& suffix = String::Handle(PrettyName());
6573 return String::Concat(tmp, suffix); 6573 return String::Concat(tmp, suffix);
6574 } 6574 }
6575 6575
6576 6576
6577 RawString* Function::QualifiedUserVisibleName() const { 6577 RawString* Function::QualifiedUserVisibleName() const {
6578 String& tmp = String::Handle(); 6578 String& tmp = String::Handle();
6579 const Class& cls = Class::Handle(Owner()); 6579 const Class& cls = Class::Handle(Owner());
6580 6580
6581 if (IsClosureFunction()) { 6581 if (IsClosureFunction()) {
6582 if (IsLocalFunction() && !IsImplicitClosureFunction()) { 6582 if (IsLocalFunction()) {
6583 const Function& parent = Function::Handle(parent_function()); 6583 const Function& parent = Function::Handle(parent_function());
6584 tmp = parent.QualifiedUserVisibleName(); 6584 tmp = parent.QualifiedUserVisibleName();
6585 } else { 6585 } else {
6586 return UserVisibleName(); 6586 return UserVisibleName();
6587 } 6587 }
6588 } else { 6588 } else {
6589 if (cls.IsTopLevel()) { 6589 if (cls.IsTopLevel()) {
6590 return UserVisibleName(); 6590 return UserVisibleName();
6591 } else { 6591 } else {
6592 tmp = cls.UserVisibleName(); 6592 tmp = cls.UserVisibleName();
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
6811 ASSERT(!cls.IsNull()); 6811 ASSERT(!cls.IsNull());
6812 Error& err = Error::Handle(); 6812 Error& err = Error::Handle();
6813 err ^= cls.EnsureIsFinalized(Isolate::Current()); 6813 err ^= cls.EnsureIsFinalized(Isolate::Current());
6814 ASSERT(err.IsNull()); 6814 ASSERT(err.IsNull());
6815 JSONObject jsobj(stream); 6815 JSONObject jsobj(stream);
6816 AddTypeProperties(&jsobj, "Function", JSONType(), ref); 6816 AddTypeProperties(&jsobj, "Function", JSONType(), ref);
6817 jsobj.AddProperty("id", GetFunctionServiceId(*this, cls)); 6817 jsobj.AddProperty("id", GetFunctionServiceId(*this, cls));
6818 const String& user_name = String::Handle(PrettyName()); 6818 const String& user_name = String::Handle(PrettyName());
6819 const String& vm_name = String::Handle(name()); 6819 const String& vm_name = String::Handle(name());
6820 AddNameProperties(&jsobj, user_name, vm_name); 6820 AddNameProperties(&jsobj, user_name, vm_name);
6821 if (cls.IsTopLevel()) {
6822 const Library& library = Library::Handle(cls.library());
6823 jsobj.AddProperty("owningLibrary", library);
6824 } else {
6825 jsobj.AddProperty("owningClass", cls);
6826 }
6827 const Function& parent = Function::Handle(parent_function()); 6821 const Function& parent = Function::Handle(parent_function());
6828 if (!parent.IsNull()) { 6822 if (!parent.IsNull()) {
6829 jsobj.AddProperty("parent", parent); 6823 jsobj.AddProperty("owner", parent);
6824 } else if (cls.IsTopLevel()) {
6825 const Library& library = Library::Handle(cls.library());
6826 jsobj.AddProperty("owner", library);
6827 } else {
6828 jsobj.AddProperty("owner", cls);
6830 } 6829 }
6830
6831 const char* kind_string = Function::KindToCString(kind()); 6831 const char* kind_string = Function::KindToCString(kind());
6832 jsobj.AddProperty("kind", kind_string); 6832 jsobj.AddProperty("kind", kind_string);
6833 if (ref) { 6833 if (ref) {
6834 return; 6834 return;
6835 } 6835 }
6836 jsobj.AddProperty("static", is_static()); 6836 jsobj.AddProperty("static", is_static());
6837 jsobj.AddProperty("const", is_const()); 6837 jsobj.AddProperty("const", is_const());
6838 jsobj.AddProperty("optimizable", is_optimizable()); 6838 Code& code = Code::Handle(CurrentCode());
6839 jsobj.AddProperty("inlinable", CanBeInlined()); 6839 if (!code.IsNull()) {
6840 jsobj.AddProperty("unoptimizedCode", Object::Handle(unoptimized_code())); 6840 jsobj.AddProperty("code", code);
6841 jsobj.AddProperty("usageCounter", usage_counter()); 6841 }
6842 jsobj.AddProperty("optimizedCallSiteCount", optimized_call_site_count()); 6842 jsobj.AddProperty("_optimizable", is_optimizable());
6843 jsobj.AddProperty("code", Object::Handle(CurrentCode())); 6843 jsobj.AddProperty("_inlinable", CanBeInlined());
6844 jsobj.AddProperty("deoptimizations", 6844 code = unoptimized_code();
6845 if (!code.IsNull()) {
6846 jsobj.AddProperty("_unoptimizedCode", code);
6847 }
6848 jsobj.AddProperty("_usageCounter", usage_counter());
6849 jsobj.AddProperty("_optimizedCallSiteCount", optimized_call_site_count());
6850 jsobj.AddProperty("_deoptimizations",
6845 static_cast<intptr_t>(deoptimization_counter())); 6851 static_cast<intptr_t>(deoptimization_counter()));
6846 6852
6847 const Script& script = Script::Handle(this->script()); 6853 const Script& script = Script::Handle(this->script());
6848 if (!script.IsNull()) { 6854 if (!script.IsNull()) {
6849 jsobj.AddProperty("script", script); 6855 jsobj.AddProperty("script", script);
6850 jsobj.AddProperty("tokenPos", token_pos()); 6856 jsobj.AddProperty("tokenPos", token_pos());
6851 jsobj.AddProperty("endTokenPos", end_token_pos()); 6857 jsobj.AddProperty("endTokenPos", end_token_pos());
6852 } 6858 }
6853 } 6859 }
6854 6860
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
7183 } 7189 }
7184 7190
7185 AbstractType& declared_type = AbstractType::Handle(type()); 7191 AbstractType& declared_type = AbstractType::Handle(type());
7186 jsobj.AddProperty("declaredType", declared_type); 7192 jsobj.AddProperty("declaredType", declared_type);
7187 jsobj.AddProperty("static", is_static()); 7193 jsobj.AddProperty("static", is_static());
7188 jsobj.AddProperty("final", is_final()); 7194 jsobj.AddProperty("final", is_final());
7189 jsobj.AddProperty("const", is_const()); 7195 jsobj.AddProperty("const", is_const());
7190 if (ref) { 7196 if (ref) {
7191 return; 7197 return;
7192 } 7198 }
7193 jsobj.AddProperty("guardNullable", is_nullable()); 7199 jsobj.AddProperty("_guardNullable", is_nullable());
7194 if (guarded_cid() == kIllegalCid) { 7200 if (guarded_cid() == kIllegalCid) {
7195 jsobj.AddProperty("guardClass", "unknown"); 7201 jsobj.AddProperty("_guardClass", "unknown");
7196 } else if (guarded_cid() == kDynamicCid) { 7202 } else if (guarded_cid() == kDynamicCid) {
7197 jsobj.AddProperty("guardClass", "dynamic"); 7203 jsobj.AddProperty("_guardClass", "dynamic");
7198 } else { 7204 } else {
7199 ClassTable* table = Isolate::Current()->class_table(); 7205 ClassTable* table = Isolate::Current()->class_table();
7200 ASSERT(table->IsValidIndex(guarded_cid())); 7206 ASSERT(table->IsValidIndex(guarded_cid()));
7201 cls ^= table->At(guarded_cid()); 7207 cls ^= table->At(guarded_cid());
7202 jsobj.AddProperty("guardClass", cls); 7208 jsobj.AddProperty("_guardClass", cls);
7203 } 7209 }
7204 if (guarded_list_length() == kUnknownFixedLength) { 7210 if (guarded_list_length() == kUnknownFixedLength) {
7205 jsobj.AddProperty("guardLength", "unknown"); 7211 jsobj.AddProperty("_guardLength", "unknown");
7206 } else if (guarded_list_length() == kNoFixedLength) { 7212 } else if (guarded_list_length() == kNoFixedLength) {
7207 jsobj.AddProperty("guardLength", "variable"); 7213 jsobj.AddProperty("_guardLength", "variable");
7208 } else { 7214 } else {
7209 jsobj.AddProperty("guardLength", guarded_list_length()); 7215 jsobj.AddProperty("_guardLength", guarded_list_length());
7210 } 7216 }
7211 const Class& origin_cls = Class::Handle(origin()); 7217 const Class& origin_cls = Class::Handle(origin());
7212 const Script& script = Script::Handle(origin_cls.script()); 7218 const Script& script = Script::Handle(origin_cls.script());
7213 if (!script.IsNull()) { 7219 if (!script.IsNull()) {
7214 jsobj.AddProperty("script", script); 7220 jsobj.AddProperty("script", script);
7215 jsobj.AddProperty("tokenPos", token_pos()); 7221 jsobj.AddProperty("tokenPos", token_pos());
7216 } 7222 }
7217 } 7223 }
7218 7224
7219 7225
(...skipping 1289 matching lines...) Expand 10 before | Expand all | Expand 10 after
8509 ASSERT(!encoded_url.IsNull()); 8515 ASSERT(!encoded_url.IsNull());
8510 const Library& lib = Library::Handle(FindLibrary()); 8516 const Library& lib = Library::Handle(FindLibrary());
8511 intptr_t lib_index = (lib.IsNull()) ? -1 : lib.index(); 8517 intptr_t lib_index = (lib.IsNull()) ? -1 : lib.index();
8512 jsobj.AddPropertyF("id", "libraries/%" Pd "/scripts/%s", 8518 jsobj.AddPropertyF("id", "libraries/%" Pd "/scripts/%s",
8513 lib_index, encoded_url.ToCString()); 8519 lib_index, encoded_url.ToCString());
8514 jsobj.AddPropertyStr("name", name); 8520 jsobj.AddPropertyStr("name", name);
8515 jsobj.AddProperty("kind", GetKindAsCString()); 8521 jsobj.AddProperty("kind", GetKindAsCString());
8516 if (ref) { 8522 if (ref) {
8517 return; 8523 return;
8518 } 8524 }
8519 jsobj.AddProperty("owningLibrary", lib); 8525 jsobj.AddProperty("library", lib);
8520 const String& source = String::Handle(Source()); 8526 const String& source = String::Handle(Source());
8521 jsobj.AddPropertyStr("source", source); 8527 jsobj.AddPropertyStr("source", source);
8522 8528
8523 // Print the line number table 8529 // Print the line number table
8524 { 8530 {
8525 JSONArray tokenPosTable(&jsobj, "tokenPosTable"); 8531 JSONArray tokenPosTable(&jsobj, "tokenPosTable");
8526 8532
8527 const GrowableObjectArray& lineNumberArray = 8533 const GrowableObjectArray& lineNumberArray =
8528 GrowableObjectArray::Handle(GenerateLineNumberArray()); 8534 GrowableObjectArray::Handle(GenerateLineNumberArray());
8529 Object& value = Object::Handle(); 8535 Object& value = Object::Handle();
(...skipping 3999 matching lines...) Expand 10 before | Expand all | Expand 10 after
12529 const Object& obj = Object::Handle(owner()); 12535 const Object& obj = Object::Handle(owner());
12530 return obj.IsFunction(); 12536 return obj.IsFunction();
12531 } 12537 }
12532 12538
12533 12539
12534 void Code::PrintJSONImpl(JSONStream* stream, bool ref) const { 12540 void Code::PrintJSONImpl(JSONStream* stream, bool ref) const {
12535 JSONObject jsobj(stream); 12541 JSONObject jsobj(stream);
12536 AddTypeProperties(&jsobj, "Code", JSONType(), ref); 12542 AddTypeProperties(&jsobj, "Code", JSONType(), ref);
12537 jsobj.AddPropertyF("id", "code/%" Px64"-%" Px "", compile_timestamp(), 12543 jsobj.AddPropertyF("id", "code/%" Px64"-%" Px "", compile_timestamp(),
12538 EntryPoint()); 12544 EntryPoint());
12539 jsobj.AddPropertyF("start", "%" Px "", EntryPoint()); 12545 const String& user_name = String::Handle(PrettyName());
12540 jsobj.AddPropertyF("end", "%" Px "", EntryPoint() + Size()); 12546 const String& vm_name = String::Handle(Name());
12541 jsobj.AddProperty("optimized", is_optimized()); 12547 AddNameProperties(&jsobj, user_name, vm_name);
12542 jsobj.AddProperty("alive", is_alive());
12543 const Object& obj = Object::Handle(owner());
12544 const bool is_stub = IsStubCode() || IsAllocationStubCode(); 12548 const bool is_stub = IsStubCode() || IsAllocationStubCode();
12545 if (is_stub) { 12549 if (is_stub) {
12546 jsobj.AddProperty("kind", "Stub"); 12550 jsobj.AddProperty("kind", "Stub");
12547 } else { 12551 } else {
12548 jsobj.AddProperty("kind", "Dart"); 12552 jsobj.AddProperty("kind", "Dart");
12549 } 12553 }
12550 const String& user_name = String::Handle(PrettyName()); 12554 jsobj.AddProperty("_optimized", is_optimized());
12551 const String& vm_name = String::Handle(Name()); 12555 if (ref) {
12552 AddNameProperties(&jsobj, user_name, vm_name); 12556 return;
12557 }
12558 const Object& obj = Object::Handle(owner());
12553 if (obj.IsFunction()) { 12559 if (obj.IsFunction()) {
12554 jsobj.AddProperty("function", obj); 12560 jsobj.AddProperty("function", obj);
12555 } else { 12561 } else {
12556 // Generate a fake function reference. 12562 // Generate a fake function reference.
12557 JSONObject func(&jsobj, "function"); 12563 JSONObject func(&jsobj, "function");
12558 func.AddProperty("type", "@Function"); 12564 func.AddProperty("type", "@Function");
12559 func.AddProperty("kind", "Stub"); 12565 func.AddProperty("kind", "Stub");
12560 func.AddProperty("name", user_name.ToCString()); 12566 func.AddProperty("name", user_name.ToCString());
12561 AddNameProperties(&func, user_name, vm_name); 12567 AddNameProperties(&func, user_name, vm_name);
12562 } 12568 }
12563 if (ref) { 12569 jsobj.AddPropertyF("_startAddress", "%" Px "", EntryPoint());
12564 return; 12570 jsobj.AddPropertyF("_endAddress", "%" Px "", EntryPoint() + Size());
12565 } 12571 jsobj.AddProperty("_alive", is_alive());
12566 const Array& array = Array::Handle(ObjectPool()); 12572 const Array& array = Array::Handle(ObjectPool());
12567 jsobj.AddProperty("objectPool", array); 12573 jsobj.AddProperty("_objectPool", array);
12568 { 12574 {
12569 JSONArray jsarr(&jsobj, "disassembly"); 12575 JSONArray jsarr(&jsobj, "_disassembly");
12570 if (is_alive()) { 12576 if (is_alive()) {
12571 // Only disassemble alive code objects. 12577 // Only disassemble alive code objects.
12572 DisassembleToJSONStream formatter(jsarr); 12578 DisassembleToJSONStream formatter(jsarr);
12573 Disassemble(&formatter); 12579 Disassemble(&formatter);
12574 } 12580 }
12575 } 12581 }
12576 const PcDescriptors& descriptors = PcDescriptors::Handle(pc_descriptors()); 12582 const PcDescriptors& descriptors = PcDescriptors::Handle(pc_descriptors());
12577 if (!descriptors.IsNull()) { 12583 if (!descriptors.IsNull()) {
12578 JSONObject desc(&jsobj, "descriptors"); 12584 JSONObject desc(&jsobj, "_descriptors");
12579 descriptors.PrintToJSONObject(&desc, false); 12585 descriptors.PrintToJSONObject(&desc, false);
12580 } 12586 }
12581 const Array& inlined_function_table = Array::Handle(inlined_id_to_function()); 12587 const Array& inlined_function_table = Array::Handle(inlined_id_to_function());
12582 if (!inlined_function_table.IsNull()) { 12588 if (!inlined_function_table.IsNull()) {
12583 JSONArray inlined_functions(&jsobj, "inlinedFunctions"); 12589 JSONArray inlined_functions(&jsobj, "_inlinedFunctions");
12584 Function& function = Function::Handle(); 12590 Function& function = Function::Handle();
12585 for (intptr_t i = 0; i < inlined_function_table.Length(); i++) { 12591 for (intptr_t i = 0; i < inlined_function_table.Length(); i++) {
12586 function ^= inlined_function_table.At(i); 12592 function ^= inlined_function_table.At(i);
12587 ASSERT(!function.IsNull()); 12593 ASSERT(!function.IsNull());
12588 inlined_functions.AddValue(function); 12594 inlined_functions.AddValue(function);
12589 } 12595 }
12590 } 12596 }
12591 const Array& intervals = Array::Handle(inlined_intervals()); 12597 const Array& intervals = Array::Handle(inlined_intervals());
12592 if (!intervals.IsNull()) { 12598 if (!intervals.IsNull()) {
12593 Smi& start = Smi::Handle(); 12599 Smi& start = Smi::Handle();
12594 Smi& end = Smi::Handle(); 12600 Smi& end = Smi::Handle();
12595 Smi& temp_smi = Smi::Handle(); 12601 Smi& temp_smi = Smi::Handle();
12596 JSONArray inline_intervals(&jsobj, "inlinedIntervals"); 12602 JSONArray inline_intervals(&jsobj, "_inlinedIntervals");
12597 for (intptr_t i = 0; i < intervals.Length() - Code::kInlIntNumEntries; 12603 for (intptr_t i = 0; i < intervals.Length() - Code::kInlIntNumEntries;
12598 i += Code::kInlIntNumEntries) { 12604 i += Code::kInlIntNumEntries) {
12599 start ^= intervals.At(i + Code::kInlIntStart); 12605 start ^= intervals.At(i + Code::kInlIntStart);
12600 if (start.IsNull()) { 12606 if (start.IsNull()) {
12601 continue; 12607 continue;
12602 } 12608 }
12603 end ^= intervals.At(i + Code::kInlIntNumEntries + Code::kInlIntStart); 12609 end ^= intervals.At(i + Code::kInlIntNumEntries + Code::kInlIntStart);
12604 12610
12605 // Format: [start, end, inline functions...] 12611 // Format: [start, end, inline functions...]
12606 JSONArray inline_interval(&inline_intervals); 12612 JSONArray inline_interval(&inline_intervals);
(...skipping 8112 matching lines...) Expand 10 before | Expand all | Expand 10 after
20719 return tag_label.ToCString(); 20725 return tag_label.ToCString();
20720 } 20726 }
20721 20727
20722 20728
20723 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { 20729 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const {
20724 Instance::PrintJSONImpl(stream, ref); 20730 Instance::PrintJSONImpl(stream, ref);
20725 } 20731 }
20726 20732
20727 20733
20728 } // namespace dart 20734 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/debugger_api_impl_test.cc ('k') | runtime/vm/object_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698