1 | /* |
2 | * Copyright (c) 2015 Canon Inc. All rights reserved. |
3 | * Copyright (c) 2015 Igalia. |
4 | * Copyright (c) 2016 Apple Inc. All rights reserved. |
5 | * |
6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions |
8 | * are met: |
9 | * 1. Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. |
11 | * 2. Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. |
14 | * |
15 | * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' |
16 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
17 | * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
18 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS |
19 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
20 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
21 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
24 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
25 | * THE POSSIBILITY OF SUCH DAMAGE. |
26 | * |
27 | */ |
28 | |
29 | // DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for |
30 | // builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py |
31 | |
32 | #pragma once |
33 | |
34 | #if ENABLE(STREAMS_API) |
35 | |
36 | #include <JavaScriptCore/BuiltinUtils.h> |
37 | #include <JavaScriptCore/Identifier.h> |
38 | #include <JavaScriptCore/JSFunction.h> |
39 | #include <JavaScriptCore/UnlinkedFunctionExecutable.h> |
40 | |
41 | namespace JSC { |
42 | class FunctionExecutable; |
43 | } |
44 | |
45 | namespace WebCore { |
46 | |
47 | /* ReadableStreamInternals */ |
48 | extern const char* const s_readableStreamInternalsReadableStreamReaderGenericInitializeCode; |
49 | extern const int s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeLength; |
50 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeConstructAbility; |
51 | extern const char* const s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCode; |
52 | extern const int s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeLength; |
53 | extern const JSC::ConstructAbility s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeConstructAbility; |
54 | extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerErrorCode; |
55 | extern const int s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeLength; |
56 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeConstructAbility; |
57 | extern const char* const s_readableStreamInternalsReadableStreamPipeToCode; |
58 | extern const int s_readableStreamInternalsReadableStreamPipeToCodeLength; |
59 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamPipeToCodeConstructAbility; |
60 | extern const char* const s_readableStreamInternalsReadableStreamTeeCode; |
61 | extern const int s_readableStreamInternalsReadableStreamTeeCodeLength; |
62 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeCodeConstructAbility; |
63 | extern const char* const s_readableStreamInternalsDoStructuredCloneCode; |
64 | extern const int s_readableStreamInternalsDoStructuredCloneCodeLength; |
65 | extern const JSC::ConstructAbility s_readableStreamInternalsDoStructuredCloneCodeConstructAbility; |
66 | extern const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode; |
67 | extern const int s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength; |
68 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeePullFunctionCodeConstructAbility; |
69 | extern const char* const s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCode; |
70 | extern const int s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeLength; |
71 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructAbility; |
72 | extern const char* const s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCode; |
73 | extern const int s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeLength; |
74 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeConstructAbility; |
75 | extern const char* const s_readableStreamInternalsIsReadableStreamCode; |
76 | extern const int s_readableStreamInternalsIsReadableStreamCodeLength; |
77 | extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamCodeConstructAbility; |
78 | extern const char* const s_readableStreamInternalsIsReadableStreamDefaultReaderCode; |
79 | extern const int s_readableStreamInternalsIsReadableStreamDefaultReaderCodeLength; |
80 | extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDefaultReaderCodeConstructAbility; |
81 | extern const char* const s_readableStreamInternalsIsReadableStreamDefaultControllerCode; |
82 | extern const int s_readableStreamInternalsIsReadableStreamDefaultControllerCodeLength; |
83 | extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDefaultControllerCodeConstructAbility; |
84 | extern const char* const s_readableStreamInternalsReadableStreamErrorCode; |
85 | extern const int s_readableStreamInternalsReadableStreamErrorCodeLength; |
86 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamErrorCodeConstructAbility; |
87 | extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCode; |
88 | extern const int s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeLength; |
89 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeConstructAbility; |
90 | extern const char* const s_readableStreamInternalsIsReadableStreamLockedCode; |
91 | extern const int s_readableStreamInternalsIsReadableStreamLockedCodeLength; |
92 | extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamLockedCodeConstructAbility; |
93 | extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode; |
94 | extern const int s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeLength; |
95 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeConstructAbility; |
96 | extern const char* const s_readableStreamInternalsReadableStreamReaderGenericCancelCode; |
97 | extern const int s_readableStreamInternalsReadableStreamReaderGenericCancelCodeLength; |
98 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeConstructAbility; |
99 | extern const char* const s_readableStreamInternalsReadableStreamCancelCode; |
100 | extern const int s_readableStreamInternalsReadableStreamCancelCodeLength; |
101 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamCancelCodeConstructAbility; |
102 | extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerCancelCode; |
103 | extern const int s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeLength; |
104 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeConstructAbility; |
105 | extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerPullCode; |
106 | extern const int s_readableStreamInternalsReadableStreamDefaultControllerPullCodeLength; |
107 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeConstructAbility; |
108 | extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerCloseCode; |
109 | extern const int s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeLength; |
110 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeConstructAbility; |
111 | extern const char* const s_readableStreamInternalsReadableStreamCloseCode; |
112 | extern const int s_readableStreamInternalsReadableStreamCloseCodeLength; |
113 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamCloseCodeConstructAbility; |
114 | extern const char* const s_readableStreamInternalsReadableStreamFulfillReadRequestCode; |
115 | extern const int s_readableStreamInternalsReadableStreamFulfillReadRequestCodeLength; |
116 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeConstructAbility; |
117 | extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode; |
118 | extern const int s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeLength; |
119 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeConstructAbility; |
120 | extern const char* const s_readableStreamInternalsReadableStreamDefaultReaderReadCode; |
121 | extern const int s_readableStreamInternalsReadableStreamDefaultReaderReadCodeLength; |
122 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeConstructAbility; |
123 | extern const char* const s_readableStreamInternalsReadableStreamAddReadRequestCode; |
124 | extern const int s_readableStreamInternalsReadableStreamAddReadRequestCodeLength; |
125 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamAddReadRequestCodeConstructAbility; |
126 | extern const char* const s_readableStreamInternalsIsReadableStreamDisturbedCode; |
127 | extern const int s_readableStreamInternalsIsReadableStreamDisturbedCodeLength; |
128 | extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDisturbedCodeConstructAbility; |
129 | extern const char* const s_readableStreamInternalsReadableStreamReaderGenericReleaseCode; |
130 | extern const int s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeLength; |
131 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeConstructAbility; |
132 | extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCode; |
133 | extern const int s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeLength; |
134 | extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeConstructAbility; |
135 | |
136 | #define WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_DATA(macro) \ |
137 | macro(readableStreamReaderGenericInitialize, readableStreamInternalsReadableStreamReaderGenericInitialize, 2) \ |
138 | macro(privateInitializeReadableStreamDefaultController, readableStreamInternalsPrivateInitializeReadableStreamDefaultController, 4) \ |
139 | macro(readableStreamDefaultControllerError, readableStreamInternalsReadableStreamDefaultControllerError, 2) \ |
140 | macro(readableStreamPipeTo, readableStreamInternalsReadableStreamPipeTo, 2) \ |
141 | macro(readableStreamTee, readableStreamInternalsReadableStreamTee, 2) \ |
142 | macro(doStructuredClone, readableStreamInternalsDoStructuredClone, 1) \ |
143 | macro(readableStreamTeePullFunction, readableStreamInternalsReadableStreamTeePullFunction, 3) \ |
144 | macro(readableStreamTeeBranch1CancelFunction, readableStreamInternalsReadableStreamTeeBranch1CancelFunction, 2) \ |
145 | macro(readableStreamTeeBranch2CancelFunction, readableStreamInternalsReadableStreamTeeBranch2CancelFunction, 2) \ |
146 | macro(isReadableStream, readableStreamInternalsIsReadableStream, 1) \ |
147 | macro(isReadableStreamDefaultReader, readableStreamInternalsIsReadableStreamDefaultReader, 1) \ |
148 | macro(isReadableStreamDefaultController, readableStreamInternalsIsReadableStreamDefaultController, 1) \ |
149 | macro(readableStreamError, readableStreamInternalsReadableStreamError, 2) \ |
150 | macro(readableStreamDefaultControllerCallPullIfNeeded, readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeeded, 1) \ |
151 | macro(isReadableStreamLocked, readableStreamInternalsIsReadableStreamLocked, 1) \ |
152 | macro(readableStreamDefaultControllerGetDesiredSize, readableStreamInternalsReadableStreamDefaultControllerGetDesiredSize, 1) \ |
153 | macro(readableStreamReaderGenericCancel, readableStreamInternalsReadableStreamReaderGenericCancel, 2) \ |
154 | macro(readableStreamCancel, readableStreamInternalsReadableStreamCancel, 2) \ |
155 | macro(readableStreamDefaultControllerCancel, readableStreamInternalsReadableStreamDefaultControllerCancel, 2) \ |
156 | macro(readableStreamDefaultControllerPull, readableStreamInternalsReadableStreamDefaultControllerPull, 1) \ |
157 | macro(readableStreamDefaultControllerClose, readableStreamInternalsReadableStreamDefaultControllerClose, 1) \ |
158 | macro(readableStreamClose, readableStreamInternalsReadableStreamClose, 1) \ |
159 | macro(readableStreamFulfillReadRequest, readableStreamInternalsReadableStreamFulfillReadRequest, 3) \ |
160 | macro(readableStreamDefaultControllerEnqueue, readableStreamInternalsReadableStreamDefaultControllerEnqueue, 2) \ |
161 | macro(readableStreamDefaultReaderRead, readableStreamInternalsReadableStreamDefaultReaderRead, 1) \ |
162 | macro(readableStreamAddReadRequest, readableStreamInternalsReadableStreamAddReadRequest, 1) \ |
163 | macro(isReadableStreamDisturbed, readableStreamInternalsIsReadableStreamDisturbed, 1) \ |
164 | macro(readableStreamReaderGenericRelease, readableStreamInternalsReadableStreamReaderGenericRelease, 1) \ |
165 | macro(readableStreamDefaultControllerCanCloseOrEnqueue, readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueue, 1) \ |
166 | |
167 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMREADERGENERICINITIALIZE 1 |
168 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PRIVATEINITIALIZEREADABLESTREAMDEFAULTCONTROLLER 1 |
169 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERERROR 1 |
170 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMPIPETO 1 |
171 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTEE 1 |
172 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_DOSTRUCTUREDCLONE 1 |
173 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTEEPULLFUNCTION 1 |
174 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTEEBRANCH1CANCELFUNCTION 1 |
175 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTEEBRANCH2CANCELFUNCTION 1 |
176 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAM 1 |
177 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMDEFAULTREADER 1 |
178 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMDEFAULTCONTROLLER 1 |
179 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMERROR 1 |
180 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERCALLPULLIFNEEDED 1 |
181 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMLOCKED 1 |
182 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERGETDESIREDSIZE 1 |
183 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMREADERGENERICCANCEL 1 |
184 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMCANCEL 1 |
185 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERCANCEL 1 |
186 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERPULL 1 |
187 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERCLOSE 1 |
188 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMCLOSE 1 |
189 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMFULFILLREADREQUEST 1 |
190 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERENQUEUE 1 |
191 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTREADERREAD 1 |
192 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMADDREADREQUEST 1 |
193 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMDISTURBED 1 |
194 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMREADERGENERICRELEASE 1 |
195 | #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERCANCLOSEORENQUEUE 1 |
196 | |
197 | #define WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(macro) \ |
198 | macro(readableStreamInternalsReadableStreamReaderGenericInitializeCode, readableStreamReaderGenericInitialize, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeLength) \ |
199 | macro(readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCode, privateInitializeReadableStreamDefaultController, static_cast<const char*>(nullptr), s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeLength) \ |
200 | macro(readableStreamInternalsReadableStreamDefaultControllerErrorCode, readableStreamDefaultControllerError, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeLength) \ |
201 | macro(readableStreamInternalsReadableStreamPipeToCode, readableStreamPipeTo, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamPipeToCodeLength) \ |
202 | macro(readableStreamInternalsReadableStreamTeeCode, readableStreamTee, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamTeeCodeLength) \ |
203 | macro(readableStreamInternalsDoStructuredCloneCode, doStructuredClone, static_cast<const char*>(nullptr), s_readableStreamInternalsDoStructuredCloneCodeLength) \ |
204 | macro(readableStreamInternalsReadableStreamTeePullFunctionCode, readableStreamTeePullFunction, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength) \ |
205 | macro(readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCode, readableStreamTeeBranch1CancelFunction, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeLength) \ |
206 | macro(readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCode, readableStreamTeeBranch2CancelFunction, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeLength) \ |
207 | macro(readableStreamInternalsIsReadableStreamCode, isReadableStream, static_cast<const char*>(nullptr), s_readableStreamInternalsIsReadableStreamCodeLength) \ |
208 | macro(readableStreamInternalsIsReadableStreamDefaultReaderCode, isReadableStreamDefaultReader, static_cast<const char*>(nullptr), s_readableStreamInternalsIsReadableStreamDefaultReaderCodeLength) \ |
209 | macro(readableStreamInternalsIsReadableStreamDefaultControllerCode, isReadableStreamDefaultController, static_cast<const char*>(nullptr), s_readableStreamInternalsIsReadableStreamDefaultControllerCodeLength) \ |
210 | macro(readableStreamInternalsReadableStreamErrorCode, readableStreamError, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamErrorCodeLength) \ |
211 | macro(readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCode, readableStreamDefaultControllerCallPullIfNeeded, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeLength) \ |
212 | macro(readableStreamInternalsIsReadableStreamLockedCode, isReadableStreamLocked, static_cast<const char*>(nullptr), s_readableStreamInternalsIsReadableStreamLockedCodeLength) \ |
213 | macro(readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode, readableStreamDefaultControllerGetDesiredSize, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeLength) \ |
214 | macro(readableStreamInternalsReadableStreamReaderGenericCancelCode, readableStreamReaderGenericCancel, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamReaderGenericCancelCodeLength) \ |
215 | macro(readableStreamInternalsReadableStreamCancelCode, readableStreamCancel, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamCancelCodeLength) \ |
216 | macro(readableStreamInternalsReadableStreamDefaultControllerCancelCode, readableStreamDefaultControllerCancel, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeLength) \ |
217 | macro(readableStreamInternalsReadableStreamDefaultControllerPullCode, readableStreamDefaultControllerPull, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamDefaultControllerPullCodeLength) \ |
218 | macro(readableStreamInternalsReadableStreamDefaultControllerCloseCode, readableStreamDefaultControllerClose, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeLength) \ |
219 | macro(readableStreamInternalsReadableStreamCloseCode, readableStreamClose, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamCloseCodeLength) \ |
220 | macro(readableStreamInternalsReadableStreamFulfillReadRequestCode, readableStreamFulfillReadRequest, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamFulfillReadRequestCodeLength) \ |
221 | macro(readableStreamInternalsReadableStreamDefaultControllerEnqueueCode, readableStreamDefaultControllerEnqueue, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeLength) \ |
222 | macro(readableStreamInternalsReadableStreamDefaultReaderReadCode, readableStreamDefaultReaderRead, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamDefaultReaderReadCodeLength) \ |
223 | macro(readableStreamInternalsReadableStreamAddReadRequestCode, readableStreamAddReadRequest, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamAddReadRequestCodeLength) \ |
224 | macro(readableStreamInternalsIsReadableStreamDisturbedCode, isReadableStreamDisturbed, static_cast<const char*>(nullptr), s_readableStreamInternalsIsReadableStreamDisturbedCodeLength) \ |
225 | macro(readableStreamInternalsReadableStreamReaderGenericReleaseCode, readableStreamReaderGenericRelease, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeLength) \ |
226 | macro(readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCode, readableStreamDefaultControllerCanCloseOrEnqueue, static_cast<const char*>(nullptr), s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeLength) \ |
227 | |
228 | #define WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(macro) \ |
229 | macro(doStructuredClone) \ |
230 | macro(isReadableStream) \ |
231 | macro(isReadableStreamDefaultController) \ |
232 | macro(isReadableStreamDefaultReader) \ |
233 | macro(isReadableStreamDisturbed) \ |
234 | macro(isReadableStreamLocked) \ |
235 | macro(privateInitializeReadableStreamDefaultController) \ |
236 | macro(readableStreamAddReadRequest) \ |
237 | macro(readableStreamCancel) \ |
238 | macro(readableStreamClose) \ |
239 | macro(readableStreamDefaultControllerCallPullIfNeeded) \ |
240 | macro(readableStreamDefaultControllerCanCloseOrEnqueue) \ |
241 | macro(readableStreamDefaultControllerCancel) \ |
242 | macro(readableStreamDefaultControllerClose) \ |
243 | macro(readableStreamDefaultControllerEnqueue) \ |
244 | macro(readableStreamDefaultControllerError) \ |
245 | macro(readableStreamDefaultControllerGetDesiredSize) \ |
246 | macro(readableStreamDefaultControllerPull) \ |
247 | macro(readableStreamDefaultReaderRead) \ |
248 | macro(readableStreamError) \ |
249 | macro(readableStreamFulfillReadRequest) \ |
250 | macro(readableStreamPipeTo) \ |
251 | macro(readableStreamReaderGenericCancel) \ |
252 | macro(readableStreamReaderGenericInitialize) \ |
253 | macro(readableStreamReaderGenericRelease) \ |
254 | macro(readableStreamTee) \ |
255 | macro(readableStreamTeeBranch1CancelFunction) \ |
256 | macro(readableStreamTeeBranch2CancelFunction) \ |
257 | macro(readableStreamTeePullFunction) \ |
258 | |
259 | #define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ |
260 | JSC::FunctionExecutable* codeName##Generator(JSC::VM&); |
261 | |
262 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR) |
263 | #undef DECLARE_BUILTIN_GENERATOR |
264 | |
265 | class ReadableStreamInternalsBuiltinsWrapper : private JSC::WeakHandleOwner { |
266 | public: |
267 | explicit ReadableStreamInternalsBuiltinsWrapper(JSC::VM* vm) |
268 | : m_vm(*vm) |
269 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES) |
270 | #define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createFromLiteral(s_##name, length), { })) |
271 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS) |
272 | #undef INITIALIZE_BUILTIN_SOURCE_MEMBERS |
273 | { |
274 | } |
275 | |
276 | #define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \ |
277 | JSC::UnlinkedFunctionExecutable* name##Executable(); \ |
278 | const JSC::SourceCode& name##Source() const { return m_##name##Source; } |
279 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES) |
280 | #undef EXPOSE_BUILTIN_EXECUTABLES |
281 | |
282 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR) |
283 | |
284 | void exportNames(); |
285 | |
286 | private: |
287 | JSC::VM& m_vm; |
288 | |
289 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES) |
290 | |
291 | #define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \ |
292 | JSC::SourceCode m_##name##Source;\ |
293 | JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable; |
294 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS) |
295 | #undef DECLARE_BUILTIN_SOURCE_MEMBERS |
296 | |
297 | }; |
298 | |
299 | #define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \ |
300 | inline JSC::UnlinkedFunctionExecutable* ReadableStreamInternalsBuiltinsWrapper::name##Executable() \ |
301 | {\ |
302 | if (!m_##name##Executable) {\ |
303 | JSC::Identifier executableName = functionName##PublicName();\ |
304 | if (overriddenName)\ |
305 | executableName = JSC::Identifier::fromString(&m_vm, overriddenName);\ |
306 | m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ConstructAbility), this, &m_##name##Executable);\ |
307 | }\ |
308 | return m_##name##Executable.get();\ |
309 | } |
310 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES) |
311 | #undef DEFINE_BUILTIN_EXECUTABLES |
312 | |
313 | inline void ReadableStreamInternalsBuiltinsWrapper::exportNames() |
314 | { |
315 | #define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName()); |
316 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME) |
317 | #undef EXPORT_FUNCTION_NAME |
318 | } |
319 | |
320 | class ReadableStreamInternalsBuiltinFunctions { |
321 | public: |
322 | explicit ReadableStreamInternalsBuiltinFunctions(JSC::VM& vm) : m_vm(vm) { } |
323 | |
324 | void init(JSC::JSGlobalObject&); |
325 | void visit(JSC::SlotVisitor&); |
326 | |
327 | public: |
328 | JSC::VM& m_vm; |
329 | |
330 | #define DECLARE_BUILTIN_SOURCE_MEMBERS(functionName) \ |
331 | JSC::WriteBarrier<JSC::JSFunction> m_##functionName##Function; |
332 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_SOURCE_MEMBERS) |
333 | #undef DECLARE_BUILTIN_SOURCE_MEMBERS |
334 | }; |
335 | |
336 | inline void ReadableStreamInternalsBuiltinFunctions::init(JSC::JSGlobalObject& globalObject) |
337 | { |
338 | #define EXPORT_FUNCTION(codeName, functionName, overriddenName, length)\ |
339 | m_##functionName##Function.set(m_vm, &globalObject, JSC::JSFunction::create(m_vm, codeName##Generator(m_vm), &globalObject)); |
340 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(EXPORT_FUNCTION) |
341 | #undef EXPORT_FUNCTION |
342 | } |
343 | |
344 | inline void ReadableStreamInternalsBuiltinFunctions::visit(JSC::SlotVisitor& visitor) |
345 | { |
346 | #define VISIT_FUNCTION(name) visitor.append(m_##name##Function); |
347 | WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(VISIT_FUNCTION) |
348 | #undef VISIT_FUNCTION |
349 | } |
350 | |
351 | |
352 | } // namespace WebCore |
353 | |
354 | #endif // ENABLE(STREAMS_API) |
355 | |