11145ef852a4e230e1f642eecd8de155f2b26bc53jkummerow@chromium.org// Copyright 2012 the V8 project authors. All rights reserved. 23484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// Use of this source code is governed by a BSD-style license that can be 33484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// found in the LICENSE file. 49e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 5196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/v8.h" 69e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 7196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/disasm.h" 84b0feeef5d01dbc2948080b4f69daa37e1083461machenbach@chromium.org#include "src/disassembler.h" 98640107360766c74218cf16d51b714b1f2138839machenbach@chromium.org#include "src/heap/objects-visiting.h" 10196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/jsregexp.h" 117d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/ostreams.h" 129e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 139e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgnamespace v8 { 149e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgnamespace internal { 159e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 169e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#ifdef OBJECT_PRINT 179e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 18a86d416fb652b1936026eee315eccd4f17ca1002machenbach@chromium.orgvoid Object::Print() { 19f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org OFStream os(stdout); 20f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org this->Print(os); 21f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << flush; 22ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org} 23ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org 24ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org 25f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid Object::Print(OStream& os) { // NOLINT 26a86d416fb652b1936026eee315eccd4f17ca1002machenbach@chromium.org if (IsSmi()) { 27f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Smi::cast(this)->SmiPrint(os); 289e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } else { 29f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::cast(this)->HeapObjectPrint(os); 309e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 319e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 329e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 339e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 34f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid HeapObject::PrintHeader(OStream& os, const char* id) { // NOLINT 35f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "" << reinterpret_cast<void*>(this) << ": [" << id << "]\n"; 36ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org} 37ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org 38ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org 39f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid HeapObject::HeapObjectPrint(OStream& os) { // NOLINT 409e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org InstanceType instance_type = map()->instance_type(); 419e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 42c03a1924dcc113678c0ebe58aa7d3c855a657719yangguo@chromium.org HandleScope scope(GetIsolate()); 439e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org if (instance_type < FIRST_NONSTRING_TYPE) { 44f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org String::cast(this)->StringPrint(os); 459e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org return; 469e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 479e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 489e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org switch (instance_type) { 494a9f6553038df6b893b3d3ccae351723f4cbbae7yangguo@chromium.org case SYMBOL_TYPE: 50f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Symbol::cast(this)->SymbolPrint(os); 514a9f6553038df6b893b3d3ccae351723f4cbbae7yangguo@chromium.org break; 529e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case MAP_TYPE: 53f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Map::cast(this)->MapPrint(os); 549e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 559e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case HEAP_NUMBER_TYPE: 56f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapNumber::cast(this)->HeapNumberPrint(os); 579e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 5858a725587734a6889c689668fd01f0157ed749a6machenbach@chromium.org case MUTABLE_HEAP_NUMBER_TYPE: 59f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "<mutable "; 60f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapNumber::cast(this)->HeapNumberPrint(os); 61f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << ">"; 6258a725587734a6889c689668fd01f0157ed749a6machenbach@chromium.org break; 63c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com case FIXED_DOUBLE_ARRAY_TYPE: 64f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org FixedDoubleArray::cast(this)->FixedDoubleArrayPrint(os); 65c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com break; 66a2e1a40f85577979749d4c0d6de30e992d996659mstarzinger@chromium.org case CONSTANT_POOL_ARRAY_TYPE: 67f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org ConstantPoolArray::cast(this)->ConstantPoolArrayPrint(os); 68a2e1a40f85577979749d4c0d6de30e992d996659mstarzinger@chromium.org break; 699e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case FIXED_ARRAY_TYPE: 70f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org FixedArray::cast(this)->FixedArrayPrint(os); 719e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 729e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case BYTE_ARRAY_TYPE: 73f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org ByteArray::cast(this)->ByteArrayPrint(os); 749e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 75c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com case FREE_SPACE_TYPE: 76f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org FreeSpace::cast(this)->FreeSpacePrint(os); 77c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com break; 78af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org 79f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org#define PRINT_EXTERNAL_ARRAY(Type, type, TYPE, ctype, size) \ 80f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org case EXTERNAL_##TYPE##_ARRAY_TYPE: \ 81f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org External##Type##Array::cast(this)->External##Type##ArrayPrint(os); \ 82f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org break; 83af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org 84af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org TYPED_ARRAYS(PRINT_EXTERNAL_ARRAY) 85af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org#undef PRINT_EXTERNAL_ARRAY 86af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org 87f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org#define PRINT_FIXED_TYPED_ARRAY(Type, type, TYPE, ctype, size) \ 88f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org case Fixed##Type##Array::kInstanceType: \ 89f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Fixed##Type##Array::cast(this)->FixedTypedArrayPrint(os); \ 90f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org break; 915c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 92af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org TYPED_ARRAYS(PRINT_FIXED_TYPED_ARRAY) 93af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org#undef PRINT_FIXED_TYPED_ARRAY 945c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 959e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case FILLER_TYPE: 96f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "filler"; 979e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 989e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case JS_OBJECT_TYPE: // fall through 999e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case JS_CONTEXT_EXTENSION_OBJECT_TYPE: 1009e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case JS_ARRAY_TYPE: 101e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org case JS_GENERATOR_OBJECT_TYPE: 1029e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case JS_REGEXP_TYPE: 103f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSObject::cast(this)->JSObjectPrint(os); 1049e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1059e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case ODDBALL_TYPE: 106f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Oddball::cast(this)->to_string()->Print(os); 1079e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 108ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com case JS_MODULE_TYPE: 109f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSModule::cast(this)->JSModulePrint(os); 110ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com break; 1119e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case JS_FUNCTION_TYPE: 112f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSFunction::cast(this)->JSFunctionPrint(os); 1139e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1149e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case JS_GLOBAL_PROXY_TYPE: 115f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSGlobalProxy::cast(this)->JSGlobalProxyPrint(os); 1169e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1179e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case JS_GLOBAL_OBJECT_TYPE: 118f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSGlobalObject::cast(this)->JSGlobalObjectPrint(os); 1199e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1209e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case JS_BUILTINS_OBJECT_TYPE: 121f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSBuiltinsObject::cast(this)->JSBuiltinsObjectPrint(os); 1229e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1239e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case JS_VALUE_TYPE: 124f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "Value wrapper around:"; 125f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSValue::cast(this)->value()->Print(os); 1269e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1274efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org case JS_DATE_TYPE: 128f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSDate::cast(this)->JSDatePrint(os); 1294efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org break; 1309e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case CODE_TYPE: 131f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Code::cast(this)->CodePrint(os); 1329e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1337304bcac06a6a63b9f3dcebac2eeceada87ca146vegorov@chromium.org case JS_PROXY_TYPE: 134f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSProxy::cast(this)->JSProxyPrint(os); 1357304bcac06a6a63b9f3dcebac2eeceada87ca146vegorov@chromium.org break; 13634e60787ea1e76f3ee49e859f71f036170c21f0elrn@chromium.org case JS_FUNCTION_PROXY_TYPE: 137f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSFunctionProxy::cast(this)->JSFunctionProxyPrint(os); 13834e60787ea1e76f3ee49e859f71f036170c21f0elrn@chromium.org break; 139d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org case JS_SET_TYPE: 140f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSSet::cast(this)->JSSetPrint(os); 141d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org break; 142d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org case JS_MAP_TYPE: 143f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSMap::cast(this)->JSMapPrint(os); 144d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org break; 1454ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org case JS_SET_ITERATOR_TYPE: 146f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSSetIterator::cast(this)->JSSetIteratorPrint(os); 1474ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org break; 1484ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org case JS_MAP_ITERATOR_TYPE: 149f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSMapIterator::cast(this)->JSMapIteratorPrint(os); 1504ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org break; 1517c2628c3f0353f0558760c3ca442f934263ea766kmillikin@chromium.org case JS_WEAK_MAP_TYPE: 152f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSWeakMap::cast(this)->JSWeakMapPrint(os); 1537c2628c3f0353f0558760c3ca442f934263ea766kmillikin@chromium.org break; 154ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org case JS_WEAK_SET_TYPE: 155f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSWeakSet::cast(this)->JSWeakSetPrint(os); 156ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org break; 157ea91cc579ade536e3a08498a8157921dd4f533d1ager@chromium.org case FOREIGN_TYPE: 158f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Foreign::cast(this)->ForeignPrint(os); 1599e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1609e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case SHARED_FUNCTION_INFO_TYPE: 161f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org SharedFunctionInfo::cast(this)->SharedFunctionInfoPrint(os); 1629e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 16331b1277ec3b8cd17acb01c66d85a456159072157kmillikin@chromium.org case JS_MESSAGE_OBJECT_TYPE: 164f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSMessageObject::cast(this)->JSMessageObjectPrint(os); 16531b1277ec3b8cd17acb01c66d85a456159072157kmillikin@chromium.org break; 16641728483f231e098a8dd85f109b5a30e6ccc3c39danno@chromium.org case CELL_TYPE: 167f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Cell::cast(this)->CellPrint(os); 16841728483f231e098a8dd85f109b5a30e6ccc3c39danno@chromium.org break; 16941728483f231e098a8dd85f109b5a30e6ccc3c39danno@chromium.org case PROPERTY_CELL_TYPE: 170f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PropertyCell::cast(this)->PropertyCellPrint(os); 1719e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 172f705b5034dc5bc422ac1019b591469a7d0534772mstarzinger@chromium.org case JS_ARRAY_BUFFER_TYPE: 173f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSArrayBuffer::cast(this)->JSArrayBufferPrint(os); 174b228be01a466e0ba4d8389148671d196b2081f76mstarzinger@chromium.org break; 175e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org case JS_TYPED_ARRAY_TYPE: 176f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSTypedArray::cast(this)->JSTypedArrayPrint(os); 177b228be01a466e0ba4d8389148671d196b2081f76mstarzinger@chromium.org break; 1781510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org case JS_DATA_VIEW_TYPE: 179f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSDataView::cast(this)->JSDataViewPrint(os); 1801510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org break; 1819e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#define MAKE_STRUCT_CASE(NAME, Name, name) \ 1829e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case NAME##_TYPE: \ 183f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Name::cast(this)->Name##Print(os); \ 1849e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1859e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org STRUCT_LIST(MAKE_STRUCT_CASE) 1869e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#undef MAKE_STRUCT_CASE 1879e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 1889e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org default: 189f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "UNKNOWN TYPE " << map()->instance_type(); 1909e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org UNREACHABLE(); 1919e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 1929e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 1939e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 1949e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 1959e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 196f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid ByteArray::ByteArrayPrint(OStream& os) { // NOLINT 197f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "byte array, data starts at " << GetDataStartAddress(); 1989e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 1999e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 2009e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 201f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid FreeSpace::FreeSpacePrint(OStream& os) { // NOLINT 202f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "free space, size " << Size(); 203c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com} 204c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com 205c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com 206f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org#define EXTERNAL_ARRAY_PRINTER(Type, type, TYPE, ctype, size) \ 207f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org void External##Type##Array::External##Type##ArrayPrint(OStream& os) { \ 208f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "external " #type " array"; \ 209af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org } 2109e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 211af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.orgTYPED_ARRAYS(EXTERNAL_ARRAY_PRINTER) 2129e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 213af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org#undef EXTERNAL_ARRAY_PRINTER 2149e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 2153847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com 2165c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.orgtemplate <class Traits> 217f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid FixedTypedArray<Traits>::FixedTypedArrayPrint(OStream& os) { // NOLINT 218f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "fixed " << Traits::Designator(); 2195c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org} 2205c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 2213847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com 222f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSObject::PrintProperties(OStream& os) { // NOLINT 2239e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org if (HasFastProperties()) { 2249e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org DescriptorArray* descs = map()->instance_descriptors(); 22506ab2ec756e44eeaf7500b9794f9d2abc79dc8cfverwaest@chromium.org for (int i = 0; i < map()->NumberOfOwnDescriptors(); i++) { 226f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " "; 227f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org descs->GetKey(i)->NamePrint(os); 228f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << ": "; 2299e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org switch (descs->GetType(i)) { 2309e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case FIELD: { 231e7a6d372100022f492c88886898add6a51e66977machenbach@chromium.org FieldIndex index = FieldIndex::ForDescriptor(map(), i); 232f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << Brief(RawFastPropertyAt(index)) << " (field at offset " 233f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << index.property_index() << ")\n"; 2349e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 2359e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 236fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org case CONSTANT: 237f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << Brief(descs->GetConstant(i)) << " (constant)\n"; 2389e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 2399e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case CALLBACKS: 240f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << Brief(descs->GetCallbacksObject(i)) << " (callback)\n"; 2419e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 242c612e0211bdb8821cbd7886e15b0273ed82d2e9edanno@chromium.org case NORMAL: // only in slow mode 2439e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org UNREACHABLE(); 2449e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 2459e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 2469e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 2479e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } else { 248f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org property_dictionary()->Print(os); 2499e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 2509e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 2519e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 2529e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 253f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgtemplate <class T> 254f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgstatic void DoPrintElements(OStream& os, Object* object) { // NOLINT 2555c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org T* p = T::cast(object); 2565c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org for (int i = 0; i < p->length(); i++) { 257f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " " << i << ": " << p->get_scalar(i) << "\n"; 2585c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org } 2595c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org} 2605c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 2615c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 262f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSObject::PrintElements(OStream& os) { // NOLINT 263c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com // Don't call GetElementsKind, its validation code can cause the printer to 264c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com // fail when debugging. 265c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com switch (map()->elements_kind()) { 266830d30c478be03b0ac560f4002833ab141e41effsvenpanne@chromium.org case FAST_HOLEY_SMI_ELEMENTS: 267830d30c478be03b0ac560f4002833ab141e41effsvenpanne@chromium.org case FAST_SMI_ELEMENTS: 268830d30c478be03b0ac560f4002833ab141e41effsvenpanne@chromium.org case FAST_HOLEY_ELEMENTS: 2699e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case FAST_ELEMENTS: { 2709e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org // Print in array notation for non-sparse arrays. 2719e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org FixedArray* p = FixedArray::cast(elements()); 2729e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org for (int i = 0; i < p->length(); i++) { 273f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " " << i << ": " << Brief(p->get(i)) << "\n"; 2749e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 2759e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 2769e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 277830d30c478be03b0ac560f4002833ab141e41effsvenpanne@chromium.org case FAST_HOLEY_DOUBLE_ELEMENTS: 2789fa09679c31dd1fc79a07ed24431b6951227240aricow@chromium.org case FAST_DOUBLE_ELEMENTS: { 2799fa09679c31dd1fc79a07ed24431b6951227240aricow@chromium.org // Print in array notation for non-sparse arrays. 280212d964d8f853ddb1fdf3a64037f3af294d55cf3jkummerow@chromium.org if (elements()->length() > 0) { 281212d964d8f853ddb1fdf3a64037f3af294d55cf3jkummerow@chromium.org FixedDoubleArray* p = FixedDoubleArray::cast(elements()); 282212d964d8f853ddb1fdf3a64037f3af294d55cf3jkummerow@chromium.org for (int i = 0; i < p->length(); i++) { 283f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " " << i << ": "; 284212d964d8f853ddb1fdf3a64037f3af294d55cf3jkummerow@chromium.org if (p->is_the_hole(i)) { 285f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "<the hole>"; 286212d964d8f853ddb1fdf3a64037f3af294d55cf3jkummerow@chromium.org } else { 287f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << p->get_scalar(i); 288212d964d8f853ddb1fdf3a64037f3af294d55cf3jkummerow@chromium.org } 289f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 2909fa09679c31dd1fc79a07ed24431b6951227240aricow@chromium.org } 2919fa09679c31dd1fc79a07ed24431b6951227240aricow@chromium.org } 2929fa09679c31dd1fc79a07ed24431b6951227240aricow@chromium.org break; 2939fa09679c31dd1fc79a07ed24431b6951227240aricow@chromium.org } 2945c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 2955c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 296f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org#define PRINT_ELEMENTS(Kind, Type) \ 297f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org case Kind: { \ 298f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org DoPrintElements<Type>(os, elements()); \ 299f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org break; \ 300f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org } 3015c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 302af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org PRINT_ELEMENTS(EXTERNAL_UINT8_CLAMPED_ELEMENTS, ExternalUint8ClampedArray) 303af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org PRINT_ELEMENTS(EXTERNAL_INT8_ELEMENTS, ExternalInt8Array) 304af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org PRINT_ELEMENTS(EXTERNAL_UINT8_ELEMENTS, 305af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org ExternalUint8Array) 306af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org PRINT_ELEMENTS(EXTERNAL_INT16_ELEMENTS, ExternalInt16Array) 307af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org PRINT_ELEMENTS(EXTERNAL_UINT16_ELEMENTS, 308af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org ExternalUint16Array) 309af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org PRINT_ELEMENTS(EXTERNAL_INT32_ELEMENTS, ExternalInt32Array) 310af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org PRINT_ELEMENTS(EXTERNAL_UINT32_ELEMENTS, 311af4fba3c6d2a18866505de3e6798757dd1448c6dmachenbach@chromium.org ExternalUint32Array) 312f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PRINT_ELEMENTS(EXTERNAL_FLOAT32_ELEMENTS, ExternalFloat32Array) 313f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PRINT_ELEMENTS(EXTERNAL_FLOAT64_ELEMENTS, ExternalFloat64Array) 3145c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 3155c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org PRINT_ELEMENTS(UINT8_ELEMENTS, FixedUint8Array) 3165c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org PRINT_ELEMENTS(UINT8_CLAMPED_ELEMENTS, FixedUint8ClampedArray) 3175c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org PRINT_ELEMENTS(INT8_ELEMENTS, FixedInt8Array) 3185c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org PRINT_ELEMENTS(UINT16_ELEMENTS, FixedUint16Array) 3195c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org PRINT_ELEMENTS(INT16_ELEMENTS, FixedInt16Array) 3205c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org PRINT_ELEMENTS(UINT32_ELEMENTS, FixedUint32Array) 3215c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org PRINT_ELEMENTS(INT32_ELEMENTS, FixedInt32Array) 322f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PRINT_ELEMENTS(FLOAT32_ELEMENTS, FixedFloat32Array) 323f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PRINT_ELEMENTS(FLOAT64_ELEMENTS, FixedFloat64Array) 3245c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 3255c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org#undef PRINT_ELEMENTS 3265c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org 3279e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org case DICTIONARY_ELEMENTS: 328f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org elements()->Print(os); 3299e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org break; 330486536df718553960f9700559e80e5b10b0d5994dslomov@chromium.org case SLOPPY_ARGUMENTS_ELEMENTS: { 3317b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org FixedArray* p = FixedArray::cast(elements()); 332f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " parameter map:"; 3337b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org for (int i = 2; i < p->length(); i++) { 334f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " " << (i - 2) << ":" << Brief(p->get(i)); 3357b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org } 336f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n context: " << Brief(p->get(0)) 337f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << "\n arguments: " << Brief(p->get(1)) << "\n"; 3387b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org break; 3397b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org } 3409e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 3419e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 3429e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 3439e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 344f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSObject::PrintTransitions(OStream& os) { // NOLINT 34599aa490225c81012235659d9a183226b286178c8yangguo@chromium.org if (!map()->HasTransitionArray()) return; 34699aa490225c81012235659d9a183226b286178c8yangguo@chromium.org TransitionArray* transitions = map()->transitions(); 34799aa490225c81012235659d9a183226b286178c8yangguo@chromium.org for (int i = 0; i < transitions->number_of_transitions(); i++) { 348f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org Name* key = transitions->GetKey(i); 349f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " "; 350f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org key->NamePrint(os); 351f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << ": "; 352f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org if (key == GetHeap()->frozen_symbol()) { 353f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " (transition to frozen)\n"; 354f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org } else if (key == GetHeap()->elements_transition_symbol()) { 355f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " (transition to " 356f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << ElementsKindToString(transitions->GetTarget(i)->elements_kind()) 357f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << ")\n"; 358f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org } else if (key == GetHeap()->observed_symbol()) { 359f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " (transition to Object.observe)\n"; 360f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org } else { 361f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org switch (transitions->GetTargetDetails(i).type()) { 362f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org case FIELD: { 363f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " (transition to field)\n"; 364f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org break; 365f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org } 366f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org case CONSTANT: 367f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " (transition to constant)\n"; 368f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org break; 369f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org case CALLBACKS: 370f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " (transition to callback)\n"; 371f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org break; 372f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org // Values below are never in the target descriptor array. 373f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org case NORMAL: 374f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org UNREACHABLE(); 375f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org break; 37699aa490225c81012235659d9a183226b286178c8yangguo@chromium.org } 37799aa490225c81012235659d9a183226b286178c8yangguo@chromium.org } 37899aa490225c81012235659d9a183226b286178c8yangguo@chromium.org } 37999aa490225c81012235659d9a183226b286178c8yangguo@chromium.org} 38099aa490225c81012235659d9a183226b286178c8yangguo@chromium.org 38199aa490225c81012235659d9a183226b286178c8yangguo@chromium.org 382f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSObject::JSObjectPrint(OStream& os) { // NOLINT 383f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSObject"); 384c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com // Don't call GetElementsKind, its validation code can cause the printer to 385c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com // fail when debugging. 38693720aaa16a789ba13d52a265a479b26f4885e2emachenbach@chromium.org PrototypeIterator iter(GetIsolate(), this); 387f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << " [" 388f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << ElementsKindToString(this->map()->elements_kind()) 38993720aaa16a789ba13d52a265a479b26f4885e2emachenbach@chromium.org << "]\n - prototype = " << reinterpret_cast<void*>(iter.GetCurrent()) 39093720aaa16a789ba13d52a265a479b26f4885e2emachenbach@chromium.org << "\n {\n"; 391f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PrintProperties(os); 392f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PrintTransitions(os); 393f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PrintElements(os); 394f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " }\n"; 3959e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 3969e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 3979e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 398f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSModule::JSModulePrint(OStream& os) { // NOLINT 399f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSModule"); 400f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n" 401f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << " - context = "; 402f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org context()->Print(os); 403f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - scope_info = " << Brief(scope_info()) 404f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << ElementsKindToString(this->map()->elements_kind()) << " {\n"; 405f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PrintProperties(os); 406f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PrintElements(os); 407f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " }\n"; 408ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com} 409ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com 410ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com 4119e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgstatic const char* TypeToString(InstanceType type) { 4129e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org switch (type) { 413594006017e46d82ed7146611dc12c20e3c509c7ddanno@chromium.org#define TYPE_TO_STRING(TYPE) case TYPE: return #TYPE; 414594006017e46d82ed7146611dc12c20e3c509c7ddanno@chromium.org INSTANCE_TYPE_LIST(TYPE_TO_STRING) 415594006017e46d82ed7146611dc12c20e3c509c7ddanno@chromium.org#undef TYPE_TO_STRING 4169e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 417594006017e46d82ed7146611dc12c20e3c509c7ddanno@chromium.org UNREACHABLE(); 418594006017e46d82ed7146611dc12c20e3c509c7ddanno@chromium.org return "UNKNOWN"; // Keep the compiler happy. 4199e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 4209e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 4219e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 422f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid Symbol::SymbolPrint(OStream& os) { // NOLINT 423f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "Symbol"); 424f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - hash: " << Hash(); 425f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - name: " << Brief(name()); 4265e57059e20217fd540b60c237d326414afe2171emachenbach@chromium.org os << "\n - private: " << is_private(); 4275e57059e20217fd540b60c237d326414afe2171emachenbach@chromium.org os << "\n - own: " << is_own(); 428f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 4294a9f6553038df6b893b3d3ccae351723f4cbbae7yangguo@chromium.org} 4304a9f6553038df6b893b3d3ccae351723f4cbbae7yangguo@chromium.org 4314a9f6553038df6b893b3d3ccae351723f4cbbae7yangguo@chromium.org 432f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid Map::MapPrint(OStream& os) { // NOLINT 433f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "Map"); 434f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - type: " << TypeToString(instance_type()) << "\n"; 435f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - instance size: " << instance_size() << "\n"; 436f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - inobject properties: " << inobject_properties() << "\n"; 437f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - elements kind: " << ElementsKindToString(elements_kind()); 438f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - pre-allocated property fields: " 439f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << pre_allocated_property_fields() << "\n"; 440f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - unused property fields: " << unused_property_fields() << "\n"; 441f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org if (is_hidden_prototype()) os << " - hidden_prototype\n"; 442f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org if (has_named_interceptor()) os << " - named_interceptor\n"; 443f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org if (has_indexed_interceptor()) os << " - indexed_interceptor\n"; 444f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org if (is_undetectable()) os << " - undetectable\n"; 445f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org if (has_instance_call_handler()) os << " - instance_call_handler\n"; 446f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org if (is_access_check_needed()) os << " - access_check_needed\n"; 4478a58f6420f995bb19fff9babb261458d49d90cb1machenbach@chromium.org if (is_frozen()) { 448f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - frozen\n"; 4498a58f6420f995bb19fff9babb261458d49d90cb1machenbach@chromium.org } else if (!is_extensible()) { 450f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - sealed\n"; 4518a58f6420f995bb19fff9babb261458d49d90cb1machenbach@chromium.org } 452f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - back pointer: " << Brief(GetBackPointer()); 453f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - instance descriptors " << (owns_descriptors() ? "(own) " : "") 454f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << "#" << NumberOfOwnDescriptors() << ": " 455f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << Brief(instance_descriptors()); 45699aa490225c81012235659d9a183226b286178c8yangguo@chromium.org if (HasTransitionArray()) { 457f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - transitions: " << Brief(transitions()); 45899aa490225c81012235659d9a183226b286178c8yangguo@chromium.org } 459f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - prototype: " << Brief(prototype()); 460f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - constructor: " << Brief(constructor()); 461f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - code cache: " << Brief(code_cache()); 462f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - dependent code: " << Brief(dependent_code()); 463f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 4649e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 4659e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 4669e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 467f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid CodeCache::CodeCachePrint(OStream& os) { // NOLINT 468f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "CodeCache"); 469f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - default_cache: " << Brief(default_cache()); 470f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - normal_type_cache: " << Brief(normal_type_cache()); 471e297f5973a8a9ff0d9945da3f1e2d8a6230c294djkummerow@chromium.org} 472e297f5973a8a9ff0d9945da3f1e2d8a6230c294djkummerow@chromium.org 473e297f5973a8a9ff0d9945da3f1e2d8a6230c294djkummerow@chromium.org 474f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid PolymorphicCodeCache::PolymorphicCodeCachePrint(OStream& os) { // NOLINT 475f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "PolymorphicCodeCache"); 476f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - cache: " << Brief(cache()); 4779e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 4789e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 4799e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 480f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid TypeFeedbackInfo::TypeFeedbackInfoPrint(OStream& os) { // NOLINT 481f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "TypeFeedbackInfo"); 482f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - ic_total_count: " << ic_total_count() 4833e3d253bd8018d7627422bf55a5c7bb7e7d6ad7emachenbach@chromium.org << ", ic_with_type_info_count: " << ic_with_type_info_count() 4843e3d253bd8018d7627422bf55a5c7bb7e7d6ad7emachenbach@chromium.org << ", ic_generic_count: " << ic_generic_count() << "\n"; 485f7a588466d1e61e14fec951e5f10c7cec501b3b4jkummerow@chromium.org} 486f7a588466d1e61e14fec951e5f10c7cec501b3b4jkummerow@chromium.org 487f7a588466d1e61e14fec951e5f10c7cec501b3b4jkummerow@chromium.org 488f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid AliasedArgumentsEntry::AliasedArgumentsEntryPrint(OStream& os) { // NOLINT 489f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "AliasedArgumentsEntry"); 490f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - aliased_context_slot: " << aliased_context_slot(); 491ab30bb83bf3dae0053739c57b1db9ad13c1f9e3ayangguo@chromium.org} 492ab30bb83bf3dae0053739c57b1db9ad13c1f9e3ayangguo@chromium.org 493ab30bb83bf3dae0053739c57b1db9ad13c1f9e3ayangguo@chromium.org 494f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid FixedArray::FixedArrayPrint(OStream& os) { // NOLINT 495f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "FixedArray"); 496f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - length: " << length(); 4979e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org for (int i = 0; i < length(); i++) { 498f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: " << Brief(get(i)); 4999e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 500f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 5019e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 5029e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 5039e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 504f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid FixedDoubleArray::FixedDoubleArrayPrint(OStream& os) { // NOLINT 505f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "FixedDoubleArray"); 506f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - length: " << length(); 507c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com for (int i = 0; i < length(); i++) { 508f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: "; 5091145ef852a4e230e1f642eecd8de155f2b26bc53jkummerow@chromium.org if (is_the_hole(i)) { 510f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "<the hole>"; 5111145ef852a4e230e1f642eecd8de155f2b26bc53jkummerow@chromium.org } else { 512f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << get_scalar(i); 5131145ef852a4e230e1f642eecd8de155f2b26bc53jkummerow@chromium.org } 514c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com } 515f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 516c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com} 517c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com 518c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com 519f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid ConstantPoolArray::ConstantPoolArrayPrint(OStream& os) { // NOLINT 520f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "ConstantPoolArray"); 521f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - length: " << length(); 522196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org for (int i = 0; i <= last_index(INT32, SMALL_SECTION); i++) { 523196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org if (i < last_index(INT64, SMALL_SECTION)) { 524f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: double: " << get_int64_entry_as_double(i); 525196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org } else if (i <= last_index(CODE_PTR, SMALL_SECTION)) { 526f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: code target pointer: " 527f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << reinterpret_cast<void*>(get_code_ptr_entry(i)); 528196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org } else if (i <= last_index(HEAP_PTR, SMALL_SECTION)) { 529f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: heap pointer: " 530f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << reinterpret_cast<void*>(get_heap_ptr_entry(i)); 531196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org } else if (i <= last_index(INT32, SMALL_SECTION)) { 532f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: int32: " << get_int32_entry(i); 533a2e1a40f85577979749d4c0d6de30e992d996659mstarzinger@chromium.org } 534a2e1a40f85577979749d4c0d6de30e992d996659mstarzinger@chromium.org } 535196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org if (is_extended_layout()) { 536f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n Extended section:"; 537196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org for (int i = first_extended_section_index(); 538196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org i <= last_index(INT32, EXTENDED_SECTION); i++) { 539f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org if (i < last_index(INT64, EXTENDED_SECTION)) { 540f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: double: " << get_int64_entry_as_double(i); 541f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org } else if (i <= last_index(CODE_PTR, EXTENDED_SECTION)) { 542f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: code target pointer: " 543f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << reinterpret_cast<void*>(get_code_ptr_entry(i)); 544f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org } else if (i <= last_index(HEAP_PTR, EXTENDED_SECTION)) { 545f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: heap pointer: " 546f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << reinterpret_cast<void*>(get_heap_ptr_entry(i)); 547f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org } else if (i <= last_index(INT32, EXTENDED_SECTION)) { 548f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n [" << i << "]: int32: " << get_int32_entry(i); 549f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org } 550196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org } 551196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org } 552f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 553a2e1a40f85577979749d4c0d6de30e992d996659mstarzinger@chromium.org} 554a2e1a40f85577979749d4c0d6de30e992d996659mstarzinger@chromium.org 555a2e1a40f85577979749d4c0d6de30e992d996659mstarzinger@chromium.org 556f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSValue::JSValuePrint(OStream& os) { // NOLINT 557f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "ValueObject"); 558f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org value()->Print(os); 5599e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 5609e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 5619e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 562f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSMessageObject::JSMessageObjectPrint(OStream& os) { // NOLINT 563f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSMessageObject"); 564f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - type: " << Brief(type()); 565f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - arguments: " << Brief(arguments()); 566f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - start_position: " << start_position(); 567f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - end_position: " << end_position(); 568f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - script: " << Brief(script()); 569f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - stack_frames: " << Brief(stack_frames()); 570f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 57131b1277ec3b8cd17acb01c66d85a456159072157kmillikin@chromium.org} 57231b1277ec3b8cd17acb01c66d85a456159072157kmillikin@chromium.org 57331b1277ec3b8cd17acb01c66d85a456159072157kmillikin@chromium.org 574f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid String::StringPrint(OStream& os) { // NOLINT 5754a9f6553038df6b893b3d3ccae351723f4cbbae7yangguo@chromium.org if (StringShape(this).IsInternalized()) { 576f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "#"; 5779e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } else if (StringShape(this).IsCons()) { 578f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "c\""; 5799e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } else { 580f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\""; 5819e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 5829e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 5839e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org const char truncated_epilogue[] = "...<truncated>"; 5849e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org int len = length(); 5859e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org if (!FLAG_use_verbose_printer) { 5869e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org if (len > 100) { 5879e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org len = 100 - sizeof(truncated_epilogue); 5889e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 5899e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 5909e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org for (int i = 0; i < len; i++) { 591f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << AsUC16(Get(i)); 5929e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 5939e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org if (len != length()) { 594f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << truncated_epilogue; 5959e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 5969e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 597f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org if (!StringShape(this).IsInternalized()) os << "\""; 5989e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 5999e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 6009e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 601f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid Name::NamePrint(OStream& os) { // NOLINT 602750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org if (IsString()) 603f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org String::cast(this)->StringPrint(os); 604750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org else 605f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << Brief(this); 606750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org} 607750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org 608750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org 6097943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org// This method is only meant to be called from gdb for debugging purposes. 6102c81ceb7f1e1ccf5f304be0646f4c1375941a7f2machenbach@chromium.org// Since the string can also be in two-byte encoding, non-Latin1 characters 6117943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org// will be ignored in the output. 6127943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.orgchar* String::ToAsciiArray() { 6137943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org // Static so that subsequent calls frees previously allocated space. 6147943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org // This also means that previous results will be overwritten. 6157943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org static char* buffer = NULL; 6167943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org if (buffer != NULL) free(buffer); 6177943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org buffer = new char[length()+1]; 6189439d1fb7c6ab5253361f3b07bc6b450ccfe92c5jkummerow@chromium.org WriteToFlat(this, reinterpret_cast<uint8_t*>(buffer), 0, length()); 6197943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org buffer[length()] = 0; 6207943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org return buffer; 6217943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org} 6227943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org 6237943d46751aa94f2738bef3002bd6675b520f3b5vegorov@chromium.org 6244efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.orgstatic const char* const weekdays[] = { 6254efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org "???", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" 6264efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org}; 6274efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org 628e0e1b0d3e70c933d36ed381d511e9fda39f2a751mstarzinger@chromium.org 629f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSDate::JSDatePrint(OStream& os) { // NOLINT 630f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSDate"); 631f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 632f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - value = "; 633f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org value()->Print(os); 6344efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org if (!year()->IsSmi()) { 635f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - time = NaN\n"; 6364efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org } else { 637f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org // TODO(svenpanne) Add some basic formatting to our streams. 638f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Vector<char> buf = Vector<char>::New(100); 639f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org SNPrintF( 640f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org buf, " - time = %s %04d/%02d/%02d %02d:%02d:%02d\n", 641f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org weekdays[weekday()->IsSmi() ? Smi::cast(weekday())->value() + 1 : 0], 642f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org year()->IsSmi() ? Smi::cast(year())->value() : -1, 643f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org month()->IsSmi() ? Smi::cast(month())->value() : -1, 644f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org day()->IsSmi() ? Smi::cast(day())->value() : -1, 645f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org hour()->IsSmi() ? Smi::cast(hour())->value() : -1, 646f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org min()->IsSmi() ? Smi::cast(min())->value() : -1, 647f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org sec()->IsSmi() ? Smi::cast(sec())->value() : -1); 648f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << buf.start(); 6494efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org } 6504efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org} 6514efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org 6524efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org 653f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSProxy::JSProxyPrint(OStream& os) { // NOLINT 654f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSProxy"); 655f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 656f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - handler = "; 657f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org handler()->Print(os); 658f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - hash = "; 659f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org hash()->Print(os); 660f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 6617304bcac06a6a63b9f3dcebac2eeceada87ca146vegorov@chromium.org} 6627304bcac06a6a63b9f3dcebac2eeceada87ca146vegorov@chromium.org 6637304bcac06a6a63b9f3dcebac2eeceada87ca146vegorov@chromium.org 664f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSFunctionProxy::JSFunctionProxyPrint(OStream& os) { // NOLINT 665f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSFunctionProxy"); 666f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 667f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - handler = "; 668f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org handler()->Print(os); 669f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - call_trap = "; 670f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org call_trap()->Print(os); 671f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - construct_trap = "; 672f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org construct_trap()->Print(os); 673f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 67434e60787ea1e76f3ee49e859f71f036170c21f0elrn@chromium.org} 67534e60787ea1e76f3ee49e859f71f036170c21f0elrn@chromium.org 67634e60787ea1e76f3ee49e859f71f036170c21f0elrn@chromium.org 677f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSSet::JSSetPrint(OStream& os) { // NOLINT 678f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSSet"); 679f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 680f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - table = " << Brief(table()); 681f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 682d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org} 683d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org 684d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org 685f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSMap::JSMapPrint(OStream& os) { // NOLINT 686f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSMap"); 687f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 688f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - table = " << Brief(table()); 689f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 690d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org} 691d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org 692d3c42109e5b85232d19beab8deeb24bdcbbf07f9danno@chromium.org 693f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgtemplate <class Derived, class TableType> 694f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid OrderedHashTableIterator< 695f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Derived, TableType>::OrderedHashTableIteratorPrint(OStream& os) { // NOLINT 696f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 697f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - table = " << Brief(table()); 698f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - index = " << Brief(index()); 699f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - kind = " << Brief(kind()); 700f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 7014ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org} 7024ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 7034ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 704f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgtemplate void OrderedHashTableIterator< 705f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSSetIterator, 706f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org OrderedHashSet>::OrderedHashTableIteratorPrint(OStream& os); // NOLINT 7074ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 7084ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 709f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgtemplate void OrderedHashTableIterator< 710f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSMapIterator, 711f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org OrderedHashMap>::OrderedHashTableIteratorPrint(OStream& os); // NOLINT 7124ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 7134ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 714f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSSetIterator::JSSetIteratorPrint(OStream& os) { // NOLINT 715f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSSetIterator"); 716f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org OrderedHashTableIteratorPrint(os); 7174ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org} 7184ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 7194ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 720f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSMapIterator::JSMapIteratorPrint(OStream& os) { // NOLINT 721f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSMapIterator"); 722f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org OrderedHashTableIteratorPrint(os); 7234ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org} 7244ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 7254ef23eea527ce7f45bdc5edd52bd4d1a989e2359machenbach@chromium.org 726f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSWeakMap::JSWeakMapPrint(OStream& os) { // NOLINT 727f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSWeakMap"); 728f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 729f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - table = " << Brief(table()); 730f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 7317c2628c3f0353f0558760c3ca442f934263ea766kmillikin@chromium.org} 7327c2628c3f0353f0558760c3ca442f934263ea766kmillikin@chromium.org 7337c2628c3f0353f0558760c3ca442f934263ea766kmillikin@chromium.org 734f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSWeakSet::JSWeakSetPrint(OStream& os) { // NOLINT 735f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSWeakSet"); 736f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 737f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - table = " << Brief(table()); 738f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 739ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org} 740ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org 741ba72ec861b69b67139c93fc6dd56f4a73c9b3135jkummerow@chromium.org 742f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSArrayBuffer::JSArrayBufferPrint(OStream& os) { // NOLINT 743f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSArrayBuffer"); 744f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 745f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - backing_store = " << backing_store() << "\n"; 746f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - byte_length = " << Brief(byte_length()); 747f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 748f705b5034dc5bc422ac1019b591469a7d0534772mstarzinger@chromium.org} 749f705b5034dc5bc422ac1019b591469a7d0534772mstarzinger@chromium.org 750f705b5034dc5bc422ac1019b591469a7d0534772mstarzinger@chromium.org 751f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSTypedArray::JSTypedArrayPrint(OStream& os) { // NOLINT 752f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSTypedArray"); 753f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 754c6509d2e0fb825426296fbc357cf89f2c77ff434machenbach@chromium.org os << " - buffer = " << Brief(buffer()); 755f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - byte_offset = " << Brief(byte_offset()); 756f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - byte_length = " << Brief(byte_length()); 757f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - length = " << Brief(length()); 758f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 759f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PrintElements(os); 760e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org} 761e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org 762e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org 763f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSDataView::JSDataViewPrint(OStream& os) { // NOLINT 764f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "JSDataView"); 765f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 766f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - buffer =" << Brief(buffer()); 767f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - byte_offset = " << Brief(byte_offset()); 768f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - byte_length = " << Brief(byte_length()); 769f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 7701510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org} 7711510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org 7721510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org 773f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSFunction::JSFunctionPrint(OStream& os) { // NOLINT 774f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "Function"); 775f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - map = " << reinterpret_cast<void*>(map()) << "\n"; 776f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - initial_map = "; 777f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org if (has_initial_map()) os << Brief(initial_map()); 778f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - shared_info = " << Brief(shared()); 779f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - name = " << Brief(shared()->name()); 780f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - context = " << Brief(context()); 78137be408adf363bbe682921a4a690752fa0ec33femachenbach@chromium.org if (shared()->bound()) { 782f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - bindings = " << Brief(function_bindings()); 78337be408adf363bbe682921a4a690752fa0ec33femachenbach@chromium.org } else { 784f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - literals = " << Brief(literals()); 78537be408adf363bbe682921a4a690752fa0ec33femachenbach@chromium.org } 786f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - code = " << Brief(code()); 787f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 788f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PrintProperties(os); 789f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org PrintElements(os); 790f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 791f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 792f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 793f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 794f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid SharedFunctionInfo::SharedFunctionInfoPrint(OStream& os) { // NOLINT 795f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "SharedFunctionInfo"); 796f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - name: " << Brief(name()); 797f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - expected_nof_properties: " << expected_nof_properties(); 798f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - ast_node_count: " << ast_node_count(); 799f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - instance class name = "; 800f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org instance_class_name()->Print(os); 801f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - code = " << Brief(code()); 8025a11aaf63fdb7843c9b116fdb84ee35b0a980ea6yangguo@chromium.org if (HasSourceCode()) { 803f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - source code = "; 804ea52b5f5c87edc97dc0632eec996ca2af071317culan@chromium.org String* source = String::cast(Script::cast(script())->source()); 805ea52b5f5c87edc97dc0632eec996ca2af071317culan@chromium.org int start = start_position(); 806ea52b5f5c87edc97dc0632eec996ca2af071317culan@chromium.org int length = end_position() - start; 807ea52b5f5c87edc97dc0632eec996ca2af071317culan@chromium.org SmartArrayPointer<char> source_string = 808ea52b5f5c87edc97dc0632eec996ca2af071317culan@chromium.org source->ToCString(DISALLOW_NULLS, 809ea52b5f5c87edc97dc0632eec996ca2af071317culan@chromium.org FAST_STRING_TRAVERSAL, 810ea52b5f5c87edc97dc0632eec996ca2af071317culan@chromium.org start, length, NULL); 811f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << source_string.get(); 8125a11aaf63fdb7843c9b116fdb84ee35b0a980ea6yangguo@chromium.org } 8139e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org // Script files are often large, hard to read. 814f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org // os << "\n - script ="; 815f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org // script()->Print(os); 816f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - function token position = " << function_token_position(); 817f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - start position = " << start_position(); 818f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - end position = " << end_position(); 819f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - is expression = " << is_expression(); 820f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - debug info = " << Brief(debug_info()); 821f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - length = " << length(); 822f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - optimized_code_map = " << Brief(optimized_code_map()); 823f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - feedback_vector = "; 824f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org feedback_vector()->FixedArrayPrint(os); 825f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 8269e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 8279e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 8289e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 829f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSGlobalProxy::JSGlobalProxyPrint(OStream& os) { // NOLINT 830f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "global_proxy "; 831f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSObjectPrint(os); 832f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "native context : " << Brief(native_context()); 833f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 8349e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 8359e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 8369e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 837f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSGlobalObject::JSGlobalObjectPrint(OStream& os) { // NOLINT 838f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "global "; 839f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSObjectPrint(os); 840f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "native context : " << Brief(native_context()); 841f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 8429e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 8439e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 8449e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 845f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid JSBuiltinsObject::JSBuiltinsObjectPrint(OStream& os) { // NOLINT 846f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "builtins "; 847f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org JSObjectPrint(os); 8489e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 8499e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 8509e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 851f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid Cell::CellPrint(OStream& os) { // NOLINT 852f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "Cell"); 85341728483f231e098a8dd85f109b5a30e6ccc3c39danno@chromium.org} 85441728483f231e098a8dd85f109b5a30e6ccc3c39danno@chromium.org 85541728483f231e098a8dd85f109b5a30e6ccc3c39danno@chromium.org 856f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid PropertyCell::PropertyCellPrint(OStream& os) { // NOLINT 857f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "PropertyCell"); 8589e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 8599e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 8609e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 861f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid Code::CodePrint(OStream& os) { // NOLINT 862f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "Code"); 8639e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#ifdef ENABLE_DISASSEMBLER 8649e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org if (FLAG_use_verbose_printer) { 865f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org Disassemble(NULL, os); 8669e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 8679e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#endif 8689e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 8699e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 8709e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 871f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid Foreign::ForeignPrint(OStream& os) { // NOLINT 872f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "foreign address : " << foreign_address(); 8739e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 8749e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 8759e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 876f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid ExecutableAccessorInfo::ExecutableAccessorInfoPrint( 877f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org OStream& os) { // NOLINT 878f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "ExecutableAccessorInfo"); 879f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - name: " << Brief(name()); 880f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - flag: " << Brief(flag()); 881f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - getter: " << Brief(getter()); 882f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - setter: " << Brief(setter()); 883f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - data: " << Brief(data()); 884f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 8857c3372bc426136cb79479c1b59d1770f5528882ahpayer@chromium.org} 8867c3372bc426136cb79479c1b59d1770f5528882ahpayer@chromium.org 8877c3372bc426136cb79479c1b59d1770f5528882ahpayer@chromium.org 888f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid DeclaredAccessorInfo::DeclaredAccessorInfoPrint(OStream& os) { // NOLINT 889f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "DeclaredAccessorInfo"); 890f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - name: " << Brief(name()); 891f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - flag: " << Brief(flag()); 892f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - descriptor: " << Brief(descriptor()); 893f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 8947c3372bc426136cb79479c1b59d1770f5528882ahpayer@chromium.org} 8957c3372bc426136cb79479c1b59d1770f5528882ahpayer@chromium.org 8967c3372bc426136cb79479c1b59d1770f5528882ahpayer@chromium.org 897f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid DeclaredAccessorDescriptor::DeclaredAccessorDescriptorPrint( 898f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org OStream& os) { // NOLINT 899f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "DeclaredAccessorDescriptor"); 900f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - internal field: " << Brief(serialized_data()); 901f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 902f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 9031fd77d58ca66b2711f09cdea32c0c2d1a01b3ae5danno@chromium.org 904f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 905f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid Box::BoxPrint(OStream& os) { // NOLINT 906f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "Box"); 907f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - value: " << Brief(value()); 908f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 909f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 910f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 911f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 912f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid AccessorPair::AccessorPairPrint(OStream& os) { // NOLINT 913f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "AccessorPair"); 914f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - getter: " << Brief(getter()); 915f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - setter: " << Brief(setter()); 916f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 917f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 918f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 919f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 920f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid AccessCheckInfo::AccessCheckInfoPrint(OStream& os) { // NOLINT 921f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "AccessCheckInfo"); 922f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - named_callback: " << Brief(named_callback()); 923f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - indexed_callback: " << Brief(indexed_callback()); 924f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - data: " << Brief(data()); 925f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 926f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 927f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 928f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 929f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid InterceptorInfo::InterceptorInfoPrint(OStream& os) { // NOLINT 930f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "InterceptorInfo"); 931f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - getter: " << Brief(getter()); 932f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - setter: " << Brief(setter()); 933f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - query: " << Brief(query()); 934f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - deleter: " << Brief(deleter()); 935f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - enumerator: " << Brief(enumerator()); 936f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - data: " << Brief(data()); 937f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 938f2038fb01417bcf7698b87a5dfaa4a861539618aerik.corry@gmail.com} 939f2038fb01417bcf7698b87a5dfaa4a861539618aerik.corry@gmail.com 940f2038fb01417bcf7698b87a5dfaa4a861539618aerik.corry@gmail.com 941f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid CallHandlerInfo::CallHandlerInfoPrint(OStream& os) { // NOLINT 942f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "CallHandlerInfo"); 943f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - callback: " << Brief(callback()); 944f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - data: " << Brief(data()); 945f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 9469e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 9479e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 9489e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 949f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid FunctionTemplateInfo::FunctionTemplateInfoPrint(OStream& os) { // NOLINT 950f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "FunctionTemplateInfo"); 951f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - class name: " << Brief(class_name()); 952f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - tag: " << Brief(tag()); 953f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - property_list: " << Brief(property_list()); 954f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - serial_number: " << Brief(serial_number()); 955f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - call_code: " << Brief(call_code()); 956f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - property_accessors: " << Brief(property_accessors()); 957f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - prototype_template: " << Brief(prototype_template()); 958f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - parent_template: " << Brief(parent_template()); 959f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - named_property_handler: " << Brief(named_property_handler()); 960f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - indexed_property_handler: " << Brief(indexed_property_handler()); 961f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - instance_template: " << Brief(instance_template()); 962f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - signature: " << Brief(signature()); 963f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - access_check_info: " << Brief(access_check_info()); 964f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - hidden_prototype: " << (hidden_prototype() ? "true" : "false"); 965f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - undetectable: " << (undetectable() ? "true" : "false"); 966f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - need_access_check: " << (needs_access_check() ? "true" : "false"); 967f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 968f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 969f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 970f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 971f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid ObjectTemplateInfo::ObjectTemplateInfoPrint(OStream& os) { // NOLINT 972f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "ObjectTemplateInfo"); 973f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - tag: " << Brief(tag()); 974f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - property_list: " << Brief(property_list()); 975f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - property_accessors: " << Brief(property_accessors()); 976f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - constructor: " << Brief(constructor()); 977f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - internal_field_count: " << Brief(internal_field_count()); 978f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 979f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 980f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 981f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 982f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid SignatureInfo::SignatureInfoPrint(OStream& os) { // NOLINT 983f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "SignatureInfo"); 984f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - receiver: " << Brief(receiver()); 985f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - args: " << Brief(args()); 986f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 987f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 988f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 989f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 990f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid TypeSwitchInfo::TypeSwitchInfoPrint(OStream& os) { // NOLINT 991f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "TypeSwitchInfo"); 992f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - types: " << Brief(types()); 993f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 994f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 995f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 996f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 997f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid AllocationSite::AllocationSitePrint(OStream& os) { // NOLINT 998f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "AllocationSite"); 999f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - weak_next: " << Brief(weak_next()); 1000f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - dependent code: " << Brief(dependent_code()); 1001f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - nested site: " << Brief(nested_site()); 1002f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - memento found count: " 1003f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << Brief(Smi::FromInt(memento_found_count())); 1004f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - memento create count: " 1005f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << Brief(Smi::FromInt(memento_create_count())); 1006f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - pretenure decision: " 1007f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << Brief(Smi::FromInt(pretenure_decision())); 1008f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - transition_info: "; 1009b5be0a91a2e75da55653dd3583b7f3c1c54f7309machenbach@chromium.org if (transition_info()->IsSmi()) { 1010b5be0a91a2e75da55653dd3583b7f3c1c54f7309machenbach@chromium.org ElementsKind kind = GetElementsKind(); 1011f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "Array allocation with ElementsKind " << ElementsKindToString(kind); 1012bee51999422c0eeaae85ed99b5c0bd4126510ff1danno@chromium.org } else if (transition_info()->IsJSArray()) { 1013f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "Array literal " << Brief(transition_info()); 1014f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org } else { 1015f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "unknown transition_info" << Brief(transition_info()); 101659297c735ad2a41156ae9c723a39ff259ad061e0jkummerow@chromium.org } 1017f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 101859297c735ad2a41156ae9c723a39ff259ad061e0jkummerow@chromium.org} 101959297c735ad2a41156ae9c723a39ff259ad061e0jkummerow@chromium.org 102059297c735ad2a41156ae9c723a39ff259ad061e0jkummerow@chromium.org 1021f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid AllocationMemento::AllocationMementoPrint(OStream& os) { // NOLINT 1022f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "AllocationMemento"); 1023f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " - allocation site: "; 1024bee51999422c0eeaae85ed99b5c0bd4126510ff1danno@chromium.org if (IsValid()) { 1025f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org GetAllocationSite()->Print(os); 1026bee51999422c0eeaae85ed99b5c0bd4126510ff1danno@chromium.org } else { 1027f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "<invalid>\n"; 1028bee51999422c0eeaae85ed99b5c0bd4126510ff1danno@chromium.org } 1029bee51999422c0eeaae85ed99b5c0bd4126510ff1danno@chromium.org} 1030bee51999422c0eeaae85ed99b5c0bd4126510ff1danno@chromium.org 1031bee51999422c0eeaae85ed99b5c0bd4126510ff1danno@chromium.org 1032f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid Script::ScriptPrint(OStream& os) { // NOLINT 1033f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "Script"); 1034f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - source: " << Brief(source()); 1035f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - name: " << Brief(name()); 1036f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - line_offset: " << Brief(line_offset()); 1037f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - column_offset: " << Brief(column_offset()); 1038f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - type: " << Brief(type()); 1039f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - id: " << Brief(id()); 1040f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - context data: " << Brief(context_data()); 1041f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - wrapper: " << Brief(wrapper()); 1042f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - compilation type: " << compilation_type(); 1043f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - line ends: " << Brief(line_ends()); 1044f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - eval from shared: " << Brief(eval_from_shared()); 1045f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - eval from instructions offset: " 1046f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org << Brief(eval_from_instructions_offset()); 1047f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 1048f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 1049f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 1050f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 1051f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid DebugInfo::DebugInfoPrint(OStream& os) { // NOLINT 1052f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "DebugInfo"); 1053f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - shared: " << Brief(shared()); 1054f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - original_code: " << Brief(original_code()); 1055f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - code: " << Brief(code()); 1056f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - break_points: "; 1057f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org break_points()->Print(os); 1058f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 1059f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 1060f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 1061f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid BreakPointInfo::BreakPointInfoPrint(OStream& os) { // NOLINT 1062f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org HeapObject::PrintHeader(os, "BreakPointInfo"); 1063f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - code_position: " << code_position()->value(); 1064f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - source_position: " << source_position()->value(); 1065f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - statement_position: " << statement_position()->value(); 1066f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n - break_point_objects: " << Brief(break_point_objects()); 1067f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 1068f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org} 1069f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 1070f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org 1071f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid DescriptorArray::PrintDescriptors(OStream& os) { // NOLINT 1072f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "Descriptor array " << number_of_descriptors() << "\n"; 10739e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org for (int i = 0; i < number_of_descriptors(); i++) { 10749e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org Descriptor desc; 10759e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org Get(i, &desc); 1076f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " " << i << ": " << desc; 10779e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org } 1078f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 10799e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} 10809e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 10819e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 1082f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.orgvoid TransitionArray::PrintTransitions(OStream& os) { // NOLINT 1083f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "Transition array %d\n", number_of_transitions(); 108499aa490225c81012235659d9a183226b286178c8yangguo@chromium.org for (int i = 0; i < number_of_transitions(); i++) { 1085f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " " << i << ": "; 1086f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org GetKey(i)->NamePrint(os); 1087f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << ": "; 108899aa490225c81012235659d9a183226b286178c8yangguo@chromium.org switch (GetTargetDetails(i).type()) { 108999aa490225c81012235659d9a183226b286178c8yangguo@chromium.org case FIELD: { 1090f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " (transition to field)\n"; 109199aa490225c81012235659d9a183226b286178c8yangguo@chromium.org break; 109299aa490225c81012235659d9a183226b286178c8yangguo@chromium.org } 1093fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org case CONSTANT: 1094f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " (transition to constant)\n"; 109599aa490225c81012235659d9a183226b286178c8yangguo@chromium.org break; 109699aa490225c81012235659d9a183226b286178c8yangguo@chromium.org case CALLBACKS: 1097f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << " (transition to callback)\n"; 109899aa490225c81012235659d9a183226b286178c8yangguo@chromium.org break; 109999aa490225c81012235659d9a183226b286178c8yangguo@chromium.org // Values below are never in the target descriptor array. 110099aa490225c81012235659d9a183226b286178c8yangguo@chromium.org case NORMAL: 110199aa490225c81012235659d9a183226b286178c8yangguo@chromium.org UNREACHABLE(); 110299aa490225c81012235659d9a183226b286178c8yangguo@chromium.org break; 110399aa490225c81012235659d9a183226b286178c8yangguo@chromium.org } 110499aa490225c81012235659d9a183226b286178c8yangguo@chromium.org } 1105f15d0cdbef11a212e108432465f014a7d3c3aa12machenbach@chromium.org os << "\n"; 110699aa490225c81012235659d9a183226b286178c8yangguo@chromium.org} 110799aa490225c81012235659d9a183226b286178c8yangguo@chromium.org 110899aa490225c81012235659d9a183226b286178c8yangguo@chromium.org 11099e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#endif // OBJECT_PRINT 11109e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 11119e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org 11129e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org} } // namespace v8::internal 1113