Index: Source/bindings/v8/custom/V8MessageEventCustom.cpp |
diff --git a/Source/bindings/v8/custom/V8MessageEventCustom.cpp b/Source/bindings/v8/custom/V8MessageEventCustom.cpp |
index c9c3fb138eb4c9f57775460aefeffb1aa4c81000..7c655a77369259c7d16261f8803b16736955f06a 100644 |
--- a/Source/bindings/v8/custom/V8MessageEventCustom.cpp |
+++ b/Source/bindings/v8/custom/V8MessageEventCustom.cpp |
@@ -32,6 +32,7 @@ |
#include "V8MessageEvent.h" |
#include "bindings/v8/SerializedScriptValue.h" |
+#include "bindings/v8/V8HiddenPropertyName.h" |
#include "bindings/v8/custom/V8ArrayBufferCustom.h" |
#include "core/dom/MessageEvent.h" |
@@ -49,11 +50,9 @@ void V8MessageEvent::dataAttrGetterCustom(v8::Local<v8::String> name, const v8:: |
v8::Handle<v8::Value> result; |
switch (event->dataType()) { |
case MessageEvent::DataTypeScriptValue: { |
- ScriptValue scriptValue = event->dataAsScriptValue(); |
- if (scriptValue.hasNoValue()) |
+ result = info.Holder()->GetHiddenValue(V8HiddenPropertyName::data()); |
+ if (result.IsEmpty()) |
result = v8::Null(info.GetIsolate()); |
- else |
- result = scriptValue.v8Value(); |
break; |
} |
@@ -91,12 +90,12 @@ void V8MessageEvent::dataAttrGetterCustom(v8::Local<v8::String> name, const v8:: |
void V8MessageEvent::initMessageEventMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& args) |
{ |
MessageEvent* event = V8MessageEvent::toNative(args.Holder()); |
- String typeArg = toWebCoreString(args[0]); |
- bool canBubbleArg = args[1]->BooleanValue(); |
- bool cancelableArg = args[2]->BooleanValue(); |
- ScriptValue dataArg = ScriptValue(args[3]); |
- String originArg = toWebCoreString(args[4]); |
- String lastEventIdArg = toWebCoreString(args[5]); |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, typeArg, args[0]); |
+ V8TRYCATCH_VOID(bool, canBubbleArg, args[1]->BooleanValue()); |
+ V8TRYCATCH_VOID(bool, cancelableArg, args[2]->BooleanValue()); |
+ v8::Handle<v8::Value> dataArg = args[3]; |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, originArg, args[4]); |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, lastEventIdArg, args[5]); |
DOMWindow* sourceArg = 0; |
if (args[6]->IsObject()) { |
@@ -112,7 +111,8 @@ void V8MessageEvent::initMessageEventMethodCustom(const v8::FunctionCallbackInfo |
if (!getMessagePortArray(args[7], *portArray, args.GetIsolate())) |
return; |
} |
- event->initMessageEvent(typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, portArray.release()); |
+ args.Holder()->SetHiddenValue(V8HiddenPropertyName::data(), dataArg); |
+ event->initMessageEvent(typeArg, canBubbleArg, cancelableArg, originArg, lastEventIdArg, sourceArg, portArray.release()); |
} |
void V8MessageEvent::webkitInitMessageEventMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& args) |