safer properties transform (#2391)

`{ a: x, b: y }.a` => `[ x, y ][0]`
- `x` cannot be function containing `this`

`[ x, y, z ][1]` => `(x, z, y)`
- only if `z` is side-effect-free
This commit is contained in:
Alex Lam S.L
2017-10-22 20:10:13 +08:00
committed by GitHub
parent 5fd723f143
commit 24aa07855b
6 changed files with 226 additions and 120 deletions

View File

@@ -2660,8 +2660,8 @@ obj_var_2: {
evaluate: true,
inline: true,
passes: 2,
properties: true,
reduce_vars: true,
side_effects: true,
toplevel: true,
unsafe: true,
unused: true,
@@ -2716,10 +2716,10 @@ obj_arg_2: {
evaluate: true,
inline: true,
passes: 2,
properties: true,
reduce_vars: true,
side_effects: true,
toplevel: true,
unsafe: true,
unused: true,
}
input: {