mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-02 14:30:43 +00:00
Bug 1865103 - Allow ArrayBuffer.prototype.transfer to be enabled outside of nightly r=anba
Differential Revision: https://phabricator.services.mozilla.com/D195572
This commit is contained in:
parent
65d35bfd22
commit
2411e23a36
@ -228,6 +228,12 @@ class JS_PUBLIC_API RealmCreationOptions {
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool getArrayBufferTransferEnabled() const { return arrayBufferTransfer_; }
|
||||
RealmCreationOptions& setArrayBufferTransferEnabled(bool flag) {
|
||||
arrayBufferTransfer_ = flag;
|
||||
return *this;
|
||||
}
|
||||
|
||||
#ifdef NIGHTLY_BUILD
|
||||
bool getNewSetMethodsEnabled() const { return newSetMethods_; }
|
||||
RealmCreationOptions& setNewSetMethodsEnabled(bool flag) {
|
||||
@ -235,12 +241,6 @@ class JS_PUBLIC_API RealmCreationOptions {
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool getArrayBufferTransferEnabled() const { return arrayBufferTransfer_; }
|
||||
RealmCreationOptions& setArrayBufferTransferEnabled(bool flag) {
|
||||
arrayBufferTransfer_ = flag;
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool getSymbolsAsWeakMapKeysEnabled() const { return symbolsAsWeakMapKeys_; }
|
||||
RealmCreationOptions& setSymbolsAsWeakMapKeysEnabled(bool flag) {
|
||||
symbolsAsWeakMapKeys_ = flag;
|
||||
@ -318,10 +318,12 @@ class JS_PUBLIC_API RealmCreationOptions {
|
||||
#ifdef NIGHTLY_BUILD
|
||||
// Pref for new Set.prototype methods.
|
||||
bool newSetMethods_ = false;
|
||||
// Pref for ArrayBuffer.prototype.transfer{,ToFixedLength}() methods.
|
||||
bool arrayBufferTransfer_ = false;
|
||||
bool symbolsAsWeakMapKeys_ = false;
|
||||
#endif
|
||||
|
||||
// Pref for ArrayBuffer.prototype.transfer{,ToFixedLength}() methods.
|
||||
bool arrayBufferTransfer_ = false;
|
||||
|
||||
bool secureContext_ = false;
|
||||
bool freezeBuiltins_ = false;
|
||||
bool forceUTC_ = false;
|
||||
|
@ -747,9 +747,10 @@ bool shell::enableArrayGrouping = false;
|
||||
// Pref for new Set.prototype methods.
|
||||
bool shell::enableNewSetMethods = false;
|
||||
// Pref for ArrayBuffer.prototype.transfer{,ToFixedLength}() methods.
|
||||
bool shell::enableArrayBufferTransfer = false;
|
||||
bool shell::enableSymbolsAsWeakMapKeys = false;
|
||||
#endif
|
||||
|
||||
bool shell::enableArrayBufferTransfer = false;
|
||||
bool shell::enableImportAssertions = false;
|
||||
#ifdef JS_GC_ZEAL
|
||||
uint32_t shell::gZealBits = 0;
|
||||
@ -4133,9 +4134,9 @@ static void SetStandardRealmOptions(JS::RealmOptions& options) {
|
||||
.setShadowRealmsEnabled(enableShadowRealms)
|
||||
.setWellFormedUnicodeStringsEnabled(enableWellFormedUnicodeStrings)
|
||||
.setArrayGroupingEnabled(enableArrayGrouping)
|
||||
.setArrayBufferTransferEnabled(enableArrayBufferTransfer)
|
||||
#ifdef NIGHTLY_BUILD
|
||||
.setNewSetMethodsEnabled(enableNewSetMethods)
|
||||
.setArrayBufferTransferEnabled(enableArrayBufferTransfer)
|
||||
.setSymbolsAsWeakMapKeysEnabled(enableSymbolsAsWeakMapKeys)
|
||||
#endif
|
||||
;
|
||||
@ -12202,10 +12203,10 @@ bool SetContextOptions(JSContext* cx, const OptionParser& op) {
|
||||
enableArrayGrouping = !op.getBoolOption("disable-array-grouping");
|
||||
#ifdef NIGHTLY_BUILD
|
||||
enableNewSetMethods = op.getBoolOption("enable-new-set-methods");
|
||||
enableArrayBufferTransfer = op.getBoolOption("enable-arraybuffer-transfer");
|
||||
enableSymbolsAsWeakMapKeys =
|
||||
op.getBoolOption("enable-symbols-as-weakmap-keys");
|
||||
#endif
|
||||
enableArrayBufferTransfer = op.getBoolOption("enable-arraybuffer-transfer");
|
||||
enableImportAssertions = op.getBoolOption("enable-import-assertions");
|
||||
useFdlibmForSinCosTan = op.getBoolOption("use-fdlibm-for-sin-cos-tan");
|
||||
|
||||
|
@ -348,19 +348,15 @@ static const JSPropertySpec arraybuffer_properties[] = {
|
||||
|
||||
static const JSFunctionSpec arraybuffer_proto_functions[] = {
|
||||
JS_SELF_HOSTED_FN("slice", "ArrayBufferSlice", 2, 0),
|
||||
#ifdef NIGHTLY_BUILD
|
||||
JS_FN("transfer", ArrayBufferObject::transfer, 0, 0),
|
||||
JS_FN("transferToFixedLength", ArrayBufferObject::transferToFixedLength, 0,
|
||||
0),
|
||||
#endif
|
||||
JS_FS_END,
|
||||
};
|
||||
|
||||
static const JSPropertySpec arraybuffer_proto_properties[] = {
|
||||
JS_PSG("byteLength", ArrayBufferObject::byteLengthGetter, 0),
|
||||
#ifdef NIGHTLY_BUILD
|
||||
JS_PSG("detached", ArrayBufferObject::detachedGetter, 0),
|
||||
#endif
|
||||
JS_STRING_SYM_PS(toStringTag, "ArrayBuffer", JSPROP_READONLY),
|
||||
JS_PS_END,
|
||||
};
|
||||
@ -415,7 +411,6 @@ bool ArrayBufferObject::byteLengthGetter(JSContext* cx, unsigned argc,
|
||||
return CallNonGenericMethod<IsArrayBuffer, byteLengthGetterImpl>(cx, args);
|
||||
}
|
||||
|
||||
#ifdef NIGHTLY_BUILD
|
||||
/**
|
||||
* ArrayBufferCopyAndDetach ( arrayBuffer, newLength, preserveResizability )
|
||||
*
|
||||
@ -555,7 +550,6 @@ bool ArrayBufferObject::transferToFixedLength(JSContext* cx, unsigned argc,
|
||||
return CallNonGenericMethod<IsArrayBuffer, transferToFixedLengthImpl>(cx,
|
||||
args);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ArrayBuffer.isView(obj); ES6 (Dec 2013 draft) 24.1.3.1
|
||||
|
@ -786,9 +786,9 @@ static mozilla::Atomic<bool> sWellFormedUnicodeStringsEnabled(true);
|
||||
static mozilla::Atomic<bool> sArrayGroupingEnabled(false);
|
||||
#ifdef NIGHTLY_BUILD
|
||||
static mozilla::Atomic<bool> sNewSetMethodsEnabled(false);
|
||||
static mozilla::Atomic<bool> sArrayBufferTransferEnabled(false);
|
||||
static mozilla::Atomic<bool> sSymbolsAsWeakMapKeysEnabled(false);
|
||||
#endif
|
||||
static mozilla::Atomic<bool> sArrayBufferTransferEnabled(false);
|
||||
|
||||
static JS::WeakRefSpecifier GetWeakRefsEnabled() {
|
||||
if (!sWeakRefsEnabled) {
|
||||
@ -814,9 +814,9 @@ void xpc::SetPrefableRealmOptions(JS::RealmOptions& options) {
|
||||
.setShadowRealmsEnabled(sShadowRealmsEnabled)
|
||||
.setWellFormedUnicodeStringsEnabled(sWellFormedUnicodeStringsEnabled)
|
||||
.setArrayGroupingEnabled(sArrayGroupingEnabled)
|
||||
.setArrayBufferTransferEnabled(sArrayBufferTransferEnabled)
|
||||
#ifdef NIGHTLY_BUILD
|
||||
.setNewSetMethodsEnabled(sNewSetMethodsEnabled)
|
||||
.setArrayBufferTransferEnabled(sArrayBufferTransferEnabled)
|
||||
.setSymbolsAsWeakMapKeysEnabled(sSymbolsAsWeakMapKeysEnabled)
|
||||
#endif
|
||||
;
|
||||
@ -1023,11 +1023,11 @@ static void ReloadPrefsCallback(const char* pref, void* aXpccx) {
|
||||
Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.iterator_helpers");
|
||||
sNewSetMethodsEnabled =
|
||||
Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.new_set_methods");
|
||||
sArrayBufferTransferEnabled = Preferences::GetBool(
|
||||
JS_OPTIONS_DOT_STR "experimental.arraybuffer_transfer");
|
||||
sSymbolsAsWeakMapKeysEnabled = Preferences::GetBool(
|
||||
JS_OPTIONS_DOT_STR "experimental.symbols_as_weakmap_keys");
|
||||
#endif
|
||||
sArrayBufferTransferEnabled =
|
||||
Preferences::GetBool(JS_OPTIONS_DOT_STR "arraybuffer_transfer");
|
||||
|
||||
#ifdef JS_GC_ZEAL
|
||||
int32_t zeal = Preferences::GetInt(JS_OPTIONS_DOT_STR "gczeal", -1);
|
||||
|
@ -7512,19 +7512,19 @@
|
||||
value: false
|
||||
mirror: always
|
||||
|
||||
# Experimental support for ArrayBuffer.prototype.transfer{,ToFixedLength}() in JavaScript.
|
||||
- name: javascript.options.experimental.arraybuffer_transfer
|
||||
type: bool
|
||||
value: false
|
||||
mirror: always
|
||||
|
||||
# Experimental support for Symbols as WeakMap keys in JavaScript.
|
||||
# Experimental support for Symbols as WeakMap keys in JavaScript.
|
||||
- name: javascript.options.experimental.symbols_as_weakmap_keys
|
||||
type: bool
|
||||
value: false
|
||||
mirror: always
|
||||
#endif // NIGHTLY_BUILD
|
||||
|
||||
# Experimental support for ArrayBuffer.prototype.transfer{,ToFixedLength}() in JavaScript.
|
||||
- name: javascript.options.arraybuffer_transfer
|
||||
type: bool
|
||||
value: false
|
||||
mirror: always
|
||||
|
||||
#ifdef NIGHTLY_BUILD
|
||||
# Experimental support for Import Assertions in JavaScript.
|
||||
- name: javascript.options.experimental.import_assertions
|
||||
|
Loading…
x
Reference in New Issue
Block a user