Index: third_party/WebKit/Source/bindings/core/v8/V8Binding.h |
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8Binding.h b/third_party/WebKit/Source/bindings/core/v8/V8Binding.h |
index 1df7fae7726c68025efbae99fb7607a1ef7a794a..f61a6e961da0f0c0c72c713e9898f3e9fd0ab001 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/V8Binding.h |
+++ b/third_party/WebKit/Source/bindings/core/v8/V8Binding.h |
@@ -40,6 +40,7 @@ |
#include "bindings/core/v8/ScriptState.h" |
#include "bindings/core/v8/ScriptValue.h" |
#include "bindings/core/v8/ScriptWrappable.h" |
+#include "bindings/core/v8/SerializedScriptValue.h" |
#include "bindings/core/v8/V8BindingMacros.h" |
#include "bindings/core/v8/V8PerIsolateData.h" |
#include "bindings/core/v8/V8ScriptRunner.h" |
@@ -761,12 +762,12 @@ HeapVector<Member<T>> toMemberNativeArray(v8::Local<v8::Value> value, |
// Converts a JavaScript value to an array as per the Web IDL specification: |
// http://www.w3.org/TR/2012/CR-WebIDL-20120419/#es-array |
-template <typename VectorType> |
+template <typename VectorType, |
+ typename ValueType = typename VectorType::ValueType> |
VectorType toImplArray(v8::Local<v8::Value> value, |
int argumentIndex, |
v8::Isolate* isolate, |
ExceptionState& exceptionState) { |
- typedef typename VectorType::ValueType ValueType; |
typedef NativeValueTraits<ValueType> TraitsType; |
uint32_t length = 0; |
@@ -904,6 +905,22 @@ inline bool toV8Sequence(v8::Local<v8::Value> value, |
} |
template <> |
+struct NativeValueTraits<SerializedScriptValue> |
haraken
2017/03/06 19:10:29
Yeah, I'd prefer moving this to SerializedScriptVa
Raphael Kubo da Costa (rakuco)
2017/03/06 19:40:48
Done in patch v6 \o/
|
+ : public NativeValueTraitsBase<SerializedScriptValue> { |
+ CORE_EXPORT static inline PassRefPtr<SerializedScriptValue> nativeValue( |
+ v8::Isolate* isolate, |
+ v8::Local<v8::Value> value, |
+ ExceptionState& exceptionState) { |
+ return SerializedScriptValue::serialize(isolate, value, nullptr, nullptr, |
+ exceptionState); |
+ } |
+}; |
+ |
+// TODO(rakuco): remove the specializations below (and consequently the |
+// non-IDLBase version of NativeValueTraitsBase) once we manage to convert all |
+// uses of NativeValueTraits to types that derive from IDLBase or for generated |
+// IDL interfaces/dictionaries/unions. |
+template <> |
struct NativeValueTraits<String> { |
static inline String nativeValue(v8::Isolate* isolate, |
v8::Local<v8::Value> value, |