13
13
14
14
// A JS class to use as the underlying source for native readable streams, used
15
15
// for Request/Response bodies and TransformStream.
16
- namespace NativeStreamSource {
16
+ namespace builtins {
17
17
18
- JSObject *owner (JSObject *self) {
18
+ JSObject *NativeStreamSource:: owner (JSObject *self) {
19
19
MOZ_ASSERT (is_instance (self));
20
20
return &JS::GetReservedSlot (self, Slots::Owner).toObject ();
21
21
}
22
22
23
- JSObject *stream (JSObject *self) { return RequestOrResponse::body_stream (owner (self)); }
23
+ JSObject *NativeStreamSource::stream (JSObject *self) {
24
+ return RequestOrResponse::body_stream (owner (self));
25
+ }
24
26
25
- JS::Value startPromise (JSObject *self) {
27
+ JS::Value NativeStreamSource:: startPromise (JSObject *self) {
26
28
MOZ_ASSERT (is_instance (self));
27
29
return JS::GetReservedSlot (self, Slots::StartPromise);
28
30
}
29
31
30
- PullAlgorithm * pullAlgorithm (JSObject *self) {
32
+ NativeStreamSource::PullAlgorithmImplementation * NativeStreamSource:: pullAlgorithm (JSObject *self) {
31
33
MOZ_ASSERT (is_instance (self));
32
- return (PullAlgorithm *)JS::GetReservedSlot (self, Slots::PullAlgorithm).toPrivate ();
34
+ return (PullAlgorithmImplementation *)JS::GetReservedSlot (self, Slots::PullAlgorithm).toPrivate ();
33
35
}
34
36
35
- CancelAlgorithm *cancelAlgorithm (JSObject *self) {
37
+ NativeStreamSource::CancelAlgorithmImplementation *
38
+ NativeStreamSource::cancelAlgorithm (JSObject *self) {
36
39
MOZ_ASSERT (is_instance (self));
37
- return (CancelAlgorithm *)JS::GetReservedSlot (self, Slots::CancelAlgorithm).toPrivate ();
40
+ return (CancelAlgorithmImplementation *)JS::GetReservedSlot (self, Slots::CancelAlgorithm)
41
+ .toPrivate ();
38
42
}
39
43
40
- JSObject *controller (JSObject *self) {
44
+ JSObject *NativeStreamSource:: controller (JSObject *self) {
41
45
MOZ_ASSERT (is_instance (self));
42
46
return &JS::GetReservedSlot (self, Slots::Controller).toObject ();
43
47
}
@@ -46,33 +50,33 @@ JSObject *controller(JSObject *self) {
46
50
* Returns the underlying source for the given controller iff it's an object,
47
51
* nullptr otherwise.
48
52
*/
49
- static JSObject *get_controller_source (JSContext *cx, JS::HandleObject controller) {
53
+ JSObject *NativeStreamSource:: get_controller_source (JSContext *cx, JS::HandleObject controller) {
50
54
JS::RootedValue source (cx);
51
55
bool success __attribute__ ((unused));
52
56
success = JS::ReadableStreamControllerGetUnderlyingSource (cx, controller, &source);
53
57
MOZ_ASSERT (success);
54
58
return source.isObject () ? &source.toObject () : nullptr ;
55
59
}
56
60
57
- JSObject *get_stream_source (JSContext *cx, JS::HandleObject stream) {
61
+ JSObject *NativeStreamSource:: get_stream_source (JSContext *cx, JS::HandleObject stream) {
58
62
MOZ_ASSERT (JS::IsReadableStream (stream));
59
63
JS::RootedObject controller (cx, JS::ReadableStreamGetController (cx, stream));
60
64
return get_controller_source (cx, controller);
61
65
}
62
66
63
- bool stream_has_native_source (JSContext *cx, JS::HandleObject stream) {
67
+ bool NativeStreamSource:: stream_has_native_source (JSContext *cx, JS::HandleObject stream) {
64
68
JSObject *source = get_stream_source (cx, stream);
65
69
return is_instance (source);
66
70
}
67
71
68
- bool stream_is_body (JSContext *cx, JS::HandleObject stream) {
72
+ bool NativeStreamSource:: stream_is_body (JSContext *cx, JS::HandleObject stream) {
69
73
JSObject *stream_source = get_stream_source (cx, stream);
70
74
return NativeStreamSource::is_instance (stream_source) &&
71
75
RequestOrResponse::is_instance (owner (stream_source));
72
76
}
73
77
74
- void set_stream_piped_to_ts_writable (JSContext *cx, JS::HandleObject stream,
75
- JS::HandleObject writable) {
78
+ void NativeStreamSource:: set_stream_piped_to_ts_writable (JSContext *cx, JS::HandleObject stream,
79
+ JS::HandleObject writable) {
76
80
JS::RootedObject source (cx, NativeStreamSource::get_stream_source (cx, stream));
77
81
MOZ_ASSERT (is_instance (source));
78
82
JS::RootedObject sink (cx, NativeStreamSink::get_stream_sink (cx, writable));
@@ -81,12 +85,12 @@ void set_stream_piped_to_ts_writable(JSContext *cx, JS::HandleObject stream,
81
85
JS::SetReservedSlot (source, Slots::PipedToTransformStream, JS::ObjectValue (*transform_stream));
82
86
}
83
87
84
- JSObject *piped_to_transform_stream (JSObject *self) {
88
+ JSObject *NativeStreamSource:: piped_to_transform_stream (JSObject *self) {
85
89
MOZ_ASSERT (is_instance (self));
86
90
return JS::GetReservedSlot (self, Slots::PipedToTransformStream).toObjectOrNull ();
87
91
}
88
92
89
- bool lock_stream (JSContext *cx, JS::HandleObject stream) {
93
+ bool NativeStreamSource:: lock_stream (JSContext *cx, JS::HandleObject stream) {
90
94
MOZ_ASSERT (JS::IsReadableStream (stream));
91
95
92
96
bool locked;
@@ -108,11 +112,7 @@ bool lock_stream(JSContext *cx, JS::HandleObject stream) {
108
112
return true ;
109
113
}
110
114
111
- const unsigned ctor_length = 0 ;
112
-
113
- bool check_receiver (JSContext *cx, JS::HandleValue receiver, const char *method_name);
114
-
115
- bool start (JSContext *cx, unsigned argc, JS::Value *vp) {
115
+ bool NativeStreamSource::start (JSContext *cx, unsigned argc, JS::Value *vp) {
116
116
METHOD_HEADER (1 )
117
117
118
118
MOZ_ASSERT (args[0 ].isObject ());
@@ -130,37 +130,38 @@ bool start(JSContext *cx, unsigned argc, JS::Value *vp) {
130
130
return true ;
131
131
}
132
132
133
- bool pull (JSContext *cx, unsigned argc, JS::Value *vp) {
133
+ bool NativeStreamSource:: pull (JSContext *cx, unsigned argc, JS::Value *vp) {
134
134
METHOD_HEADER (1 )
135
135
136
136
JS::RootedObject owner (cx, NativeStreamSource::owner (self));
137
137
JS::RootedObject controller (cx, &args[0 ].toObject ());
138
138
MOZ_ASSERT (controller == NativeStreamSource::controller (self));
139
139
MOZ_ASSERT (get_controller_source (cx, controller) == self.get ());
140
140
141
- PullAlgorithm *pull = pullAlgorithm (self);
141
+ PullAlgorithmImplementation *pull = pullAlgorithm (self);
142
142
return pull (cx, args, self, owner, controller);
143
143
}
144
144
145
- bool cancel (JSContext *cx, unsigned argc, JS::Value *vp) {
145
+ bool NativeStreamSource:: cancel (JSContext *cx, unsigned argc, JS::Value *vp) {
146
146
METHOD_HEADER (0 )
147
147
148
148
JS::RootedObject owner (cx, NativeStreamSource::owner (self));
149
149
JS::HandleValue reason (args.get (0 ));
150
150
151
- CancelAlgorithm *cancel = cancelAlgorithm (self);
151
+ CancelAlgorithmImplementation *cancel = cancelAlgorithm (self);
152
152
return cancel (cx, args, self, owner, reason);
153
153
}
154
154
155
- const JSFunctionSpec methods[] = {JS_FN (" start" , start, 1 , 0 ), JS_FN (" pull" , pull, 1 , 0 ),
156
- JS_FN (" cancel" , cancel, 1 , 0 ), JS_FS_END};
157
-
158
- const JSPropertySpec properties[] = {JS_PS_END};
155
+ const JSFunctionSpec NativeStreamSource::methods[] = {JS_FN (" start" , start, 1 , 0 ),
156
+ JS_FN (" pull" , pull, 1 , 0 ),
157
+ JS_FN (" cancel" , cancel, 1 , 0 ), JS_FS_END};
159
158
160
- CLASS_BOILERPLATE_NO_CTOR ( NativeStreamSource)
159
+ const JSPropertySpec NativeStreamSource::properties[] = {JS_PS_END};
161
160
162
- JSObject *create (JSContext *cx, JS::HandleObject owner, JS::HandleValue startPromise,
163
- PullAlgorithm *pull, CancelAlgorithm *cancel) {
161
+ JSObject *NativeStreamSource::create (JSContext *cx, JS::HandleObject owner,
162
+ JS::HandleValue startPromise,
163
+ PullAlgorithmImplementation *pull,
164
+ CancelAlgorithmImplementation *cancel) {
164
165
JS::RootedObject source (cx, JS_NewObjectWithGivenProto (cx, &class_, proto_obj));
165
166
if (!source)
166
167
return nullptr ;
@@ -172,4 +173,4 @@ JSObject *create(JSContext *cx, JS::HandleObject owner, JS::HandleValue startPro
172
173
JS::SetReservedSlot (source, Slots::PipedToTransformStream, JS::NullValue ());
173
174
return source;
174
175
}
175
- } // namespace NativeStreamSource
176
+ } // namespace builtins
0 commit comments