diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index ce000d06c11659..f2a716cfdfe970 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -11,7 +11,7 @@ #define V8_MAJOR_VERSION 6 #define V8_MINOR_VERSION 2 #define V8_BUILD_NUMBER 414 -#define V8_PATCH_LEVEL 51 +#define V8_PATCH_LEVEL 52 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 078796f5dbb4f2..76b095eb422712 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -5190,6 +5190,7 @@ Local v8::Object::CreationContext() { int v8::Object::GetIdentityHash() { + i::DisallowHeapAllocation no_gc; auto isolate = Utils::OpenHandle(this)->GetIsolate(); i::HandleScope scope(isolate); auto self = Utils::OpenHandle(this); diff --git a/deps/v8/src/objects.cc b/deps/v8/src/objects.cc index d9d00e058f4ee0..b923864cb5f60e 100644 --- a/deps/v8/src/objects.cc +++ b/deps/v8/src/objects.cc @@ -2301,6 +2301,7 @@ namespace { // objects. This avoids a double lookup in the cases where we know we will // add the hash to the JSObject if it does not already exist. Object* GetSimpleHash(Object* object) { + DisallowHeapAllocation no_gc; // The object is either a Smi, a HeapNumber, a name, an odd-ball, a real JS // object, or a Harmony proxy. if (object->IsSmi()) { @@ -2333,10 +2334,10 @@ Object* GetSimpleHash(Object* object) { } // namespace Object* Object::GetHash() { + DisallowHeapAllocation no_gc; Object* hash = GetSimpleHash(this); if (hash->IsSmi()) return hash; - DisallowHeapAllocation no_gc; DCHECK(IsJSReceiver()); JSReceiver* receiver = JSReceiver::cast(this); Isolate* isolate = receiver->GetIsolate(); @@ -2345,10 +2346,12 @@ Object* Object::GetHash() { // static Smi* Object::GetOrCreateHash(Isolate* isolate, Object* key) { + DisallowHeapAllocation no_gc; return key->GetOrCreateHash(isolate); } Smi* Object::GetOrCreateHash(Isolate* isolate) { + DisallowHeapAllocation no_gc; Object* hash = GetSimpleHash(this); if (hash->IsSmi()) return Smi::cast(hash); @@ -6286,6 +6289,7 @@ Object* SetHashAndUpdateProperties(HeapObject* properties, int masked_hash) { } int GetIdentityHashHelper(Isolate* isolate, JSReceiver* object) { + DisallowHeapAllocation no_gc; Object* properties = object->raw_properties_or_hash(); if (properties->IsSmi()) { return Smi::ToInt(properties); @@ -6312,6 +6316,7 @@ int GetIdentityHashHelper(Isolate* isolate, JSReceiver* object) { } // namespace void JSReceiver::SetIdentityHash(int masked_hash) { + DisallowHeapAllocation no_gc; DCHECK_NE(PropertyArray::kNoHashSentinel, masked_hash); DCHECK_EQ(masked_hash & JSReceiver::kHashMask, masked_hash); @@ -6322,6 +6327,7 @@ void JSReceiver::SetIdentityHash(int masked_hash) { } void JSReceiver::SetProperties(HeapObject* properties) { + DisallowHeapAllocation no_gc; Isolate* isolate = properties->GetIsolate(); int hash = GetIdentityHashHelper(isolate, this); Object* new_properties = properties; @@ -6337,6 +6343,7 @@ void JSReceiver::SetProperties(HeapObject* properties) { template Smi* GetOrCreateIdentityHashHelper(Isolate* isolate, ProxyType* proxy) { + DisallowHeapAllocation no_gc; Object* maybe_hash = proxy->hash(); if (maybe_hash->IsSmi()) return Smi::cast(maybe_hash); @@ -6346,6 +6353,7 @@ Smi* GetOrCreateIdentityHashHelper(Isolate* isolate, ProxyType* proxy) { } Object* JSObject::GetIdentityHash(Isolate* isolate) { + DisallowHeapAllocation no_gc; if (IsJSGlobalProxy()) { return JSGlobalProxy::cast(this)->hash(); } @@ -6359,6 +6367,7 @@ Object* JSObject::GetIdentityHash(Isolate* isolate) { } Smi* JSObject::GetOrCreateIdentityHash(Isolate* isolate) { + DisallowHeapAllocation no_gc; if (IsJSGlobalProxy()) { return GetOrCreateIdentityHashHelper(isolate, JSGlobalProxy::cast(this)); }