fix bugs with getter/setter (#1926)

- `reduce_vars`
- `side_effects`
- property access for object
- `AST_SymbolAccessor` as key names

enhance `test/ufuzz.js`
- add object getter & setter
  - property assignment to setter
  - avoid infinite recursion in setter
- fix & adjust assignment operators
  - 50% `=`
  - 25% `+=`
  - 2.5% each for the rest
- avoid "Invalid array length"
- fix `console.log()`
  - bypass getter
  - curb recursive reference
- deprecate `-E`, always report runtime errors
This commit is contained in:
Alex Lam S.L
2017-05-14 02:10:34 +08:00
committed by alexlamsl
parent d0b0aecfc5
commit a8c67ea353
11 changed files with 286 additions and 87 deletions

View File

@@ -71,7 +71,7 @@ describe("Getters and setters", function() {
var fail = function(data) {
return function (e) {
return e instanceof UglifyJS.JS_Parse_Error &&
e.message === "Invalid getter/setter name: " + data.operator;
e.message === "Unexpected token: operator (" + data.operator + ")";
};
};