13ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch// Copyright 2012 the V8 project authors. All rights reserved. 2b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// found in the LICENSE file. 4b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 5b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "src/v8.h" 6b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 7b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "src/disasm.h" 8b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "src/disassembler.h" 9b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "src/heap/objects-visiting.h" 10b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "src/jsregexp.h" 11b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "src/ostreams.h" 129fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 139fac840a46e8b7e26894f4792ba26dde14c56b04Steve Blocknamespace v8 { 149fac840a46e8b7e26894f4792ba26dde14c56b04Steve Blocknamespace internal { 159fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 169fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block#ifdef OBJECT_PRINT 179fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 18b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Object::Print() { 19b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch OFStream os(stdout); 20b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch this->Print(os); 21b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << flush; 22b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 239fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 249fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 25b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Object::Print(OStream& os) { // NOLINT 26b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (IsSmi()) { 27b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Smi::cast(this)->SmiPrint(os); 289fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } else { 29b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::cast(this)->HeapObjectPrint(os); 309fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 319fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 329fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 339fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 34b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid HeapObject::PrintHeader(OStream& os, const char* id) { // NOLINT 35b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "" << reinterpret_cast<void*>(this) << ": [" << id << "]\n"; 369fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 379fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 389fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 39b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid HeapObject::HeapObjectPrint(OStream& os) { // NOLINT 409fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block InstanceType instance_type = map()->instance_type(); 419fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 42b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HandleScope scope(GetIsolate()); 439fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block if (instance_type < FIRST_NONSTRING_TYPE) { 44b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch String::cast(this)->StringPrint(os); 459fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block return; 469fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 479fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 489fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block switch (instance_type) { 49b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case SYMBOL_TYPE: 50b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Symbol::cast(this)->SymbolPrint(os); 51b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 529fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case MAP_TYPE: 53b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Map::cast(this)->MapPrint(os); 549fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 559fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case HEAP_NUMBER_TYPE: 56b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapNumber::cast(this)->HeapNumberPrint(os); 57b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 58b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case MUTABLE_HEAP_NUMBER_TYPE: 59b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "<mutable "; 60b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapNumber::cast(this)->HeapNumberPrint(os); 61b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << ">"; 629fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 633ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch case FIXED_DOUBLE_ARRAY_TYPE: 64b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch FixedDoubleArray::cast(this)->FixedDoubleArrayPrint(os); 65b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 66b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case CONSTANT_POOL_ARRAY_TYPE: 67b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch ConstantPoolArray::cast(this)->ConstantPoolArrayPrint(os); 683ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch break; 699fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case FIXED_ARRAY_TYPE: 70b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch FixedArray::cast(this)->FixedArrayPrint(os); 719fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 729fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case BYTE_ARRAY_TYPE: 73b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch ByteArray::cast(this)->ByteArrayPrint(os); 749fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 753ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch case FREE_SPACE_TYPE: 76b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch FreeSpace::cast(this)->FreeSpacePrint(os); 77257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch break; 78b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 79b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#define PRINT_EXTERNAL_ARRAY(Type, type, TYPE, ctype, size) \ 80b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case EXTERNAL_##TYPE##_ARRAY_TYPE: \ 81b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch External##Type##Array::cast(this)->External##Type##ArrayPrint(os); \ 82b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 83b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 84b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch TYPED_ARRAYS(PRINT_EXTERNAL_ARRAY) 85b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#undef PRINT_EXTERNAL_ARRAY 86b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 87b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#define PRINT_FIXED_TYPED_ARRAY(Type, type, TYPE, ctype, size) \ 88b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case Fixed##Type##Array::kInstanceType: \ 89b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Fixed##Type##Array::cast(this)->FixedTypedArrayPrint(os); \ 90b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 91b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 92b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch TYPED_ARRAYS(PRINT_FIXED_TYPED_ARRAY) 93b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#undef PRINT_FIXED_TYPED_ARRAY 94b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 959fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case FILLER_TYPE: 96b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "filler"; 979fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 989fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case JS_OBJECT_TYPE: // fall through 999fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case JS_CONTEXT_EXTENSION_OBJECT_TYPE: 1009fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case JS_ARRAY_TYPE: 101b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_GENERATOR_OBJECT_TYPE: 1029fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case JS_REGEXP_TYPE: 103b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSObject::cast(this)->JSObjectPrint(os); 1049fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1059fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case ODDBALL_TYPE: 106b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Oddball::cast(this)->to_string()->Print(os); 107b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 108b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_MODULE_TYPE: 109b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSModule::cast(this)->JSModulePrint(os); 1109fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1119fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case JS_FUNCTION_TYPE: 112b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSFunction::cast(this)->JSFunctionPrint(os); 1139fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1149fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case JS_GLOBAL_PROXY_TYPE: 115b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSGlobalProxy::cast(this)->JSGlobalProxyPrint(os); 1169fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1179fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case JS_GLOBAL_OBJECT_TYPE: 118b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSGlobalObject::cast(this)->JSGlobalObjectPrint(os); 1199fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1209fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case JS_BUILTINS_OBJECT_TYPE: 121b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSBuiltinsObject::cast(this)->JSBuiltinsObjectPrint(os); 1229fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1239fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case JS_VALUE_TYPE: 124b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "Value wrapper around:"; 125b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSValue::cast(this)->value()->Print(os); 1269fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1273ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch case JS_DATE_TYPE: 128b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSDate::cast(this)->JSDatePrint(os); 1293ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch break; 1309fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case CODE_TYPE: 131b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Code::cast(this)->CodePrint(os); 1329fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 133257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch case JS_PROXY_TYPE: 134b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSProxy::cast(this)->JSProxyPrint(os); 135257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch break; 136589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch case JS_FUNCTION_PROXY_TYPE: 137b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSFunctionProxy::cast(this)->JSFunctionProxyPrint(os); 138b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 139b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_SET_TYPE: 140b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSSet::cast(this)->JSSetPrint(os); 141b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 142b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_MAP_TYPE: 143b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSMap::cast(this)->JSMapPrint(os); 144b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 145b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_SET_ITERATOR_TYPE: 146b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSSetIterator::cast(this)->JSSetIteratorPrint(os); 147b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 148b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_MAP_ITERATOR_TYPE: 149b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSMapIterator::cast(this)->JSMapIteratorPrint(os); 150589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch break; 15169a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch case JS_WEAK_MAP_TYPE: 152b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSWeakMap::cast(this)->JSWeakMapPrint(os); 153b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 154b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_WEAK_SET_TYPE: 155b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSWeakSet::cast(this)->JSWeakSetPrint(os); 15669a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch break; 157257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch case FOREIGN_TYPE: 158b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Foreign::cast(this)->ForeignPrint(os); 1599fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1609fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case SHARED_FUNCTION_INFO_TYPE: 161b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch SharedFunctionInfo::cast(this)->SharedFunctionInfoPrint(os); 1629fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1631e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block case JS_MESSAGE_OBJECT_TYPE: 164b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSMessageObject::cast(this)->JSMessageObjectPrint(os); 165b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 166b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case CELL_TYPE: 167b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Cell::cast(this)->CellPrint(os); 168b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 169b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case PROPERTY_CELL_TYPE: 170b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PropertyCell::cast(this)->PropertyCellPrint(os); 171b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 172b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_ARRAY_BUFFER_TYPE: 173b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSArrayBuffer::cast(this)->JSArrayBufferPrint(os); 1741e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block break; 175b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_TYPED_ARRAY_TYPE: 176b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSTypedArray::cast(this)->JSTypedArrayPrint(os); 177b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 178b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case JS_DATA_VIEW_TYPE: 179b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSDataView::cast(this)->JSDataViewPrint(os); 1809fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1819fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block#define MAKE_STRUCT_CASE(NAME, Name, name) \ 1829fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case NAME##_TYPE: \ 183b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Name::cast(this)->Name##Print(os); \ 1849fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1859fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block STRUCT_LIST(MAKE_STRUCT_CASE) 1869fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block#undef MAKE_STRUCT_CASE 1879fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 1889fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block default: 189b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "UNKNOWN TYPE " << map()->instance_type(); 1909fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block UNREACHABLE(); 1919fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 1929fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 1939fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 1949fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 1959fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 196b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ByteArray::ByteArrayPrint(OStream& os) { // NOLINT 197b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "byte array, data starts at " << GetDataStartAddress(); 1983ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 1993ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 2003ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 201b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid FreeSpace::FreeSpacePrint(OStream& os) { // NOLINT 202b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "free space, size " << Size(); 2039fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 2049fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 2059fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 206b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#define EXTERNAL_ARRAY_PRINTER(Type, type, TYPE, ctype, size) \ 207b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch void External##Type##Array::External##Type##ArrayPrint(OStream& os) { \ 208b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "external " #type " array"; \ 209b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 2109fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 211b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochTYPED_ARRAYS(EXTERNAL_ARRAY_PRINTER) 2129fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 213b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#undef EXTERNAL_ARRAY_PRINTER 2149fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 2159fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 216b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochtemplate <class Traits> 217b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid FixedTypedArray<Traits>::FixedTypedArrayPrint(OStream& os) { // NOLINT 218b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "fixed " << Traits::Designator(); 219257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch} 220257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch 221257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch 222b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSObject::PrintProperties(OStream& os) { // NOLINT 2239fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block if (HasFastProperties()) { 2249fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block DescriptorArray* descs = map()->instance_descriptors(); 225b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch for (int i = 0; i < map()->NumberOfOwnDescriptors(); i++) { 226b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " "; 227b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch descs->GetKey(i)->NamePrint(os); 228b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << ": "; 2299fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block switch (descs->GetType(i)) { 2309fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case FIELD: { 231b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch FieldIndex index = FieldIndex::ForDescriptor(map(), i); 232b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << Brief(RawFastPropertyAt(index)) << " (field at offset " 233b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << index.property_index() << ")\n"; 2349fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 2359fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 236b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case CONSTANT: 237b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << Brief(descs->GetConstant(i)) << " (constant)\n"; 2389fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 2399fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case CALLBACKS: 240b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << Brief(descs->GetCallbacksObject(i)) << " (callback)\n"; 2419fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 2423ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch case NORMAL: // only in slow mode 2439fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block UNREACHABLE(); 2449fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 2459fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 2469fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 2479fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } else { 248b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch property_dictionary()->Print(os); 249b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 250b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 251b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 252b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 253b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochtemplate <class T> 254b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochstatic void DoPrintElements(OStream& os, Object* object) { // NOLINT 255b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch T* p = T::cast(object); 256b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch for (int i = 0; i < p->length(); i++) { 257b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " " << i << ": " << p->get_scalar(i) << "\n"; 2589fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 2599fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 2609fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 2619fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 262b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSObject::PrintElements(OStream& os) { // NOLINT 2633ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch // Don't call GetElementsKind, its validation code can cause the printer to 2643ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch // fail when debugging. 2653ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch switch (map()->elements_kind()) { 266b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case FAST_HOLEY_SMI_ELEMENTS: 267b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case FAST_SMI_ELEMENTS: 268b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case FAST_HOLEY_ELEMENTS: 2699fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case FAST_ELEMENTS: { 2709fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block // Print in array notation for non-sparse arrays. 2719fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block FixedArray* p = FixedArray::cast(elements()); 2729fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block for (int i = 0; i < p->length(); i++) { 273b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " " << i << ": " << Brief(p->get(i)) << "\n"; 2749fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 2759fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 2769fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 277b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case FAST_HOLEY_DOUBLE_ELEMENTS: 27869a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch case FAST_DOUBLE_ELEMENTS: { 27969a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch // Print in array notation for non-sparse arrays. 2805710ceac03e2cf7a164ad7393b5a6b6114ea45e6Ben Murdoch if (elements()->length() > 0) { 2815710ceac03e2cf7a164ad7393b5a6b6114ea45e6Ben Murdoch FixedDoubleArray* p = FixedDoubleArray::cast(elements()); 2825710ceac03e2cf7a164ad7393b5a6b6114ea45e6Ben Murdoch for (int i = 0; i < p->length(); i++) { 283b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " " << i << ": "; 2845710ceac03e2cf7a164ad7393b5a6b6114ea45e6Ben Murdoch if (p->is_the_hole(i)) { 285b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "<the hole>"; 2865710ceac03e2cf7a164ad7393b5a6b6114ea45e6Ben Murdoch } else { 287b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << p->get_scalar(i); 2885710ceac03e2cf7a164ad7393b5a6b6114ea45e6Ben Murdoch } 289b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 29069a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch } 29169a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch } 29269a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch break; 29369a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch } 294b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 295b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 296b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#define PRINT_ELEMENTS(Kind, Type) \ 297b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case Kind: { \ 298b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch DoPrintElements<Type>(os, elements()); \ 299b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; \ 300b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 301b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 302b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(EXTERNAL_UINT8_CLAMPED_ELEMENTS, ExternalUint8ClampedArray) 303b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(EXTERNAL_INT8_ELEMENTS, ExternalInt8Array) 304b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(EXTERNAL_UINT8_ELEMENTS, 305b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch ExternalUint8Array) 306b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(EXTERNAL_INT16_ELEMENTS, ExternalInt16Array) 307b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(EXTERNAL_UINT16_ELEMENTS, 308b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch ExternalUint16Array) 309b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(EXTERNAL_INT32_ELEMENTS, ExternalInt32Array) 310b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(EXTERNAL_UINT32_ELEMENTS, 311b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch ExternalUint32Array) 312b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(EXTERNAL_FLOAT32_ELEMENTS, ExternalFloat32Array) 313b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(EXTERNAL_FLOAT64_ELEMENTS, ExternalFloat64Array) 314b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 315b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(UINT8_ELEMENTS, FixedUint8Array) 316b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(UINT8_CLAMPED_ELEMENTS, FixedUint8ClampedArray) 317b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(INT8_ELEMENTS, FixedInt8Array) 318b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(UINT16_ELEMENTS, FixedUint16Array) 319b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(INT16_ELEMENTS, FixedInt16Array) 320b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(UINT32_ELEMENTS, FixedUint32Array) 321b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(INT32_ELEMENTS, FixedInt32Array) 322b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(FLOAT32_ELEMENTS, FixedFloat32Array) 323b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PRINT_ELEMENTS(FLOAT64_ELEMENTS, FixedFloat64Array) 324b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 325b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#undef PRINT_ELEMENTS 326b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 3279fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block case DICTIONARY_ELEMENTS: 328b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch elements()->Print(os); 3299fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block break; 330b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case SLOPPY_ARGUMENTS_ELEMENTS: { 3313fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch FixedArray* p = FixedArray::cast(elements()); 332b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " parameter map:"; 3333fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch for (int i = 2; i < p->length(); i++) { 334b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " " << (i - 2) << ":" << Brief(p->get(i)); 3353fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch } 336b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n context: " << Brief(p->get(0)) 337b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << "\n arguments: " << Brief(p->get(1)) << "\n"; 3383fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch break; 3393fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch } 3409fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 3419fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 3429fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 3439fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 344b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSObject::PrintTransitions(OStream& os) { // NOLINT 345b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (!map()->HasTransitionArray()) return; 346b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch TransitionArray* transitions = map()->transitions(); 347b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch for (int i = 0; i < transitions->number_of_transitions(); i++) { 348b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Name* key = transitions->GetKey(i); 349b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " "; 350b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch key->NamePrint(os); 351b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << ": "; 352b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (key == GetHeap()->frozen_symbol()) { 353b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " (transition to frozen)\n"; 354b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (key == GetHeap()->elements_transition_symbol()) { 355b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " (transition to " 356b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << ElementsKindToString(transitions->GetTarget(i)->elements_kind()) 357b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << ")\n"; 358b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (key == GetHeap()->observed_symbol()) { 359b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " (transition to Object.observe)\n"; 360b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else { 361b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch switch (transitions->GetTargetDetails(i).type()) { 362b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case FIELD: { 363b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " (transition to field)\n"; 364b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 365b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 366b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case CONSTANT: 367b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " (transition to constant)\n"; 368b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 369b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case CALLBACKS: 370b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " (transition to callback)\n"; 371b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 372b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // Values below are never in the target descriptor array. 373b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case NORMAL: 374b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch UNREACHABLE(); 375b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 376b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 377b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 378b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 379b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 380b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 381b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 382b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSObject::JSObjectPrint(OStream& os) { // NOLINT 383b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSObject"); 3843ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch // Don't call GetElementsKind, its validation code can cause the printer to 3853ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch // fail when debugging. 386b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PrototypeIterator iter(GetIsolate(), this); 387b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << " [" 388b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << ElementsKindToString(this->map()->elements_kind()) 389b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << "]\n - prototype = " << reinterpret_cast<void*>(iter.GetCurrent()) 390b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << "\n {\n"; 391b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PrintProperties(os); 392b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PrintTransitions(os); 393b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PrintElements(os); 394b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " }\n"; 395b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 396b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 397b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 398b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSModule::JSModulePrint(OStream& os) { // NOLINT 399b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSModule"); 400b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n" 401b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << " - context = "; 402b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch context()->Print(os); 403b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - scope_info = " << Brief(scope_info()) 404b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << ElementsKindToString(this->map()->elements_kind()) << " {\n"; 405b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PrintProperties(os); 406b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PrintElements(os); 407b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " }\n"; 4089fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 4099fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 4109fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 4119fac840a46e8b7e26894f4792ba26dde14c56b04Steve Blockstatic const char* TypeToString(InstanceType type) { 4129fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block switch (type) { 413b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#define TYPE_TO_STRING(TYPE) case TYPE: return #TYPE; 414b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch INSTANCE_TYPE_LIST(TYPE_TO_STRING) 415b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#undef TYPE_TO_STRING 4169fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 417b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch UNREACHABLE(); 418b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch return "UNKNOWN"; // Keep the compiler happy. 4199fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 4209fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 4219fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 422b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Symbol::SymbolPrint(OStream& os) { // NOLINT 423b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "Symbol"); 424b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - hash: " << Hash(); 425b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - name: " << Brief(name()); 426b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - private: " << is_private(); 427b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - own: " << is_own(); 428b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 429b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 430b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 431b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 432b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Map::MapPrint(OStream& os) { // NOLINT 433b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "Map"); 434b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - type: " << TypeToString(instance_type()) << "\n"; 435b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - instance size: " << instance_size() << "\n"; 436b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - inobject properties: " << inobject_properties() << "\n"; 437b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - elements kind: " << ElementsKindToString(elements_kind()); 438b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - pre-allocated property fields: " 439b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << pre_allocated_property_fields() << "\n"; 440b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - unused property fields: " << unused_property_fields() << "\n"; 441b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (is_hidden_prototype()) os << " - hidden_prototype\n"; 442b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (has_named_interceptor()) os << " - named_interceptor\n"; 443b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (has_indexed_interceptor()) os << " - indexed_interceptor\n"; 444b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (is_undetectable()) os << " - undetectable\n"; 445b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (has_instance_call_handler()) os << " - instance_call_handler\n"; 446b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (is_access_check_needed()) os << " - access_check_needed\n"; 447b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (is_frozen()) { 448b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - frozen\n"; 449b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (!is_extensible()) { 450b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - sealed\n"; 4519fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 452b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - back pointer: " << Brief(GetBackPointer()); 453b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - instance descriptors " << (owns_descriptors() ? "(own) " : "") 454b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << "#" << NumberOfOwnDescriptors() << ": " 455b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << Brief(instance_descriptors()); 456b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (HasTransitionArray()) { 457b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - transitions: " << Brief(transitions()); 4589fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 459b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - prototype: " << Brief(prototype()); 460b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - constructor: " << Brief(constructor()); 461b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - code cache: " << Brief(code_cache()); 462b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - dependent code: " << Brief(dependent_code()); 463b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 4649fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 4659fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 4669fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 467b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid CodeCache::CodeCachePrint(OStream& os) { // NOLINT 468b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "CodeCache"); 469b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - default_cache: " << Brief(default_cache()); 470b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - normal_type_cache: " << Brief(normal_type_cache()); 4713fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch} 4723fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch 4733fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch 474b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid PolymorphicCodeCache::PolymorphicCodeCachePrint(OStream& os) { // NOLINT 475b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "PolymorphicCodeCache"); 476b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - cache: " << Brief(cache()); 4779fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 4789fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 4799fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 480b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid TypeFeedbackInfo::TypeFeedbackInfoPrint(OStream& os) { // NOLINT 481b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "TypeFeedbackInfo"); 482b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - ic_total_count: " << ic_total_count() 483b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << ", ic_with_type_info_count: " << ic_with_type_info_count() 484b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << ", ic_generic_count: " << ic_generic_count() << "\n"; 4853ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 4863ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 4873ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 488b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid AliasedArgumentsEntry::AliasedArgumentsEntryPrint(OStream& os) { // NOLINT 489b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "AliasedArgumentsEntry"); 490b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - aliased_context_slot: " << aliased_context_slot(); 4913ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 4923ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 4933ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 494b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid FixedArray::FixedArrayPrint(OStream& os) { // NOLINT 495b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "FixedArray"); 496b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - length: " << length(); 4979fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block for (int i = 0; i < length(); i++) { 498b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: " << Brief(get(i)); 4999fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 500b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 5019fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 5029fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 5039fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 504b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid FixedDoubleArray::FixedDoubleArrayPrint(OStream& os) { // NOLINT 505b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "FixedDoubleArray"); 506b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - length: " << length(); 5073ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch for (int i = 0; i < length(); i++) { 508b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: "; 5093ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch if (is_the_hole(i)) { 510b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "<the hole>"; 5113ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch } else { 512b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << get_scalar(i); 513b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 514b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 515b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 516b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 517b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 518b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 519b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ConstantPoolArray::ConstantPoolArrayPrint(OStream& os) { // NOLINT 520b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "ConstantPoolArray"); 521b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - length: " << length(); 522b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch for (int i = 0; i <= last_index(INT32, SMALL_SECTION); i++) { 523b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (i < last_index(INT64, SMALL_SECTION)) { 524b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: double: " << get_int64_entry_as_double(i); 525b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (i <= last_index(CODE_PTR, SMALL_SECTION)) { 526b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: code target pointer: " 527b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << reinterpret_cast<void*>(get_code_ptr_entry(i)); 528b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (i <= last_index(HEAP_PTR, SMALL_SECTION)) { 529b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: heap pointer: " 530b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << reinterpret_cast<void*>(get_heap_ptr_entry(i)); 531b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (i <= last_index(INT32, SMALL_SECTION)) { 532b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: int32: " << get_int32_entry(i); 5333ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch } 5343ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch } 535b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (is_extended_layout()) { 536b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n Extended section:"; 537b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch for (int i = first_extended_section_index(); 538b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch i <= last_index(INT32, EXTENDED_SECTION); i++) { 539b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (i < last_index(INT64, EXTENDED_SECTION)) { 540b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: double: " << get_int64_entry_as_double(i); 541b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (i <= last_index(CODE_PTR, EXTENDED_SECTION)) { 542b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: code target pointer: " 543b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << reinterpret_cast<void*>(get_code_ptr_entry(i)); 544b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (i <= last_index(HEAP_PTR, EXTENDED_SECTION)) { 545b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: heap pointer: " 546b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << reinterpret_cast<void*>(get_heap_ptr_entry(i)); 547b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (i <= last_index(INT32, EXTENDED_SECTION)) { 548b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n [" << i << "]: int32: " << get_int32_entry(i); 549b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 550b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 551b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 552b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 5533ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 5543ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 5553ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 556b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSValue::JSValuePrint(OStream& os) { // NOLINT 557b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "ValueObject"); 558b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch value()->Print(os); 5599fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 5609fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 5619fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 562b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSMessageObject::JSMessageObjectPrint(OStream& os) { // NOLINT 563b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSMessageObject"); 564b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - type: " << Brief(type()); 565b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - arguments: " << Brief(arguments()); 566b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - start_position: " << start_position(); 567b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - end_position: " << end_position(); 568b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - script: " << Brief(script()); 569b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - stack_frames: " << Brief(stack_frames()); 570b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 5711e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block} 5721e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block 5731e0659c275bb392c045087af4f6b0d7565cb3d77Steve Block 574b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid String::StringPrint(OStream& os) { // NOLINT 575b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (StringShape(this).IsInternalized()) { 576b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "#"; 5779fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } else if (StringShape(this).IsCons()) { 578b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "c\""; 5799fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } else { 580b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\""; 5819fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 5829fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 5839fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block const char truncated_epilogue[] = "...<truncated>"; 5849fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block int len = length(); 5859fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block if (!FLAG_use_verbose_printer) { 5869fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block if (len > 100) { 5879fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block len = 100 - sizeof(truncated_epilogue); 5889fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 5899fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 5909fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block for (int i = 0; i < len; i++) { 591b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << AsUC16(Get(i)); 5929fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 5939fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block if (len != length()) { 594b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << truncated_epilogue; 5959fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 5969fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 597b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (!StringShape(this).IsInternalized()) os << "\""; 598b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 599b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 600b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 601b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Name::NamePrint(OStream& os) { // NOLINT 602b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (IsString()) 603b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch String::cast(this)->StringPrint(os); 604b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch else 605b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << Brief(this); 6069fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 6079fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 6089fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 60969a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch// This method is only meant to be called from gdb for debugging purposes. 610b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Since the string can also be in two-byte encoding, non-Latin1 characters 61169a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch// will be ignored in the output. 61269a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdochchar* String::ToAsciiArray() { 61369a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch // Static so that subsequent calls frees previously allocated space. 61469a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch // This also means that previous results will be overwritten. 61569a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch static char* buffer = NULL; 61669a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch if (buffer != NULL) free(buffer); 61769a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch buffer = new char[length()+1]; 618b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch WriteToFlat(this, reinterpret_cast<uint8_t*>(buffer), 0, length()); 61969a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch buffer[length()] = 0; 62069a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch return buffer; 62169a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch} 62269a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch 62369a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch 6243ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochstatic const char* const weekdays[] = { 6253ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch "???", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" 6263ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch}; 6273ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 628b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 629b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSDate::JSDatePrint(OStream& os) { // NOLINT 630b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSDate"); 631b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 632b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - value = "; 633b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch value()->Print(os); 6343ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch if (!year()->IsSmi()) { 635b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - time = NaN\n"; 6363ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch } else { 637b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // TODO(svenpanne) Add some basic formatting to our streams. 638b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Vector<char> buf = Vector<char>::New(100); 639b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch SNPrintF( 640b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch buf, " - time = %s %04d/%02d/%02d %02d:%02d:%02d\n", 641b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch weekdays[weekday()->IsSmi() ? Smi::cast(weekday())->value() + 1 : 0], 642b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch year()->IsSmi() ? Smi::cast(year())->value() : -1, 643b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch month()->IsSmi() ? Smi::cast(month())->value() : -1, 644b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch day()->IsSmi() ? Smi::cast(day())->value() : -1, 645b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch hour()->IsSmi() ? Smi::cast(hour())->value() : -1, 646b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch min()->IsSmi() ? Smi::cast(min())->value() : -1, 647b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch sec()->IsSmi() ? Smi::cast(sec())->value() : -1); 648b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << buf.start(); 6493ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch } 6503ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch} 6513ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 6523ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 653b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSProxy::JSProxyPrint(OStream& os) { // NOLINT 654b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSProxy"); 655b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 656b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - handler = "; 657b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch handler()->Print(os); 658b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - hash = "; 659b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch hash()->Print(os); 660b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 661b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 662b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 663b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 664b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSFunctionProxy::JSFunctionProxyPrint(OStream& os) { // NOLINT 665b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSFunctionProxy"); 666b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 667b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - handler = "; 668b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch handler()->Print(os); 669b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - call_trap = "; 670b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch call_trap()->Print(os); 671b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - construct_trap = "; 672b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch construct_trap()->Print(os); 673b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 674b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 675b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 676b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 677b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSSet::JSSetPrint(OStream& os) { // NOLINT 678b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSSet"); 679b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 680b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - table = " << Brief(table()); 681b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 682257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch} 683257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch 684257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch 685b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSMap::JSMapPrint(OStream& os) { // NOLINT 686b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSMap"); 687b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 688b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - table = " << Brief(table()); 689b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 690589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch} 691589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch 692589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch 693b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochtemplate <class Derived, class TableType> 694b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid OrderedHashTableIterator< 695b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Derived, TableType>::OrderedHashTableIteratorPrint(OStream& os) { // NOLINT 696b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 697b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - table = " << Brief(table()); 698b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - index = " << Brief(index()); 699b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - kind = " << Brief(kind()); 700b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 70169a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch} 70269a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch 70369a99ed0b2b2ef69d393c371b03db3a98aaf880eBen Murdoch 704b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochtemplate void OrderedHashTableIterator< 705b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSSetIterator, 706b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch OrderedHashSet>::OrderedHashTableIteratorPrint(OStream& os); // NOLINT 707b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 708b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 709b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochtemplate void OrderedHashTableIterator< 710b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSMapIterator, 711b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch OrderedHashMap>::OrderedHashTableIteratorPrint(OStream& os); // NOLINT 712b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 713b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 714b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSSetIterator::JSSetIteratorPrint(OStream& os) { // NOLINT 715b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSSetIterator"); 716b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch OrderedHashTableIteratorPrint(os); 717b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 718b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 719b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 720b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSMapIterator::JSMapIteratorPrint(OStream& os) { // NOLINT 721b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSMapIterator"); 722b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch OrderedHashTableIteratorPrint(os); 723b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 724b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 725b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 726b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSWeakMap::JSWeakMapPrint(OStream& os) { // NOLINT 727b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSWeakMap"); 728b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 729b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - table = " << Brief(table()); 730b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 731b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 732b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 733b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 734b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSWeakSet::JSWeakSetPrint(OStream& os) { // NOLINT 735b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSWeakSet"); 736b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 737b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - table = " << Brief(table()); 738b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 739b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 740b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 741b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 742b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSArrayBuffer::JSArrayBufferPrint(OStream& os) { // NOLINT 743b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSArrayBuffer"); 744b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 745b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - backing_store = " << backing_store() << "\n"; 746b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - byte_length = " << Brief(byte_length()); 747b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 748b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 749b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 750b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 751b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSTypedArray::JSTypedArrayPrint(OStream& os) { // NOLINT 752b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSTypedArray"); 753b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 754b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - buffer = " << Brief(buffer()); 755b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - byte_offset = " << Brief(byte_offset()); 756b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - byte_length = " << Brief(byte_length()); 757b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - length = " << Brief(length()); 758b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 759b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PrintElements(os); 760b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 761b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 762b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 763b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSDataView::JSDataViewPrint(OStream& os) { // NOLINT 764b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "JSDataView"); 765b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 766b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - buffer =" << Brief(buffer()); 767b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - byte_offset = " << Brief(byte_offset()); 768b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - byte_length = " << Brief(byte_length()); 769b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 770b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 771b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 772b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 773b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSFunction::JSFunctionPrint(OStream& os) { // NOLINT 774b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "Function"); 775b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 776b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - initial_map = "; 777b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (has_initial_map()) os << Brief(initial_map()); 778b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - shared_info = " << Brief(shared()); 779b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - name = " << Brief(shared()->name()); 780b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - context = " << Brief(context()); 781b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (shared()->bound()) { 782b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - bindings = " << Brief(function_bindings()); 783b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else { 784b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - literals = " << Brief(literals()); 785b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 786b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - code = " << Brief(code()); 787b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 788b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PrintProperties(os); 789b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PrintElements(os); 790b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 791b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 792b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 793b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 794b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid SharedFunctionInfo::SharedFunctionInfoPrint(OStream& os) { // NOLINT 795b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "SharedFunctionInfo"); 796b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - name: " << Brief(name()); 797b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - expected_nof_properties: " << expected_nof_properties(); 798b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - ast_node_count: " << ast_node_count(); 799b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - instance class name = "; 800b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch instance_class_name()->Print(os); 801b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - code = " << Brief(code()); 802b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (HasSourceCode()) { 803b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - source code = "; 804b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch String* source = String::cast(Script::cast(script())->source()); 805b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch int start = start_position(); 806b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch int length = end_position() - start; 807b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch SmartArrayPointer<char> source_string = 808b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch source->ToCString(DISALLOW_NULLS, 809b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch FAST_STRING_TRAVERSAL, 810b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch start, length, NULL); 811b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << source_string.get(); 8129fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 8139fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block // Script files are often large, hard to read. 814b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // os << "\n - script ="; 815b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // script()->Print(os); 816b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - function token position = " << function_token_position(); 817b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - start position = " << start_position(); 818b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - end position = " << end_position(); 819b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - is expression = " << is_expression(); 820b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - debug info = " << Brief(debug_info()); 821b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - length = " << length(); 822b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - optimized_code_map = " << Brief(optimized_code_map()); 823b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - feedback_vector = "; 824b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch feedback_vector()->FixedArrayPrint(os); 825b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 8269fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 8279fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 8289fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 829b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSGlobalProxy::JSGlobalProxyPrint(OStream& os) { // NOLINT 830b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "global_proxy "; 831b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSObjectPrint(os); 832b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "native context : " << Brief(native_context()); 833b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 8349fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 8359fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 8369fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 837b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSGlobalObject::JSGlobalObjectPrint(OStream& os) { // NOLINT 838b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "global "; 839b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSObjectPrint(os); 840b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "native context : " << Brief(native_context()); 841b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 8429fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 8439fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 8449fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 845b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid JSBuiltinsObject::JSBuiltinsObjectPrint(OStream& os) { // NOLINT 846b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "builtins "; 847b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch JSObjectPrint(os); 8489fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 8499fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 8509fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 851b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Cell::CellPrint(OStream& os) { // NOLINT 852b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "Cell"); 8539fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 8549fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 8559fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 856b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid PropertyCell::PropertyCellPrint(OStream& os) { // NOLINT 857b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "PropertyCell"); 858b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 859b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 860b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 861b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Code::CodePrint(OStream& os) { // NOLINT 862b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "Code"); 8639fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block#ifdef ENABLE_DISASSEMBLER 8649fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block if (FLAG_use_verbose_printer) { 865b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Disassemble(NULL, os); 8669fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 8679fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block#endif 8689fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 8699fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 8709fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 871b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Foreign::ForeignPrint(OStream& os) { // NOLINT 872b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "foreign address : " << foreign_address(); 873b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 874b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 875b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 876b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ExecutableAccessorInfo::ExecutableAccessorInfoPrint( 877b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch OStream& os) { // NOLINT 878b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "ExecutableAccessorInfo"); 879b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - name: " << Brief(name()); 880b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - flag: " << Brief(flag()); 881b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - getter: " << Brief(getter()); 882b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - setter: " << Brief(setter()); 883b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - data: " << Brief(data()); 884b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 885b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 886b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 887b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 888b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid DeclaredAccessorInfo::DeclaredAccessorInfoPrint(OStream& os) { // NOLINT 889b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "DeclaredAccessorInfo"); 890b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - name: " << Brief(name()); 891b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - flag: " << Brief(flag()); 892b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - descriptor: " << Brief(descriptor()); 893b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 894b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 895b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 896b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 897b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid DeclaredAccessorDescriptor::DeclaredAccessorDescriptorPrint( 898b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch OStream& os) { // NOLINT 899b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "DeclaredAccessorDescriptor"); 900b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - internal field: " << Brief(serialized_data()); 901b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 902b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 903b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 904b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 905b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Box::BoxPrint(OStream& os) { // NOLINT 906b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "Box"); 907b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - value: " << Brief(value()); 908b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 909b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 910b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 911b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 912b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid AccessorPair::AccessorPairPrint(OStream& os) { // NOLINT 913b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "AccessorPair"); 914b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - getter: " << Brief(getter()); 915b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - setter: " << Brief(setter()); 916b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 917b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 918b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 919b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 920b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid AccessCheckInfo::AccessCheckInfoPrint(OStream& os) { // NOLINT 921b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "AccessCheckInfo"); 922b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - named_callback: " << Brief(named_callback()); 923b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - indexed_callback: " << Brief(indexed_callback()); 924b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - data: " << Brief(data()); 925b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 926b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 927b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 928b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 929b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid InterceptorInfo::InterceptorInfoPrint(OStream& os) { // NOLINT 930b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "InterceptorInfo"); 931b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - getter: " << Brief(getter()); 932b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - setter: " << Brief(setter()); 933b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - query: " << Brief(query()); 934b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - deleter: " << Brief(deleter()); 935b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - enumerator: " << Brief(enumerator()); 936b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - data: " << Brief(data()); 937b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 938b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 939b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 940b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 941b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid CallHandlerInfo::CallHandlerInfoPrint(OStream& os) { // NOLINT 942b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "CallHandlerInfo"); 943b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - callback: " << Brief(callback()); 944b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - data: " << Brief(data()); 945b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 946b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 947b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 948b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 949b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid FunctionTemplateInfo::FunctionTemplateInfoPrint(OStream& os) { // NOLINT 950b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "FunctionTemplateInfo"); 951b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - class name: " << Brief(class_name()); 952b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - tag: " << Brief(tag()); 953b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - property_list: " << Brief(property_list()); 954b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - serial_number: " << Brief(serial_number()); 955b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - call_code: " << Brief(call_code()); 956b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - property_accessors: " << Brief(property_accessors()); 957b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - prototype_template: " << Brief(prototype_template()); 958b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - parent_template: " << Brief(parent_template()); 959b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - named_property_handler: " << Brief(named_property_handler()); 960b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - indexed_property_handler: " << Brief(indexed_property_handler()); 961b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - instance_template: " << Brief(instance_template()); 962b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - signature: " << Brief(signature()); 963b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - access_check_info: " << Brief(access_check_info()); 964b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - hidden_prototype: " << (hidden_prototype() ? "true" : "false"); 965b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - undetectable: " << (undetectable() ? "true" : "false"); 966b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - need_access_check: " << (needs_access_check() ? "true" : "false"); 967b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 968b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 969b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 970b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 971b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ObjectTemplateInfo::ObjectTemplateInfoPrint(OStream& os) { // NOLINT 972b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "ObjectTemplateInfo"); 973b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - tag: " << Brief(tag()); 974b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - property_list: " << Brief(property_list()); 975b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - property_accessors: " << Brief(property_accessors()); 976b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - constructor: " << Brief(constructor()); 977b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - internal_field_count: " << Brief(internal_field_count()); 978b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 979b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 980b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 981b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 982b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid SignatureInfo::SignatureInfoPrint(OStream& os) { // NOLINT 983b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "SignatureInfo"); 984b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - receiver: " << Brief(receiver()); 985b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - args: " << Brief(args()); 986b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 987b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 988b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 989b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 990b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid TypeSwitchInfo::TypeSwitchInfoPrint(OStream& os) { // NOLINT 991b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "TypeSwitchInfo"); 992b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - types: " << Brief(types()); 993b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 994b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 995b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 996b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 997b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid AllocationSite::AllocationSitePrint(OStream& os) { // NOLINT 998b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "AllocationSite"); 999b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - weak_next: " << Brief(weak_next()); 1000b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - dependent code: " << Brief(dependent_code()); 1001b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - nested site: " << Brief(nested_site()); 1002b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - memento found count: " 1003b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << Brief(Smi::FromInt(memento_found_count())); 1004b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - memento create count: " 1005b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << Brief(Smi::FromInt(memento_create_count())); 1006b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - pretenure decision: " 1007b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << Brief(Smi::FromInt(pretenure_decision())); 1008b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - transition_info: "; 1009b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (transition_info()->IsSmi()) { 1010b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch ElementsKind kind = GetElementsKind(); 1011b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "Array allocation with ElementsKind " << ElementsKindToString(kind); 1012b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else if (transition_info()->IsJSArray()) { 1013b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "Array literal " << Brief(transition_info()); 1014b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else { 1015b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "unknown transition_info" << Brief(transition_info()); 1016b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 1017b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 1018b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 1019b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1020b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1021b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid AllocationMemento::AllocationMementoPrint(OStream& os) { // NOLINT 1022b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "AllocationMemento"); 1023b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " - allocation site: "; 1024b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch if (IsValid()) { 1025b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch GetAllocationSite()->Print(os); 1026b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } else { 1027b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "<invalid>\n"; 1028b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 1029b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 1030b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1031b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1032b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid Script::ScriptPrint(OStream& os) { // NOLINT 1033b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "Script"); 1034b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - source: " << Brief(source()); 1035b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - name: " << Brief(name()); 1036b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - line_offset: " << Brief(line_offset()); 1037b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - column_offset: " << Brief(column_offset()); 1038b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - type: " << Brief(type()); 1039b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - id: " << Brief(id()); 1040b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - context data: " << Brief(context_data()); 1041b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - wrapper: " << Brief(wrapper()); 1042b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - compilation type: " << compilation_type(); 1043b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - line ends: " << Brief(line_ends()); 1044b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - eval from shared: " << Brief(eval_from_shared()); 1045b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - eval from instructions offset: " 1046b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch << Brief(eval_from_instructions_offset()); 1047b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 1048b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 1049b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1050b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1051b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid DebugInfo::DebugInfoPrint(OStream& os) { // NOLINT 1052b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "DebugInfo"); 1053b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - shared: " << Brief(shared()); 1054b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - original_code: " << Brief(original_code()); 1055b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - code: " << Brief(code()); 1056b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - break_points: "; 1057b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break_points()->Print(os); 1058b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 1059b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1060b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1061b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid BreakPointInfo::BreakPointInfoPrint(OStream& os) { // NOLINT 1062b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch HeapObject::PrintHeader(os, "BreakPointInfo"); 1063b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - code_position: " << code_position()->value(); 1064b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - source_position: " << source_position()->value(); 1065b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - statement_position: " << statement_position()->value(); 1066b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n - break_point_objects: " << Brief(break_point_objects()); 1067b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 1068b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 1069b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1070b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1071b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid DescriptorArray::PrintDescriptors(OStream& os) { // NOLINT 1072b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "Descriptor array " << number_of_descriptors() << "\n"; 10739fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block for (int i = 0; i < number_of_descriptors(); i++) { 10749fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block Descriptor desc; 10759fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block Get(i, &desc); 1076b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " " << i << ": " << desc; 1077b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 1078b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 1079b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 1080b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1081b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 1082b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid TransitionArray::PrintTransitions(OStream& os) { // NOLINT 1083b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "Transition array %d\n", number_of_transitions(); 1084b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch for (int i = 0; i < number_of_transitions(); i++) { 1085b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " " << i << ": "; 1086b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch GetKey(i)->NamePrint(os); 1087b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << ": "; 1088b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch switch (GetTargetDetails(i).type()) { 1089b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case FIELD: { 1090b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " (transition to field)\n"; 1091b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 1092b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 1093b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case CONSTANT: 1094b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " (transition to constant)\n"; 1095b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 1096b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case CALLBACKS: 1097b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << " (transition to callback)\n"; 1098b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 1099b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // Values below are never in the target descriptor array. 1100b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch case NORMAL: 1101b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch UNREACHABLE(); 1102b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch break; 1103b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch } 11049fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block } 1105b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch os << "\n"; 11069fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} 11079fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 11089fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 11099fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block#endif // OBJECT_PRINT 11109fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 11119fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block 11129fac840a46e8b7e26894f4792ba26dde14c56b04Steve Block} } // namespace v8::internal 1113