Skip to content

Commit 2087c35

Browse files
authored
Hide readablestream behind streams feature (#518)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
1 parent 7141822 commit 2087c35

File tree

6 files changed

+38
-3
lines changed

6 files changed

+38
-3
lines changed

mozjs-sys/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name = "mozjs_sys"
33
description = "System crate for the Mozilla SpiderMonkey JavaScript engine."
44
repository.workspace = true
5-
version = "0.128.3-1"
5+
version = "0.128.3-2"
66
authors = ["Mozilla"]
77
links = "mozjs"
88
build = "build.rs"

mozjs-sys/src/jsapi.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232
#include "js/ScalarType.h"
3333
#include "js/SharedArrayBuffer.h"
3434
#include "js/SourceText.h"
35-
#include "js/Stream.h"
35+
#ifdef MOZ_JS_STREAMS
36+
# include "js/Stream.h"
37+
#endif
3638
#include "js/String.h"
3739
#include "js/StructuredClone.h"
3840
#include "js/Symbol.h"

mozjs-sys/src/jsglue.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@
2626
#include "js/Proxy.h"
2727
#include "js/RegExp.h"
2828
#include "js/ScalarType.h"
29-
#include "js/Stream.h"
29+
#ifdef MOZ_JS_STREAMS
30+
# include "js/Stream.h"
31+
#endif
3032
#include "js/StructuredClone.h"
3133
#include "js/Wrapper.h"
3234
#include "js/experimental/JSStencil.h"
@@ -86,6 +88,7 @@ class RustJobQueue : public JS::JobQueue {
8688
}
8789
};
8890

91+
#ifdef MOZ_JS_STREAMS
8992
struct ReadableStreamUnderlyingSourceTraps {
9093
void (*requestData)(const void* source, JSContext* cx,
9194
JS::HandleObject stream, size_t desiredSize);
@@ -142,6 +145,7 @@ class RustReadableStreamUnderlyingSource
142145

143146
virtual void finalize() { return mTraps.finalize(this); }
144147
};
148+
#endif
145149

146150
struct JSExternalStringCallbacksTraps {
147151
void (*latin1Finalize)(const void* privateData, JS::Latin1Char* chars);
@@ -1075,6 +1079,7 @@ JS::JobQueue* CreateJobQueue(const JobQueueTraps* aTraps, const void* aQueue) {
10751079

10761080
void DeleteJobQueue(JS::JobQueue* queue) { delete queue; }
10771081

1082+
#ifdef MOZ_JS_STREAMS
10781083
JS::ReadableStreamUnderlyingSource* CreateReadableStreamUnderlyingSource(
10791084
const ReadableStreamUnderlyingSourceTraps* aTraps, const void* aSource) {
10801085
return new RustReadableStreamUnderlyingSource(*aTraps, aSource);
@@ -1084,6 +1089,7 @@ void DeleteReadableStreamUnderlyingSource(
10841089
JS::ReadableStreamUnderlyingSource* source) {
10851090
delete source;
10861091
}
1092+
#endif
10871093

10881094
JSExternalStringCallbacks* CreateJSExternalStringCallbacks(
10891095
const JSExternalStringCallbacksTraps* aTraps, void* privateData) {

mozjs/src/generate_wrappers.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ find_latest_version_of_file_and_parse() {
3636

3737
# parse reformated file
3838
grep_heur "target/wrap_$1" | $gsed 's/\(.*\)/wrap!('"$2"': \1);/g' > "mozjs/src/$2_wrappers.in"
39+
$gsed -i '/Readable/i \
40+
#[cfg(feature = "streams")]' "mozjs/src/$2_wrappers.in"
3941
}
4042

4143
find_latest_version_of_file_and_parse jsapi.rs jsapi

mozjs/src/jsapi_wrappers.in

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,24 +162,43 @@ wrap!(jsapi: pub fn GetSavedFrameAsyncCause(cx: *mut JSContext, principals: *mut
162162
wrap!(jsapi: pub fn GetSavedFrameAsyncParent(cx: *mut JSContext, principals: *mut JSPrincipals, savedFrame: HandleObject, asyncParentp: MutableHandleObject, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
163163
wrap!(jsapi: pub fn GetSavedFrameParent(cx: *mut JSContext, principals: *mut JSPrincipals, savedFrame: HandleObject, parentp: MutableHandleObject, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
164164
wrap!(jsapi: pub fn ConvertSavedFrameToPlainObject(cx: *mut JSContext, savedFrame: HandleObject, selfHosted: SavedFrameSelfHosted) -> *mut JSObject);
165+
#[cfg(feature = "streams")]
165166
wrap!(jsapi: pub fn NewReadableDefaultStreamObject(cx: *mut JSContext, underlyingSource: HandleObject, size: HandleFunction, highWaterMark: f64, proto: HandleObject) -> *mut JSObject);
167+
#[cfg(feature = "streams")]
166168
wrap!(jsapi: pub fn NewReadableExternalSourceStreamObject(cx: *mut JSContext, underlyingSource: *mut ReadableStreamUnderlyingSource, nsISupportsObject_alreadyAddreffed: *mut ::std::os::raw::c_void, proto: HandleObject) -> *mut JSObject);
169+
#[cfg(feature = "streams")]
167170
wrap!(jsapi: pub fn ReadableStreamGetExternalUnderlyingSource(cx: *mut JSContext, stream: HandleObject, source: *mut *mut ReadableStreamUnderlyingSource) -> bool);
171+
#[cfg(feature = "streams")]
168172
wrap!(jsapi: pub fn ReadableStreamReleaseExternalUnderlyingSource(cx: *mut JSContext, stream: HandleObject) -> bool);
173+
#[cfg(feature = "streams")]
169174
wrap!(jsapi: pub fn ReadableStreamUpdateDataAvailableFromSource(cx: *mut JSContext, stream: HandleObject, availableData: u32) -> bool);
175+
#[cfg(feature = "streams")]
170176
wrap!(jsapi: pub fn ReadableStreamGetMode(cx: *mut JSContext, stream: HandleObject, mode: *mut ReadableStreamMode) -> bool);
177+
#[cfg(feature = "streams")]
171178
wrap!(jsapi: pub fn ReadableStreamIsReadable(cx: *mut JSContext, stream: HandleObject, result: *mut bool) -> bool);
179+
#[cfg(feature = "streams")]
172180
wrap!(jsapi: pub fn ReadableStreamIsLocked(cx: *mut JSContext, stream: HandleObject, result: *mut bool) -> bool);
181+
#[cfg(feature = "streams")]
173182
wrap!(jsapi: pub fn ReadableStreamIsDisturbed(cx: *mut JSContext, stream: HandleObject, result: *mut bool) -> bool);
183+
#[cfg(feature = "streams")]
174184
wrap!(jsapi: pub fn ReadableStreamCancel(cx: *mut JSContext, stream: HandleObject, reason: HandleValue) -> *mut JSObject);
185+
#[cfg(feature = "streams")]
175186
wrap!(jsapi: pub fn ReadableStreamGetReader(cx: *mut JSContext, stream: HandleObject, mode: ReadableStreamReaderMode) -> *mut JSObject);
187+
#[cfg(feature = "streams")]
176188
wrap!(jsapi: pub fn ReadableStreamTee(cx: *mut JSContext, stream: HandleObject, branch1Stream: MutableHandleObject, branch2Stream: MutableHandleObject) -> bool);
189+
#[cfg(feature = "streams")]
177190
wrap!(jsapi: pub fn ReadableStreamClose(cx: *mut JSContext, stream: HandleObject) -> bool);
191+
#[cfg(feature = "streams")]
178192
wrap!(jsapi: pub fn ReadableStreamReaderIsClosed(cx: *mut JSContext, reader: HandleObject, result: *mut bool) -> bool);
193+
#[cfg(feature = "streams")]
179194
wrap!(jsapi: pub fn ReadableStreamEnqueue(cx: *mut JSContext, stream: HandleObject, chunk: HandleValue) -> bool);
195+
#[cfg(feature = "streams")]
180196
wrap!(jsapi: pub fn ReadableStreamError(cx: *mut JSContext, stream: HandleObject, error: HandleValue) -> bool);
197+
#[cfg(feature = "streams")]
181198
wrap!(jsapi: pub fn ReadableStreamReaderCancel(cx: *mut JSContext, reader: HandleObject, reason: HandleValue) -> bool);
199+
#[cfg(feature = "streams")]
182200
wrap!(jsapi: pub fn ReadableStreamReaderReleaseLock(cx: *mut JSContext, reader: HandleObject) -> bool);
201+
#[cfg(feature = "streams")]
183202
wrap!(jsapi: pub fn ReadableStreamDefaultReaderRead(cx: *mut JSContext, reader: HandleObject) -> *mut JSObject);
184203
wrap!(jsapi: pub fn IsWasmModuleObject(obj: HandleObject) -> bool);
185204
wrap!(jsapi: pub fn GetWasmModule(obj: HandleObject) -> RefPtr<WasmModule>);

mozjs/src/rust.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,8 +1163,11 @@ pub mod wrappers {
11631163
use crate::jsapi::PromiseState;
11641164
use crate::jsapi::PromiseUserInputEventHandlingState;
11651165
use crate::jsapi::ReadOnlyCompileOptions;
1166+
#[cfg(feature = "streams")]
11661167
use crate::jsapi::ReadableStreamMode;
1168+
#[cfg(feature = "streams")]
11671169
use crate::jsapi::ReadableStreamReaderMode;
1170+
#[cfg(feature = "streams")]
11681171
use crate::jsapi::ReadableStreamUnderlyingSource;
11691172
use crate::jsapi::Realm;
11701173
use crate::jsapi::RefPtr;
@@ -1313,8 +1316,11 @@ pub mod jsapi_wrapped {
13131316
use crate::jsapi::PromiseUserInputEventHandlingState;
13141317
use crate::jsapi::PropertyKey;
13151318
use crate::jsapi::ReadOnlyCompileOptions;
1319+
#[cfg(feature = "streams")]
13161320
use crate::jsapi::ReadableStreamMode;
1321+
#[cfg(feature = "streams")]
13171322
use crate::jsapi::ReadableStreamReaderMode;
1323+
#[cfg(feature = "streams")]
13181324
use crate::jsapi::ReadableStreamUnderlyingSource;
13191325
use crate::jsapi::Realm;
13201326
use crate::jsapi::RefPtr;

0 commit comments

Comments
 (0)