Index: Source/modules/indexeddb/IDBVersionChangeEvent.cpp |
diff --git a/Source/modules/indexeddb/IDBVersionChangeEvent.cpp b/Source/modules/indexeddb/IDBVersionChangeEvent.cpp |
index e55fdfca2febe05a495a1d15b9a8b6c59ba666f5..499c2aa8ad0f67d2f04fae4d4a9dd1488b22741c 100644 |
--- a/Source/modules/indexeddb/IDBVersionChangeEvent.cpp |
+++ b/Source/modules/indexeddb/IDBVersionChangeEvent.cpp |
@@ -26,6 +26,7 @@ |
#include "config.h" |
#include "modules/indexeddb/IDBVersionChangeEvent.h" |
+#include "bindings/core/v8/V8Binding.h" |
#include "bindings/modules/v8/IDBBindingUtilities.h" |
namespace WebCore { |
@@ -33,6 +34,7 @@ namespace WebCore { |
IDBVersionChangeEventInit::IDBVersionChangeEventInit() |
: oldVersion(0) |
+ , dataLoss(blink::WebIDBDataLossNone) |
{ |
} |
@@ -56,7 +58,7 @@ IDBVersionChangeEvent::IDBVersionChangeEvent(const AtomicString& eventType, cons |
: Event(eventType, false /*canBubble*/, false /*cancelable*/) |
, m_oldVersion(initializer.oldVersion) |
, m_newVersion(initializer.newVersion) |
- , m_dataLoss(blink::WebIDBDataLossNone) |
+ , m_dataLoss(initializer.dataLoss) |
{ |
ScriptWrappable::init(this); |
} |
@@ -86,4 +88,18 @@ void IDBVersionChangeEvent::trace(Visitor* visitor) |
Event::trace(visitor); |
} |
+bool IDBVersionChangeEvent::toNativeDataLoss(v8::Handle<v8::Value> value, blink::WebIDBDataLoss* dataLoss) |
+{ |
+ String strValue = toCoreStringWithUndefinedOrNullCheck(value); |
+ if (strValue == "none") { |
+ *dataLoss = blink::WebIDBDataLossNone; |
+ return true; |
+ } |
+ if (strValue == "total") { |
+ *dataLoss = blink::WebIDBDataLossTotal; |
+ return true; |
+ } |
+ return false; |
+} |
+ |
} // namespace WebCore |