Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ See docs/process.md for more on how version tagging works.
detected automatically by the compiler, so `__deps` is no longer required for
direct JS-to-JS references (`__deps` is still supported for dependencies on
compiled C/C++ symbols or indirect dependencies). (#27995)
- The default minimum browser versions targeted by Emscripten were increased:
- `MIN_CHROME_VERSION`: 85 -> 93
- `MIN_FIREFOX_VERSION`: 79 -> 92
- `MIN_SAFARI_VERSION`: 15.0 -> 15.4

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add the dates here? That would quickly show people that these defaults are still 4+ years in the past.

(#28141)

6.0.13 - 10/19/26
-----------------
Expand Down
16 changes: 8 additions & 8 deletions site/source/docs/tools_reference/settings_reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2901,12 +2901,12 @@ Specifies the oldest major version of Firefox to target. I.e. all Firefox
versions >= MIN_FIREFOX_VERSION
are desired to work. Pass -sMIN_FIREFOX_VERSION=majorVersion to drop support
for Firefox versions older than majorVersion.
Firefox 79 was released on 2020-07-28.
Firefox 92 was released on 2021-09-07.
MAX_INT (0x7FFFFFFF, or -1) specifies that target is not supported.
Minimum supported value is 68 which was released on 2019-07-09 (see
Minimum supported value is 79 which was released on 2020-07-28 (see
feature_matrix.py)

Default value: 79
Default value: 92

.. _min_safari_version:

Expand All @@ -2915,16 +2915,16 @@ MIN_SAFARI_VERSION

Specifies the oldest version of desktop Safari to target. Version is encoded
in MMmmVV, e.g. 160101 denotes Safari 16.1.1.
Safari 15 was released on September 20, 2021, bundled with macOS 12.0
Monterey and iOS 15.
Safari 15.4 was released on March 14, 2022, bundled with macOS 12.3
Monterey and iOS 15.4.
NOTE: Emscripten is unable to produce code that would work in iOS 9.3.5 and
older, i.e. iPhone 4s, iPad 2, iPad 3, iPad Mini 1, Pod Touch 5 and older,
see https://github.com/emscripten-core/emscripten/pull/7191.
MAX_INT (0x7FFFFFFF, or -1) specifies that target is not supported.
Minimum supported value is 150000 which was released on 2021-09-20 (see
feature_matrix.py).

Default value: 150000
Default value: 150400

.. _min_chrome_version:

Expand All @@ -2935,12 +2935,12 @@ Specifies the oldest version of Chrome. E.g. pass -sMIN_CHROME_VERSION=100 to
drop support for Chrome 99 and older.
This setting also applies to modern Chromium-based Edge, which shares version
numbers with Chrome.
Chrome 85 was released on 2020-08-25.
Chrome 93 was released on 2021-08-31.
MAX_INT (0x7FFFFFFF, or -1) specifies that target is not supported.
Minimum supported value is 85, which was released on 2020-08-25 (see
feature_matrix.py).

Default value: 85
Default value: 93

.. _min_node_version:

Expand Down
16 changes: 8 additions & 8 deletions src/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -1922,36 +1922,36 @@ var AUTO_NATIVE_LIBRARIES = true;
// versions >= MIN_FIREFOX_VERSION
// are desired to work. Pass -sMIN_FIREFOX_VERSION=majorVersion to drop support
// for Firefox versions older than majorVersion.
// Firefox 79 was released on 2020-07-28.
// Firefox 92 was released on 2021-09-07.
// MAX_INT (0x7FFFFFFF, or -1) specifies that target is not supported.
// Minimum supported value is 68 which was released on 2019-07-09 (see
// Minimum supported value is 79 which was released on 2020-07-28 (see
// feature_matrix.py)
// [link]
var MIN_FIREFOX_VERSION = 79;
var MIN_FIREFOX_VERSION = 92;

// Specifies the oldest version of desktop Safari to target. Version is encoded
// in MMmmVV, e.g. 160101 denotes Safari 16.1.1.
// Safari 15 was released on September 20, 2021, bundled with macOS 12.0
// Monterey and iOS 15.
// Safari 15.4 was released on March 14, 2022, bundled with macOS 12.3
// Monterey and iOS 15.4.
// NOTE: Emscripten is unable to produce code that would work in iOS 9.3.5 and
// older, i.e. iPhone 4s, iPad 2, iPad 3, iPad Mini 1, Pod Touch 5 and older,
// see https://github.com/emscripten-core/emscripten/pull/7191.
// MAX_INT (0x7FFFFFFF, or -1) specifies that target is not supported.
// Minimum supported value is 150000 which was released on 2021-09-20 (see
// feature_matrix.py).
// [link]
var MIN_SAFARI_VERSION = 150000;
var MIN_SAFARI_VERSION = 150400;

// Specifies the oldest version of Chrome. E.g. pass -sMIN_CHROME_VERSION=100 to
// drop support for Chrome 99 and older.
// This setting also applies to modern Chromium-based Edge, which shares version
// numbers with Chrome.
// Chrome 85 was released on 2020-08-25.
// Chrome 93 was released on 2021-08-31.
// MAX_INT (0x7FFFFFFF, or -1) specifies that target is not supported.
// Minimum supported value is 85, which was released on 2020-08-25 (see
// feature_matrix.py).
// [link]
var MIN_CHROME_VERSION = 85;
var MIN_CHROME_VERSION = 93;

// Specifies minimum node version to target for the generated code. This is
// distinct from the minimum version required to run the emscripten compiler.
Expand Down
4 changes: 2 additions & 2 deletions test/codesize/test_codesize_hello_O0.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"a.out.js": 23364,
"a.out.js.gz": 8504,
"a.out.js.gz": 8503,
"a.out.nodebug.wasm": 14275,
"a.out.nodebug.wasm.gz": 7098,
"total": 37639,
"total_gz": 15602,
"total_gz": 15601,
"sent": [
"fd_write"
],
Expand Down
4 changes: 2 additions & 2 deletions test/codesize/test_codesize_hello_dylink_all.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"a.out.js": 272609,
"a.out.js": 272574,
"a.out.nodebug.wasm": 575827,
"total": 848436,
"total": 848401,
"sent": [
"IMG_Init",
"IMG_Load",
Expand Down
12 changes: 6 additions & 6 deletions test/codesize/test_codesize_minimal_O0.expected.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,18 @@
}

const currentSafariVersion = userAgent.includes("Safari/") && !userAgent.includes("Chrome/") && userAgent.match(/Version\/(\d+\.?\d*\.?\d*)/) ? humanReadableVersionToPacked(userAgent.match(/Version\/(\d+\.?\d*\.?\d*)/)[1]) : TARGET_NOT_SUPPORTED;
if (currentSafariVersion < 150000) {
throw new Error(`This emscripten-generated code requires Safari v${ packedVersionToHumanReadable(150000) } (detected v${currentSafariVersion})`);
if (currentSafariVersion < 150400) {
throw new Error(`This emscripten-generated code requires Safari v${ packedVersionToHumanReadable(150400) } (detected v${currentSafariVersion})`);
}

const currentFirefoxVersion = userAgent.match(/Firefox\/(\d+(?:\.\d+)?)/) ? parseFloat(userAgent.match(/Firefox\/(\d+(?:\.\d+)?)/)[1]) : TARGET_NOT_SUPPORTED;
if (currentFirefoxVersion < 79) {
throw new Error(`This emscripten-generated code requires Firefox v79 (detected v${currentFirefoxVersion})`);
if (currentFirefoxVersion < 92) {
throw new Error(`This emscripten-generated code requires Firefox v92 (detected v${currentFirefoxVersion})`);
}

const currentChromeVersion = userAgent.match(/Chrome\/(\d+(?:\.\d+)?)/) ? parseFloat(userAgent.match(/Chrome\/(\d+(?:\.\d+)?)/)[1]) : TARGET_NOT_SUPPORTED;
if (currentChromeVersion < 85) {
throw new Error(`This emscripten-generated code requires Chrome v85 (detected v${currentChromeVersion})`);
if (currentChromeVersion < 93) {
throw new Error(`This emscripten-generated code requires Chrome v93 (detected v${currentChromeVersion})`);
}
})();

Expand Down
4 changes: 2 additions & 2 deletions test/codesize/test_codesize_minimal_O0.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"a.out.js": 18551,
"a.out.js.gz": 6672,
"a.out.js.gz": 6671,
"a.out.nodebug.wasm": 1071,
"a.out.nodebug.wasm.gz": 636,
"total": 19622,
"total_gz": 7308,
"total_gz": 7307,
"sent": [],
"imports": [],
"exports": [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"a.html": 540,
"a.html.gz": 367,
"a.js": 7405,
"a.js.gz": 3416,
"a.js": 7370,
"a.js.gz": 3402,
"a.wasm": 7201,
"a.wasm.gz": 3305,
"total": 15146,
"total_gz": 7088
"total": 15111,
"total_gz": 7074
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"a.html": 540,
"a.html.gz": 367,
"a.js": 5370,
"a.js.gz": 2518,
"a.js": 5335,
"a.js.gz": 2504,
"a.wasm": 5817,
"a.wasm.gz": 2736,
"total": 11727,
"total_gz": 5621
"total": 11692,
"total_gz": 5607
}
6 changes: 3 additions & 3 deletions test/codesize/test_unoptimized_code_size.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"hello_world.js": 52840,
"hello_world.js.gz": 16833,
"hello_world.js.gz": 16829,
"hello_world.wasm": 14275,
"hello_world.wasm.gz": 7098,
"no_asserts.js": 22100,
"no_asserts.js.gz": 7873,
"no_asserts.wasm": 11389,
"no_asserts.wasm.gz": 5645,
"strict.js": 49970,
"strict.js.gz": 15852,
"strict.js.gz": 15848,
"strict.wasm": 14275,
"strict.wasm.gz": 7096,
"total": 164849,
"total_gz": 60397
"total_gz": 60389
}
Loading