diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2013-04-17 16:10:37 +0200 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2013-04-17 16:10:37 +0200 |
commit | 9f682265d6631a29457abeb53827d01fa77493c8 (patch) | |
tree | 92a1eec49b1f280931598a72dcf0cca3d795f210 /deps/v8/src/objects-debug.cc | |
parent | 951e0b69fa3c8b1a5d708e29de9d6f7d1db79827 (diff) | |
download | android-node-v8-9f682265d6631a29457abeb53827d01fa77493c8.tar.gz android-node-v8-9f682265d6631a29457abeb53827d01fa77493c8.tar.bz2 android-node-v8-9f682265d6631a29457abeb53827d01fa77493c8.zip |
deps: upgrade v8 to 3.18.0
Diffstat (limited to 'deps/v8/src/objects-debug.cc')
-rw-r--r-- | deps/v8/src/objects-debug.cc | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/deps/v8/src/objects-debug.cc b/deps/v8/src/objects-debug.cc index 44cab53cc7..24730a0412 100644 --- a/deps/v8/src/objects-debug.cc +++ b/deps/v8/src/objects-debug.cc @@ -139,6 +139,9 @@ void HeapObject::HeapObjectVerify() { case JS_CONTEXT_EXTENSION_OBJECT_TYPE: JSObject::cast(this)->JSObjectVerify(); break; + case JS_GENERATOR_OBJECT_TYPE: + JSGeneratorObject::cast(this)->JSGeneratorObjectVerify(); + break; case JS_MODULE_TYPE: JSModule::cast(this)->JSModuleVerify(); break; @@ -198,6 +201,9 @@ void HeapObject::HeapObjectVerify() { case JS_ARRAY_BUFFER_TYPE: JSArrayBuffer::cast(this)->JSArrayBufferVerify(); break; + case JS_TYPED_ARRAY_TYPE: + JSTypedArray::cast(this)->JSTypedArrayVerify(); + break; #define MAKE_STRUCT_CASE(NAME, Name, name) \ case NAME##_TYPE: \ @@ -404,6 +410,17 @@ void FixedDoubleArray::FixedDoubleArrayVerify() { } +void JSGeneratorObject::JSGeneratorObjectVerify() { + // In an expression like "new g()", there can be a point where a generator + // object is allocated but its fields are all undefined, as it hasn't yet been + // initialized by the generator. Hence these weak checks. + VerifyObjectField(kFunctionOffset); + VerifyObjectField(kContextOffset); + VerifyObjectField(kOperandStackOffset); + VerifyObjectField(kContinuationOffset); +} + + void JSModule::JSModuleVerify() { VerifyObjectField(kContextOffset); VerifyObjectField(kScopeInfoOffset); @@ -724,6 +741,28 @@ void JSArrayBuffer::JSArrayBufferVerify() { } +void JSTypedArray::JSTypedArrayVerify() { + CHECK(IsJSTypedArray()); + JSObjectVerify(); + VerifyPointer(buffer()); + CHECK(buffer()->IsJSArrayBuffer() || buffer()->IsUndefined()); + + VerifyPointer(byte_offset()); + CHECK(byte_offset()->IsSmi() || byte_offset()->IsHeapNumber() + || byte_offset()->IsUndefined()); + + VerifyPointer(byte_length()); + CHECK(byte_length()->IsSmi() || byte_length()->IsHeapNumber() + || byte_length()->IsUndefined()); + + VerifyPointer(length()); + CHECK(length()->IsSmi() || length()->IsHeapNumber() + || length()->IsUndefined()); + + VerifyPointer(elements()); +} + + void Foreign::ForeignVerify() { CHECK(IsForeign()); } |