Skip to content

Commit 326dcb3

Browse files
Closure Teamcopybara-github
Closure Team
authored andcommitted
Add BROWSER_FEATURESET_YEAR 2025
PiperOrigin-RevId: 713466756
1 parent 53c654e commit 326dcb3

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

src/com/google/javascript/jscomp/CompilerOptions.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,8 @@ enum BrowserFeaturesetYear {
146146
YEAR_2021(2021, FeatureSet.BROWSER_2021),
147147
YEAR_2022(2022, FeatureSet.BROWSER_2022),
148148
YEAR_2023(2023, FeatureSet.BROWSER_2023),
149-
YEAR_2024(2024, FeatureSet.BROWSER_2024);
149+
YEAR_2024(2024, FeatureSet.BROWSER_2024),
150+
YEAR_2025(2025, FeatureSet.BROWSER_2025);
150151

151152
private final int year;
152153
private final FeatureSet featureSet;
@@ -160,7 +161,8 @@ enum BrowserFeaturesetYear {
160161
2021, YEAR_2021,
161162
2022, YEAR_2022,
162163
2023, YEAR_2023,
163-
2024, YEAR_2024
164+
2024, YEAR_2024,
165+
2025, YEAR_2025
164166
// go/keep-sorted end
165167
);
166168

@@ -172,7 +174,7 @@ private BrowserFeaturesetYear(int year, FeatureSet featureSet) {
172174
static BrowserFeaturesetYear from(int year) {
173175
checkState(
174176
YEAR_MAP.containsKey(year),
175-
"Illegal browser_featureset_year=%s. We support values 2012, or 2018..2024 only",
177+
"Illegal browser_featureset_year=%s. We support values 2012, or 2018..2025 only",
176178
year);
177179
return YEAR_MAP.get(year);
178180
}

src/com/google/javascript/jscomp/parsing/parser/FeatureSet.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,15 @@ public final class FeatureSet implements Serializable {
132132
Feature.REGEXP_LOOKBEHIND);
133133

134134
// According to https://compat-table.github.io/compat-table/es2016plus/ this should include all
135-
// features through ES2023.
135+
// features through ES2023. So once LangVersion.ES2023 is added, this should be updated to
136+
// include it.
136137
public static final FeatureSet BROWSER_2024 = ES2021_MODULES;
137138

139+
// According to https://compat-table.github.io/compat-table/es2016plus/ this should include all
140+
// features through ES2024, except for the latest unicode versions for the /v regexp flag, which
141+
// isn't disqualifying. So once LangVersion.ES2024 is added, this should be updated to include it.
142+
public static final FeatureSet BROWSER_2025 = ES2021_MODULES;
143+
138144
public static final FeatureSet ALL = ES_UNSUPPORTED.with(LangVersion.TYPESCRIPT.features());
139145

140146
private enum LangVersion {

test/com/google/javascript/jscomp/CompilerOptionsTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ public void testBrowserFeaturesetYearOptionSetsLanguageOut() {
6262

6363
options.setBrowserFeaturesetYear(2024);
6464
assertThat(options.getOutputFeatureSet()).isEqualTo(FeatureSet.BROWSER_2024);
65+
66+
options.setBrowserFeaturesetYear(2025);
67+
assertThat(options.getOutputFeatureSet()).isEqualTo(FeatureSet.BROWSER_2025);
6568
}
6669

6770
@Test

0 commit comments

Comments
 (0)