Title: [284549] trunk/Source/WebCore
Revision
284549
Author
sihui_...@apple.com
Date
2021-10-20 10:51:29 -0700 (Wed, 20 Oct 2021)

Log Message

Share code between JSDOMIterator and JSDOMAsyncIterator
https://bugs.webkit.org/show_bug.cgi?id=231437
<rdar://problem/84306323>

Reviewed by Youenn Fablet.

* bindings/js/JSDOMAsyncIterator.h:
(WebCore::jsPair): Deleted.
(WebCore::iteratorCreate): Deleted.
* bindings/js/JSFileSystemDirectoryHandleIterator.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (284548 => 284549)


--- trunk/Source/WebCore/ChangeLog	2021-10-20 17:35:18 UTC (rev 284548)
+++ trunk/Source/WebCore/ChangeLog	2021-10-20 17:51:29 UTC (rev 284549)
@@ -1,3 +1,16 @@
+2021-10-20  Sihui Liu  <sihui_...@apple.com>
+
+        Share code between JSDOMIterator and JSDOMAsyncIterator
+        https://bugs.webkit.org/show_bug.cgi?id=231437
+        <rdar://problem/84306323>
+
+        Reviewed by Youenn Fablet.
+
+        * bindings/js/JSDOMAsyncIterator.h:
+        (WebCore::jsPair): Deleted.
+        (WebCore::iteratorCreate): Deleted.
+        * bindings/js/JSFileSystemDirectoryHandleIterator.h:
+
 2021-10-20  Rob Buis  <rb...@igalia.com>
 
         Fix percentages on orthogonal replaced children

Modified: trunk/Source/WebCore/bindings/js/JSDOMAsyncIterator.h (284548 => 284549)


--- trunk/Source/WebCore/bindings/js/JSDOMAsyncIterator.h	2021-10-20 17:35:18 UTC (rev 284548)
+++ trunk/Source/WebCore/bindings/js/JSDOMAsyncIterator.h	2021-10-20 17:51:29 UTC (rev 284549)
@@ -26,6 +26,7 @@
 #pragma once
 
 #include "JSDOMConvert.h"
+#include "JSDOMIterator.h"
 #include "JSDOMPromise.h"
 #include "JSDOMPromiseDeferred.h"
 #include <_javascript_Core/AsyncIteratorPrototype.h>
@@ -37,19 +38,6 @@
 
 namespace WebCore {
 
-void addValueIterableMethods(JSC::JSGlobalObject&, JSC::JSObject&);
-
-enum class JSDOMAsyncIteratorType { Set, Map };
-
-// struct IteratorTraits {
-//     static constexpr JSDOMAsyncIteratorType type = [Map|Set];
-//     using KeyType = [IDLType|void];
-//     using ValueType = [IDLType];
-// };
-
-template<typename T, typename U = void> using EnableIfMap = typename std::enable_if<T::type == JSDOMAsyncIteratorType::Map, U>::type;
-template<typename T, typename U = void> using EnableIfSet = typename std::enable_if<T::type == JSDOMAsyncIteratorType::Set, U>::type;
-
 // https://webidl.spec.whatwg.org/#es-asynchronous-iterator-prototype-object
 template<typename JSWrapper, typename IteratorTraits, typename JSIterator> class JSDOMAsyncIteratorPrototype final : public JSC::JSNonFinalObject {
 public:
@@ -89,8 +77,6 @@
     void finishCreation(JSC::VM&, JSC::JSGlobalObject*);
 };
 
-using IterationKind = JSC::IterationKind;
-
 template<typename JSWrapper, typename IteratorTraits, typename JSIterator> class JSDOMAsyncIteratorBase : public JSDOMObject {
 public:
     using Base = JSDOMObject;
@@ -132,30 +118,6 @@
     RefPtr<DOMPromise> m_ongoingPromise;
 };
 
-inline JSC::JSValue jsPair(JSC::JSGlobalObject&, JSDOMGlobalObject& globalObject, JSC::JSValue value1, JSC::JSValue value2)
-{
-    JSC::MarkedArgumentBuffer arguments;
-    arguments.append(value1);
-    arguments.append(value2);
-    ASSERT(!arguments.hasOverflowed());
-    return constructArray(&globalObject, static_cast<JSC::ArrayAllocationProfile*>(nullptr), arguments);
-}
-
-template<typename FirstType, typename SecondType, typename T, typename U>
-inline JSC::JSValue jsPair(JSC::JSGlobalObject& lexicalGlobalObject, JSDOMGlobalObject& globalObject, const T& value1, const U& value2)
-{
-    return jsPair(lexicalGlobalObject, globalObject, toJS<FirstType>(lexicalGlobalObject, globalObject, value1), toJS<SecondType>(lexicalGlobalObject, globalObject, value2));
-}
-
-template<typename JSIterator> JSC::JSValue iteratorCreate(typename JSIterator::Wrapper&, IterationKind);
-
-template<typename JSIterator> JSC::JSValue iteratorCreate(typename JSIterator::Wrapper& thisObject, IterationKind kind)
-{
-    ASSERT(thisObject.globalObject());
-    JSDOMGlobalObject& globalObject = *thisObject.globalObject();
-    return JSIterator::create(globalObject.vm(), getDOMStructure<JSIterator>(globalObject.vm(), globalObject), thisObject, kind);
-}
-
 template<typename IteratorValue, typename IteratorTraits>
 inline EnableIfMap<IteratorTraits, JSC::JSValue> convertToJS(JSC::JSGlobalObject& globalObject, JSDOMGlobalObject& domGlobalObject, IteratorValue& value, IteratorTraits, IterationKind kind)
 {

Modified: trunk/Source/WebCore/bindings/js/JSFileSystemDirectoryHandleIterator.h (284548 => 284549)


--- trunk/Source/WebCore/bindings/js/JSFileSystemDirectoryHandleIterator.h	2021-10-20 17:35:18 UTC (rev 284548)
+++ trunk/Source/WebCore/bindings/js/JSFileSystemDirectoryHandleIterator.h	2021-10-20 17:51:29 UTC (rev 284549)
@@ -34,7 +34,7 @@
 class FileSystemHandle;
 
 struct JSFileSystemDirectoryHandleIteratorTraits {
-    static constexpr JSDOMAsyncIteratorType type = JSDOMAsyncIteratorType::Map;
+    static constexpr JSDOMIteratorType type = JSDOMIteratorType::Map;
     using KeyType = IDLByteString;
     using ValueType = IDLInterface<FileSystemHandle>;
 };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to