summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorBrian Smith <brian@dbsoft.org>2023-09-27 10:45:00 -0500
committerBrian Smith <brian@dbsoft.org>2023-09-27 10:45:00 -0500
commit582fd0dd81af880f7f71dfb1fc9e7f8df448a56e (patch)
treec1f045c4665f9638ffc55a30257fa8bfe57ea6a8 /js
parentf31471e6898db346ea1529d11756e9788215993d (diff)
downloaduxp-582fd0dd81af880f7f71dfb1fc9e7f8df448a56e.tar.gz
Issue #1442 - Part 2: Add a run-time preference for toggling the streams API.
https://bugzilla.mozilla.org/show_bug.cgi?id=1272697
Diffstat (limited to 'js')
-rw-r--r--js/src/jsapi.h11
-rw-r--r--js/src/shell/js.cpp9
-rw-r--r--js/xpconnect/src/XPCJSContext.cpp5
3 files changed, 22 insertions, 3 deletions
diff --git a/js/src/jsapi.h b/js/src/jsapi.h
index f80d2602e6..a8e28a587b 100644
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -1161,6 +1161,16 @@ class JS_PUBLIC_API(ContextOptions) {
return *this;
}
+ bool streams() const { return streams_; }
+ ContextOptions& setStreams(bool flag) {
+ streams_ = flag;
+ return *this;
+ }
+ ContextOptions& toggleStreams() {
+ streams_ = !streams_;
+ return *this;
+ }
+
bool nativeRegExp() const { return nativeRegExp_; }
ContextOptions& setNativeRegExp(bool flag) {
nativeRegExp_ = flag;
@@ -1243,6 +1253,7 @@ class JS_PUBLIC_API(ContextOptions) {
bool strictMode_ : 1;
bool extraWarnings_ : 1;
bool arrayProtoValues_ : 1;
+ bool streams_ : 1;
};
JS_PUBLIC_API(ContextOptions&)
diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp
index a77e128a52..1f89e38482 100644
--- a/js/src/shell/js.cpp
+++ b/js/src/shell/js.cpp
@@ -318,6 +318,7 @@ static bool enableUnboxedArrays = false;
static bool enableSharedMemory = SHARED_MEMORY_DEFAULT;
static bool enableWasmAlwaysBaseline = false;
static bool enableArrayProtoValues = true;
+static bool enableStreams = false;
static bool printTiming = false;
static const char* jsCacheDir = nullptr;
static const char* jsCacheAsmJSPath = nullptr;
@@ -7565,6 +7566,7 @@ SetContextOptions(JSContext* cx, const OptionParser& op)
enableUnboxedArrays = op.getBoolOption("unboxed-arrays");
enableWasmAlwaysBaseline = op.getBoolOption("wasm-always-baseline");
enableArrayProtoValues = !op.getBoolOption("no-array-proto-values");
+ enableStreams = op.getBoolOption("enable-streams");
JS::ContextOptionsRef(cx).setBaseline(enableBaseline)
.setIon(enableIon)
@@ -7573,7 +7575,8 @@ SetContextOptions(JSContext* cx, const OptionParser& op)
.setWasmAlwaysBaseline(enableWasmAlwaysBaseline)
.setNativeRegExp(enableNativeRegExp)
.setUnboxedArrays(enableUnboxedArrays)
- .setArrayProtoValues(enableArrayProtoValues);
+ .setArrayProtoValues(enableArrayProtoValues)
+ .setStreams(enableStreams);
if (op.getBoolOption("wasm-check-bce"))
jit::JitOptions.wasmAlwaysCheckBounds = true;
@@ -7845,7 +7848,8 @@ SetWorkerContextOptions(JSContext* cx)
.setWasmAlwaysBaseline(enableWasmAlwaysBaseline)
.setNativeRegExp(enableNativeRegExp)
.setUnboxedArrays(enableUnboxedArrays)
- .setArrayProtoValues(enableArrayProtoValues);
+ .setArrayProtoValues(enableArrayProtoValues)
+ .setStreams(enableStreams);
cx->setOffthreadIonCompilationEnabled(offthreadCompilation);
cx->profilingScripts = enableCodeCoverage || enableDisassemblyDumps;
@@ -8019,6 +8023,7 @@ main(int argc, char** argv, char** envp)
|| !op.addBoolOption('\0', "wasm-always-baseline", "Enable wasm baseline compiler when possible")
|| !op.addBoolOption('\0', "wasm-check-bce", "Always generate wasm bounds check, even redundant ones.")
|| !op.addBoolOption('\0', "no-array-proto-values", "Remove Array.prototype.values")
+ || !op.addBoolOption('\0', "enable-streams", "Enable WHATWG Streams")
#ifdef ENABLE_SHARED_ARRAY_BUFFER
|| !op.addStringOption('\0', "shared-memory", "on/off",
"SharedArrayBuffer and Atomics "
diff --git a/js/xpconnect/src/XPCJSContext.cpp b/js/xpconnect/src/XPCJSContext.cpp
index 8ecc14b650..cf7785e34c 100644
--- a/js/xpconnect/src/XPCJSContext.cpp
+++ b/js/xpconnect/src/XPCJSContext.cpp
@@ -1438,6 +1438,8 @@ ReloadPrefsCallback(const char* pref, void* data)
bool werror = Preferences::GetBool(JS_OPTIONS_DOT_STR "werror");
bool extraWarnings = Preferences::GetBool(JS_OPTIONS_DOT_STR "strict");
+
+ bool streams = Preferences::GetBool(JS_OPTIONS_DOT_STR "streams");
bool unboxedObjects = Preferences::GetBool(JS_OPTIONS_DOT_STR "unboxed_objects");
@@ -1463,7 +1465,8 @@ ReloadPrefsCallback(const char* pref, void* data)
.setDumpStackOnDebuggeeWouldRun(dumpStackOnDebuggeeWouldRun)
.setWerror(werror)
.setExtraWarnings(extraWarnings)
- .setArrayProtoValues(arrayProtoValues);
+ .setArrayProtoValues(arrayProtoValues)
+ .setStreams(streams);
JS_SetParallelParsingEnabled(cx, parallelParsing);
JS_SetOffthreadIonCompilationEnabled(cx, offthreadIonCompilation);