Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index e8ca3df18f28fd7219384d63e951f3607b6c7883..a799fceaed4a71be1aba11769507519666bda7ba 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -1536,6 +1536,32 @@ class V8_EXPORT JSON { |
}; |
+/** |
+ * A map whose keys are referenced weakly. It is similar to JavaScript WeakMap |
+ * but can be created without entering a v8::Context and hence shouldn't |
+ * escape to JavaScript. |
+ */ |
+class V8_EXPORT NativeWeakMap { |
+ public: |
+ static NativeWeakMap* New(Isolate* isolate); |
+ ~NativeWeakMap(); |
+ void Set(Handle<Value> key, Handle<Value> value); |
+ Local<Value> Get(Handle<Value> key); |
+ bool Has(Handle<Value> key); |
+ bool Delete(Handle<Value> key); |
+ |
+ private: |
+ NativeWeakMap(Isolate* isolate, Handle<Object> weak_map); |
+ |
+ Isolate* isolate_; |
+ UniquePersistent<Object> map_; |
+ |
+ // Disallow copying and assigning. |
+ NativeWeakMap(NativeWeakMap&); |
+ void operator=(NativeWeakMap&); |
+}; |
+ |
+ |
// --- Value --- |