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

Side by Side Diff: src/objects-printer.cc

Issue 776143005: Optimize Object.seal and Object.preventExtensions (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add support for preventExtensions Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/disasm.h" 7 #include "src/disasm.h"
8 #include "src/disassembler.h" 8 #include "src/disassembler.h"
9 #include "src/heap/objects-visiting.h" 9 #include "src/heap/objects-visiting.h"
10 #include "src/jsregexp.h" 10 #include "src/jsregexp.h"
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 << pre_allocated_property_fields() << "\n"; 415 << pre_allocated_property_fields() << "\n";
416 os << " - unused property fields: " << unused_property_fields() << "\n"; 416 os << " - unused property fields: " << unused_property_fields() << "\n";
417 if (is_dictionary_map()) os << " - dictionary_map\n"; 417 if (is_dictionary_map()) os << " - dictionary_map\n";
418 if (is_prototype_map()) os << " - prototype_map\n"; 418 if (is_prototype_map()) os << " - prototype_map\n";
419 if (is_hidden_prototype()) os << " - hidden_prototype\n"; 419 if (is_hidden_prototype()) os << " - hidden_prototype\n";
420 if (has_named_interceptor()) os << " - named_interceptor\n"; 420 if (has_named_interceptor()) os << " - named_interceptor\n";
421 if (has_indexed_interceptor()) os << " - indexed_interceptor\n"; 421 if (has_indexed_interceptor()) os << " - indexed_interceptor\n";
422 if (is_undetectable()) os << " - undetectable\n"; 422 if (is_undetectable()) os << " - undetectable\n";
423 if (has_instance_call_handler()) os << " - instance_call_handler\n"; 423 if (has_instance_call_handler()) os << " - instance_call_handler\n";
424 if (is_access_check_needed()) os << " - access_check_needed\n"; 424 if (is_access_check_needed()) os << " - access_check_needed\n";
425 if (is_frozen()) { 425 if (!is_extensible()) os << " - non-extensible\n";
426 os << " - frozen\n";
427 } else if (!is_extensible()) {
428 os << " - sealed\n";
429 }
430 os << " - back pointer: " << Brief(GetBackPointer()); 426 os << " - back pointer: " << Brief(GetBackPointer());
431 os << "\n - instance descriptors " << (owns_descriptors() ? "(own) " : "") 427 os << "\n - instance descriptors " << (owns_descriptors() ? "(own) " : "")
432 << "#" << NumberOfOwnDescriptors() << ": " 428 << "#" << NumberOfOwnDescriptors() << ": "
433 << Brief(instance_descriptors()); 429 << Brief(instance_descriptors());
434 if (FLAG_unbox_double_fields) { 430 if (FLAG_unbox_double_fields) {
435 os << "\n - layout descriptor: " << Brief(layout_descriptor()); 431 os << "\n - layout descriptor: " << Brief(layout_descriptor());
436 } 432 }
437 if (HasTransitionArray()) { 433 if (HasTransitionArray()) {
438 os << "\n - transitions: " << Brief(transitions()); 434 os << "\n - transitions: " << Brief(transitions());
439 } 435 }
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after
1133 void TransitionArray::PrintTransitions(std::ostream& os, 1129 void TransitionArray::PrintTransitions(std::ostream& os,
1134 bool print_header) { // NOLINT 1130 bool print_header) { // NOLINT
1135 if (print_header) { 1131 if (print_header) {
1136 os << "Transition array " << number_of_transitions() << "\n"; 1132 os << "Transition array " << number_of_transitions() << "\n";
1137 } 1133 }
1138 for (int i = 0; i < number_of_transitions(); i++) { 1134 for (int i = 0; i < number_of_transitions(); i++) {
1139 Name* key = GetKey(i); 1135 Name* key = GetKey(i);
1140 os << " "; 1136 os << " ";
1141 key->NamePrint(os); 1137 key->NamePrint(os);
1142 os << ": "; 1138 os << ": ";
1143 if (key == GetHeap()->frozen_symbol()) { 1139 if (key == GetHeap()->frozen_symbol()) {
Igor Sheludko 2014/12/10 11:31:15 Please add support for seal and nonextensible tran
adamk 2014/12/10 18:46:01 Done.
1144 os << " (transition to frozen)"; 1140 os << " (transition to frozen)";
1145 } else if (key == GetHeap()->elements_transition_symbol()) { 1141 } else if (key == GetHeap()->elements_transition_symbol()) {
1146 os << " (transition to " 1142 os << " (transition to "
1147 << ElementsKindToString(GetTarget(i)->elements_kind()) << ")"; 1143 << ElementsKindToString(GetTarget(i)->elements_kind()) << ")";
1148 } else if (key == GetHeap()->observed_symbol()) { 1144 } else if (key == GetHeap()->observed_symbol()) {
1149 os << " (transition to Object.observe)"; 1145 os << " (transition to Object.observe)";
1150 } else { 1146 } else {
1151 PropertyDetails details = GetTargetDetails(i); 1147 PropertyDetails details = GetTargetDetails(i);
1152 switch (details.type()) { 1148 switch (details.type()) {
1153 case FIELD: { 1149 case FIELD: {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1199 return SNPrintF(str, "#<%s>", s->PrivateSymbolToName()); 1195 return SNPrintF(str, "#<%s>", s->PrivateSymbolToName());
1200 } else { 1196 } else {
1201 return SNPrintF(str, "<%s>", String::cast(s->name())->ToCString().get()); 1197 return SNPrintF(str, "<%s>", String::cast(s->name())->ToCString().get());
1202 } 1198 }
1203 } 1199 }
1204 } 1200 }
1205 1201
1206 1202
1207 #endif // TRACE_MAPS 1203 #endif // TRACE_MAPS
1208 } } // namespace v8::internal 1204 } } // namespace v8::internal
OLDNEW
« src/objects.h ('K') | « src/objects-inl.h ('k') | src/runtime/runtime.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698