Upgrade V8 to 5.1.281.57 DO NOT MERGE
FPIIM-449
Change-Id: Id981b686b4d587ac31697662eb98bb34be42ad90
(cherry picked from commit 3b9bc31999c9787eb726ecdbfd5796bfdec32a18)
diff --git a/src/objects-printer.cc b/src/objects-printer.cc
index 67bc62e..58092a4 100644
--- a/src/objects-printer.cc
+++ b/src/objects-printer.cc
@@ -95,6 +95,7 @@
os << "filler";
break;
case JS_OBJECT_TYPE: // fall through
+ case JS_SPECIAL_API_OBJECT_TYPE:
case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
case JS_ARRAY_TYPE:
case JS_GENERATOR_OBJECT_TYPE:
@@ -395,10 +396,16 @@
obj->PrintHeader(os, id);
// Don't call GetElementsKind, its validation code can cause the printer to
// fail when debugging.
- PrototypeIterator iter(obj->GetIsolate(), obj);
os << "\n - map = " << reinterpret_cast<void*>(obj->map()) << " ["
- << ElementsKindToString(obj->map()->elements_kind())
- << "]\n - prototype = " << reinterpret_cast<void*>(iter.GetCurrent());
+ << ElementsKindToString(obj->map()->elements_kind());
+ if (obj->elements()->map() == obj->GetHeap()->fixed_cow_array_map()) {
+ os << " (COW)";
+ }
+ PrototypeIterator iter(obj->GetIsolate(), obj);
+ os << "]\n - prototype = " << reinterpret_cast<void*>(iter.GetCurrent());
+ if (obj->elements()->length() > 0) {
+ os << "\n - elements = " << Brief(obj->elements());
+ }
}
@@ -454,6 +461,12 @@
}
os << "\n - elements kind: " << ElementsKindToString(elements_kind());
os << "\n - unused property fields: " << unused_property_fields();
+ os << "\n - enum length: ";
+ if (EnumLength() == kInvalidEnumCacheSentinel) {
+ os << "invalid";
+ } else {
+ os << EnumLength();
+ }
if (is_deprecated()) os << "\n - deprecated_map";
if (is_stable()) os << "\n - stable_map";
if (is_dictionary_map()) os << "\n - dictionary_map";
@@ -466,7 +479,6 @@
if (is_access_check_needed()) os << "\n - access_check_needed";
if (!is_extensible()) os << "\n - non-extensible";
if (is_observed()) os << "\n - observed";
- if (is_strong()) os << "\n - strong_map";
if (is_prototype_map()) {
os << "\n - prototype_map";
os << "\n - prototype info: " << Brief(prototype_info());
@@ -856,6 +868,8 @@
if (has_initial_map()) os << Brief(initial_map());
os << "\n - shared_info = " << Brief(shared());
os << "\n - name = " << Brief(shared()->name());
+ os << "\n - formal_parameter_count = "
+ << shared()->internal_formal_parameter_count();
if (shared()->is_generator()) {
os << "\n - generator";
}
@@ -868,9 +882,10 @@
void SharedFunctionInfo::SharedFunctionInfoPrint(std::ostream& os) { // NOLINT
HeapObject::PrintHeader(os, "SharedFunctionInfo");
- os << "\n - name: " << Brief(name());
- os << "\n - expected_nof_properties: " << expected_nof_properties();
- os << "\n - ast_node_count: " << ast_node_count();
+ os << "\n - name = " << Brief(name());
+ os << "\n - formal_parameter_count = " << internal_formal_parameter_count();
+ os << "\n - expected_nof_properties = " << expected_nof_properties();
+ os << "\n - ast_node_count = " << ast_node_count();
os << "\n - instance class name = ";
instance_class_name()->Print(os);
os << "\n - code = " << Brief(code());
@@ -1297,8 +1312,6 @@
<< ")";
} else if (key == heap->strict_function_transition_symbol()) {
os << " (transition to strict function)";
- } else if (key == heap->strong_function_transition_symbol()) {
- os << " (transition to strong function)";
} else if (key == heap->observed_symbol()) {
os << " (transition to Object.observe)";
} else {