diff --git a/_submodules/TypeScript b/_submodules/TypeScript
index 35f3c599a5..0693cc72e6 160000
--- a/_submodules/TypeScript
+++ b/_submodules/TypeScript
@@ -1 +1 @@
-Subproject commit 35f3c599a5afefa325b377fab38c3bb6b13cbea5
+Subproject commit 0693cc72e6ddb6c7468a14e05888efa2f43ac7b0
diff --git a/internal/bundled/embed_generated.go b/internal/bundled/embed_generated.go
index 9c7fb11262..a39bcf2c87 100644
--- a/internal/bundled/embed_generated.go
+++ b/internal/bundled/embed_generated.go
@@ -51,6 +51,8 @@ var (
libs_lib_es2016_full_d_ts string
//go:embed libs/lib.es2016.intl.d.ts
libs_lib_es2016_intl_d_ts string
+ //go:embed libs/lib.es2017.arraybuffer.d.ts
+ libs_lib_es2017_arraybuffer_d_ts string
//go:embed libs/lib.es2017.d.ts
libs_lib_es2017_d_ts string
//go:embed libs/lib.es2017.date.d.ts
@@ -141,8 +143,6 @@ var (
libs_lib_es2022_object_d_ts string
//go:embed libs/lib.es2022.regexp.d.ts
libs_lib_es2022_regexp_d_ts string
- //go:embed libs/lib.es2022.sharedmemory.d.ts
- libs_lib_es2022_sharedmemory_d_ts string
//go:embed libs/lib.es2022.string.d.ts
libs_lib_es2022_string_d_ts string
//go:embed libs/lib.es2023.array.d.ts
@@ -155,6 +155,24 @@ var (
libs_lib_es2023_full_d_ts string
//go:embed libs/lib.es2023.intl.d.ts
libs_lib_es2023_intl_d_ts string
+ //go:embed libs/lib.es2024.arraybuffer.d.ts
+ libs_lib_es2024_arraybuffer_d_ts string
+ //go:embed libs/lib.es2024.collection.d.ts
+ libs_lib_es2024_collection_d_ts string
+ //go:embed libs/lib.es2024.d.ts
+ libs_lib_es2024_d_ts string
+ //go:embed libs/lib.es2024.full.d.ts
+ libs_lib_es2024_full_d_ts string
+ //go:embed libs/lib.es2024.object.d.ts
+ libs_lib_es2024_object_d_ts string
+ //go:embed libs/lib.es2024.promise.d.ts
+ libs_lib_es2024_promise_d_ts string
+ //go:embed libs/lib.es2024.regexp.d.ts
+ libs_lib_es2024_regexp_d_ts string
+ //go:embed libs/lib.es2024.sharedmemory.d.ts
+ libs_lib_es2024_sharedmemory_d_ts string
+ //go:embed libs/lib.es2024.string.d.ts
+ libs_lib_es2024_string_d_ts string
//go:embed libs/lib.es5.d.ts
libs_lib_es5_d_ts string
//go:embed libs/lib.es6.d.ts
@@ -175,14 +193,6 @@ var (
libs_lib_esnext_intl_d_ts string
//go:embed libs/lib.esnext.iterator.d.ts
libs_lib_esnext_iterator_d_ts string
- //go:embed libs/lib.esnext.object.d.ts
- libs_lib_esnext_object_d_ts string
- //go:embed libs/lib.esnext.promise.d.ts
- libs_lib_esnext_promise_d_ts string
- //go:embed libs/lib.esnext.regexp.d.ts
- libs_lib_esnext_regexp_d_ts string
- //go:embed libs/lib.esnext.string.d.ts
- libs_lib_esnext_string_d_ts string
//go:embed libs/lib.scripthost.d.ts
libs_lib_scripthost_d_ts string
//go:embed libs/lib.webworker.asynciterable.d.ts
@@ -216,6 +226,7 @@ var embeddedContents = map[string]string{
"libs/lib.es2016.d.ts": libs_lib_es2016_d_ts,
"libs/lib.es2016.full.d.ts": libs_lib_es2016_full_d_ts,
"libs/lib.es2016.intl.d.ts": libs_lib_es2016_intl_d_ts,
+ "libs/lib.es2017.arraybuffer.d.ts": libs_lib_es2017_arraybuffer_d_ts,
"libs/lib.es2017.d.ts": libs_lib_es2017_d_ts,
"libs/lib.es2017.date.d.ts": libs_lib_es2017_date_d_ts,
"libs/lib.es2017.full.d.ts": libs_lib_es2017_full_d_ts,
@@ -261,13 +272,21 @@ var embeddedContents = map[string]string{
"libs/lib.es2022.intl.d.ts": libs_lib_es2022_intl_d_ts,
"libs/lib.es2022.object.d.ts": libs_lib_es2022_object_d_ts,
"libs/lib.es2022.regexp.d.ts": libs_lib_es2022_regexp_d_ts,
- "libs/lib.es2022.sharedmemory.d.ts": libs_lib_es2022_sharedmemory_d_ts,
"libs/lib.es2022.string.d.ts": libs_lib_es2022_string_d_ts,
"libs/lib.es2023.array.d.ts": libs_lib_es2023_array_d_ts,
"libs/lib.es2023.collection.d.ts": libs_lib_es2023_collection_d_ts,
"libs/lib.es2023.d.ts": libs_lib_es2023_d_ts,
"libs/lib.es2023.full.d.ts": libs_lib_es2023_full_d_ts,
"libs/lib.es2023.intl.d.ts": libs_lib_es2023_intl_d_ts,
+ "libs/lib.es2024.arraybuffer.d.ts": libs_lib_es2024_arraybuffer_d_ts,
+ "libs/lib.es2024.collection.d.ts": libs_lib_es2024_collection_d_ts,
+ "libs/lib.es2024.d.ts": libs_lib_es2024_d_ts,
+ "libs/lib.es2024.full.d.ts": libs_lib_es2024_full_d_ts,
+ "libs/lib.es2024.object.d.ts": libs_lib_es2024_object_d_ts,
+ "libs/lib.es2024.promise.d.ts": libs_lib_es2024_promise_d_ts,
+ "libs/lib.es2024.regexp.d.ts": libs_lib_es2024_regexp_d_ts,
+ "libs/lib.es2024.sharedmemory.d.ts": libs_lib_es2024_sharedmemory_d_ts,
+ "libs/lib.es2024.string.d.ts": libs_lib_es2024_string_d_ts,
"libs/lib.es5.d.ts": libs_lib_es5_d_ts,
"libs/lib.es6.d.ts": libs_lib_es6_d_ts,
"libs/lib.esnext.array.d.ts": libs_lib_esnext_array_d_ts,
@@ -278,10 +297,6 @@ var embeddedContents = map[string]string{
"libs/lib.esnext.full.d.ts": libs_lib_esnext_full_d_ts,
"libs/lib.esnext.intl.d.ts": libs_lib_esnext_intl_d_ts,
"libs/lib.esnext.iterator.d.ts": libs_lib_esnext_iterator_d_ts,
- "libs/lib.esnext.object.d.ts": libs_lib_esnext_object_d_ts,
- "libs/lib.esnext.promise.d.ts": libs_lib_esnext_promise_d_ts,
- "libs/lib.esnext.regexp.d.ts": libs_lib_esnext_regexp_d_ts,
- "libs/lib.esnext.string.d.ts": libs_lib_esnext_string_d_ts,
"libs/lib.scripthost.d.ts": libs_lib_scripthost_d_ts,
"libs/lib.webworker.asynciterable.d.ts": libs_lib_webworker_asynciterable_d_ts,
"libs/lib.webworker.d.ts": libs_lib_webworker_d_ts,
@@ -310,6 +325,7 @@ var libsEntries = []fs.DirEntry{
&fileInfo{name: "lib.es2016.d.ts", size: int64(len(libs_lib_es2016_d_ts))},
&fileInfo{name: "lib.es2016.full.d.ts", size: int64(len(libs_lib_es2016_full_d_ts))},
&fileInfo{name: "lib.es2016.intl.d.ts", size: int64(len(libs_lib_es2016_intl_d_ts))},
+ &fileInfo{name: "lib.es2017.arraybuffer.d.ts", size: int64(len(libs_lib_es2017_arraybuffer_d_ts))},
&fileInfo{name: "lib.es2017.d.ts", size: int64(len(libs_lib_es2017_d_ts))},
&fileInfo{name: "lib.es2017.date.d.ts", size: int64(len(libs_lib_es2017_date_d_ts))},
&fileInfo{name: "lib.es2017.full.d.ts", size: int64(len(libs_lib_es2017_full_d_ts))},
@@ -355,13 +371,21 @@ var libsEntries = []fs.DirEntry{
&fileInfo{name: "lib.es2022.intl.d.ts", size: int64(len(libs_lib_es2022_intl_d_ts))},
&fileInfo{name: "lib.es2022.object.d.ts", size: int64(len(libs_lib_es2022_object_d_ts))},
&fileInfo{name: "lib.es2022.regexp.d.ts", size: int64(len(libs_lib_es2022_regexp_d_ts))},
- &fileInfo{name: "lib.es2022.sharedmemory.d.ts", size: int64(len(libs_lib_es2022_sharedmemory_d_ts))},
&fileInfo{name: "lib.es2022.string.d.ts", size: int64(len(libs_lib_es2022_string_d_ts))},
&fileInfo{name: "lib.es2023.array.d.ts", size: int64(len(libs_lib_es2023_array_d_ts))},
&fileInfo{name: "lib.es2023.collection.d.ts", size: int64(len(libs_lib_es2023_collection_d_ts))},
&fileInfo{name: "lib.es2023.d.ts", size: int64(len(libs_lib_es2023_d_ts))},
&fileInfo{name: "lib.es2023.full.d.ts", size: int64(len(libs_lib_es2023_full_d_ts))},
&fileInfo{name: "lib.es2023.intl.d.ts", size: int64(len(libs_lib_es2023_intl_d_ts))},
+ &fileInfo{name: "lib.es2024.arraybuffer.d.ts", size: int64(len(libs_lib_es2024_arraybuffer_d_ts))},
+ &fileInfo{name: "lib.es2024.collection.d.ts", size: int64(len(libs_lib_es2024_collection_d_ts))},
+ &fileInfo{name: "lib.es2024.d.ts", size: int64(len(libs_lib_es2024_d_ts))},
+ &fileInfo{name: "lib.es2024.full.d.ts", size: int64(len(libs_lib_es2024_full_d_ts))},
+ &fileInfo{name: "lib.es2024.object.d.ts", size: int64(len(libs_lib_es2024_object_d_ts))},
+ &fileInfo{name: "lib.es2024.promise.d.ts", size: int64(len(libs_lib_es2024_promise_d_ts))},
+ &fileInfo{name: "lib.es2024.regexp.d.ts", size: int64(len(libs_lib_es2024_regexp_d_ts))},
+ &fileInfo{name: "lib.es2024.sharedmemory.d.ts", size: int64(len(libs_lib_es2024_sharedmemory_d_ts))},
+ &fileInfo{name: "lib.es2024.string.d.ts", size: int64(len(libs_lib_es2024_string_d_ts))},
&fileInfo{name: "lib.es5.d.ts", size: int64(len(libs_lib_es5_d_ts))},
&fileInfo{name: "lib.es6.d.ts", size: int64(len(libs_lib_es6_d_ts))},
&fileInfo{name: "lib.esnext.array.d.ts", size: int64(len(libs_lib_esnext_array_d_ts))},
@@ -372,10 +396,6 @@ var libsEntries = []fs.DirEntry{
&fileInfo{name: "lib.esnext.full.d.ts", size: int64(len(libs_lib_esnext_full_d_ts))},
&fileInfo{name: "lib.esnext.intl.d.ts", size: int64(len(libs_lib_esnext_intl_d_ts))},
&fileInfo{name: "lib.esnext.iterator.d.ts", size: int64(len(libs_lib_esnext_iterator_d_ts))},
- &fileInfo{name: "lib.esnext.object.d.ts", size: int64(len(libs_lib_esnext_object_d_ts))},
- &fileInfo{name: "lib.esnext.promise.d.ts", size: int64(len(libs_lib_esnext_promise_d_ts))},
- &fileInfo{name: "lib.esnext.regexp.d.ts", size: int64(len(libs_lib_esnext_regexp_d_ts))},
- &fileInfo{name: "lib.esnext.string.d.ts", size: int64(len(libs_lib_esnext_string_d_ts))},
&fileInfo{name: "lib.scripthost.d.ts", size: int64(len(libs_lib_scripthost_d_ts))},
&fileInfo{name: "lib.webworker.asynciterable.d.ts", size: int64(len(libs_lib_webworker_asynciterable_d_ts))},
&fileInfo{name: "lib.webworker.d.ts", size: int64(len(libs_lib_webworker_d_ts))},
diff --git a/internal/bundled/libs/lib.es2016.intl.d.ts b/internal/bundled/libs/lib.es2016.intl.d.ts
index 7af6efc2b0..83ca380f0b 100644
--- a/internal/bundled/libs/lib.es2016.intl.d.ts
+++ b/internal/bundled/libs/lib.es2016.intl.d.ts
@@ -22,7 +22,7 @@ declare namespace Intl {
* the canonical locale names. Duplicates will be omitted and elements
* will be validated as structurally valid language tags.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales)
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales)
*
* @param locale A list of String values for which to get the canonical locale names
* @returns An array containing the canonical and validated locale names.
diff --git a/internal/bundled/libs/lib.es2017.arraybuffer.d.ts b/internal/bundled/libs/lib.es2017.arraybuffer.d.ts
new file mode 100644
index 0000000000..e2f00b8340
--- /dev/null
+++ b/internal/bundled/libs/lib.es2017.arraybuffer.d.ts
@@ -0,0 +1,21 @@
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+
+
+///
+
+interface ArrayBufferConstructor {
+ new (): ArrayBuffer;
+}
diff --git a/internal/bundled/libs/lib.es2017.d.ts b/internal/bundled/libs/lib.es2017.d.ts
index e0bd4eeb72..234a01f956 100644
--- a/internal/bundled/libs/lib.es2017.d.ts
+++ b/internal/bundled/libs/lib.es2017.d.ts
@@ -17,9 +17,10 @@ and limitations under the License.
///
///
+///
+///
+///
///
///
///
-///
///
-///
diff --git a/internal/bundled/libs/lib.es2017.sharedmemory.d.ts b/internal/bundled/libs/lib.es2017.sharedmemory.d.ts
index 5c7d784ebf..89b703982b 100644
--- a/internal/bundled/libs/lib.es2017.sharedmemory.d.ts
+++ b/internal/bundled/libs/lib.es2017.sharedmemory.d.ts
@@ -28,14 +28,14 @@ interface SharedArrayBuffer {
/**
* Returns a section of an SharedArrayBuffer.
*/
- slice(begin: number, end?: number): SharedArrayBuffer;
+ slice(begin?: number, end?: number): SharedArrayBuffer;
readonly [Symbol.species]: SharedArrayBuffer;
readonly [Symbol.toStringTag]: "SharedArrayBuffer";
}
interface SharedArrayBufferConstructor {
readonly prototype: SharedArrayBuffer;
- new (byteLength: number): SharedArrayBuffer;
+ new (byteLength?: number): SharedArrayBuffer;
}
declare var SharedArrayBuffer: SharedArrayBufferConstructor;
diff --git a/internal/bundled/libs/lib.es2020.bigint.d.ts b/internal/bundled/libs/lib.es2020.bigint.d.ts
index 0cb1630289..187772ec62 100644
--- a/internal/bundled/libs/lib.es2020.bigint.d.ts
+++ b/internal/bundled/libs/lib.es2020.bigint.d.ts
@@ -20,7 +20,7 @@ and limitations under the License.
interface BigIntToLocaleStringOptions {
/**
- * The locale matching algorithm to use.The default is "best fit". For information about this option, see the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation Intl page}.
+ * The locale matching algorithm to use.The default is "best fit". For information about this option, see the {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation Intl page}.
*/
localeMatcher?: string;
/**
diff --git a/internal/bundled/libs/lib.es2020.intl.d.ts b/internal/bundled/libs/lib.es2020.intl.d.ts
index 53cdacb69f..d78b640887 100644
--- a/internal/bundled/libs/lib.es2020.intl.d.ts
+++ b/internal/bundled/libs/lib.es2020.intl.d.ts
@@ -23,14 +23,14 @@ declare namespace Intl {
*
* For example: "fa", "es-MX", "zh-Hant-TW".
*
- * See [MDN - Intl - locales argument](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
+ * See [MDN - Intl - locales argument](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
*/
type UnicodeBCP47LocaleIdentifier = string;
/**
* Unit to use in the relative time internationalized message.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format#Parameters).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format#Parameters).
*/
type RelativeTimeFormatUnit =
| "year"
@@ -57,7 +57,7 @@ declare namespace Intl {
* but `formatToParts` only outputs singular (e.g. "day") not plural (e.g.
* "days").
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).
*/
type RelativeTimeFormatUnitSingular =
| "year"
@@ -79,21 +79,21 @@ declare namespace Intl {
/**
* The format of output message.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
*/
type RelativeTimeFormatNumeric = "always" | "auto";
/**
* The length of the internationalized message.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
*/
type RelativeTimeFormatStyle = "long" | "short" | "narrow";
/**
* The locale or locales to use
*
- * See [MDN - Intl - locales argument](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
+ * See [MDN - Intl - locales argument](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
*/
type LocalesArgument = UnicodeBCP47LocaleIdentifier | Locale | readonly (UnicodeBCP47LocaleIdentifier | Locale)[] | undefined;
@@ -101,7 +101,7 @@ declare namespace Intl {
* An object with some or all of properties of `options` parameter
* of `Intl.RelativeTimeFormat` constructor.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
*/
interface RelativeTimeFormatOptions {
/** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */
@@ -117,7 +117,7 @@ declare namespace Intl {
* and formatting options computed during initialization
* of the `Intl.RelativeTimeFormat` object
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions#Description).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions#Description).
*/
interface ResolvedRelativeTimeFormatOptions {
locale: UnicodeBCP47LocaleIdentifier;
@@ -130,7 +130,7 @@ declare namespace Intl {
* An object representing the relative time format in parts
* that can be used for custom locale-aware formatting.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).
*/
type RelativeTimeFormatPart =
| {
@@ -166,7 +166,7 @@ declare namespace Intl {
*
* @returns {string} Internationalized relative time message as string
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format).
*/
format(value: number, unit: RelativeTimeFormatUnit): string;
@@ -179,14 +179,14 @@ declare namespace Intl {
*
* @throws `RangeError` if `unit` was given something other than `unit` possible values
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts).
*/
formatToParts(value: number, unit: RelativeTimeFormatUnit): RelativeTimeFormatPart[];
/**
* Provides access to the locale and options computed during initialization of this `Intl.RelativeTimeFormat` object.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions).
*/
resolvedOptions(): ResolvedRelativeTimeFormatOptions;
}
@@ -195,22 +195,22 @@ declare namespace Intl {
* The [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)
* object is a constructor for objects that enable language-sensitive relative time formatting.
*
- * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat#Browser_compatibility).
+ * [Compatibility](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat#Browser_compatibility).
*/
const RelativeTimeFormat: {
/**
- * Creates [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) objects
+ * Creates [Intl.RelativeTimeFormat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) objects
*
* @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
* For the general form and interpretation of the locales argument,
- * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
+ * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
*
- * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)
+ * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)
* with some or all of options of `RelativeTimeFormatOptions`.
*
- * @returns [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) object.
+ * @returns [Intl.RelativeTimeFormat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) object.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).
*/
new (
locales?: LocalesArgument,
@@ -224,16 +224,16 @@ declare namespace Intl {
*
* @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
* For the general form and interpretation of the locales argument,
- * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
+ * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
*
- * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)
+ * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)
* with some or all of options of the formatting.
*
* @returns An array containing those of the provided locales
* that are supported in date and time formatting
* without having to fall back to the runtime's default locale.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf).
*/
supportedLocalesOf(
locales?: LocalesArgument,
@@ -336,18 +336,18 @@ declare namespace Intl {
}
/**
- * Constructor creates [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)
+ * Constructor creates [Intl.Locale](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)
* objects
*
* @param tag - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646).
* For the general form and interpretation of the locales argument,
- * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
+ * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
*
- * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/Locale#Parameters) with some or all of options of the locale.
+ * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/Locale#Parameters) with some or all of options of the locale.
*
- * @returns [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) object.
+ * @returns [Intl.Locale](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) object.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).
*/
const Locale: {
new (tag: UnicodeBCP47LocaleIdentifier | Locale, options?: LocaleOptions): Locale;
@@ -388,7 +388,7 @@ declare namespace Intl {
interface DisplayNames {
/**
* Receives a code and returns a string based on the locale and options provided when instantiating
- * [`Intl.DisplayNames()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)
+ * [`Intl.DisplayNames()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)
*
* @param code The `code` to provide depends on the `type` passed to display name during creation:
* - If the type is `"region"`, code should be either an [ISO-3166 two letters region code](https://www.iso.org/iso-3166-country-codes.html),
@@ -399,35 +399,35 @@ declare namespace Intl {
* `languageCode` is either a two letters ISO 639-1 language code or a three letters ISO 639-2 language code.
* - If the type is `"currency"`, code should be a [3-letter ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/of).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/of).
*/
of(code: string): string | undefined;
/**
* Returns a new object with properties reflecting the locale and style formatting options computed during the construction of the current
- * [`Intl/DisplayNames`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames) object.
+ * [`Intl/DisplayNames`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames) object.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/resolvedOptions).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/resolvedOptions).
*/
resolvedOptions(): ResolvedDisplayNamesOptions;
}
/**
- * The [`Intl.DisplayNames()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)
+ * The [`Intl.DisplayNames()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)
* object enables the consistent translation of language, region and script display names.
*
- * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility).
+ * [Compatibility](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility).
*/
const DisplayNames: {
prototype: DisplayNames;
/**
* @param locales A string with a BCP 47 language tag, or an array of such strings.
- * For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)
+ * For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)
* page.
*
* @param options An object for setting up a display name.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames).
*/
new (locales: LocalesArgument, options: DisplayNamesOptions): DisplayNames;
@@ -435,14 +435,14 @@ declare namespace Intl {
* Returns an array containing those of the provided locales that are supported in display names without having to fall back to the runtime's default locale.
*
* @param locales A string with a BCP 47 language tag, or an array of such strings.
- * For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)
+ * For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)
* page.
*
* @param options An object with a locale matcher.
*
* @returns An array of strings representing a subset of the given locale tags that are supported in display names without having to fall back to the runtime's default locale.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/supportedLocalesOf).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/supportedLocalesOf).
*/
supportedLocalesOf(locales?: LocalesArgument, options?: { localeMatcher?: RelativeTimeFormatLocaleMatcher; }): UnicodeBCP47LocaleIdentifier[];
};
diff --git a/internal/bundled/libs/lib.es2020.sharedmemory.d.ts b/internal/bundled/libs/lib.es2020.sharedmemory.d.ts
index c563ab8c5a..35641a6426 100644
--- a/internal/bundled/libs/lib.es2020.sharedmemory.d.ts
+++ b/internal/bundled/libs/lib.es2020.sharedmemory.d.ts
@@ -16,6 +16,8 @@ and limitations under the License.
///
+///
+
interface Atomics {
/**
* Adds a value to the value at the given position in the array, returning the original value.
diff --git a/internal/bundled/libs/lib.es2020.string.d.ts b/internal/bundled/libs/lib.es2020.string.d.ts
index cdb38e0d86..4c2a4ded06 100644
--- a/internal/bundled/libs/lib.es2020.string.d.ts
+++ b/internal/bundled/libs/lib.es2020.string.d.ts
@@ -16,6 +16,8 @@ and limitations under the License.
///
+///
+///
///
interface String {
diff --git a/internal/bundled/libs/lib.es2021.intl.d.ts b/internal/bundled/libs/lib.es2021.intl.d.ts
index ec90ad1b2c..a0fe4825e7 100644
--- a/internal/bundled/libs/lib.es2021.intl.d.ts
+++ b/internal/bundled/libs/lib.es2021.intl.d.ts
@@ -50,28 +50,28 @@ declare namespace Intl {
/**
* The locale matching algorithm to use.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
*/
type ListFormatLocaleMatcher = "lookup" | "best fit";
/**
* The format of output message.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
*/
type ListFormatType = "conjunction" | "disjunction" | "unit";
/**
* The length of the formatted message.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
*/
type ListFormatStyle = "long" | "short" | "narrow";
/**
* An object with some or all properties of the `Intl.ListFormat` constructor `options` parameter.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).
*/
interface ListFormatOptions {
/** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */
@@ -92,26 +92,26 @@ declare namespace Intl {
/**
* Returns a string with a language-specific representation of the list.
*
- * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array).
+ * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array).
*
* @throws `TypeError` if `list` includes something other than the possible values.
*
* @returns {string} A language-specific formatted string representing the elements of the list.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/format).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/format).
*/
format(list: Iterable): string;
/**
* Returns an Array of objects representing the different components that can be used to format a list of values in a locale-aware fashion.
*
- * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array), to be formatted according to a locale.
+ * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array), to be formatted according to a locale.
*
* @throws `TypeError` if `list` includes something other than the possible values.
*
* @returns {{ type: "element" | "literal", value: string; }[]} An Array of components which contains the formatted parts from the list.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/formatToParts).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/formatToParts).
*/
formatToParts(list: Iterable): { type: "element" | "literal"; value: string; }[];
@@ -120,7 +120,7 @@ declare namespace Intl {
* formatting options computed during the construction of the current
* `Intl.ListFormat` object.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/resolvedOptions).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/resolvedOptions).
*/
resolvedOptions(): ResolvedListFormatOptions;
}
@@ -129,19 +129,19 @@ declare namespace Intl {
prototype: ListFormat;
/**
- * Creates [Intl.ListFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) objects that
+ * Creates [Intl.ListFormat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) objects that
* enable language-sensitive list formatting.
*
* @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
* For the general form and interpretation of the `locales` argument,
- * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
+ * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
*
- * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters)
+ * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters)
* with some or all options of `ListFormatOptions`.
*
- * @returns [Intl.ListFormatOptions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) object.
+ * @returns [Intl.ListFormatOptions](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) object.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat).
*/
new (locales?: LocalesArgument, options?: ListFormatOptions): ListFormat;
@@ -151,15 +151,15 @@ declare namespace Intl {
*
* @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
* For the general form and interpretation of the `locales` argument,
- * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
+ * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
*
- * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf#parameters).
+ * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf#parameters).
* with some or all possible options.
*
* @returns An array of strings representing a subset of the given locale tags that are supported in list
* formatting without having to fall back to the runtime's default locale.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf).
*/
supportedLocalesOf(locales: LocalesArgument, options?: Pick): UnicodeBCP47LocaleIdentifier[];
};
diff --git a/internal/bundled/libs/lib.es2021.weakref.d.ts b/internal/bundled/libs/lib.es2021.weakref.d.ts
index 48e76265a2..9e03365a20 100644
--- a/internal/bundled/libs/lib.es2021.weakref.d.ts
+++ b/internal/bundled/libs/lib.es2021.weakref.d.ts
@@ -16,6 +16,8 @@ and limitations under the License.
///
+///
+
interface WeakRef {
readonly [Symbol.toStringTag]: "WeakRef";
diff --git a/internal/bundled/libs/lib.es2022.d.ts b/internal/bundled/libs/lib.es2022.d.ts
index 2ae78aba3f..ca7cc91ac9 100644
--- a/internal/bundled/libs/lib.es2022.d.ts
+++ b/internal/bundled/libs/lib.es2022.d.ts
@@ -21,6 +21,5 @@ and limitations under the License.
///
///
///
-///
-///
///
+///
diff --git a/internal/bundled/libs/lib.es2022.error.d.ts b/internal/bundled/libs/lib.es2022.error.d.ts
index 782c485e7c..5e02521b42 100644
--- a/internal/bundled/libs/lib.es2022.error.d.ts
+++ b/internal/bundled/libs/lib.es2022.error.d.ts
@@ -16,6 +16,8 @@ and limitations under the License.
///
+///
+
interface ErrorOptions {
cause?: unknown;
}
diff --git a/internal/bundled/libs/lib.es2022.intl.d.ts b/internal/bundled/libs/lib.es2022.intl.d.ts
index cd8eb11408..3f4a2ca1e4 100644
--- a/internal/bundled/libs/lib.es2022.intl.d.ts
+++ b/internal/bundled/libs/lib.es2022.intl.d.ts
@@ -20,7 +20,7 @@ declare namespace Intl {
/**
* An object with some or all properties of the `Intl.Segmenter` constructor `options` parameter.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)
*/
interface SegmenterOptions {
/** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */
@@ -84,14 +84,14 @@ declare namespace Intl {
*
* @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
* For the general form and interpretation of the `locales` argument,
- * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
+ * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
*
- * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)
+ * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)
* with some or all options of `SegmenterOptions`.
*
- * @returns [Intl.Segmenter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segments) object.
+ * @returns [Intl.Segmenter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segments) object.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter).
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter).
*/
new (locales?: LocalesArgument, options?: SegmenterOptions): Segmenter;
@@ -100,19 +100,19 @@ declare namespace Intl {
*
* @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
* For the general form and interpretation of the `locales` argument,
- * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
+ * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
*
- * @param options An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf#parameters).
+ * @param options An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf#parameters).
* with some or all possible options.
*
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf)
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf)
*/
supportedLocalesOf(locales: LocalesArgument, options?: Pick): UnicodeBCP47LocaleIdentifier[];
};
/**
* Returns a sorted array of the supported collation, calendar, currency, numbering system, timezones, and units by the implementation.
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/supportedValuesOf)
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/supportedValuesOf)
*
* @param key A string indicating the category of values to return.
* @returns A sorted array of the supported values.
diff --git a/internal/bundled/libs/lib.es2024.arraybuffer.d.ts b/internal/bundled/libs/lib.es2024.arraybuffer.d.ts
new file mode 100644
index 0000000000..2a5623d90c
--- /dev/null
+++ b/internal/bundled/libs/lib.es2024.arraybuffer.d.ts
@@ -0,0 +1,65 @@
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+
+
+///
+
+interface ArrayBuffer {
+ /**
+ * If this ArrayBuffer is resizable, returns the maximum byte length given during construction; returns the byte length if not.
+ *
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/maxByteLength)
+ */
+ get maxByteLength(): number;
+
+ /**
+ * Returns true if this ArrayBuffer can be resized.
+ *
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/resizable)
+ */
+ get resizable(): boolean;
+
+ /**
+ * Resizes the ArrayBuffer to the specified size (in bytes).
+ *
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/resize)
+ */
+ resize(newByteLength?: number): void;
+
+ /**
+ * Returns a boolean indicating whether or not this buffer has been detached (transferred).
+ *
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/detached)
+ */
+ get detached(): boolean;
+
+ /**
+ * Creates a new ArrayBuffer with the same byte content as this buffer, then detaches this buffer.
+ *
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transfer)
+ */
+ transfer(newByteLength?: number): ArrayBuffer;
+
+ /**
+ * Creates a new non-resizable ArrayBuffer with the same byte content as this buffer, then detaches this buffer.
+ *
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transferToFixedLength)
+ */
+ transferToFixedLength(newByteLength?: number): ArrayBuffer;
+}
+
+interface ArrayBufferConstructor {
+ new (byteLength: number, options?: { maxByteLength?: number; }): ArrayBuffer;
+}
diff --git a/internal/bundled/libs/lib.es2024.collection.d.ts b/internal/bundled/libs/lib.es2024.collection.d.ts
new file mode 100644
index 0000000000..a48fd93d5f
--- /dev/null
+++ b/internal/bundled/libs/lib.es2024.collection.d.ts
@@ -0,0 +1,29 @@
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+
+
+///
+
+interface MapConstructor {
+ /**
+ * Groups members of an iterable according to the return value of the passed callback.
+ * @param items An iterable.
+ * @param keySelector A callback which will be invoked for each item in items.
+ */
+ groupBy(
+ items: Iterable,
+ keySelector: (item: T, index: number) => K,
+ ): Map;
+}
diff --git a/internal/bundled/libs/lib.es2024.d.ts b/internal/bundled/libs/lib.es2024.d.ts
new file mode 100644
index 0000000000..44311afb00
--- /dev/null
+++ b/internal/bundled/libs/lib.es2024.d.ts
@@ -0,0 +1,26 @@
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+
+
+///
+
+///
+///
+///
+///
+///
+///
+///
+///
diff --git a/internal/bundled/libs/lib.es2024.full.d.ts b/internal/bundled/libs/lib.es2024.full.d.ts
new file mode 100644
index 0000000000..b8c6e74867
--- /dev/null
+++ b/internal/bundled/libs/lib.es2024.full.d.ts
@@ -0,0 +1,24 @@
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+
+
+///
+
+///
+///
+///
+///
+///
+///
diff --git a/internal/bundled/libs/lib.esnext.object.d.ts b/internal/bundled/libs/lib.es2024.object.d.ts
similarity index 100%
rename from internal/bundled/libs/lib.esnext.object.d.ts
rename to internal/bundled/libs/lib.es2024.object.d.ts
diff --git a/internal/bundled/libs/lib.esnext.promise.d.ts b/internal/bundled/libs/lib.es2024.promise.d.ts
similarity index 100%
rename from internal/bundled/libs/lib.esnext.promise.d.ts
rename to internal/bundled/libs/lib.es2024.promise.d.ts
diff --git a/internal/bundled/libs/lib.esnext.regexp.d.ts b/internal/bundled/libs/lib.es2024.regexp.d.ts
similarity index 100%
rename from internal/bundled/libs/lib.esnext.regexp.d.ts
rename to internal/bundled/libs/lib.es2024.regexp.d.ts
diff --git a/internal/bundled/libs/lib.es2022.sharedmemory.d.ts b/internal/bundled/libs/lib.es2024.sharedmemory.d.ts
similarity index 67%
rename from internal/bundled/libs/lib.es2022.sharedmemory.d.ts
rename to internal/bundled/libs/lib.es2024.sharedmemory.d.ts
index ea67b0081b..1d6bb455a9 100644
--- a/internal/bundled/libs/lib.es2022.sharedmemory.d.ts
+++ b/internal/bundled/libs/lib.es2024.sharedmemory.d.ts
@@ -16,6 +16,8 @@ and limitations under the License.
///
+///
+
interface Atomics {
/**
* A non-blocking, asynchronous version of wait which is usable on the main thread.
@@ -37,3 +39,30 @@ interface Atomics {
*/
waitAsync(typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; };
}
+
+interface SharedArrayBuffer {
+ /**
+ * Returns true if this SharedArrayBuffer can be grown.
+ *
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/growable)
+ */
+ get growable(): number;
+
+ /**
+ * If this SharedArrayBuffer is growable, returns the maximum byte length given during construction; returns the byte length if not.
+ *
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/maxByteLength)
+ */
+ get maxByteLength(): number;
+
+ /**
+ * Grows the SharedArrayBuffer to the specified size (in bytes).
+ *
+ * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/grow)
+ */
+ grow(newByteLength?: number): void;
+}
+
+interface SharedArrayBufferConstructor {
+ new (byteLength: number, options?: { maxByteLength?: number; }): SharedArrayBuffer;
+}
diff --git a/internal/bundled/libs/lib.esnext.string.d.ts b/internal/bundled/libs/lib.es2024.string.d.ts
similarity index 100%
rename from internal/bundled/libs/lib.esnext.string.d.ts
rename to internal/bundled/libs/lib.es2024.string.d.ts
diff --git a/internal/bundled/libs/lib.es5.d.ts b/internal/bundled/libs/lib.es5.d.ts
index c29d5acc7b..f0ff2f8656 100644
--- a/internal/bundled/libs/lib.es5.d.ts
+++ b/internal/bundled/libs/lib.es5.d.ts
@@ -1701,7 +1701,7 @@ interface ArrayBuffer {
/**
* Returns a section of an ArrayBuffer.
*/
- slice(begin: number, end?: number): ArrayBuffer;
+ slice(begin?: number, end?: number): ArrayBuffer;
}
/**
diff --git a/internal/bundled/libs/lib.esnext.collection.d.ts b/internal/bundled/libs/lib.esnext.collection.d.ts
index 1278a38f67..46b0b08951 100644
--- a/internal/bundled/libs/lib.esnext.collection.d.ts
+++ b/internal/bundled/libs/lib.esnext.collection.d.ts
@@ -16,17 +16,7 @@ and limitations under the License.
///
-interface MapConstructor {
- /**
- * Groups members of an iterable according to the return value of the passed callback.
- * @param items An iterable.
- * @param keySelector A callback which will be invoked for each item in items.
- */
- groupBy(
- items: Iterable,
- keySelector: (item: T, index: number) => K,
- ): Map;
-}
+///
interface ReadonlySetLike {
/**
diff --git a/internal/bundled/libs/lib.esnext.d.ts b/internal/bundled/libs/lib.esnext.d.ts
index e0217b6c60..37b5ea5ed6 100644
--- a/internal/bundled/libs/lib.esnext.d.ts
+++ b/internal/bundled/libs/lib.esnext.d.ts
@@ -16,14 +16,10 @@ and limitations under the License.
///
-///
+///
///
///
///
-///
-///
///
///
-///
-///
///
diff --git a/internal/bundled/libs_generated.go b/internal/bundled/libs_generated.go
index e232624310..79c5512b41 100644
--- a/internal/bundled/libs_generated.go
+++ b/internal/bundled/libs_generated.go
@@ -25,6 +25,7 @@ var LibNames = []string{
"lib.es2016.d.ts",
"lib.es2016.full.d.ts",
"lib.es2016.intl.d.ts",
+ "lib.es2017.arraybuffer.d.ts",
"lib.es2017.d.ts",
"lib.es2017.date.d.ts",
"lib.es2017.full.d.ts",
@@ -70,13 +71,21 @@ var LibNames = []string{
"lib.es2022.intl.d.ts",
"lib.es2022.object.d.ts",
"lib.es2022.regexp.d.ts",
- "lib.es2022.sharedmemory.d.ts",
"lib.es2022.string.d.ts",
"lib.es2023.array.d.ts",
"lib.es2023.collection.d.ts",
"lib.es2023.d.ts",
"lib.es2023.full.d.ts",
"lib.es2023.intl.d.ts",
+ "lib.es2024.arraybuffer.d.ts",
+ "lib.es2024.collection.d.ts",
+ "lib.es2024.d.ts",
+ "lib.es2024.full.d.ts",
+ "lib.es2024.object.d.ts",
+ "lib.es2024.promise.d.ts",
+ "lib.es2024.regexp.d.ts",
+ "lib.es2024.sharedmemory.d.ts",
+ "lib.es2024.string.d.ts",
"lib.es5.d.ts",
"lib.es6.d.ts",
"lib.esnext.array.d.ts",
@@ -87,10 +96,6 @@ var LibNames = []string{
"lib.esnext.full.d.ts",
"lib.esnext.intl.d.ts",
"lib.esnext.iterator.d.ts",
- "lib.esnext.object.d.ts",
- "lib.esnext.promise.d.ts",
- "lib.esnext.regexp.d.ts",
- "lib.esnext.string.d.ts",
"lib.scripthost.d.ts",
"lib.webworker.asynciterable.d.ts",
"lib.webworker.d.ts",
diff --git a/internal/checker/utilities.go b/internal/checker/utilities.go
index 0a69fd39f5..190b1f6073 100644
--- a/internal/checker/utilities.go
+++ b/internal/checker/utilities.go
@@ -1886,11 +1886,45 @@ var getFeatureMap = sync.OnceValue(func() map[string][]FeatureMapEntry {
"AsyncIterator": {
{lib: "es2015", props: []string{}},
},
+ "ArrayBuffer": {
+ {lib: "es2024", props: []string{
+ "maxByteLength",
+ "resizable",
+ "resize",
+ "detached",
+ "transfer",
+ "transferToFixedLength",
+ }},
+ },
"Atomics": {
- {lib: "es2017", props: []string{}},
+ {lib: "es2017", props: []string{
+ "add",
+ "and",
+ "compareExchange",
+ "exchange",
+ "isLockFree",
+ "load",
+ "or",
+ "store",
+ "sub",
+ "wait",
+ "notify",
+ "xor",
+ }},
+ {lib: "es2024", props: []string{
+ "waitAsync",
+ }},
},
"SharedArrayBuffer": {
- {lib: "es2017", props: []string{}},
+ {lib: "es2017", props: []string{
+ "byteLength",
+ "slice",
+ }},
+ {lib: "es2024", props: []string{
+ "growable",
+ "maxByteLength",
+ "grow",
+ }},
},
"AsyncIterable": {
{lib: "es2018", props: []string{}},
@@ -1907,6 +1941,7 @@ var getFeatureMap = sync.OnceValue(func() map[string][]FeatureMapEntry {
"RegExp": {
{lib: "es2015", props: []string{"flags", "sticky", "unicode"}},
{lib: "es2018", props: []string{"dotAll"}},
+ {lib: "es2024", props: []string{"unicodeSets"}},
},
"Reflect": {
{lib: "es2015", props: []string{"apply", "construct", "defineProperty", "deleteProperty", "get", "getOwnPropertyDescriptor", "getPrototypeOf", "has", "isExtensible", "ownKeys", "preventExtensions", "set", "setPrototypeOf"}},
@@ -1920,6 +1955,7 @@ var getFeatureMap = sync.OnceValue(func() map[string][]FeatureMapEntry {
{lib: "es2017", props: []string{"values", "entries", "getOwnPropertyDescriptors"}},
{lib: "es2019", props: []string{"fromEntries"}},
{lib: "es2022", props: []string{"hasOwn"}},
+ {lib: "es2024", props: []string{"groupBy"}},
},
"NumberConstructor": {
{lib: "es2015", props: []string{"isFinite", "isInteger", "isNaN", "isSafeInteger", "parseFloat", "parseInt"}},
@@ -1930,13 +1966,26 @@ var getFeatureMap = sync.OnceValue(func() map[string][]FeatureMapEntry {
"Map": {
{lib: "es2015", props: []string{"entries", "keys", "values"}},
},
+ "MapConstructor": {
+ {lib: "es2024", props: []string{"groupBy"}},
+ },
"Set": {
{lib: "es2015", props: []string{"entries", "keys", "values"}},
+ {lib: "esnext", props: []string{
+ "union",
+ "intersection",
+ "difference",
+ "symmetricDifference",
+ "isSubsetOf",
+ "isSupersetOf",
+ "isDisjointFrom",
+ }},
},
"PromiseConstructor": {
{lib: "es2015", props: []string{"all", "race", "reject", "resolve"}},
{lib: "es2020", props: []string{"allSettled"}},
{lib: "es2021", props: []string{"any"}},
+ {lib: "es2024", props: []string{"withResolvers"}},
},
"Symbol": {
{lib: "es2015", props: []string{"for", "keyFor"}},
@@ -1955,7 +2004,7 @@ var getFeatureMap = sync.OnceValue(func() map[string][]FeatureMapEntry {
{lib: "es2020", props: []string{"matchAll"}},
{lib: "es2021", props: []string{"replaceAll"}},
{lib: "es2022", props: []string{"at"}},
- {lib: "esnext", props: []string{"isWellFormed", "toWellFormed"}},
+ {lib: "es2024", props: []string{"isWellFormed", "toWellFormed"}},
},
"StringConstructor": {
{lib: "es2015", props: []string{"fromCodePoint", "raw"}},
@@ -1981,6 +2030,11 @@ var getFeatureMap = sync.OnceValue(func() map[string][]FeatureMapEntry {
},
"SymbolConstructor": {
{lib: "es2020", props: []string{"matchAll"}},
+ {lib: "esnext", props: []string{
+ "metadata",
+ "dispose",
+ "asyncDispose",
+ }},
},
"DataView": {
{lib: "es2020", props: []string{"setBigInt64", "setBigUint64", "getBigInt64", "getBigUint64"}},
diff --git a/internal/compiler/program_test.go b/internal/compiler/program_test.go
index 93b08faaab..aa5ebf177e 100644
--- a/internal/compiler/program_test.go
+++ b/internal/compiler/program_test.go
@@ -34,6 +34,7 @@ var esnextLibs = []string{
"lib.es2021.d.ts",
"lib.es2022.d.ts",
"lib.es2023.d.ts",
+ "lib.es2024.d.ts",
"lib.esnext.d.ts",
"lib.dom.d.ts",
"lib.dom.iterable.d.ts",
@@ -51,6 +52,7 @@ var esnextLibs = []string{
"lib.es2015.symbol.wellknown.d.ts",
"lib.es2016.array.include.d.ts",
"lib.es2016.intl.d.ts",
+ "lib.es2017.arraybuffer.d.ts",
"lib.es2017.date.d.ts",
"lib.es2017.object.d.ts",
"lib.es2017.sharedmemory.d.ts",
@@ -83,21 +85,23 @@ var esnextLibs = []string{
"lib.es2022.error.d.ts",
"lib.es2022.intl.d.ts",
"lib.es2022.object.d.ts",
- "lib.es2022.sharedmemory.d.ts",
"lib.es2022.string.d.ts",
"lib.es2022.regexp.d.ts",
"lib.es2023.array.d.ts",
"lib.es2023.collection.d.ts",
"lib.es2023.intl.d.ts",
+ "lib.es2024.arraybuffer.d.ts",
+ "lib.es2024.collection.d.ts",
+ "lib.es2024.object.d.ts",
+ "lib.es2024.promise.d.ts",
+ "lib.es2024.regexp.d.ts",
+ "lib.es2024.sharedmemory.d.ts",
+ "lib.es2024.string.d.ts",
"lib.esnext.array.d.ts",
"lib.esnext.collection.d.ts",
"lib.esnext.intl.d.ts",
"lib.esnext.disposable.d.ts",
- "lib.esnext.string.d.ts",
- "lib.esnext.promise.d.ts",
"lib.esnext.decorators.d.ts",
- "lib.esnext.object.d.ts",
- "lib.esnext.regexp.d.ts",
"lib.esnext.iterator.d.ts",
"lib.decorators.d.ts",
"lib.decorators.legacy.d.ts",
diff --git a/internal/core/compileroptions.go b/internal/core/compileroptions.go
index b6d91351bc..abd3294021 100644
--- a/internal/core/compileroptions.go
+++ b/internal/core/compileroptions.go
@@ -400,6 +400,7 @@ const (
ScriptTargetES2021 ScriptTarget = 8
ScriptTargetES2022 ScriptTarget = 9
ScriptTargetES2023 ScriptTarget = 10
+ ScriptTargetES2024 ScriptTarget = 11
ScriptTargetESNext ScriptTarget = 99
ScriptTargetJSON ScriptTarget = 100
ScriptTargetLatest ScriptTarget = ScriptTargetESNext
diff --git a/internal/core/compileroptions_stringer_generated.go b/internal/core/compileroptions_stringer_generated.go
index add7adb822..5f8705a9df 100644
--- a/internal/core/compileroptions_stringer_generated.go
+++ b/internal/core/compileroptions_stringer_generated.go
@@ -64,24 +64,25 @@ func _() {
_ = x[ScriptTargetES2021-8]
_ = x[ScriptTargetES2022-9]
_ = x[ScriptTargetES2023-10]
+ _ = x[ScriptTargetES2024-11]
_ = x[ScriptTargetESNext-99]
_ = x[ScriptTargetJSON-100]
_ = x[ScriptTargetLatest-99]
}
const (
- _ScriptTarget_name_0 = "ScriptTargetNoneScriptTargetES5ScriptTargetES2015ScriptTargetES2016ScriptTargetES2017ScriptTargetES2018ScriptTargetES2019ScriptTargetES2020ScriptTargetES2021ScriptTargetES2022ScriptTargetES2023"
+ _ScriptTarget_name_0 = "ScriptTargetNoneScriptTargetES5ScriptTargetES2015ScriptTargetES2016ScriptTargetES2017ScriptTargetES2018ScriptTargetES2019ScriptTargetES2020ScriptTargetES2021ScriptTargetES2022ScriptTargetES2023ScriptTargetES2024"
_ScriptTarget_name_1 = "ScriptTargetESNextScriptTargetJSON"
)
var (
- _ScriptTarget_index_0 = [...]uint8{0, 16, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193}
+ _ScriptTarget_index_0 = [...]uint8{0, 16, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211}
_ScriptTarget_index_1 = [...]uint8{0, 18, 34}
)
func (i ScriptTarget) String() string {
switch {
- case 0 <= i && i <= 10:
+ case 0 <= i && i <= 11:
return _ScriptTarget_name_0[_ScriptTarget_index_0[i]:_ScriptTarget_index_0[i+1]]
case 99 <= i && i <= 100:
i -= 99
diff --git a/internal/tsoptions/enummaps.go b/internal/tsoptions/enummaps.go
index 3720220b6b..8c960d806e 100644
--- a/internal/tsoptions/enummaps.go
+++ b/internal/tsoptions/enummaps.go
@@ -22,6 +22,7 @@ var libMap = collections.NewOrderedMapFromList([]collections.MapEntry[string, an
{Key: "es2021", Value: "lib.es2021.d.ts"},
{Key: "es2022", Value: "lib.es2022.d.ts"},
{Key: "es2023", Value: "lib.es2023.d.ts"},
+ {Key: "es2024", Value: "lib.es2024.d.ts"},
{Key: "esnext", Value: "lib.esnext.d.ts"},
// Host only
{Key: "dom", Value: "lib.dom.d.ts"},
@@ -44,6 +45,7 @@ var libMap = collections.NewOrderedMapFromList([]collections.MapEntry[string, an
{Key: "es2015.symbol.wellknown", Value: "lib.es2015.symbol.wellknown.d.ts"},
{Key: "es2016.array.include", Value: "lib.es2016.array.include.d.ts"},
{Key: "es2016.intl", Value: "lib.es2016.intl.d.ts"},
+ {Key: "es2017.arraybuffer", Value: "lib.es2017.arraybuffer.d.ts"},
{Key: "es2017.date", Value: "lib.es2017.date.d.ts"},
{Key: "es2017.object", Value: "lib.es2017.object.d.ts"},
{Key: "es2017.sharedmemory", Value: "lib.es2017.sharedmemory.d.ts"},
@@ -76,12 +78,18 @@ var libMap = collections.NewOrderedMapFromList([]collections.MapEntry[string, an
{Key: "es2022.error", Value: "lib.es2022.error.d.ts"},
{Key: "es2022.intl", Value: "lib.es2022.intl.d.ts"},
{Key: "es2022.object", Value: "lib.es2022.object.d.ts"},
- {Key: "es2022.sharedmemory", Value: "lib.es2022.sharedmemory.d.ts"},
{Key: "es2022.string", Value: "lib.es2022.string.d.ts"},
{Key: "es2022.regexp", Value: "lib.es2022.regexp.d.ts"},
{Key: "es2023.array", Value: "lib.es2023.array.d.ts"},
{Key: "es2023.collection", Value: "lib.es2023.collection.d.ts"},
{Key: "es2023.intl", Value: "lib.es2023.intl.d.ts"},
+ {Key: "es2024.arraybuffer", Value: "lib.es2024.arraybuffer.d.ts"},
+ {Key: "es2024.collection", Value: "lib.es2024.collection.d.ts"},
+ {Key: "es2024.object", Value: "lib.es2024.object.d.ts"},
+ {Key: "es2024.promise", Value: "lib.es2024.promise.d.ts"},
+ {Key: "es2024.regexp", Value: "lib.es2024.regexp.d.ts"},
+ {Key: "es2024.sharedmemory", Value: "lib.es2024.sharedmemory.d.ts"},
+ {Key: "es2024.string", Value: "lib.es2024.string.d.ts"},
{Key: "esnext.array", Value: "lib.es2023.array.d.ts"},
{Key: "esnext.collection", Value: "lib.esnext.collection.d.ts"},
{Key: "esnext.symbol", Value: "lib.es2019.symbol.d.ts"},
@@ -90,13 +98,13 @@ var libMap = collections.NewOrderedMapFromList([]collections.MapEntry[string, an
{Key: "esnext.disposable", Value: "lib.esnext.disposable.d.ts"},
{Key: "esnext.bigint", Value: "lib.es2020.bigint.d.ts"},
{Key: "esnext.string", Value: "lib.es2022.string.d.ts"},
- {Key: "esnext.promise", Value: "lib.esnext.promise.d.ts"},
+ {Key: "esnext.promise", Value: "lib.es2024.promise.d.ts"},
{Key: "esnext.weakref", Value: "lib.es2021.weakref.d.ts"},
{Key: "esnext.decorators", Value: "lib.esnext.decorators.d.ts"},
- {Key: "esnext.object", Value: "lib.esnext.object.d.ts"},
+ {Key: "esnext.object", Value: "lib.es2024.object.d.ts"},
{Key: "esnext.array", Value: "lib.esnext.array.d.ts"},
- {Key: "esnext.regexp", Value: "lib.esnext.regexp.d.ts"},
- {Key: "esnext.string", Value: "lib.esnext.string.d.ts"},
+ {Key: "esnext.regexp", Value: "lib.es2024.regexp.d.ts"},
+ {Key: "esnext.string", Value: "lib.es2024.string.d.ts"},
{Key: "esnext.iterator", Value: "lib.esnext.iterator.d.ts"},
{Key: "decorators", Value: "lib.decorators.d.ts"},
{Key: "decorators.legacy", Value: "lib.decorators.legacy.d.ts"},
@@ -142,7 +150,7 @@ var targetOptionMap = collections.NewOrderedMapFromList([]collections.MapEntry[s
{Key: "es2021", Value: core.ScriptTargetES2021},
{Key: "es2022", Value: core.ScriptTargetES2022},
{Key: "es2023", Value: core.ScriptTargetES2023},
- // {"es2024", string(core.ScriptTargetES2024},
+ {Key: "es2024", Value: core.ScriptTargetES2024},
{Key: "esnext", Value: core.ScriptTargetESNext},
})
@@ -183,6 +191,7 @@ var newLineOptionMap = collections.NewOrderedMapFromList([]collections.MapEntry[
var targetToLibMap = map[core.ScriptTarget]string{
core.ScriptTargetESNext: "lib.esnext.full.d.ts",
+ core.ScriptTargetES2024: "lib.es2024.full.d.ts",
core.ScriptTargetES2023: "lib.es2023.full.d.ts",
core.ScriptTargetES2022: "lib.es2022.full.d.ts",
core.ScriptTargetES2021: "lib.es2021.full.d.ts",
diff --git a/testdata/baselines/reference/config/tsconfigParsing/reports errors for wrong type option and invalid enum value with jsonSourceFile api.js b/testdata/baselines/reference/config/tsconfigParsing/reports errors for wrong type option and invalid enum value with jsonSourceFile api.js
index 10a64ebb70..9fabe67865 100644
--- a/testdata/baselines/reference/config/tsconfigParsing/reports errors for wrong type option and invalid enum value with jsonSourceFile api.js
+++ b/testdata/baselines/reference/config/tsconfigParsing/reports errors for wrong type option and invalid enum value with jsonSourceFile api.js
@@ -21,7 +21,7 @@ CompilerOptions::
FileNames::
/app.ts
Errors::
-[96mtsconfig.json[0m:[93m3[0m:[93m15[0m - [91merror[0m[90m TS6046: [0mArgument for '--target' option must be: 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'esnext'.
+[96mtsconfig.json[0m:[93m3[0m:[93m15[0m - [91merror[0m[90m TS6046: [0mArgument for '--target' option must be: 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'esnext'.
[7m3[0m "target": "invalid value",
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
diff --git a/testdata/baselines/reference/submodule/compiler/mapGroupBy.symbols b/testdata/baselines/reference/submodule/compiler/mapGroupBy.symbols
index 940e6bbb8e..a626373f79 100644
--- a/testdata/baselines/reference/submodule/compiler/mapGroupBy.symbols
+++ b/testdata/baselines/reference/submodule/compiler/mapGroupBy.symbols
@@ -3,17 +3,17 @@
=== mapGroupBy.ts ===
const basic = Map.groupBy([0, 2, 8], x => x < 5 ? 'small' : 'large');
>basic : Symbol(basic, Decl(mapGroupBy.ts, 0, 5))
->Map.groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+>Map.groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
->groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+>groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>x : Symbol(x, Decl(mapGroupBy.ts, 0, 36))
>x : Symbol(x, Decl(mapGroupBy.ts, 0, 36))
const chars = Map.groupBy('a string', c => c);
>chars : Symbol(chars, Decl(mapGroupBy.ts, 2, 5))
->Map.groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+>Map.groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
->groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+>groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>c : Symbol(c, Decl(mapGroupBy.ts, 2, 37))
>c : Symbol(c, Decl(mapGroupBy.ts, 2, 37))
@@ -30,9 +30,9 @@ const employees: Set = new Set();
const byRole = Map.groupBy(employees, x => x.role);
>byRole : Symbol(byRole, Decl(mapGroupBy.ts, 6, 5))
->Map.groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+>Map.groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
->groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+>groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>employees : Symbol(employees, Decl(mapGroupBy.ts, 5, 5))
>x : Symbol(x, Decl(mapGroupBy.ts, 6, 37))
>x.role : Symbol(role, Decl(mapGroupBy.ts, 4, 31))
@@ -41,9 +41,9 @@ const byRole = Map.groupBy(employees, x => x.role);
const byNonKey = Map.groupBy(employees, x => x);
>byNonKey : Symbol(byNonKey, Decl(mapGroupBy.ts, 8, 5))
->Map.groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+>Map.groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
->groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+>groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>employees : Symbol(employees, Decl(mapGroupBy.ts, 5, 5))
>x : Symbol(x, Decl(mapGroupBy.ts, 8, 39))
>x : Symbol(x, Decl(mapGroupBy.ts, 8, 39))
diff --git a/testdata/baselines/reference/submodule/compiler/mapGroupBy.symbols.diff b/testdata/baselines/reference/submodule/compiler/mapGroupBy.symbols.diff
index a1b0f8fe20..88bd79e9e7 100644
--- a/testdata/baselines/reference/submodule/compiler/mapGroupBy.symbols.diff
+++ b/testdata/baselines/reference/submodule/compiler/mapGroupBy.symbols.diff
@@ -4,21 +4,21 @@
=== mapGroupBy.ts ===
const basic = Map.groupBy([0, 2, 8], x => x < 5 ? 'small' : 'large');
>basic : Symbol(basic, Decl(mapGroupBy.ts, 0, 5))
-->Map.groupBy : Symbol(MapConstructor.groupBy, Decl(lib.esnext.collection.d.ts, --, --))
-+>Map.groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+->Map.groupBy : Symbol(MapConstructor.groupBy, Decl(lib.es2024.collection.d.ts, --, --))
++>Map.groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
-->groupBy : Symbol(MapConstructor.groupBy, Decl(lib.esnext.collection.d.ts, --, --))
-+>groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+->groupBy : Symbol(MapConstructor.groupBy, Decl(lib.es2024.collection.d.ts, --, --))
++>groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>x : Symbol(x, Decl(mapGroupBy.ts, 0, 36))
>x : Symbol(x, Decl(mapGroupBy.ts, 0, 36))
const chars = Map.groupBy('a string', c => c);
>chars : Symbol(chars, Decl(mapGroupBy.ts, 2, 5))
-->Map.groupBy : Symbol(MapConstructor.groupBy, Decl(lib.esnext.collection.d.ts, --, --))
-+>Map.groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+->Map.groupBy : Symbol(MapConstructor.groupBy, Decl(lib.es2024.collection.d.ts, --, --))
++>Map.groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
-->groupBy : Symbol(MapConstructor.groupBy, Decl(lib.esnext.collection.d.ts, --, --))
-+>groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+->groupBy : Symbol(MapConstructor.groupBy, Decl(lib.es2024.collection.d.ts, --, --))
++>groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>c : Symbol(c, Decl(mapGroupBy.ts, 2, 37))
>c : Symbol(c, Decl(mapGroupBy.ts, 2, 37))
@@ -26,11 +26,11 @@
const byRole = Map.groupBy(employees, x => x.role);
>byRole : Symbol(byRole, Decl(mapGroupBy.ts, 6, 5))
-->Map.groupBy : Symbol(MapConstructor.groupBy, Decl(lib.esnext.collection.d.ts, --, --))
-+>Map.groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+->Map.groupBy : Symbol(MapConstructor.groupBy, Decl(lib.es2024.collection.d.ts, --, --))
++>Map.groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
-->groupBy : Symbol(MapConstructor.groupBy, Decl(lib.esnext.collection.d.ts, --, --))
-+>groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+->groupBy : Symbol(MapConstructor.groupBy, Decl(lib.es2024.collection.d.ts, --, --))
++>groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>employees : Symbol(employees, Decl(mapGroupBy.ts, 5, 5))
>x : Symbol(x, Decl(mapGroupBy.ts, 6, 37))
>x.role : Symbol(role, Decl(mapGroupBy.ts, 4, 31))
@@ -38,11 +38,11 @@
const byNonKey = Map.groupBy(employees, x => x);
>byNonKey : Symbol(byNonKey, Decl(mapGroupBy.ts, 8, 5))
-->Map.groupBy : Symbol(MapConstructor.groupBy, Decl(lib.esnext.collection.d.ts, --, --))
-+>Map.groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+->Map.groupBy : Symbol(MapConstructor.groupBy, Decl(lib.es2024.collection.d.ts, --, --))
++>Map.groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
-->groupBy : Symbol(MapConstructor.groupBy, Decl(lib.esnext.collection.d.ts, --, --))
-+>groupBy : Symbol(groupBy, Decl(lib.esnext.collection.d.ts, --, --))
+->groupBy : Symbol(MapConstructor.groupBy, Decl(lib.es2024.collection.d.ts, --, --))
++>groupBy : Symbol(groupBy, Decl(lib.es2024.collection.d.ts, --, --))
>employees : Symbol(employees, Decl(mapGroupBy.ts, 5, 5))
>x : Symbol(x, Decl(mapGroupBy.ts, 8, 39))
>x : Symbol(x, Decl(mapGroupBy.ts, 8, 39))
diff --git a/testdata/baselines/reference/submodule/compiler/objectGroupBy.errors.txt b/testdata/baselines/reference/submodule/compiler/objectGroupBy.errors.txt
index b748dc72da..bc7d4049ec 100644
--- a/testdata/baselines/reference/submodule/compiler/objectGroupBy.errors.txt
+++ b/testdata/baselines/reference/submodule/compiler/objectGroupBy.errors.txt
@@ -13,5 +13,5 @@ objectGroupBy.ts(9,49): error TS2322: Type 'Employee' is not assignable to type
const byNonKey = Object.groupBy(employees, x => x);
~
!!! error TS2322: Type 'Employee' is not assignable to type 'PropertyKey'.
-!!! related TS6502 lib.esnext.object.d.ts:--:--: The expected type comes from the return type of this signature.
+!!! related TS6502 lib.es2024.object.d.ts:--:--: The expected type comes from the return type of this signature.
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/objectGroupBy.symbols b/testdata/baselines/reference/submodule/compiler/objectGroupBy.symbols
index dd02e4e6ef..ee924959b1 100644
--- a/testdata/baselines/reference/submodule/compiler/objectGroupBy.symbols
+++ b/testdata/baselines/reference/submodule/compiler/objectGroupBy.symbols
@@ -3,17 +3,17 @@
=== objectGroupBy.ts ===
const basic = Object.groupBy([0, 2, 8], x => x < 5 ? 'small' : 'large');
>basic : Symbol(basic, Decl(objectGroupBy.ts, 0, 5))
->Object.groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+>Object.groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
->groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+>groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>x : Symbol(x, Decl(objectGroupBy.ts, 0, 39))
>x : Symbol(x, Decl(objectGroupBy.ts, 0, 39))
const chars = Object.groupBy('a string', c => c);
>chars : Symbol(chars, Decl(objectGroupBy.ts, 2, 5))
->Object.groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+>Object.groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
->groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+>groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>c : Symbol(c, Decl(objectGroupBy.ts, 2, 40))
>c : Symbol(c, Decl(objectGroupBy.ts, 2, 40))
@@ -30,9 +30,9 @@ const employees: Set = new Set();
const byRole = Object.groupBy(employees, x => x.role);
>byRole : Symbol(byRole, Decl(objectGroupBy.ts, 6, 5))
->Object.groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+>Object.groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
->groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+>groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>employees : Symbol(employees, Decl(objectGroupBy.ts, 5, 5))
>x : Symbol(x, Decl(objectGroupBy.ts, 6, 40))
>x.role : Symbol(role, Decl(objectGroupBy.ts, 4, 31))
@@ -41,9 +41,9 @@ const byRole = Object.groupBy(employees, x => x.role);
const byNonKey = Object.groupBy(employees, x => x);
>byNonKey : Symbol(byNonKey, Decl(objectGroupBy.ts, 8, 5))
->Object.groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+>Object.groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
->groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+>groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>employees : Symbol(employees, Decl(objectGroupBy.ts, 5, 5))
>x : Symbol(x, Decl(objectGroupBy.ts, 8, 42))
>x : Symbol(x, Decl(objectGroupBy.ts, 8, 42))
diff --git a/testdata/baselines/reference/submodule/compiler/objectGroupBy.symbols.diff b/testdata/baselines/reference/submodule/compiler/objectGroupBy.symbols.diff
index 4d6be556e0..e1415f590b 100644
--- a/testdata/baselines/reference/submodule/compiler/objectGroupBy.symbols.diff
+++ b/testdata/baselines/reference/submodule/compiler/objectGroupBy.symbols.diff
@@ -4,21 +4,21 @@
=== objectGroupBy.ts ===
const basic = Object.groupBy([0, 2, 8], x => x < 5 ? 'small' : 'large');
>basic : Symbol(basic, Decl(objectGroupBy.ts, 0, 5))
-->Object.groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.esnext.object.d.ts, --, --))
-+>Object.groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+->Object.groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.es2024.object.d.ts, --, --))
++>Object.groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
-->groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.esnext.object.d.ts, --, --))
-+>groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+->groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.es2024.object.d.ts, --, --))
++>groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>x : Symbol(x, Decl(objectGroupBy.ts, 0, 39))
>x : Symbol(x, Decl(objectGroupBy.ts, 0, 39))
const chars = Object.groupBy('a string', c => c);
>chars : Symbol(chars, Decl(objectGroupBy.ts, 2, 5))
-->Object.groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.esnext.object.d.ts, --, --))
-+>Object.groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+->Object.groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.es2024.object.d.ts, --, --))
++>Object.groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
-->groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.esnext.object.d.ts, --, --))
-+>groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+->groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.es2024.object.d.ts, --, --))
++>groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>c : Symbol(c, Decl(objectGroupBy.ts, 2, 40))
>c : Symbol(c, Decl(objectGroupBy.ts, 2, 40))
@@ -26,11 +26,11 @@
const byRole = Object.groupBy(employees, x => x.role);
>byRole : Symbol(byRole, Decl(objectGroupBy.ts, 6, 5))
-->Object.groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.esnext.object.d.ts, --, --))
-+>Object.groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+->Object.groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.es2024.object.d.ts, --, --))
++>Object.groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
-->groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.esnext.object.d.ts, --, --))
-+>groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+->groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.es2024.object.d.ts, --, --))
++>groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>employees : Symbol(employees, Decl(objectGroupBy.ts, 5, 5))
>x : Symbol(x, Decl(objectGroupBy.ts, 6, 40))
>x.role : Symbol(role, Decl(objectGroupBy.ts, 4, 31))
@@ -38,11 +38,11 @@
const byNonKey = Object.groupBy(employees, x => x);
>byNonKey : Symbol(byNonKey, Decl(objectGroupBy.ts, 8, 5))
-->Object.groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.esnext.object.d.ts, --, --))
-+>Object.groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+->Object.groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.es2024.object.d.ts, --, --))
++>Object.groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
-->groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.esnext.object.d.ts, --, --))
-+>groupBy : Symbol(groupBy, Decl(lib.esnext.object.d.ts, --, --))
+->groupBy : Symbol(ObjectConstructor.groupBy, Decl(lib.es2024.object.d.ts, --, --))
++>groupBy : Symbol(groupBy, Decl(lib.es2024.object.d.ts, --, --))
>employees : Symbol(employees, Decl(objectGroupBy.ts, 5, 5))
>x : Symbol(x, Decl(objectGroupBy.ts, 8, 42))
>x : Symbol(x, Decl(objectGroupBy.ts, 8, 42))
diff --git a/testdata/baselines/reference/submodule/compiler/promiseWithResolvers.symbols b/testdata/baselines/reference/submodule/compiler/promiseWithResolvers.symbols
index 80c92d94f6..886ad8e294 100644
--- a/testdata/baselines/reference/submodule/compiler/promiseWithResolvers.symbols
+++ b/testdata/baselines/reference/submodule/compiler/promiseWithResolvers.symbols
@@ -8,8 +8,8 @@ const { promise, resolve, reject } = Promise.withResolvers();
>promise : Symbol(promise, Decl(promiseWithResolvers.ts, 1, 7))
>resolve : Symbol(resolve, Decl(promiseWithResolvers.ts, 1, 16))
>reject : Symbol(reject, Decl(promiseWithResolvers.ts, 1, 25))
->Promise.withResolvers : Symbol(withResolvers, Decl(lib.esnext.promise.d.ts, --, --))
+>Promise.withResolvers : Symbol(withResolvers, Decl(lib.es2024.promise.d.ts, --, --))
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --))
->withResolvers : Symbol(withResolvers, Decl(lib.esnext.promise.d.ts, --, --))
+>withResolvers : Symbol(withResolvers, Decl(lib.es2024.promise.d.ts, --, --))
>T : Symbol(T, Decl(promiseWithResolvers.ts, 0, 0))
diff --git a/testdata/baselines/reference/submodule/compiler/promiseWithResolvers.symbols.diff b/testdata/baselines/reference/submodule/compiler/promiseWithResolvers.symbols.diff
index 1b2287977c..95b3dac30a 100644
--- a/testdata/baselines/reference/submodule/compiler/promiseWithResolvers.symbols.diff
+++ b/testdata/baselines/reference/submodule/compiler/promiseWithResolvers.symbols.diff
@@ -4,10 +4,10 @@
>promise : Symbol(promise, Decl(promiseWithResolvers.ts, 1, 7))
>resolve : Symbol(resolve, Decl(promiseWithResolvers.ts, 1, 16))
>reject : Symbol(reject, Decl(promiseWithResolvers.ts, 1, 25))
-->Promise.withResolvers : Symbol(PromiseConstructor.withResolvers, Decl(lib.esnext.promise.d.ts, --, --))
-+>Promise.withResolvers : Symbol(withResolvers, Decl(lib.esnext.promise.d.ts, --, --))
+->Promise.withResolvers : Symbol(PromiseConstructor.withResolvers, Decl(lib.es2024.promise.d.ts, --, --))
++>Promise.withResolvers : Symbol(withResolvers, Decl(lib.es2024.promise.d.ts, --, --))
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --))
-->withResolvers : Symbol(PromiseConstructor.withResolvers, Decl(lib.esnext.promise.d.ts, --, --))
-+>withResolvers : Symbol(withResolvers, Decl(lib.esnext.promise.d.ts, --, --))
+->withResolvers : Symbol(PromiseConstructor.withResolvers, Decl(lib.es2024.promise.d.ts, --, --))
++>withResolvers : Symbol(withResolvers, Decl(lib.es2024.promise.d.ts, --, --))
>T : Symbol(T, Decl(promiseWithResolvers.ts, 0, 0))
diff --git a/testdata/baselines/reference/submodule/compiler/regExpWithOpenBracketInCharClass(target=es2015).errors.txt.diff b/testdata/baselines/reference/submodule/compiler/regExpWithOpenBracketInCharClass(target=es2015).errors.txt.diff
index 03ed84211a..5d6155a1bf 100644
--- a/testdata/baselines/reference/submodule/compiler/regExpWithOpenBracketInCharClass(target=es2015).errors.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/regExpWithOpenBracketInCharClass(target=es2015).errors.txt.diff
@@ -2,7 +2,7 @@
+++ new.regExpWithOpenBracketInCharClass(target=es2015).errors.txt
@@= skipped -0, +-1 lines =@@
-regExpWithOpenBracketInCharClass.ts(4,7): error TS1005: ']' expected.
--regExpWithOpenBracketInCharClass.ts(4,8): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regExpWithOpenBracketInCharClass.ts(4,8): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-
-
-==== regExpWithOpenBracketInCharClass.ts (2 errors) ====
@@ -13,7 +13,7 @@
-
-!!! error TS1005: ']' expected.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- ];
-
@@= skipped --1, +1 lines =@@
diff --git a/testdata/baselines/reference/submodule/compiler/regExpWithOpenBracketInCharClass(target=es5).errors.txt.diff b/testdata/baselines/reference/submodule/compiler/regExpWithOpenBracketInCharClass(target=es5).errors.txt.diff
index 5fd00fde2b..9185f38770 100644
--- a/testdata/baselines/reference/submodule/compiler/regExpWithOpenBracketInCharClass(target=es5).errors.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/regExpWithOpenBracketInCharClass(target=es5).errors.txt.diff
@@ -3,7 +3,7 @@
@@= skipped -0, +-1 lines =@@
-regExpWithOpenBracketInCharClass.ts(3,8): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
-regExpWithOpenBracketInCharClass.ts(4,7): error TS1005: ']' expected.
--regExpWithOpenBracketInCharClass.ts(4,8): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regExpWithOpenBracketInCharClass.ts(4,8): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-
-
-==== regExpWithOpenBracketInCharClass.ts (3 errors) ====
@@ -16,7 +16,7 @@
-
-!!! error TS1005: ']' expected.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- ];
-
@@= skipped --1, +1 lines =@@
diff --git a/testdata/baselines/reference/submodule/compiler/regularExpressionScanning(target=es2015).errors.txt.diff b/testdata/baselines/reference/submodule/compiler/regularExpressionScanning(target=es2015).errors.txt.diff
index 9309791011..ea240237f9 100644
--- a/testdata/baselines/reference/submodule/compiler/regularExpressionScanning(target=es2015).errors.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/regularExpressionScanning(target=es2015).errors.txt.diff
@@ -1,7 +1,7 @@
--- old.regularExpressionScanning(target=es2015).errors.txt
+++ new.regularExpressionScanning(target=es2015).errors.txt
@@= skipped -0, +-1 lines =@@
--regularExpressionScanning.ts(3,7): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(3,7): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(3,9): error TS1501: This regular expression flag is only available when targeting 'es2018' or later.
-regularExpressionScanning.ts(3,10): error TS1502: The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously.
-regularExpressionScanning.ts(3,11): error TS1499: Unknown regular expression flag.
@@ -75,7 +75,7 @@
-regularExpressionScanning.ts(21,62): error TS1529: Unknown Unicode property name or value.
-regularExpressionScanning.ts(22,28): error TS1529: Unknown Unicode property name or value.
-regularExpressionScanning.ts(22,62): error TS1529: Unknown Unicode property name or value.
--regularExpressionScanning.ts(22,72): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(22,72): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(23,3): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
-regularExpressionScanning.ts(23,6): error TS1524: Unknown Unicode property name.
-regularExpressionScanning.ts(23,28): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -111,7 +111,7 @@
-regularExpressionScanning.ts(25,57): error TS1531: '\P' must be followed by a Unicode property value expression enclosed in braces.
-regularExpressionScanning.ts(25,62): error TS1527: Expected a Unicode property name or value.
-regularExpressionScanning.ts(25,66): error TS1527: Expected a Unicode property name or value.
--regularExpressionScanning.ts(25,67): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(25,67): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(26,3): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
-regularExpressionScanning.ts(26,6): error TS1528: Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.
-regularExpressionScanning.ts(26,16): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -127,7 +127,7 @@
-regularExpressionScanning.ts(28,19): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(28,31): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(28,47): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(28,59): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(28,59): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(31,3): error TS1512: '\c' must be followed by an ASCII letter.
-regularExpressionScanning.ts(31,6): error TS1512: '\c' must be followed by an ASCII letter.
-regularExpressionScanning.ts(31,15): error TS1512: '\c' must be followed by an ASCII letter.
@@ -159,7 +159,7 @@
-regularExpressionScanning.ts(34,43): error TS1535: This character cannot be escaped in a regular expression.
-regularExpressionScanning.ts(34,45): error TS1508: Unexpected '{'. Did you mean to escape it with backslash?
-regularExpressionScanning.ts(34,46): error TS1005: '}' expected.
--regularExpressionScanning.ts(34,47): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(34,47): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(36,4): error TS1517: Range out of order in character class.
-regularExpressionScanning.ts(36,8): error TS1517: Range out of order in character class.
-regularExpressionScanning.ts(36,34): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -194,32 +194,32 @@
-regularExpressionScanning.ts(38,70): error TS1520: Expected a class set operand.
-regularExpressionScanning.ts(38,75): error TS1508: Unexpected '&'. Did you mean to escape it with backslash?
-regularExpressionScanning.ts(38,85): error TS1520: Expected a class set operand.
--regularExpressionScanning.ts(38,87): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(38,87): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(39,56): error TS1519: Operators must not be mixed within a character class. Wrap it in a nested class instead.
-regularExpressionScanning.ts(39,67): error TS1005: '&&' expected.
--regularExpressionScanning.ts(39,77): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
--regularExpressionScanning.ts(40,83): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(39,77): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
+-regularExpressionScanning.ts(40,83): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(41,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(41,30): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(41,83): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(41,83): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(42,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(42,28): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(42,53): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(42,77): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
--regularExpressionScanning.ts(43,95): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(42,77): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
+-regularExpressionScanning.ts(43,95): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(44,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(44,34): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(44,95): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(44,95): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(45,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(45,32): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(45,61): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(45,89): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(45,89): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(46,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(46,79): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(46,91): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(46,91): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(47,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(47,89): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-
-
-==== regularExpressionScanning.ts (219 errors) ====
@@ -227,7 +227,7 @@
- // Flags
- /foo/visualstudiocode,
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- ~
-!!! error TS1501: This regular expression flag is only available when targeting 'es2018' or later.
- ~
@@ -394,7 +394,7 @@
- ~~~~~~~
-!!! error TS1529: Unknown Unicode property name or value.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /\p{InvalidProperty=Value}\p{=}\p{sc=}\P{=foo}[\p{}\p\\\P\P{]\p{/,
- ~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -469,7 +469,7 @@
-
-!!! error TS1527: Expected a Unicode property name or value.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /\p{RGI_Emoji}\P{RGI_Emoji}[^\p{RGI_Emoji}\P{RGI_Emoji}]/,
- ~~~~~~~~~~~~~
-!!! error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -504,7 +504,7 @@
- ~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- // Character escapes
- /\c[\c0\ca\cQ\c\C]\c1\C/,
- /\c[\c0\ca\cQ\c\C]\c1\C/u,
@@ -574,7 +574,7 @@
-
-!!! error TS1005: '}' expected.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- // Unicode sets notation
- /[a--b[--][\d++[]]&&[[&0-9--]&&[\p{L}]--\P{L}-_-]]&&&\q{foo}[0---9][&&q&&&\q{bar}&&]/,
- ~~~
@@ -648,24 +648,24 @@
-
-!!! error TS1520: Expected a class set operand.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[[^\P{Decimal_Number}&&[0-9]]&&\p{L}&&\p{ID_Continue}--\p{ASCII}\p{CWCF}]/v,
- ~~
-!!! error TS1519: Operators must not be mixed within a character class. Wrap it in a nested class instead.
-
-!!! error TS1005: '&&' expected.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\p{Emoji}\p{RGI_Emoji}][^\p{Emoji}--\p{RGI_Emoji}][^\p{Emoji}&&\p{RGI_Emoji}]/v,
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\p{RGI_Emoji}\p{Emoji}][^\p{RGI_Emoji}--\p{Emoji}][^\p{RGI_Emoji}&&\p{Emoji}]/v,
- ~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\p{RGI_Emoji}\q{foo}][^\p{RGI_Emoji}--\q{foo}][^\p{RGI_Emoji}&&\q{foo}]/v,
- ~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
@@ -674,17 +674,17 @@
- ~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\p{Emoji}[[\p{RGI_Emoji}]]][^\p{Emoji}--[[\p{RGI_Emoji}]]][^\p{Emoji}&&[[\p{RGI_Emoji}]]]/v,
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^[[\p{RGI_Emoji}]]\p{Emoji}][^[[\p{RGI_Emoji}]]--\p{Emoji}][^[[\p{RGI_Emoji}]]&&\p{Emoji}]/v,
- ~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^[[\p{RGI_Emoji}]]\q{foo}][^[[\p{RGI_Emoji}]]--\q{foo}][^[[\p{RGI_Emoji}]]&&\q{foo}]/v,
- ~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
@@ -693,21 +693,21 @@
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\q{foo|bar|baz}--\q{foo}--\q{bar}--\q{baz}][^\p{L}--\q{foo}--[\q{bar}]--[^[\q{baz}]]]/v,
- ~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^[[\q{foo|bar|baz}]]--\q{foo}--\q{bar}--\q{baz}][^[^[^\p{L}]]--\q{foo}--[\q{bar}]--[^[\q{baz}]]]/v,
- ~~~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- ];
-
@@= skipped --1, +1 lines =@@
diff --git a/testdata/baselines/reference/submodule/compiler/regularExpressionScanning(target=es5).errors.txt.diff b/testdata/baselines/reference/submodule/compiler/regularExpressionScanning(target=es5).errors.txt.diff
index a0b3226637..1e1a3ff839 100644
--- a/testdata/baselines/reference/submodule/compiler/regularExpressionScanning(target=es5).errors.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/regularExpressionScanning(target=es5).errors.txt.diff
@@ -1,7 +1,7 @@
--- old.regularExpressionScanning(target=es5).errors.txt
+++ new.regularExpressionScanning(target=es5).errors.txt
@@= skipped -0, +-1 lines =@@
--regularExpressionScanning.ts(3,7): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(3,7): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(3,9): error TS1501: This regular expression flag is only available when targeting 'es2018' or later.
-regularExpressionScanning.ts(3,10): error TS1502: The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously.
-regularExpressionScanning.ts(3,11): error TS1499: Unknown regular expression flag.
@@ -77,7 +77,7 @@
-regularExpressionScanning.ts(21,72): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
-regularExpressionScanning.ts(22,28): error TS1529: Unknown Unicode property name or value.
-regularExpressionScanning.ts(22,62): error TS1529: Unknown Unicode property name or value.
--regularExpressionScanning.ts(22,72): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(22,72): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(23,3): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
-regularExpressionScanning.ts(23,6): error TS1524: Unknown Unicode property name.
-regularExpressionScanning.ts(23,28): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -114,7 +114,7 @@
-regularExpressionScanning.ts(25,57): error TS1531: '\P' must be followed by a Unicode property value expression enclosed in braces.
-regularExpressionScanning.ts(25,62): error TS1527: Expected a Unicode property name or value.
-regularExpressionScanning.ts(25,66): error TS1527: Expected a Unicode property name or value.
--regularExpressionScanning.ts(25,67): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(25,67): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(26,3): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
-regularExpressionScanning.ts(26,6): error TS1528: Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.
-regularExpressionScanning.ts(26,16): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -131,7 +131,7 @@
-regularExpressionScanning.ts(28,19): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(28,31): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(28,47): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(28,59): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(28,59): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(31,3): error TS1512: '\c' must be followed by an ASCII letter.
-regularExpressionScanning.ts(31,6): error TS1512: '\c' must be followed by an ASCII letter.
-regularExpressionScanning.ts(31,15): error TS1512: '\c' must be followed by an ASCII letter.
@@ -165,7 +165,7 @@
-regularExpressionScanning.ts(34,43): error TS1535: This character cannot be escaped in a regular expression.
-regularExpressionScanning.ts(34,45): error TS1508: Unexpected '{'. Did you mean to escape it with backslash?
-regularExpressionScanning.ts(34,46): error TS1005: '}' expected.
--regularExpressionScanning.ts(34,47): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(34,47): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(36,4): error TS1517: Range out of order in character class.
-regularExpressionScanning.ts(36,8): error TS1517: Range out of order in character class.
-regularExpressionScanning.ts(36,34): error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -201,32 +201,32 @@
-regularExpressionScanning.ts(38,70): error TS1520: Expected a class set operand.
-regularExpressionScanning.ts(38,75): error TS1508: Unexpected '&'. Did you mean to escape it with backslash?
-regularExpressionScanning.ts(38,85): error TS1520: Expected a class set operand.
--regularExpressionScanning.ts(38,87): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(38,87): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(39,56): error TS1519: Operators must not be mixed within a character class. Wrap it in a nested class instead.
-regularExpressionScanning.ts(39,67): error TS1005: '&&' expected.
--regularExpressionScanning.ts(39,77): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
--regularExpressionScanning.ts(40,83): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(39,77): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
+-regularExpressionScanning.ts(40,83): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(41,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(41,30): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(41,83): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(41,83): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(42,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(42,28): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(42,53): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(42,77): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
--regularExpressionScanning.ts(43,95): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(42,77): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
+-regularExpressionScanning.ts(43,95): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(44,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(44,34): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(44,95): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(44,95): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(45,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(45,32): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(45,61): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(45,89): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(45,89): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(46,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(46,79): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(46,91): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(46,91): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-regularExpressionScanning.ts(47,5): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
-regularExpressionScanning.ts(47,89): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
--regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
-
-
-==== regularExpressionScanning.ts (226 errors) ====
@@ -234,7 +234,7 @@
- // Flags
- /foo/visualstudiocode,
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- ~
-!!! error TS1501: This regular expression flag is only available when targeting 'es2018' or later.
- ~
@@ -405,7 +405,7 @@
- ~~~~~~~
-!!! error TS1529: Unknown Unicode property name or value.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /\p{InvalidProperty=Value}\p{=}\p{sc=}\P{=foo}[\p{}\p\\\P\P{]\p{/,
- ~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -482,7 +482,7 @@
-
-!!! error TS1527: Expected a Unicode property name or value.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /\p{RGI_Emoji}\P{RGI_Emoji}[^\p{RGI_Emoji}\P{RGI_Emoji}]/,
- ~~~~~~~~~~~~~
-!!! error TS1530: Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.
@@ -519,7 +519,7 @@
- ~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- // Character escapes
- /\c[\c0\ca\cQ\c\C]\c1\C/,
- /\c[\c0\ca\cQ\c\C]\c1\C/u,
@@ -593,7 +593,7 @@
-
-!!! error TS1005: '}' expected.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- // Unicode sets notation
- /[a--b[--][\d++[]]&&[[&0-9--]&&[\p{L}]--\P{L}-_-]]&&&\q{foo}[0---9][&&q&&&\q{bar}&&]/,
- ~~~
@@ -669,24 +669,24 @@
-
-!!! error TS1520: Expected a class set operand.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[[^\P{Decimal_Number}&&[0-9]]&&\p{L}&&\p{ID_Continue}--\p{ASCII}\p{CWCF}]/v,
- ~~
-!!! error TS1519: Operators must not be mixed within a character class. Wrap it in a nested class instead.
-
-!!! error TS1005: '&&' expected.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\p{Emoji}\p{RGI_Emoji}][^\p{Emoji}--\p{RGI_Emoji}][^\p{Emoji}&&\p{RGI_Emoji}]/v,
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\p{RGI_Emoji}\p{Emoji}][^\p{RGI_Emoji}--\p{Emoji}][^\p{RGI_Emoji}&&\p{Emoji}]/v,
- ~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\p{RGI_Emoji}\q{foo}][^\p{RGI_Emoji}--\q{foo}][^\p{RGI_Emoji}&&\q{foo}]/v,
- ~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
@@ -695,17 +695,17 @@
- ~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\p{Emoji}[[\p{RGI_Emoji}]]][^\p{Emoji}--[[\p{RGI_Emoji}]]][^\p{Emoji}&&[[\p{RGI_Emoji}]]]/v,
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^[[\p{RGI_Emoji}]]\p{Emoji}][^[[\p{RGI_Emoji}]]--\p{Emoji}][^[[\p{RGI_Emoji}]]&&\p{Emoji}]/v,
- ~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^[[\p{RGI_Emoji}]]\q{foo}][^[[\p{RGI_Emoji}]]--\q{foo}][^[[\p{RGI_Emoji}]]&&\q{foo}]/v,
- ~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
@@ -714,21 +714,21 @@
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^\q{foo|bar|baz}--\q{foo}--\q{bar}--\q{baz}][^\p{L}--\q{foo}--[\q{bar}]--[^[\q{baz}]]]/v,
- ~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- /[^[[\q{foo|bar|baz}]]--\q{foo}--\q{bar}--\q{baz}][^[^[^\p{L}]]--\q{foo}--[\q{bar}]--[^[\q{baz}]]]/v,
- ~~~~~~~~~~~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~~~~~~~~~
-!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
- ~
--!!! error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
+-!!! error TS1501: This regular expression flag is only available when targeting 'es2024' or later.
- ];
-
@@= skipped --1, +1 lines =@@
diff --git a/testdata/baselines/reference/submodule/conformance/callChainWithSuper(target=es2024).js b/testdata/baselines/reference/submodule/conformance/callChainWithSuper(target=es2024).js
new file mode 100644
index 0000000000..425949dba5
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/callChainWithSuper(target=es2024).js
@@ -0,0 +1,19 @@
+//// [tests/cases/conformance/expressions/optionalChaining/callChain/callChainWithSuper.ts] ////
+
+//// [callChainWithSuper.ts]
+// GH#34952
+class Base { method?() {} }
+class Derived extends Base {
+ method1() { return super.method?.(); }
+ method2() { return super["method"]?.(); }
+}
+
+//// [callChainWithSuper.js]
+// GH#34952
+class Base {
+ method() { }
+}
+class Derived extends Base {
+ method1() { return super.method?.(); }
+ method2() { return super["method"]?.(); }
+}
diff --git a/testdata/baselines/reference/submodule/conformance/callChainWithSuper(target=es2024).js.diff b/testdata/baselines/reference/submodule/conformance/callChainWithSuper(target=es2024).js.diff
new file mode 100644
index 0000000000..f1cd42e0f3
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/callChainWithSuper(target=es2024).js.diff
@@ -0,0 +1,10 @@
+--- old.callChainWithSuper(target=es2024).js
++++ new.callChainWithSuper(target=es2024).js
+@@= skipped -8, +8 lines =@@
+ }
+
+ //// [callChainWithSuper.js]
+-"use strict";
+ // GH#34952
+ class Base {
+ method() { }
diff --git a/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.errors.txt b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.errors.txt
new file mode 100644
index 0000000000..387a82707a
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.errors.txt
@@ -0,0 +1,31 @@
+es2024SharedMemory.ts(10,34): error TS2550: Property 'waitAsync' does not exist on type 'Atomics'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2024' or later.
+es2024SharedMemory.ts(11,52): error TS2550: Property 'waitAsync' does not exist on type 'Atomics'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2024' or later.
+
+
+==== es2024SharedMemory.ts (2 errors) ====
+ // ES2024 Atomics.waitAsync was included in the ES2022 type file due to a mistake.
+ // This test file checks if it fails successfully.
+ // https://github.com/microsoft/TypeScript/pull/58573#issuecomment-2119347142
+
+ const sab = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 1024);
+ const int32 = new Int32Array(sab);
+ const sab64 = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 1024);
+ const int64 = new BigInt64Array(sab64);
+ const waitValue = Atomics.wait(int32, 0, 0);
+ const { async, value } = Atomics.waitAsync(int32, 0, 0);
+ ~~~~~~~~~
+!!! error TS2550: Property 'waitAsync' does not exist on type 'Atomics'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2024' or later.
+ const { async: async64, value: value64 } = Atomics.waitAsync(int64, 0, BigInt(0));
+ ~~~~~~~~~
+!!! error TS2550: Property 'waitAsync' does not exist on type 'Atomics'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2024' or later.
+
+ const main = async () => {
+ if (async) {
+ await value;
+ }
+ if (async64) {
+ await value64;
+ }
+ }
+ main();
+
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.symbols b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.symbols
new file mode 100644
index 0000000000..1247317f14
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.symbols
@@ -0,0 +1,70 @@
+//// [tests/cases/conformance/es2022/es2024SharedMemory.ts] ////
+
+=== es2024SharedMemory.ts ===
+// ES2024 Atomics.waitAsync was included in the ES2022 type file due to a mistake.
+// This test file checks if it fails successfully.
+// https://github.com/microsoft/TypeScript/pull/58573#issuecomment-2119347142
+
+const sab = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 1024);
+>sab : Symbol(sab, Decl(es2024SharedMemory.ts, 4, 5))
+>SharedArrayBuffer : Symbol(SharedArrayBuffer, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --))
+>Int32Array.BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
+>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more)
+>BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
+
+const int32 = new Int32Array(sab);
+>int32 : Symbol(int32, Decl(es2024SharedMemory.ts, 5, 5))
+>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more)
+>sab : Symbol(sab, Decl(es2024SharedMemory.ts, 4, 5))
+
+const sab64 = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 1024);
+>sab64 : Symbol(sab64, Decl(es2024SharedMemory.ts, 6, 5))
+>SharedArrayBuffer : Symbol(SharedArrayBuffer, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --))
+>BigInt64Array.BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
+>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --))
+>BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
+
+const int64 = new BigInt64Array(sab64);
+>int64 : Symbol(int64, Decl(es2024SharedMemory.ts, 7, 5))
+>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --))
+>sab64 : Symbol(sab64, Decl(es2024SharedMemory.ts, 6, 5))
+
+const waitValue = Atomics.wait(int32, 0, 0);
+>waitValue : Symbol(waitValue, Decl(es2024SharedMemory.ts, 8, 5))
+>Atomics.wait : Symbol(wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+>Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+>wait : Symbol(wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+>int32 : Symbol(int32, Decl(es2024SharedMemory.ts, 5, 5))
+
+const { async, value } = Atomics.waitAsync(int32, 0, 0);
+>async : Symbol(async, Decl(es2024SharedMemory.ts, 9, 7))
+>value : Symbol(value, Decl(es2024SharedMemory.ts, 9, 14))
+>Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+>int32 : Symbol(int32, Decl(es2024SharedMemory.ts, 5, 5))
+
+const { async: async64, value: value64 } = Atomics.waitAsync(int64, 0, BigInt(0));
+>async64 : Symbol(async64, Decl(es2024SharedMemory.ts, 10, 7))
+>value64 : Symbol(value64, Decl(es2024SharedMemory.ts, 10, 23))
+>Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+>int64 : Symbol(int64, Decl(es2024SharedMemory.ts, 7, 5))
+>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --))
+
+const main = async () => {
+>main : Symbol(main, Decl(es2024SharedMemory.ts, 12, 5))
+
+ if (async) {
+>async : Symbol(async, Decl(es2024SharedMemory.ts, 9, 7))
+
+ await value;
+>value : Symbol(value, Decl(es2024SharedMemory.ts, 9, 14))
+ }
+ if (async64) {
+>async64 : Symbol(async64, Decl(es2024SharedMemory.ts, 10, 7))
+
+ await value64;
+>value64 : Symbol(value64, Decl(es2024SharedMemory.ts, 10, 23))
+ }
+}
+main();
+>main : Symbol(main, Decl(es2024SharedMemory.ts, 12, 5))
+
diff --git a/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.symbols.diff b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.symbols.diff
new file mode 100644
index 0000000000..48a0161879
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.symbols.diff
@@ -0,0 +1,38 @@
+--- old.es2024SharedMemory.symbols
++++ new.es2024SharedMemory.symbols
+@@= skipped -7, +7 lines =@@
+ const sab = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 1024);
+ >sab : Symbol(sab, Decl(es2024SharedMemory.ts, 4, 5))
+ >SharedArrayBuffer : Symbol(SharedArrayBuffer, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --))
+->Int32Array.BYTES_PER_ELEMENT : Symbol(Int32ArrayConstructor.BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
++>Int32Array.BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
+ >Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more)
+->BYTES_PER_ELEMENT : Symbol(Int32ArrayConstructor.BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
++>BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
+
+ const int32 = new Int32Array(sab);
+ >int32 : Symbol(int32, Decl(es2024SharedMemory.ts, 5, 5))
+@@= skipped -12, +12 lines =@@
+ const sab64 = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 1024);
+ >sab64 : Symbol(sab64, Decl(es2024SharedMemory.ts, 6, 5))
+ >SharedArrayBuffer : Symbol(SharedArrayBuffer, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --))
+->BigInt64Array.BYTES_PER_ELEMENT : Symbol(BigInt64ArrayConstructor.BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
++>BigInt64Array.BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
+ >BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --))
+->BYTES_PER_ELEMENT : Symbol(BigInt64ArrayConstructor.BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
++>BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
+
+ const int64 = new BigInt64Array(sab64);
+ >int64 : Symbol(int64, Decl(es2024SharedMemory.ts, 7, 5))
+@@= skipped -11, +11 lines =@@
+
+ const waitValue = Atomics.wait(int32, 0, 0);
+ >waitValue : Symbol(waitValue, Decl(es2024SharedMemory.ts, 8, 5))
+->Atomics.wait : Symbol(Atomics.wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
++>Atomics.wait : Symbol(wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+ >Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+->wait : Symbol(Atomics.wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
++>wait : Symbol(wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+ >int32 : Symbol(int32, Decl(es2024SharedMemory.ts, 5, 5))
+
+ const { async, value } = Atomics.waitAsync(int32, 0, 0);
diff --git a/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.types b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.types
new file mode 100644
index 0000000000..18233acbda
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.types
@@ -0,0 +1,98 @@
+//// [tests/cases/conformance/es2022/es2024SharedMemory.ts] ////
+
+=== es2024SharedMemory.ts ===
+// ES2024 Atomics.waitAsync was included in the ES2022 type file due to a mistake.
+// This test file checks if it fails successfully.
+// https://github.com/microsoft/TypeScript/pull/58573#issuecomment-2119347142
+
+const sab = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 1024);
+>sab : SharedArrayBuffer
+>new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 1024) : SharedArrayBuffer
+>SharedArrayBuffer : SharedArrayBufferConstructor
+>Int32Array.BYTES_PER_ELEMENT * 1024 : number
+>Int32Array.BYTES_PER_ELEMENT : number
+>Int32Array : Int32ArrayConstructor
+>BYTES_PER_ELEMENT : number
+>1024 : 1024
+
+const int32 = new Int32Array(sab);
+>int32 : Int32Array
+>new Int32Array(sab) : Int32Array
+>Int32Array : Int32ArrayConstructor
+>sab : SharedArrayBuffer
+
+const sab64 = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 1024);
+>sab64 : SharedArrayBuffer
+>new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 1024) : SharedArrayBuffer
+>SharedArrayBuffer : SharedArrayBufferConstructor
+>BigInt64Array.BYTES_PER_ELEMENT * 1024 : number
+>BigInt64Array.BYTES_PER_ELEMENT : number
+>BigInt64Array : BigInt64ArrayConstructor
+>BYTES_PER_ELEMENT : number
+>1024 : 1024
+
+const int64 = new BigInt64Array(sab64);
+>int64 : BigInt64Array
+>new BigInt64Array(sab64) : BigInt64Array
+>BigInt64Array : BigInt64ArrayConstructor
+>sab64 : SharedArrayBuffer
+
+const waitValue = Atomics.wait(int32, 0, 0);
+>waitValue : "not-equal" | "ok" | "timed-out"
+>Atomics.wait(int32, 0, 0) : "not-equal" | "ok" | "timed-out"
+>Atomics.wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; }
+>Atomics : Atomics
+>wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; }
+>int32 : Int32Array
+>0 : 0
+>0 : 0
+
+const { async, value } = Atomics.waitAsync(int32, 0, 0);
+>async : any
+>value : any
+>Atomics.waitAsync(int32, 0, 0) : any
+>Atomics.waitAsync : any
+>Atomics : Atomics
+>waitAsync : any
+>int32 : Int32Array
+>0 : 0
+>0 : 0
+
+const { async: async64, value: value64 } = Atomics.waitAsync(int64, 0, BigInt(0));
+>async : any
+>async64 : any
+>value : any
+>value64 : any
+>Atomics.waitAsync(int64, 0, BigInt(0)) : any
+>Atomics.waitAsync : any
+>Atomics : Atomics
+>waitAsync : any
+>int64 : BigInt64Array
+>0 : 0
+>BigInt(0) : bigint
+>BigInt : BigIntConstructor
+>0 : 0
+
+const main = async () => {
+>main : () => Promise
+>async () => { if (async) { await value; } if (async64) { await value64; }} : () => Promise
+
+ if (async) {
+>async : any
+
+ await value;
+>await value : any
+>value : any
+ }
+ if (async64) {
+>async64 : any
+
+ await value64;
+>await value64 : any
+>value64 : any
+ }
+}
+main();
+>main() : Promise
+>main : () => Promise
+
diff --git a/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.types.diff b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.types.diff
new file mode 100644
index 0000000000..afa27343da
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/es2024SharedMemory.types.diff
@@ -0,0 +1,14 @@
+--- old.es2024SharedMemory.types
++++ new.es2024SharedMemory.types
+@@= skipped -39, +39 lines =@@
+ const waitValue = Atomics.wait(int32, 0, 0);
+ >waitValue : "not-equal" | "ok" | "timed-out"
+ >Atomics.wait(int32, 0, 0) : "not-equal" | "ok" | "timed-out"
+->Atomics.wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out"; }
++>Atomics.wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; }
+ >Atomics : Atomics
+->wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out"; }
++>wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; }
+ >int32 : Int32Array
+ >0 : 0
+ >0 : 0
diff --git a/testdata/baselines/reference/submodule/conformance/resizableArrayBuffer.symbols b/testdata/baselines/reference/submodule/conformance/resizableArrayBuffer.symbols
new file mode 100644
index 0000000000..580a1746a2
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/resizableArrayBuffer.symbols
@@ -0,0 +1,13 @@
+//// [tests/cases/conformance/es2024/resizableArrayBuffer.ts] ////
+
+=== resizableArrayBuffer.ts ===
+const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
+>buffer : Symbol(buffer, Decl(resizableArrayBuffer.ts, 0, 5))
+>ArrayBuffer : Symbol(ArrayBuffer, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2024.arraybuffer.d.ts, --, --))
+>maxByteLength : Symbol(maxByteLength, Decl(resizableArrayBuffer.ts, 0, 35))
+
+buffer.resizable;
+>buffer.resizable : Symbol(resizable, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+>buffer : Symbol(buffer, Decl(resizableArrayBuffer.ts, 0, 5))
+>resizable : Symbol(resizable, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+
diff --git a/testdata/baselines/reference/submodule/conformance/resizableArrayBuffer.symbols.diff b/testdata/baselines/reference/submodule/conformance/resizableArrayBuffer.symbols.diff
new file mode 100644
index 0000000000..309346bfb6
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/resizableArrayBuffer.symbols.diff
@@ -0,0 +1,12 @@
+--- old.resizableArrayBuffer.symbols
++++ new.resizableArrayBuffer.symbols
+@@= skipped -6, +6 lines =@@
+ >maxByteLength : Symbol(maxByteLength, Decl(resizableArrayBuffer.ts, 0, 35))
+
+ buffer.resizable;
+->buffer.resizable : Symbol(ArrayBuffer.resizable, Decl(lib.es2024.arraybuffer.d.ts, --, --))
++>buffer.resizable : Symbol(resizable, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+ >buffer : Symbol(buffer, Decl(resizableArrayBuffer.ts, 0, 5))
+->resizable : Symbol(ArrayBuffer.resizable, Decl(lib.es2024.arraybuffer.d.ts, --, --))
++>resizable : Symbol(resizable, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+
diff --git a/testdata/baselines/reference/submodule/conformance/resizableArrayBuffer.types b/testdata/baselines/reference/submodule/conformance/resizableArrayBuffer.types
new file mode 100644
index 0000000000..5d9a2e3fe9
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/resizableArrayBuffer.types
@@ -0,0 +1,17 @@
+//// [tests/cases/conformance/es2024/resizableArrayBuffer.ts] ////
+
+=== resizableArrayBuffer.ts ===
+const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
+>buffer : ArrayBuffer
+>new ArrayBuffer(8, { maxByteLength: 16 }) : ArrayBuffer
+>ArrayBuffer : ArrayBufferConstructor
+>8 : 8
+>{ maxByteLength: 16 } : { maxByteLength: number; }
+>maxByteLength : number
+>16 : 16
+
+buffer.resizable;
+>buffer.resizable : boolean
+>buffer : ArrayBuffer
+>resizable : boolean
+
diff --git a/testdata/baselines/reference/submodule/conformance/sharedMemory.symbols b/testdata/baselines/reference/submodule/conformance/sharedMemory.symbols
new file mode 100644
index 0000000000..c8271ecec6
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/sharedMemory.symbols
@@ -0,0 +1,72 @@
+//// [tests/cases/conformance/es2024/sharedMemory.ts] ////
+
+=== sharedMemory.ts ===
+const sab = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 1024);
+>sab : Symbol(sab, Decl(sharedMemory.ts, 0, 5))
+>SharedArrayBuffer : Symbol(SharedArrayBuffer, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>Int32Array.BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
+>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more)
+>BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
+
+const int32 = new Int32Array(sab);
+>int32 : Symbol(int32, Decl(sharedMemory.ts, 1, 5))
+>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more)
+>sab : Symbol(sab, Decl(sharedMemory.ts, 0, 5))
+
+const sab64 = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 1024);
+>sab64 : Symbol(sab64, Decl(sharedMemory.ts, 2, 5))
+>SharedArrayBuffer : Symbol(SharedArrayBuffer, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>BigInt64Array.BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
+>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --))
+>BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
+
+const int64 = new BigInt64Array(sab64);
+>int64 : Symbol(int64, Decl(sharedMemory.ts, 3, 5))
+>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --))
+>sab64 : Symbol(sab64, Decl(sharedMemory.ts, 2, 5))
+
+const waitValue = Atomics.wait(int32, 0, 0);
+>waitValue : Symbol(waitValue, Decl(sharedMemory.ts, 4, 5))
+>Atomics.wait : Symbol(wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+>Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>wait : Symbol(wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+>int32 : Symbol(int32, Decl(sharedMemory.ts, 1, 5))
+
+const { async, value } = Atomics.waitAsync(int32, 0, 0);
+>async : Symbol(async, Decl(sharedMemory.ts, 5, 7))
+>value : Symbol(value, Decl(sharedMemory.ts, 5, 14))
+>Atomics.waitAsync : Symbol(waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>waitAsync : Symbol(waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>int32 : Symbol(int32, Decl(sharedMemory.ts, 1, 5))
+
+const { async: async64, value: value64 } = Atomics.waitAsync(int64, 0, BigInt(0));
+>async : Symbol(async, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>async64 : Symbol(async64, Decl(sharedMemory.ts, 6, 7))
+>value : Symbol(value, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>value64 : Symbol(value64, Decl(sharedMemory.ts, 6, 23))
+>Atomics.waitAsync : Symbol(waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>waitAsync : Symbol(waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+>int64 : Symbol(int64, Decl(sharedMemory.ts, 3, 5))
+>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --))
+
+const main = async () => {
+>main : Symbol(main, Decl(sharedMemory.ts, 8, 5))
+
+ if (async) {
+>async : Symbol(async, Decl(sharedMemory.ts, 5, 7))
+
+ await value;
+>value : Symbol(value, Decl(sharedMemory.ts, 5, 14))
+ }
+ if (async64) {
+>async64 : Symbol(async64, Decl(sharedMemory.ts, 6, 7))
+
+ await value64;
+>value64 : Symbol(value64, Decl(sharedMemory.ts, 6, 23))
+ }
+}
+main();
+>main : Symbol(main, Decl(sharedMemory.ts, 8, 5))
+
diff --git a/testdata/baselines/reference/submodule/conformance/sharedMemory.symbols.diff b/testdata/baselines/reference/submodule/conformance/sharedMemory.symbols.diff
new file mode 100644
index 0000000000..7df0270ad6
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/sharedMemory.symbols.diff
@@ -0,0 +1,60 @@
+--- old.sharedMemory.symbols
++++ new.sharedMemory.symbols
+@@= skipped -3, +3 lines =@@
+ const sab = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 1024);
+ >sab : Symbol(sab, Decl(sharedMemory.ts, 0, 5))
+ >SharedArrayBuffer : Symbol(SharedArrayBuffer, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+->Int32Array.BYTES_PER_ELEMENT : Symbol(Int32ArrayConstructor.BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
++>Int32Array.BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
+ >Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more)
+->BYTES_PER_ELEMENT : Symbol(Int32ArrayConstructor.BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
++>BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es5.d.ts, --, --))
+
+ const int32 = new Int32Array(sab);
+ >int32 : Symbol(int32, Decl(sharedMemory.ts, 1, 5))
+@@= skipped -12, +12 lines =@@
+ const sab64 = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 1024);
+ >sab64 : Symbol(sab64, Decl(sharedMemory.ts, 2, 5))
+ >SharedArrayBuffer : Symbol(SharedArrayBuffer, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+->BigInt64Array.BYTES_PER_ELEMENT : Symbol(BigInt64ArrayConstructor.BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
++>BigInt64Array.BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
+ >BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --))
+->BYTES_PER_ELEMENT : Symbol(BigInt64ArrayConstructor.BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
++>BYTES_PER_ELEMENT : Symbol(BYTES_PER_ELEMENT, Decl(lib.es2020.bigint.d.ts, --, --))
+
+ const int64 = new BigInt64Array(sab64);
+ >int64 : Symbol(int64, Decl(sharedMemory.ts, 3, 5))
+@@= skipped -11, +11 lines =@@
+
+ const waitValue = Atomics.wait(int32, 0, 0);
+ >waitValue : Symbol(waitValue, Decl(sharedMemory.ts, 4, 5))
+->Atomics.wait : Symbol(Atomics.wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
++>Atomics.wait : Symbol(wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+ >Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+->wait : Symbol(Atomics.wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
++>wait : Symbol(wait, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --))
+ >int32 : Symbol(int32, Decl(sharedMemory.ts, 1, 5))
+
+ const { async, value } = Atomics.waitAsync(int32, 0, 0);
+ >async : Symbol(async, Decl(sharedMemory.ts, 5, 7))
+ >value : Symbol(value, Decl(sharedMemory.ts, 5, 14))
+->Atomics.waitAsync : Symbol(Atomics.waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
++>Atomics.waitAsync : Symbol(waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+ >Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+->waitAsync : Symbol(Atomics.waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
++>waitAsync : Symbol(waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+ >int32 : Symbol(int32, Decl(sharedMemory.ts, 1, 5))
+
+ const { async: async64, value: value64 } = Atomics.waitAsync(int64, 0, BigInt(0));
+@@= skipped -18, +18 lines =@@
+ >async64 : Symbol(async64, Decl(sharedMemory.ts, 6, 7))
+ >value : Symbol(value, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+ >value64 : Symbol(value64, Decl(sharedMemory.ts, 6, 23))
+->Atomics.waitAsync : Symbol(Atomics.waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
++>Atomics.waitAsync : Symbol(waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+ >Atomics : Symbol(Atomics, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2020.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+->waitAsync : Symbol(Atomics.waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
++>waitAsync : Symbol(waitAsync, Decl(lib.es2024.sharedmemory.d.ts, --, --), Decl(lib.es2024.sharedmemory.d.ts, --, --))
+ >int64 : Symbol(int64, Decl(sharedMemory.ts, 3, 5))
+ >BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --))
+
diff --git a/testdata/baselines/reference/submodule/conformance/sharedMemory.types b/testdata/baselines/reference/submodule/conformance/sharedMemory.types
new file mode 100644
index 0000000000..adcb01a1bd
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/sharedMemory.types
@@ -0,0 +1,94 @@
+//// [tests/cases/conformance/es2024/sharedMemory.ts] ////
+
+=== sharedMemory.ts ===
+const sab = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 1024);
+>sab : SharedArrayBuffer
+>new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 1024) : SharedArrayBuffer
+>SharedArrayBuffer : SharedArrayBufferConstructor
+>Int32Array.BYTES_PER_ELEMENT * 1024 : number
+>Int32Array.BYTES_PER_ELEMENT : number
+>Int32Array : Int32ArrayConstructor
+>BYTES_PER_ELEMENT : number
+>1024 : 1024
+
+const int32 = new Int32Array(sab);
+>int32 : Int32Array
+>new Int32Array(sab) : Int32Array
+>Int32Array : Int32ArrayConstructor
+>sab : SharedArrayBuffer
+
+const sab64 = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 1024);
+>sab64 : SharedArrayBuffer
+>new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 1024) : SharedArrayBuffer
+>SharedArrayBuffer : SharedArrayBufferConstructor
+>BigInt64Array.BYTES_PER_ELEMENT * 1024 : number
+>BigInt64Array.BYTES_PER_ELEMENT : number
+>BigInt64Array : BigInt64ArrayConstructor
+>BYTES_PER_ELEMENT : number
+>1024 : 1024
+
+const int64 = new BigInt64Array(sab64);
+>int64 : BigInt64Array
+>new BigInt64Array(sab64) : BigInt64Array
+>BigInt64Array : BigInt64ArrayConstructor
+>sab64 : SharedArrayBuffer
+
+const waitValue = Atomics.wait(int32, 0, 0);
+>waitValue : "not-equal" | "ok" | "timed-out"
+>Atomics.wait(int32, 0, 0) : "not-equal" | "ok" | "timed-out"
+>Atomics.wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; }
+>Atomics : Atomics
+>wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; }
+>int32 : Int32Array
+>0 : 0
+>0 : 0
+
+const { async, value } = Atomics.waitAsync(int32, 0, 0);
+>async : boolean
+>value : "not-equal" | "timed-out" | Promise<"ok" | "timed-out">
+>Atomics.waitAsync(int32, 0, 0) : { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }
+>Atomics.waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
+>Atomics : Atomics
+>waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
+>int32 : Int32Array
+>0 : 0
+>0 : 0
+
+const { async: async64, value: value64 } = Atomics.waitAsync(int64, 0, BigInt(0));
+>async : any
+>async64 : boolean
+>value : any
+>value64 : "not-equal" | "timed-out" | Promise<"ok" | "timed-out">
+>Atomics.waitAsync(int64, 0, BigInt(0)) : { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }
+>Atomics.waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
+>Atomics : Atomics
+>waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
+>int64 : BigInt64Array
+>0 : 0
+>BigInt(0) : bigint
+>BigInt : BigIntConstructor
+>0 : 0
+
+const main = async () => {
+>main : () => Promise
+>async () => { if (async) { await value; } if (async64) { await value64; }} : () => Promise
+
+ if (async) {
+>async : boolean
+
+ await value;
+>await value : "ok" | "timed-out"
+>value : Promise<"ok" | "timed-out">
+ }
+ if (async64) {
+>async64 : boolean
+
+ await value64;
+>await value64 : "ok" | "timed-out"
+>value64 : Promise<"ok" | "timed-out">
+ }
+}
+main();
+>main() : Promise
+>main : () => Promise
+
diff --git a/testdata/baselines/reference/submodule/conformance/sharedMemory.types.diff b/testdata/baselines/reference/submodule/conformance/sharedMemory.types.diff
new file mode 100644
index 0000000000..22d90fcb22
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/sharedMemory.types.diff
@@ -0,0 +1,38 @@
+--- old.sharedMemory.types
++++ new.sharedMemory.types
+@@= skipped -35, +35 lines =@@
+ const waitValue = Atomics.wait(int32, 0, 0);
+ >waitValue : "not-equal" | "ok" | "timed-out"
+ >Atomics.wait(int32, 0, 0) : "not-equal" | "ok" | "timed-out"
+->Atomics.wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out"; }
++>Atomics.wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; }
+ >Atomics : Atomics
+->wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out"; }
++>wait : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): "not-equal" | "ok" | "timed-out"; }
+ >int32 : Int32Array
+ >0 : 0
+ >0 : 0
+@@= skipped -11, +11 lines =@@
+ >async : boolean
+ >value : "not-equal" | "timed-out" | Promise<"ok" | "timed-out">
+ >Atomics.waitAsync(int32, 0, 0) : { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }
+->Atomics.waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
++>Atomics.waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
+ >Atomics : Atomics
+->waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
++>waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
+ >int32 : Int32Array
+ >0 : 0
+ >0 : 0
+@@= skipped -13, +13 lines =@@
+ >value : any
+ >value64 : "not-equal" | "timed-out" | Promise<"ok" | "timed-out">
+ >Atomics.waitAsync(int64, 0, BigInt(0)) : { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }
+->Atomics.waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
++>Atomics.waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
+ >Atomics : Atomics
+->waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
++>waitAsync : { (typedArray: Int32Array, index: number, value: number, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; (typedArray: BigInt64Array, index: number, value: bigint, timeout?: number | undefined): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; }; }
+ >int64 : BigInt64Array
+ >0 : 0
+ >BigInt(0) : bigint
diff --git a/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.symbols b/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.symbols
new file mode 100644
index 0000000000..a3bf4f0c0b
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.symbols
@@ -0,0 +1,23 @@
+//// [tests/cases/conformance/es2024/transferableArrayBuffer.ts] ////
+
+=== transferableArrayBuffer.ts ===
+const buffer = new ArrayBuffer(8);
+>buffer : Symbol(buffer, Decl(transferableArrayBuffer.ts, 0, 5))
+>ArrayBuffer : Symbol(ArrayBuffer, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2024.arraybuffer.d.ts, --, --))
+
+const buffer2 = buffer.transfer();
+>buffer2 : Symbol(buffer2, Decl(transferableArrayBuffer.ts, 1, 5))
+>buffer.transfer : Symbol(transfer, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+>buffer : Symbol(buffer, Decl(transferableArrayBuffer.ts, 0, 5))
+>transfer : Symbol(transfer, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+
+buffer.detached;
+>buffer.detached : Symbol(detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+>buffer : Symbol(buffer, Decl(transferableArrayBuffer.ts, 0, 5))
+>detached : Symbol(detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+
+buffer2.detached;
+>buffer2.detached : Symbol(detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+>buffer2 : Symbol(buffer2, Decl(transferableArrayBuffer.ts, 1, 5))
+>detached : Symbol(detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+
diff --git a/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.symbols.diff b/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.symbols.diff
new file mode 100644
index 0000000000..a5909d9f7e
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.symbols.diff
@@ -0,0 +1,26 @@
+--- old.transferableArrayBuffer.symbols
++++ new.transferableArrayBuffer.symbols
+@@= skipped -6, +6 lines =@@
+
+ const buffer2 = buffer.transfer();
+ >buffer2 : Symbol(buffer2, Decl(transferableArrayBuffer.ts, 1, 5))
+->buffer.transfer : Symbol(ArrayBuffer.transfer, Decl(lib.es2024.arraybuffer.d.ts, --, --))
++>buffer.transfer : Symbol(transfer, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+ >buffer : Symbol(buffer, Decl(transferableArrayBuffer.ts, 0, 5))
+->transfer : Symbol(ArrayBuffer.transfer, Decl(lib.es2024.arraybuffer.d.ts, --, --))
++>transfer : Symbol(transfer, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+
+ buffer.detached;
+->buffer.detached : Symbol(ArrayBuffer.detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
++>buffer.detached : Symbol(detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+ >buffer : Symbol(buffer, Decl(transferableArrayBuffer.ts, 0, 5))
+->detached : Symbol(ArrayBuffer.detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
++>detached : Symbol(detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+
+ buffer2.detached;
+->buffer2.detached : Symbol(ArrayBuffer.detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
++>buffer2.detached : Symbol(detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+ >buffer2 : Symbol(buffer2, Decl(transferableArrayBuffer.ts, 1, 5))
+->detached : Symbol(ArrayBuffer.detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
++>detached : Symbol(detached, Decl(lib.es2024.arraybuffer.d.ts, --, --))
+
diff --git a/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.types b/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.types
new file mode 100644
index 0000000000..bb105a7396
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.types
@@ -0,0 +1,26 @@
+//// [tests/cases/conformance/es2024/transferableArrayBuffer.ts] ////
+
+=== transferableArrayBuffer.ts ===
+const buffer = new ArrayBuffer(8);
+>buffer : ArrayBuffer
+>new ArrayBuffer(8) : ArrayBuffer
+>ArrayBuffer : ArrayBufferConstructor
+>8 : 8
+
+const buffer2 = buffer.transfer();
+>buffer2 : ArrayBuffer
+>buffer.transfer() : ArrayBuffer
+>buffer.transfer : (newByteLength?: number | undefined) => ArrayBuffer
+>buffer : ArrayBuffer
+>transfer : (newByteLength?: number | undefined) => ArrayBuffer
+
+buffer.detached;
+>buffer.detached : boolean
+>buffer : ArrayBuffer
+>detached : boolean
+
+buffer2.detached;
+>buffer2.detached : boolean
+>buffer2 : ArrayBuffer
+>detached : boolean
+
diff --git a/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.types.diff b/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.types.diff
new file mode 100644
index 0000000000..3e6b95fec1
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/transferableArrayBuffer.types.diff
@@ -0,0 +1,14 @@
+--- old.transferableArrayBuffer.types
++++ new.transferableArrayBuffer.types
+@@= skipped -9, +9 lines =@@
+ const buffer2 = buffer.transfer();
+ >buffer2 : ArrayBuffer
+ >buffer.transfer() : ArrayBuffer
+->buffer.transfer : (newByteLength?: number) => ArrayBuffer
++>buffer.transfer : (newByteLength?: number | undefined) => ArrayBuffer
+ >buffer : ArrayBuffer
+->transfer : (newByteLength?: number) => ArrayBuffer
++>transfer : (newByteLength?: number | undefined) => ArrayBuffer
+
+ buffer.detached;
+ >buffer.detached : boolean
diff --git a/testdata/baselines/reference/submodule/conformance/useSharedArrayBuffer1.types b/testdata/baselines/reference/submodule/conformance/useSharedArrayBuffer1.types
index 0cb327a2e3..35971df27f 100644
--- a/testdata/baselines/reference/submodule/conformance/useSharedArrayBuffer1.types
+++ b/testdata/baselines/reference/submodule/conformance/useSharedArrayBuffer1.types
@@ -10,9 +10,9 @@ var foge = new SharedArrayBuffer(1024);
var bar = foge.slice(1, 10);
>bar : SharedArrayBuffer
>foge.slice(1, 10) : SharedArrayBuffer
->foge.slice : (begin: number, end?: number) => SharedArrayBuffer
+>foge.slice : (begin?: number, end?: number) => SharedArrayBuffer
>foge : SharedArrayBuffer
->slice : (begin: number, end?: number) => SharedArrayBuffer
+>slice : (begin?: number, end?: number) => SharedArrayBuffer
>1 : 1
>10 : 10
diff --git a/testdata/baselines/reference/submodule/conformance/useSharedArrayBuffer4.types b/testdata/baselines/reference/submodule/conformance/useSharedArrayBuffer4.types
index 83a9761bbb..1554e237ed 100644
--- a/testdata/baselines/reference/submodule/conformance/useSharedArrayBuffer4.types
+++ b/testdata/baselines/reference/submodule/conformance/useSharedArrayBuffer4.types
@@ -10,9 +10,9 @@ var foge = new SharedArrayBuffer(1024);
var bar = foge.slice(1, 10);
>bar : SharedArrayBuffer
>foge.slice(1, 10) : SharedArrayBuffer
->foge.slice : (begin: number, end?: number) => SharedArrayBuffer
+>foge.slice : (begin?: number, end?: number) => SharedArrayBuffer
>foge : SharedArrayBuffer
->slice : (begin: number, end?: number) => SharedArrayBuffer
+>slice : (begin?: number, end?: number) => SharedArrayBuffer
>1 : 1
>10 : 10
diff --git a/testdata/baselines/reference/tsoptions/commandLineParsing/Parse empty options of --target.js b/testdata/baselines/reference/tsoptions/commandLineParsing/Parse empty options of --target.js
index 216df16665..0084e7d5d7 100644
--- a/testdata/baselines/reference/tsoptions/commandLineParsing/Parse empty options of --target.js
+++ b/testdata/baselines/reference/tsoptions/commandLineParsing/Parse empty options of --target.js
@@ -9,4 +9,4 @@ FileNames::
Errors::
error TS6044: Compiler option 'target' expects an argument.
-error TS6046: Argument for '--target' option must be: 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'esnext'.
+error TS6046: Argument for '--target' option must be: 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'esnext'.
diff --git a/testdata/baselines/reference/tsoptions/commandLineParsing/Parse invalid option of library flags.js b/testdata/baselines/reference/tsoptions/commandLineParsing/Parse invalid option of library flags.js
index 61b5721259..74f8a2c6f0 100644
--- a/testdata/baselines/reference/tsoptions/commandLineParsing/Parse invalid option of library flags.js
+++ b/testdata/baselines/reference/tsoptions/commandLineParsing/Parse invalid option of library flags.js
@@ -8,4 +8,4 @@ FileNames::
0.ts
Errors::
-error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'esnext', 'dom', 'dom.iterable', 'dom.asynciterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'webworker.asynciterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2016.intl', 'es2017.date', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.sharedmemory', 'es2022.string', 'es2022.regexp', 'es2023.array', 'es2023.collection', 'es2023.intl', 'esnext.array', 'esnext.collection', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.disposable', 'esnext.bigint', 'esnext.string', 'esnext.promise', 'esnext.weakref', 'esnext.decorators', 'esnext.object', 'esnext.regexp', 'esnext.iterator', 'decorators', 'decorators.legacy'.
+error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'esnext', 'dom', 'dom.iterable', 'dom.asynciterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'webworker.asynciterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2016.intl', 'es2017.arraybuffer', 'es2017.date', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.string', 'es2022.regexp', 'es2023.array', 'es2023.collection', 'es2023.intl', 'es2024.arraybuffer', 'es2024.collection', 'es2024.object', 'es2024.promise', 'es2024.regexp', 'es2024.sharedmemory', 'es2024.string', 'esnext.array', 'esnext.collection', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.disposable', 'esnext.bigint', 'esnext.string', 'esnext.promise', 'esnext.weakref', 'esnext.decorators', 'esnext.object', 'esnext.regexp', 'esnext.iterator', 'decorators', 'decorators.legacy'.