Add a Dictionary overload that returns an Optional result
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jan 2016 21:22:16 +0000 (21:22 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jan 2016 21:22:16 +0000 (21:22 +0000)
https://bugs.webkit.org/show_bug.cgi?id=153507

Reviewed by Tim Horton.

* bindings/js/Dictionary.h:
(WebCore::Dictionary::get):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@195616 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/bindings/js/Dictionary.h

index 513cd8b..6b16315 100644 (file)
@@ -1,3 +1,13 @@
+2016-01-26  Anders Carlsson  <andersca@apple.com>
+
+        Add a Dictionary overload that returns an Optional result
+        https://bugs.webkit.org/show_bug.cgi?id=153507
+
+        Reviewed by Tim Horton.
+
+        * bindings/js/Dictionary.h:
+        (WebCore::Dictionary::get):
+
 2016-01-26  Philip Rogers  <pdr@chromium.org>
 
         Let SVG images not taint canvases except when containing foreignObjects
index 2bac60d..ec1eca8 100644 (file)
@@ -51,7 +51,10 @@ public:
     bool get(const char* propertyName, Result&) const;
     template <typename Result>
     bool get(const String& propertyName, Result&) const;
-    
+
+    template <typename Result>
+    Optional<Result> get(const char* propertyName) const;
+
     template <typename T>
     RefPtr<EventListener> getEventListener(const char* propertyName, T* target) const;
     template <typename T>
@@ -85,6 +88,17 @@ bool Dictionary::get(const String& propertyName, Result& result) const
     return get(propertyName.utf8().data(), result);
 }
 
+template<typename Result>
+Optional<Result> Dictionary::get(const char* propertyName) const
+{
+    Result result;
+
+    if (!get(propertyName, result))
+        return Nullopt;
+
+    return result;
+}
+
 template <typename T>
 RefPtr<EventListener> Dictionary::getEventListener(const char* propertyName, T* target) const
 {