Backed out 3 changesets (bug 1850755) for causing SM bustages complaing about xulRuntime.shell. CLOSED TREE

Backed out changeset 6c632ec74ee0 (bug 1850755)
Backed out changeset cd202b5a63ea (bug 1850755)
Backed out changeset a2d5b721e236 (bug 1850755)
This commit is contained in:
Butkovits Atila 2023-09-07 11:31:37 +03:00
parent 13854844cf
commit 104bd0f208
23 changed files with 61 additions and 27 deletions

View file

@ -204,6 +204,13 @@ class JS_PUBLIC_API RealmCreationOptions {
return *this; return *this;
} }
#ifdef NIGHTLY_BUILD
bool getArrayGroupingEnabled() const { return arrayGrouping_; }
RealmCreationOptions& setArrayGroupingEnabled(bool flag) {
arrayGrouping_ = flag;
return *this;
}
bool getWellFormedUnicodeStringsEnabled() const { bool getWellFormedUnicodeStringsEnabled() const {
return wellFormedUnicodeStrings_; return wellFormedUnicodeStrings_;
} }
@ -212,13 +219,6 @@ class JS_PUBLIC_API RealmCreationOptions {
return *this; return *this;
} }
#ifdef NIGHTLY_BUILD
bool getArrayGroupingEnabled() const { return arrayGrouping_; }
RealmCreationOptions& setArrayGroupingEnabled(bool flag) {
arrayGrouping_ = flag;
return *this;
}
bool getNewSetMethodsEnabled() const { return newSetMethods_; } bool getNewSetMethodsEnabled() const { return newSetMethods_; }
RealmCreationOptions& setNewSetMethodsEnabled(bool flag) { RealmCreationOptions& setNewSetMethodsEnabled(bool flag) {
newSetMethods_ = flag; newSetMethods_ = flag;
@ -292,10 +292,10 @@ class JS_PUBLIC_API RealmCreationOptions {
bool propertyErrorMessageFix_ = false; bool propertyErrorMessageFix_ = false;
bool iteratorHelpers_ = false; bool iteratorHelpers_ = false;
bool shadowRealms_ = false; bool shadowRealms_ = false;
// Pref for String.prototype.{is,to}WellFormed() methods.
bool wellFormedUnicodeStrings_ = true;
#ifdef NIGHTLY_BUILD #ifdef NIGHTLY_BUILD
bool arrayGrouping_ = false; bool arrayGrouping_ = false;
// Pref for String.prototype.{is,to}WellFormed() methods.
bool wellFormedUnicodeStrings_ = false;
// Pref for new Set.prototype methods. // Pref for new Set.prototype methods.
bool newSetMethods_ = false; bool newSetMethods_ = false;
// Pref for ArrayBuffer.prototype.transfer{,ToFixedLength}() methods. // Pref for ArrayBuffer.prototype.transfer{,ToFixedLength}() methods.

View file

@ -1562,6 +1562,7 @@ static bool str_normalize(JSContext* cx, unsigned argc, Value* vp) {
#endif // JS_HAS_INTL_API #endif // JS_HAS_INTL_API
#ifdef NIGHTLY_BUILD
/** /**
* IsStringWellFormedUnicode ( string ) * IsStringWellFormedUnicode ( string )
* https://tc39.es/ecma262/#sec-isstringwellformedunicode * https://tc39.es/ecma262/#sec-isstringwellformedunicode
@ -1692,6 +1693,8 @@ static const JSFunctionSpec wellFormed_functions[] = {
JS_FN("isWellFormed", str_isWellFormed, 0, 0), JS_FN("isWellFormed", str_isWellFormed, 0, 0),
JS_FN("toWellFormed", str_toWellFormed, 0, 0), JS_FS_END}; JS_FN("toWellFormed", str_toWellFormed, 0, 0), JS_FS_END};
#endif // NIGHTLY_BUILD
static bool str_charAt(JSContext* cx, unsigned argc, Value* vp) { static bool str_charAt(JSContext* cx, unsigned argc, Value* vp) {
AutoJSMethodProfilerEntry pseudoFrame(cx, "String.prototype", "charAt"); AutoJSMethodProfilerEntry pseudoFrame(cx, "String.prototype", "charAt");
CallArgs args = CallArgsFromVp(argc, vp); CallArgs args = CallArgsFromVp(argc, vp);
@ -4037,11 +4040,13 @@ static bool StringClassFinish(JSContext* cx, HandleObject ctor,
return false; return false;
} }
#ifdef NIGHTLY_BUILD
// Define isWellFormed/toWellFormed functions. // Define isWellFormed/toWellFormed functions.
if (cx->realm()->creationOptions().getWellFormedUnicodeStringsEnabled() && if (cx->realm()->creationOptions().getWellFormedUnicodeStringsEnabled() &&
!JS_DefineFunctions(cx, nativeProto, wellFormed_functions)) { !JS_DefineFunctions(cx, nativeProto, wellFormed_functions)) {
return false; return false;
} }
#endif
return true; return true;
} }

View file

@ -741,10 +741,10 @@ bool shell::enableToSource = false;
bool shell::enablePropertyErrorMessageFix = false; bool shell::enablePropertyErrorMessageFix = false;
bool shell::enableIteratorHelpers = false; bool shell::enableIteratorHelpers = false;
bool shell::enableShadowRealms = false; bool shell::enableShadowRealms = false;
// Pref for String.prototype.{is,to}WellFormed() methods.
bool shell::enableWellFormedUnicodeStrings = true;
#ifdef NIGHTLY_BUILD #ifdef NIGHTLY_BUILD
bool shell::enableArrayGrouping = false; bool shell::enableArrayGrouping = false;
// Pref for String.prototype.{is,to}WellFormed() methods.
bool shell::enableWellFormedUnicodeStrings = false;
// Pref for new Set.prototype methods. // Pref for new Set.prototype methods.
bool shell::enableNewSetMethods = false; bool shell::enableNewSetMethods = false;
// Pref for ArrayBuffer.prototype.transfer{,ToFixedLength}() methods. // Pref for ArrayBuffer.prototype.transfer{,ToFixedLength}() methods.
@ -4135,9 +4135,9 @@ static void SetStandardRealmOptions(JS::RealmOptions& options) {
.setPropertyErrorMessageFixEnabled(enablePropertyErrorMessageFix) .setPropertyErrorMessageFixEnabled(enablePropertyErrorMessageFix)
.setIteratorHelpersEnabled(enableIteratorHelpers) .setIteratorHelpersEnabled(enableIteratorHelpers)
.setShadowRealmsEnabled(enableShadowRealms) .setShadowRealmsEnabled(enableShadowRealms)
.setWellFormedUnicodeStringsEnabled(enableWellFormedUnicodeStrings)
#ifdef NIGHTLY_BUILD #ifdef NIGHTLY_BUILD
.setArrayGroupingEnabled(enableArrayGrouping) .setArrayGroupingEnabled(enableArrayGrouping)
.setWellFormedUnicodeStringsEnabled(enableWellFormedUnicodeStrings)
.setNewSetMethodsEnabled(enableNewSetMethods) .setNewSetMethodsEnabled(enableNewSetMethods)
.setArrayBufferTransferEnabled(enableArrayBufferTransfer) .setArrayBufferTransferEnabled(enableArrayBufferTransfer)
#endif #endif
@ -11640,9 +11640,9 @@ bool InitOptionParser(OptionParser& op) {
!op.addBoolOption('\0', "enable-shadow-realms", "Enable ShadowRealms") || !op.addBoolOption('\0', "enable-shadow-realms", "Enable ShadowRealms") ||
!op.addBoolOption('\0', "enable-array-grouping", !op.addBoolOption('\0', "enable-array-grouping",
"Enable Array.grouping") || "Enable Array.grouping") ||
!op.addBoolOption('\0', "disable-well-formed-unicode-strings", !op.addBoolOption('\0', "enable-well-formed-unicode-strings",
"Disable String.prototype.{is,to}WellFormed() methods" "Enable String.prototype.{is,to}WellFormed() methods"
"(Well-Formed Unicode Strings) (default: Enabled)") || "(Well-Formed Unicode Strings)") ||
!op.addBoolOption('\0', "enable-new-set-methods", !op.addBoolOption('\0', "enable-new-set-methods",
"Enable New Set methods") || "Enable New Set methods") ||
!op.addBoolOption('\0', "enable-arraybuffer-transfer", !op.addBoolOption('\0', "enable-arraybuffer-transfer",
@ -12152,10 +12152,10 @@ bool SetContextOptions(JSContext* cx, const OptionParser& op) {
!op.getBoolOption("disable-property-error-message-fix"); !op.getBoolOption("disable-property-error-message-fix");
enableIteratorHelpers = op.getBoolOption("enable-iterator-helpers"); enableIteratorHelpers = op.getBoolOption("enable-iterator-helpers");
enableShadowRealms = op.getBoolOption("enable-shadow-realms"); enableShadowRealms = op.getBoolOption("enable-shadow-realms");
enableWellFormedUnicodeStrings =
!op.getBoolOption("disable-well-formed-unicode-strings");
#ifdef NIGHTLY_BUILD #ifdef NIGHTLY_BUILD
enableArrayGrouping = op.getBoolOption("enable-array-grouping"); enableArrayGrouping = op.getBoolOption("enable-array-grouping");
enableWellFormedUnicodeStrings =
op.getBoolOption("enable-well-formed-unicode-strings");
enableNewSetMethods = op.getBoolOption("enable-new-set-methods"); enableNewSetMethods = op.getBoolOption("enable-new-set-methods");
enableArrayBufferTransfer = op.getBoolOption("enable-arraybuffer-transfer"); enableArrayBufferTransfer = op.getBoolOption("enable-arraybuffer-transfer");
#endif #endif

View file

@ -0,0 +1,9 @@
// Calling String.prototype.isWellFormed() or toWellFormed() should throw a
// TypeError when the pref "enable-well-formed-unicode-strings" is off.
//
// This test should be removed once the pref is turned on by default.
assertThrowsInstanceOf(() => "abc".isWellFormed(), TypeError)
assertThrowsInstanceOf(() => "abc".toWellFormed(), TypeError)
if (typeof reportCompare === "function")
reportCompare(0, 0);

View file

@ -39,6 +39,8 @@ FEATURE_CHECK_NEEDED = {
"WeakRef": "!this.hasOwnProperty('WeakRef')", "WeakRef": "!this.hasOwnProperty('WeakRef')",
"array-grouping": "!Object.groupBy", # Bug 1792650 "array-grouping": "!Object.groupBy", # Bug 1792650
"decorators": "!(this.hasOwnProperty('getBuildConfiguration')&&getBuildConfiguration()['decorators'])", # Bug 1435869 "decorators": "!(this.hasOwnProperty('getBuildConfiguration')&&getBuildConfiguration()['decorators'])", # Bug 1435869
"String.prototype.isWellFormed": "!String.prototype.isWellFormed",
"String.prototype.toWellFormed": "!String.prototype.toWellFormed",
"iterator-helpers": "!this.hasOwnProperty('Iterator')", # Bug 1568906 "iterator-helpers": "!this.hasOwnProperty('Iterator')", # Bug 1568906
"arraybuffer-transfer": "!ArrayBuffer.prototype.transfer", # Bug 1519163 "arraybuffer-transfer": "!ArrayBuffer.prototype.transfer", # Bug 1519163
} }
@ -47,6 +49,8 @@ SHELL_OPTIONS = {
"import-assertions": "--enable-import-assertions", "import-assertions": "--enable-import-assertions",
"ShadowRealm": "--enable-shadow-realms", "ShadowRealm": "--enable-shadow-realms",
"array-grouping": "--enable-array-grouping", "array-grouping": "--enable-array-grouping",
"String.prototype.isWellFormed": "--enable-well-formed-unicode-strings",
"String.prototype.toWellFormed": "--enable-well-formed-unicode-strings",
"iterator-helpers": "--enable-iterator-helpers", "iterator-helpers": "--enable-iterator-helpers",
"arraybuffer-transfer": "--enable-arraybuffer-transfer", "arraybuffer-transfer": "--enable-arraybuffer-transfer",
} }

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.isWellFormed||!xulRuntime.shell) -- String.prototype.isWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.isWellFormed||!xulRuntime.shell) -- String.prototype.isWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.isWellFormed||!xulRuntime.shell) -- String.prototype.isWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.isWellFormed||!xulRuntime.shell) -- String.prototype.isWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.isWellFormed||!xulRuntime.shell) -- String.prototype.isWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.isWellFormed||!xulRuntime.shell) -- String.prototype.isWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.isWellFormed||!xulRuntime.shell) -- String.prototype.isWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Igalia, S.L. All rights reserved. // Copyright (C) 2022 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.isWellFormed||!xulRuntime.shell) -- String.prototype.isWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.toWellFormed||!xulRuntime.shell) -- String.prototype.toWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.toWellFormed||!xulRuntime.shell) -- String.prototype.toWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.toWellFormed||!xulRuntime.shell) -- String.prototype.toWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.toWellFormed||!xulRuntime.shell) -- String.prototype.toWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.toWellFormed||!xulRuntime.shell) -- String.prototype.toWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.toWellFormed||!xulRuntime.shell) -- String.prototype.toWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.toWellFormed||!xulRuntime.shell) -- String.prototype.toWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Igalia, S.L. All rights reserved. // Copyright (C) 2022 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -1,3 +1,4 @@
// |reftest| shell-option(--enable-well-formed-unicode-strings) skip-if(!String.prototype.toWellFormed||!xulRuntime.shell) -- String.prototype.toWellFormed is not enabled unconditionally, requires shell-options
// Copyright (C) 2022 Jordan Harband. All rights reserved. // Copyright (C) 2022 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---

View file

@ -777,9 +777,9 @@ static mozilla::Atomic<bool> sWeakRefsEnabled(false);
static mozilla::Atomic<bool> sWeakRefsExposeCleanupSome(false); static mozilla::Atomic<bool> sWeakRefsExposeCleanupSome(false);
static mozilla::Atomic<bool> sIteratorHelpersEnabled(false); static mozilla::Atomic<bool> sIteratorHelpersEnabled(false);
static mozilla::Atomic<bool> sShadowRealmsEnabled(false); static mozilla::Atomic<bool> sShadowRealmsEnabled(false);
static mozilla::Atomic<bool> sWellFormedUnicodeStringsEnabled(true);
#ifdef NIGHTLY_BUILD #ifdef NIGHTLY_BUILD
static mozilla::Atomic<bool> sArrayGroupingEnabled(false); static mozilla::Atomic<bool> sArrayGroupingEnabled(false);
static mozilla::Atomic<bool> sWellFormedUnicodeStringsEnabled(false);
static mozilla::Atomic<bool> sNewSetMethodsEnabled(false); static mozilla::Atomic<bool> sNewSetMethodsEnabled(false);
static mozilla::Atomic<bool> sArrayBufferTransferEnabled(false); static mozilla::Atomic<bool> sArrayBufferTransferEnabled(false);
#endif #endif
@ -806,9 +806,9 @@ void xpc::SetPrefableRealmOptions(JS::RealmOptions& options) {
.setWeakRefsEnabled(GetWeakRefsEnabled()) .setWeakRefsEnabled(GetWeakRefsEnabled())
.setIteratorHelpersEnabled(sIteratorHelpersEnabled) .setIteratorHelpersEnabled(sIteratorHelpersEnabled)
.setShadowRealmsEnabled(sShadowRealmsEnabled) .setShadowRealmsEnabled(sShadowRealmsEnabled)
.setWellFormedUnicodeStringsEnabled(sWellFormedUnicodeStringsEnabled)
#ifdef NIGHTLY_BUILD #ifdef NIGHTLY_BUILD
.setArrayGroupingEnabled(sArrayGroupingEnabled) .setArrayGroupingEnabled(sArrayGroupingEnabled)
.setWellFormedUnicodeStringsEnabled(sWellFormedUnicodeStringsEnabled)
.setNewSetMethodsEnabled(sNewSetMethodsEnabled) .setNewSetMethodsEnabled(sNewSetMethodsEnabled)
.setArrayBufferTransferEnabled(sArrayBufferTransferEnabled) .setArrayBufferTransferEnabled(sArrayBufferTransferEnabled)
#endif #endif
@ -1007,13 +1007,13 @@ static void ReloadPrefsCallback(const char* pref, void* aXpccx) {
JS_OPTIONS_DOT_STR "experimental.weakrefs.expose_cleanupSome"); JS_OPTIONS_DOT_STR "experimental.weakrefs.expose_cleanupSome");
sShadowRealmsEnabled = sShadowRealmsEnabled =
Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.shadow_realms"); Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.shadow_realms");
sWellFormedUnicodeStringsEnabled =
Preferences::GetBool(JS_OPTIONS_DOT_STR "well_formed_unicode_strings");
#ifdef NIGHTLY_BUILD #ifdef NIGHTLY_BUILD
sIteratorHelpersEnabled = sIteratorHelpersEnabled =
Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.iterator_helpers"); Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.iterator_helpers");
sArrayGroupingEnabled = sArrayGroupingEnabled =
Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.array_grouping"); Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.array_grouping");
sWellFormedUnicodeStringsEnabled = Preferences::GetBool(
JS_OPTIONS_DOT_STR "experimental.well_formed_unicode_strings");
sNewSetMethodsEnabled = sNewSetMethodsEnabled =
Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.new_set_methods"); Preferences::GetBool(JS_OPTIONS_DOT_STR "experimental.new_set_methods");
sArrayBufferTransferEnabled = Preferences::GetBool( sArrayBufferTransferEnabled = Preferences::GetBool(

View file

@ -7456,12 +7456,6 @@
value: false value: false
mirror: always mirror: always
# Support for String.prototype.{is,to}WellFormed in JavaScript.
- name: javascript.options.well_formed_unicode_strings
type: bool
value: true
mirror: always
#ifdef NIGHTLY_BUILD #ifdef NIGHTLY_BUILD
# Experimental support for Iterator Helpers in JavaScript. # Experimental support for Iterator Helpers in JavaScript.
- name: javascript.options.experimental.iterator_helpers - name: javascript.options.experimental.iterator_helpers
@ -7475,6 +7469,12 @@
value: false value: false
mirror: always mirror: always
# Experimental support for String.prototype.{is,to}WellFormed in JavaScript.
- name: javascript.options.experimental.well_formed_unicode_strings
type: bool
value: false
mirror: always
# Experimental support for New Set methods # Experimental support for New Set methods
- name: javascript.options.experimental.new_set_methods - name: javascript.options.experimental.new_set_methods
type: bool type: bool