#include "common/api/atom_api_id_weak_map.h"
+#include "base/logging.h"
+
namespace atom {
namespace api {
}
void IDWeakMap::Erase(v8::Isolate* isolate, int key) {
+ if (!Has(key)) {
+ LOG(WARNING) << "Object with key " << key << " is being GCed for twice.";
+ return;
+ }
+
v8::Persistent<v8::Value> value = map_[key];
value.ClearWeak(isolate);
value.Dispose(isolate);
IDWeakMap* obj = static_cast<IDWeakMap*>(data);
int key = value->ToObject()->GetHiddenValue(
v8::String::New("IDWeakMapKey"))->IntegerValue();
+
obj->Erase(isolate, key);
}