From 2bde8e466a4451c7319e3a072d118917957d6554 Mon Sep 17 00:00:00 2001 From: Steve Block Date: Wed, 25 May 2011 19:08:45 +0100 Subject: Merge WebKit at r82507: Initial merge by git Change-Id: I60ce9d780725b58b45e54165733a8ffee23b683e --- Source/JavaScriptCore/collector/handles/Handle.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Source/JavaScriptCore/collector/handles/Handle.h') diff --git a/Source/JavaScriptCore/collector/handles/Handle.h b/Source/JavaScriptCore/collector/handles/Handle.h index 98c60ec..d4e38c0 100644 --- a/Source/JavaScriptCore/collector/handles/Handle.h +++ b/Source/JavaScriptCore/collector/handles/Handle.h @@ -111,10 +111,19 @@ template struct HandleConverter { }; template struct HandleConverter { + Handle asObject() const; + bool isObject() const { return jsValue().isObject(); } + bool getNumber(double number) const { return jsValue().getNumber(number); } + UString getString(ExecState*) const; + bool isUndefinedOrNull() const { return jsValue().isUndefinedOrNull(); } + +private: + JSValue jsValue() const { return static_cast(this)->get(); } }; template class Handle : public HandleBase, public HandleConverter, T> { public: + template friend class HandleConverter; typedef typename HandleTypes::ExternalType ExternalType; template Handle(Handle o) { @@ -144,6 +153,11 @@ private: } }; +template Handle HandleConverter::asObject() const +{ + return Handle::wrapSlot(static_cast(this)->slot()); +} + template inline bool operator==(const Handle& a, const Handle& b) { return a.get() == b.get(); -- cgit v1.1