From cf48ff0588e5f7bb3b86b85d6f7c320b81b73686 Mon Sep 17 00:00:00 2001 From: Ykkrosh Date: Fri, 9 Apr 2010 18:45:28 +0000 Subject: [PATCH] Expose JS_HasProperty This was SVN commit r7449. --- source/scriptinterface/ScriptInterface.cpp | 12 ++++++++++++ source/scriptinterface/ScriptInterface.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/source/scriptinterface/ScriptInterface.cpp b/source/scriptinterface/ScriptInterface.cpp index fb84420abe..ee3e766ffc 100644 --- a/source/scriptinterface/ScriptInterface.cpp +++ b/source/scriptinterface/ScriptInterface.cpp @@ -370,6 +370,18 @@ bool ScriptInterface::GetProperty_(jsval obj, const char* name, jsval& out) return true; } +bool ScriptInterface::HasProperty(jsval obj, const char* name) +{ + if (! JSVAL_IS_OBJECT(obj)) + return false; + JSObject* object = JSVAL_TO_OBJECT(obj); + + JSBool found; + if (!JS_HasProperty(m->m_cx, object, name, &found)) + return false; + return (found != JS_FALSE); +} + bool ScriptInterface::EnumeratePropertyNamesWithPrefix(jsval obj, const char* prefix, std::vector& out) { LOCAL_ROOT_SCOPE; diff --git a/source/scriptinterface/ScriptInterface.h b/source/scriptinterface/ScriptInterface.h index e168d2d215..6235aa0128 100644 --- a/source/scriptinterface/ScriptInterface.h +++ b/source/scriptinterface/ScriptInterface.h @@ -130,6 +130,8 @@ public: template bool GetProperty(jsval obj, const char* name, T& out); + bool HasProperty(jsval obj, const char* name); + bool EnumeratePropertyNamesWithPrefix(jsval obj, const char* prefix, std::vector& out); bool SetPrototype(jsval obj, jsval proto);