Age | Commit message (Collapse) | Author |
|
|
|
fixes #2377
|
|
|
|
|
|
|
|
`{ 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Suppress scanning beyond assignment to `a.b`
|
|
|
|
fixes #2364
|
|
fixes #2364
|
|
|
|
- constant expression
- single reference
- same scope
- not across loop body
|
|
|
|
fixes #2336
|
|
fixes #2319
|
|
fixes #2313
|
|
|
|
|
|
|
|
Avoid collision with local variable `undefined` under certain corner cases.
fixes #2298
|
|
fixes #2295
|
|
fixes #2288
|
|
fixes #2234
|
|
fixes #2233
|
|
fixes #2231
|
|
fixes #2226
|
|
- remove hardcoded upper limit
- continue based on node count reduction
- emit verbose statistics
fixes #2226
|
|
|
|
- guard by `unsafe`
- support `Array`, `Math`, `Number`, `Object` & `String`
fixes #2207
|
|
- only if property value is side-effect-free
- guard by `unsafe`
fixes #2208
|
|
fixes #2203
|
|
fixes #2198
|
|
|
|
- eliminate `throw` usages
- suppress extraneous parenthesis
- `new function() {foo.bar()}.baz`
- `for (function() { "foo" in bar; };;);`
|
|
Eliminate exceptional constructs from normal control flow.
|
|
|
|
... by teaching `collapse_vars` some new tricks.
fixes #2187
|
|
- minimise disturbance to `compute_char_frequency()`
- remove extraneous quotation marks
|
|
- let parser rejects non-conformant input
- eliminate need for extraneous parenthesis
|
|
|
|
|
|
|
|
|
|
fixes #2140
|