summaryrefslogtreecommitdiff
path: root/js/src/builtin/MapObject.h
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/builtin/MapObject.h')
-rw-r--r--js/src/builtin/MapObject.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/js/src/builtin/MapObject.h b/js/src/builtin/MapObject.h
index 5382adfd2..a9f685ea0 100644
--- a/js/src/builtin/MapObject.h
+++ b/js/src/builtin/MapObject.h
@@ -52,14 +52,22 @@ class HashableValue
}
};
-template <>
-class RootedBase<HashableValue> {
+template <typename Wrapper>
+class WrappedPtrOperations<HashableValue, Wrapper>
+{
public:
- MOZ_MUST_USE bool setValue(JSContext* cx, HandleValue v) {
- return static_cast<JS::Rooted<HashableValue>*>(this)->get().setValue(cx, v);
- }
Value value() const {
- return static_cast<const JS::Rooted<HashableValue>*>(this)->get().get();
+ return static_cast<const Wrapper*>(this)->get().get();
+ }
+};
+
+template <typename Wrapper>
+class MutableWrappedPtrOperations<HashableValue, Wrapper>
+ : public WrappedPtrOperations<HashableValue, Wrapper>
+{
+ public:
+ MOZ_MUST_USE bool setValue(JSContext* cx, HandleValue v) {
+ return static_cast<Wrapper*>(this)->get().setValue(cx, v);
}
};