1/*
2 * Copyright (c) 2016 Apple Inc. All rights reserved.
3 * Copyright (c) 2016 Canon Inc. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
15 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
16 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
18 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
24 * THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 */
27
28// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
29// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
30
31#pragma once
32
33#if ENABLE(STREAMS_API)
34
35#include <JavaScriptCore/BuiltinUtils.h>
36#include <JavaScriptCore/Identifier.h>
37#include <JavaScriptCore/JSFunction.h>
38#include <JavaScriptCore/UnlinkedFunctionExecutable.h>
39
40namespace JSC {
41class FunctionExecutable;
42}
43
44namespace WebCore {
45
46/* ReadableByteStreamInternals */
47extern const char* const s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode;
48extern const int s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeLength;
49extern const JSC::ConstructAbility s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeConstructAbility;
50extern const char* const s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCode;
51extern const int s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeLength;
52extern const JSC::ConstructAbility s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeConstructAbility;
53extern const char* const s_readableByteStreamInternalsIsReadableByteStreamControllerCode;
54extern const int s_readableByteStreamInternalsIsReadableByteStreamControllerCodeLength;
55extern const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableByteStreamControllerCodeConstructAbility;
56extern const char* const s_readableByteStreamInternalsIsReadableStreamBYOBRequestCode;
57extern const int s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeLength;
58extern const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeConstructAbility;
59extern const char* const s_readableByteStreamInternalsIsReadableStreamBYOBReaderCode;
60extern const int s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeLength;
61extern const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeConstructAbility;
62extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode;
63extern const int s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength;
64extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeConstructAbility;
65extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerErrorCode;
66extern const int s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeLength;
67extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructAbility;
68extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerCloseCode;
69extern const int s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeLength;
70extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeConstructAbility;
71extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCode;
72extern const int s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeLength;
73extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeConstructAbility;
74extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode;
75extern const int s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeLength;
76extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeConstructAbility;
77extern const char* const s_readableByteStreamInternalsReadableStreamHasBYOBReaderCode;
78extern const int s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeLength;
79extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeConstructAbility;
80extern const char* const s_readableByteStreamInternalsReadableStreamHasDefaultReaderCode;
81extern const int s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeLength;
82extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeConstructAbility;
83extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCode;
84extern const int s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeLength;
85extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeConstructAbility;
86extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode;
87extern const int s_readableByteStreamInternalsReadableByteStreamControllerPullCodeLength;
88extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerPullCodeConstructAbility;
89extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCode;
90extern const int s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeLength;
91extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeConstructAbility;
92extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCode;
93extern const int s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeLength;
94extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeConstructAbility;
95extern const char* const s_readableByteStreamInternalsTransferBufferToCurrentRealmCode;
96extern const int s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeLength;
97extern const JSC::ConstructAbility s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeConstructAbility;
98extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCode;
99extern const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeLength;
100extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeConstructAbility;
101extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode;
102extern const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeLength;
103extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeConstructAbility;
104extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode;
105extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeLength;
106extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeConstructAbility;
107extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondCode;
108extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeLength;
109extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeConstructAbility;
110extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCode;
111extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeLength;
112extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeConstructAbility;
113extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode;
114extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeLength;
115extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeConstructAbility;
116extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode;
117extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeLength;
118extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructAbility;
119extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCode;
120extern const int s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeLength;
121extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeConstructAbility;
122extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode;
123extern const int s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength;
124extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeConstructAbility;
125extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCode;
126extern const int s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeLength;
127extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeConstructAbility;
128extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCode;
129extern const int s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeLength;
130extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeConstructAbility;
131extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCode;
132extern const int s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeLength;
133extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeConstructAbility;
134extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCode;
135extern const int s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeLength;
136extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeConstructAbility;
137extern const char* const s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCode;
138extern const int s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeLength;
139extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeConstructAbility;
140extern const char* const s_readableByteStreamInternalsReadableStreamBYOBReaderReadCode;
141extern const int s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeLength;
142extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeConstructAbility;
143extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode;
144extern const int s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeLength;
145extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeConstructAbility;
146extern const char* const s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCode;
147extern const int s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeLength;
148extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructAbility;
149
150#define WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_DATA(macro) \
151 macro(privateInitializeReadableByteStreamController, readableByteStreamInternalsPrivateInitializeReadableByteStreamController, 3) \
152 macro(privateInitializeReadableStreamBYOBRequest, readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequest, 2) \
153 macro(isReadableByteStreamController, readableByteStreamInternalsIsReadableByteStreamController, 1) \
154 macro(isReadableStreamBYOBRequest, readableByteStreamInternalsIsReadableStreamBYOBRequest, 1) \
155 macro(isReadableStreamBYOBReader, readableByteStreamInternalsIsReadableStreamBYOBReader, 1) \
156 macro(readableByteStreamControllerCancel, readableByteStreamInternalsReadableByteStreamControllerCancel, 2) \
157 macro(readableByteStreamControllerError, readableByteStreamInternalsReadableByteStreamControllerError, 2) \
158 macro(readableByteStreamControllerClose, readableByteStreamInternalsReadableByteStreamControllerClose, 1) \
159 macro(readableByteStreamControllerClearPendingPullIntos, readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntos, 1) \
160 macro(readableByteStreamControllerGetDesiredSize, readableByteStreamInternalsReadableByteStreamControllerGetDesiredSize, 1) \
161 macro(readableStreamHasBYOBReader, readableByteStreamInternalsReadableStreamHasBYOBReader, 1) \
162 macro(readableStreamHasDefaultReader, readableByteStreamInternalsReadableStreamHasDefaultReader, 1) \
163 macro(readableByteStreamControllerHandleQueueDrain, readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrain, 1) \
164 macro(readableByteStreamControllerPull, readableByteStreamInternalsReadableByteStreamControllerPull, 1) \
165 macro(readableByteStreamControllerShouldCallPull, readableByteStreamInternalsReadableByteStreamControllerShouldCallPull, 1) \
166 macro(readableByteStreamControllerCallPullIfNeeded, readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeeded, 1) \
167 macro(transferBufferToCurrentRealm, readableByteStreamInternalsTransferBufferToCurrentRealm, 1) \
168 macro(readableByteStreamControllerEnqueue, readableByteStreamInternalsReadableByteStreamControllerEnqueue, 2) \
169 macro(readableByteStreamControllerEnqueueChunk, readableByteStreamInternalsReadableByteStreamControllerEnqueueChunk, 4) \
170 macro(readableByteStreamControllerRespondWithNewView, readableByteStreamInternalsReadableByteStreamControllerRespondWithNewView, 2) \
171 macro(readableByteStreamControllerRespond, readableByteStreamInternalsReadableByteStreamControllerRespond, 2) \
172 macro(readableByteStreamControllerRespondInternal, readableByteStreamInternalsReadableByteStreamControllerRespondInternal, 2) \
173 macro(readableByteStreamControllerRespondInReadableState, readableByteStreamInternalsReadableByteStreamControllerRespondInReadableState, 3) \
174 macro(readableByteStreamControllerRespondInClosedState, readableByteStreamInternalsReadableByteStreamControllerRespondInClosedState, 2) \
175 macro(readableByteStreamControllerProcessPullDescriptors, readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptors, 1) \
176 macro(readableByteStreamControllerFillDescriptorFromQueue, readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueue, 2) \
177 macro(readableByteStreamControllerShiftPendingDescriptor, readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptor, 1) \
178 macro(readableByteStreamControllerInvalidateBYOBRequest, readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequest, 1) \
179 macro(readableByteStreamControllerCommitDescriptor, readableByteStreamInternalsReadableByteStreamControllerCommitDescriptor, 2) \
180 macro(readableByteStreamControllerConvertDescriptor, readableByteStreamInternalsReadableByteStreamControllerConvertDescriptor, 1) \
181 macro(readableStreamFulfillReadIntoRequest, readableByteStreamInternalsReadableStreamFulfillReadIntoRequest, 3) \
182 macro(readableStreamBYOBReaderRead, readableByteStreamInternalsReadableStreamBYOBReaderRead, 2) \
183 macro(readableByteStreamControllerPullInto, readableByteStreamInternalsReadableByteStreamControllerPullInto, 2) \
184 macro(readableStreamAddReadIntoRequest, readableByteStreamInternalsReadableStreamAddReadIntoRequest, 1) \
185
186#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_PRIVATEINITIALIZEREADABLEBYTESTREAMCONTROLLER 1
187#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_PRIVATEINITIALIZEREADABLESTREAMBYOBREQUEST 1
188#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_ISREADABLEBYTESTREAMCONTROLLER 1
189#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_ISREADABLESTREAMBYOBREQUEST 1
190#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_ISREADABLESTREAMBYOBREADER 1
191#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCANCEL 1
192#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERERROR 1
193#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCLOSE 1
194#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCLEARPENDINGPULLINTOS 1
195#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERGETDESIREDSIZE 1
196#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMHASBYOBREADER 1
197#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMHASDEFAULTREADER 1
198#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERHANDLEQUEUEDRAIN 1
199#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERPULL 1
200#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERSHOULDCALLPULL 1
201#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCALLPULLIFNEEDED 1
202#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_TRANSFERBUFFERTOCURRENTREALM 1
203#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERENQUEUE 1
204#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERENQUEUECHUNK 1
205#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPONDWITHNEWVIEW 1
206#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPOND 1
207#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPONDINTERNAL 1
208#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPONDINREADABLESTATE 1
209#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPONDINCLOSEDSTATE 1
210#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERPROCESSPULLDESCRIPTORS 1
211#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERFILLDESCRIPTORFROMQUEUE 1
212#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERSHIFTPENDINGDESCRIPTOR 1
213#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERINVALIDATEBYOBREQUEST 1
214#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCOMMITDESCRIPTOR 1
215#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCONVERTDESCRIPTOR 1
216#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMFULFILLREADINTOREQUEST 1
217#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMBYOBREADERREAD 1
218#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERPULLINTO 1
219#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMADDREADINTOREQUEST 1
220
221#define WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(macro) \
222 macro(readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode, privateInitializeReadableByteStreamController, static_cast<const char*>(nullptr), s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeLength) \
223 macro(readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCode, privateInitializeReadableStreamBYOBRequest, static_cast<const char*>(nullptr), s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeLength) \
224 macro(readableByteStreamInternalsIsReadableByteStreamControllerCode, isReadableByteStreamController, static_cast<const char*>(nullptr), s_readableByteStreamInternalsIsReadableByteStreamControllerCodeLength) \
225 macro(readableByteStreamInternalsIsReadableStreamBYOBRequestCode, isReadableStreamBYOBRequest, static_cast<const char*>(nullptr), s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeLength) \
226 macro(readableByteStreamInternalsIsReadableStreamBYOBReaderCode, isReadableStreamBYOBReader, static_cast<const char*>(nullptr), s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeLength) \
227 macro(readableByteStreamInternalsReadableByteStreamControllerCancelCode, readableByteStreamControllerCancel, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength) \
228 macro(readableByteStreamInternalsReadableByteStreamControllerErrorCode, readableByteStreamControllerError, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeLength) \
229 macro(readableByteStreamInternalsReadableByteStreamControllerCloseCode, readableByteStreamControllerClose, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeLength) \
230 macro(readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCode, readableByteStreamControllerClearPendingPullIntos, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeLength) \
231 macro(readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode, readableByteStreamControllerGetDesiredSize, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeLength) \
232 macro(readableByteStreamInternalsReadableStreamHasBYOBReaderCode, readableStreamHasBYOBReader, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeLength) \
233 macro(readableByteStreamInternalsReadableStreamHasDefaultReaderCode, readableStreamHasDefaultReader, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeLength) \
234 macro(readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCode, readableByteStreamControllerHandleQueueDrain, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeLength) \
235 macro(readableByteStreamInternalsReadableByteStreamControllerPullCode, readableByteStreamControllerPull, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerPullCodeLength) \
236 macro(readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCode, readableByteStreamControllerShouldCallPull, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeLength) \
237 macro(readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCode, readableByteStreamControllerCallPullIfNeeded, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeLength) \
238 macro(readableByteStreamInternalsTransferBufferToCurrentRealmCode, transferBufferToCurrentRealm, static_cast<const char*>(nullptr), s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeLength) \
239 macro(readableByteStreamInternalsReadableByteStreamControllerEnqueueCode, readableByteStreamControllerEnqueue, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeLength) \
240 macro(readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode, readableByteStreamControllerEnqueueChunk, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeLength) \
241 macro(readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode, readableByteStreamControllerRespondWithNewView, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeLength) \
242 macro(readableByteStreamInternalsReadableByteStreamControllerRespondCode, readableByteStreamControllerRespond, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeLength) \
243 macro(readableByteStreamInternalsReadableByteStreamControllerRespondInternalCode, readableByteStreamControllerRespondInternal, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeLength) \
244 macro(readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode, readableByteStreamControllerRespondInReadableState, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeLength) \
245 macro(readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode, readableByteStreamControllerRespondInClosedState, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeLength) \
246 macro(readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCode, readableByteStreamControllerProcessPullDescriptors, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeLength) \
247 macro(readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode, readableByteStreamControllerFillDescriptorFromQueue, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength) \
248 macro(readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCode, readableByteStreamControllerShiftPendingDescriptor, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeLength) \
249 macro(readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCode, readableByteStreamControllerInvalidateBYOBRequest, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeLength) \
250 macro(readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCode, readableByteStreamControllerCommitDescriptor, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeLength) \
251 macro(readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCode, readableByteStreamControllerConvertDescriptor, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeLength) \
252 macro(readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCode, readableStreamFulfillReadIntoRequest, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeLength) \
253 macro(readableByteStreamInternalsReadableStreamBYOBReaderReadCode, readableStreamBYOBReaderRead, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeLength) \
254 macro(readableByteStreamInternalsReadableByteStreamControllerPullIntoCode, readableByteStreamControllerPullInto, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeLength) \
255 macro(readableByteStreamInternalsReadableStreamAddReadIntoRequestCode, readableStreamAddReadIntoRequest, static_cast<const char*>(nullptr), s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeLength) \
256
257#define WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(macro) \
258 macro(isReadableByteStreamController) \
259 macro(isReadableStreamBYOBReader) \
260 macro(isReadableStreamBYOBRequest) \
261 macro(privateInitializeReadableByteStreamController) \
262 macro(privateInitializeReadableStreamBYOBRequest) \
263 macro(readableByteStreamControllerCallPullIfNeeded) \
264 macro(readableByteStreamControllerCancel) \
265 macro(readableByteStreamControllerClearPendingPullIntos) \
266 macro(readableByteStreamControllerClose) \
267 macro(readableByteStreamControllerCommitDescriptor) \
268 macro(readableByteStreamControllerConvertDescriptor) \
269 macro(readableByteStreamControllerEnqueue) \
270 macro(readableByteStreamControllerEnqueueChunk) \
271 macro(readableByteStreamControllerError) \
272 macro(readableByteStreamControllerFillDescriptorFromQueue) \
273 macro(readableByteStreamControllerGetDesiredSize) \
274 macro(readableByteStreamControllerHandleQueueDrain) \
275 macro(readableByteStreamControllerInvalidateBYOBRequest) \
276 macro(readableByteStreamControllerProcessPullDescriptors) \
277 macro(readableByteStreamControllerPull) \
278 macro(readableByteStreamControllerPullInto) \
279 macro(readableByteStreamControllerRespond) \
280 macro(readableByteStreamControllerRespondInClosedState) \
281 macro(readableByteStreamControllerRespondInReadableState) \
282 macro(readableByteStreamControllerRespondInternal) \
283 macro(readableByteStreamControllerRespondWithNewView) \
284 macro(readableByteStreamControllerShiftPendingDescriptor) \
285 macro(readableByteStreamControllerShouldCallPull) \
286 macro(readableStreamAddReadIntoRequest) \
287 macro(readableStreamBYOBReaderRead) \
288 macro(readableStreamFulfillReadIntoRequest) \
289 macro(readableStreamHasBYOBReader) \
290 macro(readableStreamHasDefaultReader) \
291 macro(transferBufferToCurrentRealm) \
292
293#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
294 JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
295
296WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
297#undef DECLARE_BUILTIN_GENERATOR
298
299class ReadableByteStreamInternalsBuiltinsWrapper : private JSC::WeakHandleOwner {
300public:
301 explicit ReadableByteStreamInternalsBuiltinsWrapper(JSC::VM* vm)
302 : m_vm(*vm)
303 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
304#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createFromLiteral(s_##name, length), { }))
305 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
306#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
307 {
308 }
309
310#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
311 JSC::UnlinkedFunctionExecutable* name##Executable(); \
312 const JSC::SourceCode& name##Source() const { return m_##name##Source; }
313 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
314#undef EXPOSE_BUILTIN_EXECUTABLES
315
316 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
317
318 void exportNames();
319
320private:
321 JSC::VM& m_vm;
322
323 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
324
325#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
326 JSC::SourceCode m_##name##Source;\
327 JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
328 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
329#undef DECLARE_BUILTIN_SOURCE_MEMBERS
330
331};
332
333#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
334inline JSC::UnlinkedFunctionExecutable* ReadableByteStreamInternalsBuiltinsWrapper::name##Executable() \
335{\
336 if (!m_##name##Executable) {\
337 JSC::Identifier executableName = functionName##PublicName();\
338 if (overriddenName)\
339 executableName = JSC::Identifier::fromString(&m_vm, overriddenName);\
340 m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ConstructAbility), this, &m_##name##Executable);\
341 }\
342 return m_##name##Executable.get();\
343}
344WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
345#undef DEFINE_BUILTIN_EXECUTABLES
346
347inline void ReadableByteStreamInternalsBuiltinsWrapper::exportNames()
348{
349#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
350 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
351#undef EXPORT_FUNCTION_NAME
352}
353
354class ReadableByteStreamInternalsBuiltinFunctions {
355public:
356 explicit ReadableByteStreamInternalsBuiltinFunctions(JSC::VM& vm) : m_vm(vm) { }
357
358 void init(JSC::JSGlobalObject&);
359 void visit(JSC::SlotVisitor&);
360
361public:
362 JSC::VM& m_vm;
363
364#define DECLARE_BUILTIN_SOURCE_MEMBERS(functionName) \
365 JSC::WriteBarrier<JSC::JSFunction> m_##functionName##Function;
366 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_SOURCE_MEMBERS)
367#undef DECLARE_BUILTIN_SOURCE_MEMBERS
368};
369
370inline void ReadableByteStreamInternalsBuiltinFunctions::init(JSC::JSGlobalObject& globalObject)
371{
372#define EXPORT_FUNCTION(codeName, functionName, overriddenName, length)\
373 m_##functionName##Function.set(m_vm, &globalObject, JSC::JSFunction::create(m_vm, codeName##Generator(m_vm), &globalObject));
374 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(EXPORT_FUNCTION)
375#undef EXPORT_FUNCTION
376}
377
378inline void ReadableByteStreamInternalsBuiltinFunctions::visit(JSC::SlotVisitor& visitor)
379{
380#define VISIT_FUNCTION(name) visitor.append(m_##name##Function);
381 WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(VISIT_FUNCTION)
382#undef VISIT_FUNCTION
383}
384
385
386} // namespace WebCore
387
388#endif // ENABLE(STREAMS_API)
389