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>;
};