**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:**
- `jsc.experimental.keepImportAssertions` is renamed to `jsc.experimental.keepImportAttributes`.
- `jsc.experimental.emitAssertForImportAttributes` is added.
**Related issue:**
- Closes#7908
**Description:**
Looks like the bug I ran into had nothing to do with the changes in
#7856, since it's reproducible without it. Looks like it might have only
surfaced now because https://github.com/swc-project/swc/pull/7853
changed the default value of `jsc.minify.format.comments`? Added a
minimal test case here with the expected result.
Here's the actual output:
```js
export var padding = '';
export function exec2({ commands }) {
return __awaiter(this, void 0, void 0, function*() {
for(let i2 = 0; i2 < commands.length; i2++){
let command = commands[i2];
yield // some-comment
function({ command }) {
command();
}({
command,
handleError
});
}
});
}
```
The comment ends up getting added after the yield, which makes the
output invalid.
Going to see if I can figure out a fix tomorrow, but let me know if you
have any ideas on where to start looking in the meantime!