Don't rely on IDWeakMap for bookkeeping remote objects

It frees us from using C++ to track JS objects, thus improves the
performance of collecting memory.
This commit is contained in:
Cheng Zhao 2015-08-27 19:01:34 +08:00
parent bd64f5ced2
commit 64e8ce0c07
4 changed files with 59 additions and 70 deletions

View file

@ -28,6 +28,11 @@ void SetHiddenValue(v8::Local<v8::Object> object,
object->SetHiddenValue(key, value);
}
void DeleteHiddenValue(v8::Local<v8::Object> object,
v8::Local<v8::String> key) {
object->DeleteHiddenValue(key);
}
int32_t GetObjectHash(v8::Local<v8::Object> object) {
return object->GetIdentityHash();
}
@ -48,6 +53,7 @@ void Initialize(v8::Local<v8::Object> exports, v8::Local<v8::Value> unused,
dict.SetMethod("createObjectWithName", &CreateObjectWithName);
dict.SetMethod("getHiddenValue", &GetHiddenValue);
dict.SetMethod("setHiddenValue", &SetHiddenValue);
dict.SetMethod("deleteHiddenValue", &DeleteHiddenValue);
dict.SetMethod("getObjectHash", &GetObjectHash);
dict.SetMethod("setDestructor", &SetDestructor);
dict.SetMethod("takeHeapSnapshot", &TakeHeapSnapshot);