#include "config.h"
#include "modules/indexeddb/IDBVersionChangeEvent.h"
-#include "bindings/v8/IDBBindingUtilities.h"
-#include "core/events/ThreadLocalEventNames.h"
+#include "modules/IndexedDBNames.h"
-namespace WebCore {
+namespace blink {
-PassRefPtr<IDBVersionChangeEvent> IDBVersionChangeEvent::create(PassRefPtr<IDBAny> oldVersion, PassRefPtr<IDBAny> newVersion, const AtomicString& eventType, blink::WebIDBDataLoss dataLoss, const String& dataLossMessage)
+IDBVersionChangeEventInit::IDBVersionChangeEventInit()
+ : oldVersion(0)
{
- return adoptRef(new IDBVersionChangeEvent(oldVersion, newVersion, eventType, dataLoss, dataLossMessage));
}
-IDBVersionChangeEvent::IDBVersionChangeEvent(PassRefPtr<IDBAny> oldVersion, PassRefPtr<IDBAny> newVersion, const AtomicString& eventType, blink::WebIDBDataLoss dataLoss, const String& dataLossMessage)
+IDBVersionChangeEvent::IDBVersionChangeEvent()
+ : m_dataLoss(WebIDBDataLossNone)
+{
+ ScriptWrappable::init(this);
+}
+
+IDBVersionChangeEvent::IDBVersionChangeEvent(const AtomicString& eventType, unsigned long long oldVersion, const Nullable<unsigned long long>& newVersion, WebIDBDataLoss dataLoss, const String& dataLossMessage)
: Event(eventType, false /*canBubble*/, false /*cancelable*/)
, m_oldVersion(oldVersion)
, m_newVersion(newVersion)
ScriptWrappable::init(this);
}
-IDBVersionChangeEvent::~IDBVersionChangeEvent()
-{
-}
-
-ScriptValue IDBVersionChangeEvent::oldVersion(ExecutionContext* context) const
+IDBVersionChangeEvent::IDBVersionChangeEvent(const AtomicString& eventType, const IDBVersionChangeEventInit& initializer)
+ : Event(eventType, false /*canBubble*/, false /*cancelable*/)
+ , m_oldVersion(initializer.oldVersion)
+ , m_newVersion(initializer.newVersion)
+ , m_dataLoss(WebIDBDataLossNone)
{
- DOMRequestState requestState(context);
- return idbAnyToScriptValue(&requestState, m_oldVersion);
+ if (initializer.dataLoss.isEmpty() || initializer.dataLoss == "none")
+ m_dataLoss = WebIDBDataLossNone;
+ else if (initializer.dataLoss == "total")
+ m_dataLoss = WebIDBDataLossTotal;
+ ScriptWrappable::init(this);
}
-ScriptValue IDBVersionChangeEvent::newVersion(ExecutionContext* context) const
+unsigned long long IDBVersionChangeEvent::newVersion(bool& isNull) const
{
- DOMRequestState requestState(context);
- return idbAnyToScriptValue(&requestState, m_newVersion);
+ isNull = m_newVersion.isNull();
+ return isNull ? 0 : m_newVersion.get();
}
const AtomicString& IDBVersionChangeEvent::dataLoss() const
{
- DEFINE_STATIC_LOCAL(AtomicString, total, ("total", AtomicString::ConstructFromLiteral));
- if (m_dataLoss == blink::WebIDBDataLossTotal)
- return total;
- DEFINE_STATIC_LOCAL(AtomicString, none, ("none", AtomicString::ConstructFromLiteral));
- return none;
+ if (m_dataLoss == WebIDBDataLossTotal)
+ return IndexedDBNames::total;
+ return IndexedDBNames::none;
}
const AtomicString& IDBVersionChangeEvent::interfaceName() const
return EventNames::IDBVersionChangeEvent;
}
-} // namespace WebCore
+void IDBVersionChangeEvent::trace(Visitor* visitor)
+{
+ Event::trace(visitor);
+}
+
+} // namespace blink