summaryrefslogtreecommitdiff
path: root/Source/WebCore/bindings/js/JSDictionary.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/bindings/js/JSDictionary.h')
-rw-r--r--Source/WebCore/bindings/js/JSDictionary.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/Source/WebCore/bindings/js/JSDictionary.h b/Source/WebCore/bindings/js/JSDictionary.h
index 3e7ee55b2..5cadb1413 100644
--- a/Source/WebCore/bindings/js/JSDictionary.h
+++ b/Source/WebCore/bindings/js/JSDictionary.h
@@ -27,11 +27,14 @@
#define JSDictionary_h
#include "MessagePort.h"
+#include <heap/Strong.h>
+#include <heap/StrongInlines.h>
#include <interpreter/CallFrame.h>
#include <wtf/Forward.h>
namespace WebCore {
+class ArrayValue;
class Dictionary;
class DOMWindow;
class EventTarget;
@@ -45,7 +48,7 @@ class JSDictionary {
public:
JSDictionary(JSC::ExecState* exec, JSC::JSObject* initializerObject)
: m_exec(exec)
- , m_initializerObject(initializerObject)
+ , m_initializerObject(exec->globalData(), initializerObject)
{
}
@@ -61,7 +64,7 @@ public:
bool getWithUndefinedOrNullCheck(const String& propertyName, String& value) const;
JSC::ExecState* execState() const { return m_exec; }
- JSC::JSObject* initializerObject() const { return m_initializerObject; }
+ JSC::JSObject* initializerObject() const { return m_initializerObject.get(); }
bool isValid() const { return m_exec && m_initializerObject; }
private:
@@ -105,9 +108,10 @@ private:
#if ENABLE(MUTATION_OBSERVERS) || ENABLE(WEB_INTENTS)
static void convertValue(JSC::ExecState*, JSC::JSValue, HashSet<AtomicString>& result);
#endif
+ static void convertValue(JSC::ExecState*, JSC::JSValue, ArrayValue& result);
JSC::ExecState* m_exec;
- JSC::JSObject* m_initializerObject;
+ JSC::Strong<JSC::JSObject> m_initializerObject;
};
template <typename T, typename Result>