diff --git a/ChangeLog.md b/ChangeLog.md index 5a65fbf9d7b8a..9f8492f343913 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -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 + (#28141) 6.0.13 - 10/19/26 ----------------- diff --git a/site/source/docs/tools_reference/settings_reference.rst b/site/source/docs/tools_reference/settings_reference.rst index 3e375aa61e234..0406dc7b75533 100644 --- a/site/source/docs/tools_reference/settings_reference.rst +++ b/site/source/docs/tools_reference/settings_reference.rst @@ -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: @@ -2915,8 +2915,8 @@ 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. @@ -2924,7 +2924,7 @@ 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: @@ -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: diff --git a/src/settings.js b/src/settings.js index 17b4506ced6af..7091123c29693 100644 --- a/src/settings.js +++ b/src/settings.js @@ -1922,17 +1922,17 @@ 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. @@ -1940,18 +1940,18 @@ var MIN_FIREFOX_VERSION = 79; // 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. diff --git a/test/codesize/test_codesize_hello_O0.json b/test/codesize/test_codesize_hello_O0.json index f0a467b2b0551..ccba9a81d7d54 100644 --- a/test/codesize/test_codesize_hello_O0.json +++ b/test/codesize/test_codesize_hello_O0.json @@ -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" ], diff --git a/test/codesize/test_codesize_hello_dylink_all.json b/test/codesize/test_codesize_hello_dylink_all.json index f94f1a714513e..c85e28e3285f3 100644 --- a/test/codesize/test_codesize_hello_dylink_all.json +++ b/test/codesize/test_codesize_hello_dylink_all.json @@ -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", diff --git a/test/codesize/test_codesize_minimal_O0.expected.js b/test/codesize/test_codesize_minimal_O0.expected.js index 9002db0dd7aee..082b31ea9ca80 100644 --- a/test/codesize/test_codesize_minimal_O0.expected.js +++ b/test/codesize/test_codesize_minimal_O0.expected.js @@ -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})`); } })(); diff --git a/test/codesize/test_codesize_minimal_O0.json b/test/codesize/test_codesize_minimal_O0.json index dffd6b1a8f928..714f2ab40ff30 100644 --- a/test/codesize/test_codesize_minimal_O0.json +++ b/test/codesize/test_codesize_minimal_O0.json @@ -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": [ diff --git a/test/codesize/test_minimal_runtime_code_size_hello_embind.json b/test/codesize/test_minimal_runtime_code_size_hello_embind.json index f5ea26d375f34..a249ccba50616 100644 --- a/test/codesize/test_minimal_runtime_code_size_hello_embind.json +++ b/test/codesize/test_minimal_runtime_code_size_hello_embind.json @@ -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 } diff --git a/test/codesize/test_minimal_runtime_code_size_hello_embind_val.json b/test/codesize/test_minimal_runtime_code_size_hello_embind_val.json index 078c567c17a14..cb2074dd8bc87 100644 --- a/test/codesize/test_minimal_runtime_code_size_hello_embind_val.json +++ b/test/codesize/test_minimal_runtime_code_size_hello_embind_val.json @@ -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 } diff --git a/test/codesize/test_unoptimized_code_size.json b/test/codesize/test_unoptimized_code_size.json index be956311a1c0f..211ec5c988bc0 100644 --- a/test/codesize/test_unoptimized_code_size.json +++ b/test/codesize/test_unoptimized_code_size.json @@ -1,6 +1,6 @@ { "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, @@ -8,9 +8,9 @@ "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 }