**Description:**
- The option `hoist_props` now does what it's supposed to do.
- Dropping of unused properties now does not drop properties too aggressively.
- The initializer of a dropped variable declaration is now properly visited.
- Indexing with string literals is not marked as a dynamic index anymore. This is required to handle codes like c3f67ceb1e/crates/swc_ecma_minifier/tests/terser/compress/hoist_props/name_collision_1/input.js (L1-L7).
**Description:**
I was trying to remove references to Weak Ref from minified code and
despite the expression not being used, it was still included.
E.g.
```
var x = WeakRef;
```
with
```
{
"minify": true,
"jsc": {
"minify": {
"compress": {
"pure_getters": true,
"unused": true
},
"mangle": true
}
}
}
```
outputs
```
WeakRef;
```
but when I use something on this list e.g. parseFloat, it gets cleaned
up and outputs empty string.
btw - I tried different options for pure_getters that I assumed would
allow me to say WeakRef as a getter was pure, but it had no effect.
WeakRef getter is as safe to remove as the other items on this list and
has no effect in accessing it.
**Description:**
Updates `indexmap` to `v2`, reducing dependency duplication. Unfortunately there are still many dependencies that require `v1`, including `rkyv` and `cranelift-egraph` that have no published versions using indexmap `v2`.