|
22 | 22 | shared, |
23 | 23 | utils, |
24 | 24 | ) |
25 | | -from tools.settings import MEM_SIZE_SETTINGS, settings, user_settings |
| 25 | +from tools.settings import MEM_SIZE_SETTINGS, default_settings, settings, user_settings |
26 | 26 | from tools.toolchain_profiler import ToolchainProfiler |
27 | 27 | from tools.utils import exit_with_error, read_file |
28 | 28 |
|
@@ -216,6 +216,7 @@ def parse_args(newargs): # noqa: C901, PLR0912, PLR0915 |
216 | 216 | """ |
217 | 217 | should_exit = False |
218 | 218 | skip = False |
| 219 | + builtin_settings = set(default_settings.keys()) |
219 | 220 | LEGACY_ARGS = {'--js-opts', '--llvm-opts', '--llvm-lto', '--memory-init-file'} |
220 | 221 | LEGACY_FLAGS = {'--separate-asm', '--jcache', '--proxy-to-worker', '--default-obj-ext', |
221 | 222 | '--embind-emit-tsd', '--remove-duplicates', '--no-heap-copy'} |
@@ -572,12 +573,12 @@ def consume_arg_file(): |
572 | 573 | elif arg.startswith('-jsD'): |
573 | 574 | key = arg.removeprefix('-jsD') |
574 | 575 | if '=' in key: |
575 | | - key, value = key.split('=') |
| 576 | + key, value = key.split('=', 1) |
576 | 577 | else: |
577 | 578 | value = '1' |
578 | | - if key in settings.keys(): |
| 579 | + if key in builtin_settings: |
579 | 580 | exit_with_error(f'{arg}: cannot change built-in settings values with a -jsD directive. Pass -s{key}={value} instead!') |
580 | | - # Apply user -jsD settings |
| 581 | + # Allow overrides/duplicates for user-defined -jsD flags |
581 | 582 | settings[key] = value |
582 | 583 | newargs[i] = '' |
583 | 584 | elif check_flag('-shared'): |
|
0 commit comments