diff options
Diffstat (limited to 'js/src/builtin/MapObject.h')
-rw-r--r-- | js/src/builtin/MapObject.h | 20 |
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); } }; |