**Description:**
This PR is to prepare removal of `string-cache`. Actually, this PR does not remove it. Instead, this PR only removes direct usages of `js_word!`s, especially in patterns.
**Related issue:**
- #4946.
**Description:**
## Bugfixes
- Exported `let`/`var` declarations in TypeScript namespaces should be mutable.
- Fix missing declaration of complex exported patterns in TypeScript namespaces.
- Preserve concrete TS namespaces.
## New Features
- Introducing [Verbatim Module Syntax](https://www.typescriptlang.org/tsconfig#verbatimModuleSyntax).
- Enum value will now be inlined whenever possible within a single module, optimizing runtime performance.
- Constant enums will be automatically eliminated when feasible, This can reduce bundle size.
- Added support for cross-referencing enum values.
## Deprecated
`TsEnumConfig` is deprecated
- The `treat_const_enum_as_enum` transform option is deprecated.
- The `ts_enum_is_readonly` assumption option is deprecated.
**BREAKING CHANGE:**
TypeScript Config is changed.
**Related issue:**
- Closes#5197
- Closes#5259
- Closes#7177
- Closes#7453
- Closes#7676
- Closes#7681
- Closes#7791
- Closes#7961
**Description:**
Previously it was impossible to minify non-strict code (e.g. `delete identifier;`) because `minify()` unconditionally parsed the input as a module regardless of the `module` setting.
**BREAKING CHANGE:**
`minify()` now respects the `module` parameter instead of ignoring it, so users who had been processing modules with `minify()` without passing `{ module: true }` will now need to pass it.
**Related issue**
- Closes#6130.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
**Description:**
- `jsc.experimental.keepImportAssertions` is renamed to `jsc.experimental.keepImportAttributes`.
- `jsc.experimental.emitAssertForImportAttributes` is added.
**Related issue:**
- Closes#7908