| Index: Source/bindings/v8/Dictionary.h
|
| diff --git a/Source/bindings/v8/Dictionary.h b/Source/bindings/v8/Dictionary.h
|
| index fff0cfa28c754e2d4ab63f0c45090259d36c9a64..cecd3efd11c797236ba6d068103d283bfb4c82d3 100644
|
| --- a/Source/bindings/v8/Dictionary.h
|
| +++ b/Source/bindings/v8/Dictionary.h
|
| @@ -88,8 +88,8 @@ public:
|
| bool get(const String&, RefPtr<MediaKeyError>&) const;
|
| bool get(const String&, RefPtr<TrackBase>&) const;
|
| bool get(const String&, RefPtr<SpeechRecognitionError>&) const;
|
| - bool get(const String&, RefPtr<SpeechRecognitionResult>&) const;
|
| - bool get(const String&, RefPtr<SpeechRecognitionResultList>&) const;
|
| + bool get(const String&, RefPtrWillBeRawPtr<SpeechRecognitionResult>&) const;
|
| + bool get(const String&, RefPtrWillBeRawPtr<SpeechRecognitionResultList>&) const;
|
| bool get(const String&, RefPtr<MediaStream>&) const;
|
| bool get(const String&, RefPtr<EventTarget>&) const;
|
| bool get(const String&, HashSet<AtomicString>&) const;
|
| @@ -153,14 +153,16 @@ public:
|
| bool convert(ConversionContext&, const String&, ScriptValue&) const;
|
|
|
| template<typename IntegralType>
|
| - bool convert(ConversionContext &, const String&, IntegralType&) const;
|
| - bool convert(ConversionContext &, const String&, MessagePortArray&) const;
|
| - bool convert(ConversionContext &, const String&, HashSet<AtomicString>&) const;
|
| - bool convert(ConversionContext &, const String&, Dictionary&) const;
|
| - bool convert(ConversionContext &, const String&, Vector<String>&) const;
|
| - bool convert(ConversionContext &, const String&, ArrayValue&) const;
|
| + bool convert(ConversionContext&, const String&, IntegralType&) const;
|
| + bool convert(ConversionContext&, const String&, MessagePortArray&) const;
|
| + bool convert(ConversionContext&, const String&, HashSet<AtomicString>&) const;
|
| + bool convert(ConversionContext&, const String&, Dictionary&) const;
|
| + bool convert(ConversionContext&, const String&, Vector<String>&) const;
|
| + bool convert(ConversionContext&, const String&, ArrayValue&) const;
|
| template<typename T>
|
| - bool convert(ConversionContext &, const String&, RefPtr<T>&) const;
|
| + bool convert(ConversionContext&, const String&, RefPtr<T>&) const;
|
| + template<typename T>
|
| + bool convert(ConversionContext&, const String&, RawPtr<T>&) const;
|
|
|
| template<typename StringType>
|
| bool getStringType(const String&, StringType&) const;
|
| @@ -321,6 +323,25 @@ template<typename T> bool Dictionary::convert(ConversionContext& context, const
|
| return false;
|
| }
|
|
|
| +template<typename T> bool Dictionary::convert(ConversionContext& context, const String& key, RawPtr<T>& value) const
|
| +{
|
| + ConversionContextScope scope(context);
|
| +
|
| + if (!get(key, value))
|
| + return true;
|
| +
|
| + if (value)
|
| + return true;
|
| +
|
| + v8::Local<v8::Value> v8Value;
|
| + getKey(key, v8Value);
|
| + if (context.isNullable() && WebCore::isUndefinedOrNull(v8Value))
|
| + return true;
|
| +
|
| + context.throwTypeError(ExceptionMessages::incorrectPropertyType(key, "does not have a " + context.typeName() + " type."));
|
| + return false;
|
| +}
|
| +
|
| }
|
|
|
| #endif // Dictionary_h
|
|
|