diff options
author | Moonchild <moonchild@palemoon.org> | 2020-10-31 20:27:19 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-10-31 20:27:19 +0000 |
commit | dff20616b75bfbf580aef36ea5ac4fce317de52a (patch) | |
tree | 11336aa6a322754d1129d6a98d1312a1490a29da | |
parent | bc8b279e5fd7e4b3e311b0d8826c46132dea106e (diff) | |
download | uxp-dff20616b75bfbf580aef36ea5ac4fce317de52a.tar.gz |
Issue #1442 - Part 3: Add a run-time preference for toggling the streams API.
This was entirely way too complicated to toggle a feature.
-rw-r--r-- | dom/workers/RuntimeService.cpp | 1 | ||||
-rw-r--r-- | js/src/jsapi.h | 11 | ||||
-rw-r--r-- | js/src/shell/js.cpp | 9 | ||||
-rw-r--r-- | js/xpconnect/src/XPCJSContext.cpp | 5 | ||||
-rw-r--r-- | modules/libpref/init/all.js | 3 |
5 files changed, 26 insertions, 3 deletions
diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp index 239207efc9..6138a3c6de 100644 --- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp @@ -299,6 +299,7 @@ LoadContextOptions(const char* aPrefName, void* /* aClosure */) .setNativeRegExp(GetWorkerPref<bool>(NS_LITERAL_CSTRING("native_regexp"))) .setAsyncStack(GetWorkerPref<bool>(NS_LITERAL_CSTRING("asyncstack"))) .setWerror(GetWorkerPref<bool>(NS_LITERAL_CSTRING("werror"))) + .setStreams(GetWorkerPref<bool>(NS_LITERAL_CSTRING("streams"))) .setExtraWarnings(GetWorkerPref<bool>(NS_LITERAL_CSTRING("strict"))) .setArrayProtoValues(GetWorkerPref<bool>( NS_LITERAL_CSTRING("array_prototype_values"))); diff --git a/js/src/jsapi.h b/js/src/jsapi.h index f8203ee1fd..52c05d573a 100644 --- a/js/src/jsapi.h +++ b/js/src/jsapi.h @@ -1169,6 +1169,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; @@ -1251,6 +1261,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 6e155d3ff6..408a7ffd44 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -321,6 +321,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; @@ -7288,6 +7289,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) @@ -7296,7 +7298,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; @@ -7568,7 +7571,8 @@ SetWorkerContextOptions(JSContext* cx) .setWasmAlwaysBaseline(enableWasmAlwaysBaseline) .setNativeRegExp(enableNativeRegExp) .setUnboxedArrays(enableUnboxedArrays) - .setArrayProtoValues(enableArrayProtoValues); + .setArrayProtoValues(enableArrayProtoValues) + .setStreams(enableStreams); cx->setOffthreadIonCompilationEnabled(offthreadCompilation); cx->profilingScripts = enableCodeCoverage || enableDisassemblyDumps; @@ -7742,6 +7746,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 5dcc71e82e..d5f913ff02 100644 --- a/js/xpconnect/src/XPCJSContext.cpp +++ b/js/xpconnect/src/XPCJSContext.cpp @@ -1425,6 +1425,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"); @@ -1448,7 +1450,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); diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index e7b7e60879..dbaf1dfd6e 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -1333,6 +1333,9 @@ pref("javascript.options.shared_memory", true); pref("javascript.options.throw_on_debuggee_would_run", false); pref("javascript.options.dump_stack_on_debuggee_would_run", false); +// Streams API +pref("javascript.options.streams", false); + // advanced prefs pref("advanced.mailftp", false); pref("image.animation_mode", "normal"); |