diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-03-21 10:16:54 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-03-25 09:44:10 +0100 |
commit | c459d8ea5d402c702948c860d9497b2230ff7e8a (patch) | |
tree | 56c282fc4d40e5cb613b47cf7be3ea0526ed5b6f /deps/v8/src/objects-debug.cc | |
parent | e0bc5a7361b1d29c3ed034155fd779ce6f44fb13 (diff) | |
download | android-node-v8-c459d8ea5d402c702948c860d9497b2230ff7e8a.tar.gz android-node-v8-c459d8ea5d402c702948c860d9497b2230ff7e8a.tar.bz2 android-node-v8-c459d8ea5d402c702948c860d9497b2230ff7e8a.zip |
deps: update V8 to 5.7.492.69
PR-URL: https://github.com/nodejs/node/pull/11752
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Diffstat (limited to 'deps/v8/src/objects-debug.cc')
-rw-r--r-- | deps/v8/src/objects-debug.cc | 111 |
1 files changed, 80 insertions, 31 deletions
diff --git a/deps/v8/src/objects-debug.cc b/deps/v8/src/objects-debug.cc index 2580bfb397..986970444f 100644 --- a/deps/v8/src/objects-debug.cc +++ b/deps/v8/src/objects-debug.cc @@ -44,6 +44,8 @@ void Smi::SmiVerify() { void HeapObject::HeapObjectVerify() { + VerifyHeapPointer(map()); + CHECK(map()->IsMap()); InstanceType instance_type = map()->instance_type(); if (instance_type < FIRST_NONSTRING_TYPE) { @@ -104,7 +106,6 @@ void HeapObject::HeapObjectVerify() { case JS_API_OBJECT_TYPE: case JS_SPECIAL_API_OBJECT_TYPE: case JS_CONTEXT_EXTENSION_OBJECT_TYPE: - case JS_PROMISE_TYPE: JSObject::cast(this)->JSObjectVerify(); break; case JS_GENERATOR_OBJECT_TYPE: @@ -143,9 +144,6 @@ void HeapObject::HeapObjectVerify() { case JS_MODULE_NAMESPACE_TYPE: JSModuleNamespace::cast(this)->JSModuleNamespaceVerify(); break; - case JS_FIXED_ARRAY_ITERATOR_TYPE: - JSFixedArrayIterator::cast(this)->JSFixedArrayIteratorVerify(); - break; case JS_SET_TYPE: JSSet::cast(this)->JSSetVerify(); break; @@ -205,6 +203,12 @@ void HeapObject::HeapObjectVerify() { case JS_WEAK_SET_TYPE: JSWeakSet::cast(this)->JSWeakSetVerify(); break; + case JS_PROMISE_CAPABILITY_TYPE: + JSPromiseCapability::cast(this)->JSPromiseCapabilityVerify(); + break; + case JS_PROMISE_TYPE: + JSPromise::cast(this)->JSPromiseVerify(); + break; case JS_REGEXP_TYPE: JSRegExp::cast(this)->JSRegExpVerify(); break; @@ -337,7 +341,9 @@ void JSObject::JSObjectVerify() { DescriptorArray* descriptors = map()->instance_descriptors(); Isolate* isolate = GetIsolate(); for (int i = 0; i < map()->NumberOfOwnDescriptors(); i++) { - if (descriptors->GetDetails(i).type() == DATA) { + PropertyDetails details = descriptors->GetDetails(i); + if (details.location() == kField) { + DCHECK_EQ(kData, details.kind()); Representation r = descriptors->GetDetails(i).representation(); FieldIndex index = FieldIndex::ForDescriptor(map(), i); if (IsUnboxedDoubleField(index)) { @@ -471,7 +477,7 @@ void JSGeneratorObject::JSGeneratorObjectVerify() { VerifyObjectField(kFunctionOffset); VerifyObjectField(kContextOffset); VerifyObjectField(kReceiverOffset); - VerifyObjectField(kOperandStackOffset); + VerifyObjectField(kRegisterFileOffset); VerifyObjectField(kContinuationOffset); } @@ -604,21 +610,29 @@ void JSFunction::JSFunctionVerify() { void SharedFunctionInfo::SharedFunctionInfoVerify() { CHECK(IsSharedFunctionInfo()); - VerifyObjectField(kNameOffset); + VerifyObjectField(kCodeOffset); - VerifyObjectField(kOptimizedCodeMapOffset); + VerifyObjectField(kDebugInfoOffset); VerifyObjectField(kFeedbackMetadataOffset); - VerifyObjectField(kScopeInfoOffset); - VerifyObjectField(kOuterScopeInfoOffset); + VerifyObjectField(kFunctionDataOffset); + VerifyObjectField(kFunctionIdentifierOffset); VerifyObjectField(kInstanceClassNameOffset); + VerifyObjectField(kNameOffset); + VerifyObjectField(kOptimizedCodeMapOffset); + VerifyObjectField(kOuterScopeInfoOffset); + VerifyObjectField(kScopeInfoOffset); + VerifyObjectField(kScriptOffset); + CHECK(function_data()->IsUndefined(GetIsolate()) || IsApiFunction() || HasBytecodeArray() || HasAsmWasmData()); - VerifyObjectField(kFunctionDataOffset); - VerifyObjectField(kScriptOffset); - VerifyObjectField(kDebugInfoOffset); + CHECK(function_identifier()->IsUndefined(GetIsolate()) || HasBuiltinFunctionId() || HasInferredName()); - VerifyObjectField(kFunctionIdentifierOffset); + + if (scope_info()->length() > 0) { + CHECK(kind() == scope_info()->function_kind()); + CHECK_EQ(kind() == kModule, scope_info()->scope_type() == MODULE_SCOPE); + } } @@ -876,6 +890,35 @@ void JSWeakSet::JSWeakSetVerify() { CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate())); } +void JSPromiseCapability::JSPromiseCapabilityVerify() { + CHECK(IsJSPromiseCapability()); + JSObjectVerify(); + VerifyPointer(promise()); + VerifyPointer(resolve()); + VerifyPointer(reject()); +} + +void JSPromise::JSPromiseVerify() { + CHECK(IsJSPromise()); + JSObjectVerify(); + Isolate* isolate = GetIsolate(); + VerifySmiField(kStatusOffset); + CHECK(result()->IsUndefined(isolate) || result()->IsObject()); + CHECK(deferred_promise()->IsUndefined(isolate) || + deferred_promise()->IsJSReceiver() || + deferred_promise()->IsFixedArray()); + CHECK(deferred_on_resolve()->IsUndefined(isolate) || + deferred_on_resolve()->IsCallable() || + deferred_on_resolve()->IsFixedArray()); + CHECK(deferred_on_reject()->IsUndefined(isolate) || + deferred_on_reject()->IsCallable() || + deferred_on_reject()->IsFixedArray()); + CHECK(fulfill_reactions()->IsUndefined(isolate) || + fulfill_reactions()->IsCallable() || + fulfill_reactions()->IsFixedArray()); + CHECK(reject_reactions()->IsUndefined(isolate) || + reject_reactions()->IsCallable() || reject_reactions()->IsFixedArray()); +} void JSRegExp::JSRegExpVerify() { JSObjectVerify(); @@ -988,14 +1031,12 @@ void Box::BoxVerify() { } void PromiseResolveThenableJobInfo::PromiseResolveThenableJobInfoVerify() { - Isolate* isolate = GetIsolate(); CHECK(IsPromiseResolveThenableJobInfo()); CHECK(thenable()->IsJSReceiver()); CHECK(then()->IsJSReceiver()); CHECK(resolve()->IsJSFunction()); CHECK(reject()->IsJSFunction()); - CHECK(debug_id()->IsNumber() || debug_id()->IsUndefined(isolate)); - CHECK(debug_name()->IsString() || debug_name()->IsUndefined(isolate)); + VerifySmiField(kDebugIdOffset); CHECK(context()->IsContext()); } @@ -1003,10 +1044,17 @@ void PromiseReactionJobInfo::PromiseReactionJobInfoVerify() { Isolate* isolate = GetIsolate(); CHECK(IsPromiseReactionJobInfo()); CHECK(value()->IsObject()); - CHECK(tasks()->IsJSArray() || tasks()->IsCallable()); - CHECK(deferred()->IsJSObject() || deferred()->IsUndefined(isolate)); - CHECK(debug_id()->IsNumber() || debug_id()->IsUndefined(isolate)); - CHECK(debug_name()->IsString() || debug_name()->IsUndefined(isolate)); + CHECK(tasks()->IsFixedArray() || tasks()->IsCallable()); + CHECK(deferred_promise()->IsUndefined(isolate) || + deferred_promise()->IsJSReceiver() || + deferred_promise()->IsFixedArray()); + CHECK(deferred_on_resolve()->IsUndefined(isolate) || + deferred_on_resolve()->IsCallable() || + deferred_on_resolve()->IsFixedArray()); + CHECK(deferred_on_reject()->IsUndefined(isolate) || + deferred_on_reject()->IsCallable() || + deferred_on_reject()->IsFixedArray()); + VerifySmiField(kDebugIdOffset); CHECK(context()->IsContext()); } @@ -1015,16 +1063,6 @@ void JSModuleNamespace::JSModuleNamespaceVerify() { VerifyPointer(module()); } -void JSFixedArrayIterator::JSFixedArrayIteratorVerify() { - CHECK(IsJSFixedArrayIterator()); - - VerifyPointer(array()); - VerifyPointer(initial_next()); - VerifySmiField(kIndexOffset); - - CHECK_LE(index(), array()->length()); -} - void ModuleInfoEntry::ModuleInfoEntryVerify() { Isolate* isolate = GetIsolate(); CHECK(IsModuleInfoEntry()); @@ -1078,6 +1116,12 @@ void PrototypeInfo::PrototypeInfoVerify() { CHECK(validity_cell()->IsCell() || validity_cell()->IsSmi()); } +void Tuple2::Tuple2Verify() { + CHECK(IsTuple2()); + VerifyObjectField(kValue1Offset); + VerifyObjectField(kValue2Offset); +} + void Tuple3::Tuple3Verify() { CHECK(IsTuple3()); VerifyObjectField(kValue1Offset); @@ -1091,6 +1135,11 @@ void ContextExtension::ContextExtensionVerify() { VerifyObjectField(kExtensionOffset); } +void ConstantElementsPair::ConstantElementsPairVerify() { + CHECK(IsConstantElementsPair()); + VerifySmiField(kElementsKindOffset); + VerifyObjectField(kConstantValuesOffset); +} void AccessorInfo::AccessorInfoVerify() { CHECK(IsAccessorInfo()); |