Skip to content
Merged
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
11 changes: 6 additions & 5 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,12 @@ See docs/process.md for more on how version tagging works.

4.0.16 (in development)
-----------------------
- The minimum supported versions of node, chrome and firefox were bumped in
order remove the globalThis polyfill: (#25375)
- node: v10.19.0 -> v12.22.9
- chrome: v70 -> v71
- firefox: v55 -> v65
- The minimum supported versions of Node, Chrome and Firefox were bumped
enabling the removal of the `globalThis` polyfill and universally enabling
mutable globals: (#25375, #25385)
- Node: v10.19.0 -> v12.22.9
- Chrome: v70 -> v74
- Firefox: v55 -> v65

4.0.15 - 09/17/25
-----------------
Expand Down
2 changes: 1 addition & 1 deletion site/source/docs/tools_reference/settings_reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2897,7 +2897,7 @@ This setting also applies to modern Chromium-based Edge, which shares version
numbers with Chrome.
Chrome 85 was released on 2020-08-25.
MAX_INT (0x7FFFFFFF, or -1) specifies that target is not supported.
Minimum supported value is 71, which was released on 2018-12-04 (see
Minimum supported value is 74, which was released on 2019-04-23 (see
feature_matrix.py).

Default value: 85
Expand Down
2 changes: 1 addition & 1 deletion src/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -1901,7 +1901,7 @@ var MIN_SAFARI_VERSION = 150000;
// numbers with Chrome.
// Chrome 85 was released on 2020-08-25.
// MAX_INT (0x7FFFFFFF, or -1) specifies that target is not supported.
// Minimum supported value is 71, which was released on 2018-12-04 (see
// Minimum supported value is 74, which was released on 2019-04-23 (see
// feature_matrix.py).
// [link]
var MIN_CHROME_VERSION = 85;
Expand Down
8 changes: 3 additions & 5 deletions test/test_other.py
Original file line number Diff line number Diff line change
Expand Up @@ -14298,8 +14298,8 @@ def test_min_browser_version(self):
err = self.expect_fail([EMCC, test_file('hello_world.c'), '-Wno-transpile', '-Werror', '-sWASM_BIGINT', '-sMIN_SAFARI_VERSION=130000'])
self.assertContained('emcc: error: MIN_SAFARI_VERSION=130000 is not compatible with WASM_BIGINT (150000 or above required)', err)

err = self.expect_fail([EMCC, test_file('hello_world.c'), '-Wno-transpile', '-Werror', '-pthread', '-sMIN_CHROME_VERSION=73'])
self.assertContained('emcc: error: MIN_CHROME_VERSION=73 is not compatible with pthreads (74 or above required)', err)
err = self.expect_fail([EMCC, test_file('hello_world.c'), '-Wno-transpile', '-Werror', '-pthread', '-sMIN_FIREFOX_VERSION=65'])
self.assertContained('emcc: error: MIN_FIREFOX_VERSION=65 is not compatible with pthreads (79 or above required)', err)

def test_signext_lowering(self):
# Use `-v` to show the sub-commands being run by emcc.
Expand All @@ -14312,8 +14312,6 @@ def test_signext_lowering(self):
# Specifying an older browser version should trigger the lowering pass
err = self.run_process(cmd + ['-sMIN_SAFARI_VERSION=120200'], stderr=subprocess.PIPE).stderr
self.assertContained('--signext-lowering', err)
err = self.run_process(cmd + ['-sMIN_CHROME_VERSION=73'], stderr=subprocess.PIPE).stderr
self.assertContained('--signext-lowering', err)

@flaky('https://github.com/emscripten-core/emscripten/issues/20125')
def test_itimer(self):
Expand Down Expand Up @@ -15055,7 +15053,7 @@ def test_no_extra_output(self):

def test_browser_too_old(self):
err = self.expect_fail([EMCC, test_file('hello_world.c'), '-sMIN_CHROME_VERSION=10'])
self.assertContained('emcc: error: MIN_CHROME_VERSION older than 71 is not supported', err)
self.assertContained('emcc: error: MIN_CHROME_VERSION older than 74 is not supported', err)

def test_js_only_settings(self):
err = self.run_process([EMCC, test_file('hello_world.c'), '-o', 'foo.wasm', '-sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE=emscripten_get_heap_max'], stderr=PIPE).stderr
Expand Down
9 changes: 1 addition & 8 deletions tools/feature_matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

# N.b. when modifying these values, update comments in src/settings.js on
# MIN_x_VERSION fields to match accordingly.
OLDEST_SUPPORTED_CHROME = 71 # Released on 2018-12-04
OLDEST_SUPPORTED_CHROME = 74 # Released on 2019-04-23
OLDEST_SUPPORTED_FIREFOX = 65 # Released on 2019-01-29
OLDEST_SUPPORTED_SAFARI = 120200 # Released on 2019-03-25
# 12.22.09 is the oldest version of node that we do any testing with.
Expand All @@ -34,7 +34,6 @@ class Feature(IntEnum):
NON_TRAPPING_FPTOINT = auto()
SIGN_EXT = auto()
BULK_MEMORY = auto()
MUTABLE_GLOBALS = auto()
JS_BIGINT_INTEGRATION = auto()
THREADS = auto()
PROMISE_ANY = auto()
Expand Down Expand Up @@ -63,12 +62,6 @@ class Feature(IntEnum):
'safari': 150000,
'node': 130000,
},
Feature.MUTABLE_GLOBALS: {
'chrome': 74,
'firefox': 61,
'safari': 120000,
'node': 120000,
},
Feature.JS_BIGINT_INTEGRATION: {
'chrome': 67,
'firefox': 68,
Expand Down