summaryrefslogtreecommitdiff
path: root/chromium/v8/src/objects-debug.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-05-09 14:22:11 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2016-05-09 15:11:45 +0000
commit2ddb2d3e14eef3de7dbd0cef553d669b9ac2361c (patch)
treee75f511546c5fd1a173e87c1f9fb11d7ac8d1af3 /chromium/v8/src/objects-debug.cc
parenta4f3d46271c57e8155ba912df46a05559d14726e (diff)
downloadqtwebengine-chromium-2ddb2d3e14eef3de7dbd0cef553d669b9ac2361c.tar.gz
BASELINE: Update Chromium to 51.0.2704.41
Also adds in all smaller components by reversing logic for exclusion. Change-Id: Ibf90b506e7da088ea2f65dcf23f2b0992c504422 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'chromium/v8/src/objects-debug.cc')
-rw-r--r--chromium/v8/src/objects-debug.cc56
1 files changed, 25 insertions, 31 deletions
diff --git a/chromium/v8/src/objects-debug.cc b/chromium/v8/src/objects-debug.cc
index b6dd42553cf..b023b03aea3 100644
--- a/chromium/v8/src/objects-debug.cc
+++ b/chromium/v8/src/objects-debug.cc
@@ -7,6 +7,7 @@
#include "src/bootstrapper.h"
#include "src/disasm.h"
#include "src/disassembler.h"
+#include "src/field-type.h"
#include "src/macro-assembler.h"
#include "src/ostreams.h"
#include "src/regexp/jsregexp.h"
@@ -98,6 +99,7 @@ void HeapObject::HeapObjectVerify() {
Oddball::cast(this)->OddballVerify();
break;
case JS_OBJECT_TYPE:
+ case JS_SPECIAL_API_OBJECT_TYPE:
case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
case JS_PROMISE_TYPE:
JSObject::cast(this)->JSObjectVerify();
@@ -150,9 +152,6 @@ void HeapObject::HeapObjectVerify() {
case JS_MAP_ITERATOR_TYPE:
JSMapIterator::cast(this)->JSMapIteratorVerify();
break;
- case JS_ITERATOR_RESULT_TYPE:
- JSIteratorResult::cast(this)->JSIteratorResultVerify();
- break;
case JS_WEAK_MAP_TYPE:
JSWeakMap::cast(this)->JSWeakMapVerify();
break;
@@ -210,7 +209,7 @@ void HeapObject::VerifyHeapPointer(Object* p) {
void Symbol::SymbolVerify() {
CHECK(IsSymbol());
CHECK(HasHashCode());
- CHECK_GT(Hash(), 0u);
+ CHECK(GetHeap()->hidden_properties_symbol() == this || Hash() > 0u);
CHECK(name()->IsUndefined() || name()->IsString());
}
@@ -230,6 +229,10 @@ void ByteArray::ByteArrayVerify() {
void BytecodeArray::BytecodeArrayVerify() {
// TODO(oth): Walk bytecodes and immediate values to validate sanity.
+ // - All bytecodes are known and well formed.
+ // - Jumps must go to new instructions starts.
+ // - No Illegal bytecodes.
+ // - No consecutive sequences of prefix Wide / ExtraWide.
CHECK(IsBytecodeArray());
CHECK(constant_pool()->IsFixedArray());
VerifyHeapPointer(constant_pool());
@@ -298,9 +301,9 @@ void JSObject::JSObjectVerify() {
if (value->IsUninitialized()) continue;
if (r.IsSmi()) DCHECK(value->IsSmi());
if (r.IsHeapObject()) DCHECK(value->IsHeapObject());
- HeapType* field_type = descriptors->GetFieldType(i);
- bool type_is_none = field_type->Is(HeapType::None());
- bool type_is_any = HeapType::Any()->Is(field_type);
+ FieldType* field_type = descriptors->GetFieldType(i);
+ bool type_is_none = field_type->IsNone();
+ bool type_is_any = field_type->IsAny();
if (r.IsNone()) {
CHECK(type_is_none);
} else if (!type_is_any && !(type_is_none && r.IsHeapObject())) {
@@ -318,7 +321,8 @@ void JSObject::JSObjectVerify() {
// pointer may point to a one pointer filler map.
if (ElementsAreSafeToExamine()) {
CHECK_EQ((map()->has_fast_smi_or_object_elements() ||
- (elements() == GetHeap()->empty_fixed_array())),
+ (elements() == GetHeap()->empty_fixed_array()) ||
+ HasFastStringWrapperElements()),
(elements()->map() == GetHeap()->fixed_array_map() ||
elements()->map() == GetHeap()->fixed_cow_array_map()));
CHECK(map()->has_fast_object_elements() == HasFastObjectElements());
@@ -553,9 +557,7 @@ void JSBoundFunction::JSBoundFunctionVerify() {
VerifyObjectField(kBoundThisOffset);
VerifyObjectField(kBoundTargetFunctionOffset);
VerifyObjectField(kBoundArgumentsOffset);
- VerifyObjectField(kCreationContextOffset);
CHECK(bound_target_function()->IsCallable());
- CHECK(creation_context()->IsNativeContext());
CHECK(IsCallable());
CHECK_EQ(IsConstructor(), bound_target_function()->IsConstructor());
}
@@ -621,7 +623,7 @@ void Oddball::OddballVerify() {
CHECK(number->IsSmi());
int value = Smi::cast(number)->value();
// Hidden oddballs have negative smis.
- const int kLeastHiddenOddballNumber = -5;
+ const int kLeastHiddenOddballNumber = -6;
CHECK_LE(value, 1);
CHECK(value >= kLeastHiddenOddballNumber);
}
@@ -644,6 +646,8 @@ void Oddball::OddballVerify() {
CHECK(this == heap->termination_exception());
} else if (map() == heap->exception_map()) {
CHECK(this == heap->exception());
+ } else if (map() == heap->optimized_out_map()) {
+ CHECK(this == heap->optimized_out());
} else {
UNREACHABLE();
}
@@ -765,14 +769,6 @@ void JSMapIterator::JSMapIteratorVerify() {
}
-void JSIteratorResult::JSIteratorResultVerify() {
- CHECK(IsJSIteratorResult());
- JSObjectVerify();
- VerifyPointer(done());
- VerifyPointer(value());
-}
-
-
void JSWeakMap::JSWeakMapVerify() {
CHECK(IsJSWeakMap());
JSObjectVerify();
@@ -911,12 +907,6 @@ void PrototypeInfo::PrototypeInfoVerify() {
}
-void AccessorInfo::AccessorInfoVerify() {
- VerifyPointer(name());
- VerifyPointer(expected_receiver_type());
-}
-
-
void SloppyBlockWithEvalContextExtension::
SloppyBlockWithEvalContextExtensionVerify() {
CHECK(IsSloppyBlockWithEvalContextExtension());
@@ -925,9 +915,10 @@ void SloppyBlockWithEvalContextExtension::
}
-void ExecutableAccessorInfo::ExecutableAccessorInfoVerify() {
- CHECK(IsExecutableAccessorInfo());
- AccessorInfoVerify();
+void AccessorInfo::AccessorInfoVerify() {
+ CHECK(IsAccessorInfo());
+ VerifyPointer(name());
+ VerifyPointer(expected_receiver_type());
VerifyPointer(getter());
VerifyPointer(setter());
VerifyPointer(data());
@@ -1038,7 +1029,7 @@ void NormalizedMapCache::NormalizedMapCacheVerify() {
void DebugInfo::DebugInfoVerify() {
CHECK(IsDebugInfo());
VerifyPointer(shared());
- VerifyPointer(code());
+ VerifyPointer(abstract_code());
VerifyPointer(break_points());
}
@@ -1076,7 +1067,8 @@ void JSObject::IncrementSpillStatistics(SpillInformation* info) {
case FAST_HOLEY_DOUBLE_ELEMENTS:
case FAST_DOUBLE_ELEMENTS:
case FAST_HOLEY_ELEMENTS:
- case FAST_ELEMENTS: {
+ case FAST_ELEMENTS:
+ case FAST_STRING_WRAPPER_ELEMENTS: {
info->number_of_objects_with_fast_elements_++;
int holes = 0;
FixedArray* e = FixedArray::cast(elements());
@@ -1100,7 +1092,8 @@ void JSObject::IncrementSpillStatistics(SpillInformation* info) {
info->number_of_fast_used_elements_ += e->length();
break;
}
- case DICTIONARY_ELEMENTS: {
+ case DICTIONARY_ELEMENTS:
+ case SLOW_STRING_WRAPPER_ELEMENTS: {
SeededNumberDictionary* dict = element_dictionary();
info->number_of_slow_used_elements_ += dict->NumberOfElements();
info->number_of_slow_unused_elements_ +=
@@ -1109,6 +1102,7 @@ void JSObject::IncrementSpillStatistics(SpillInformation* info) {
}
case FAST_SLOPPY_ARGUMENTS_ELEMENTS:
case SLOW_SLOPPY_ARGUMENTS_ELEMENTS:
+ case NO_ELEMENTS:
break;
}
}