- `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
32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
var UglifyJS = require("../node");
|
|
var assert = require("assert");
|
|
|
|
describe("Accessor tokens", function() {
|
|
it("Should fill the token information for accessors (issue #1492)", function() {
|
|
// location 0 1 2 3 4
|
|
// 01234567890123456789012345678901234567890123456789
|
|
var ast = UglifyJS.parse("var obj = { get latest() { return undefined; } }");
|
|
|
|
// test all AST_ObjectProperty tokens are set as expected
|
|
var checkedAST_ObjectProperty = false;
|
|
var checkWalker = new UglifyJS.TreeWalker(function(node, descend) {
|
|
if (node instanceof UglifyJS.AST_ObjectProperty) {
|
|
checkedAST_ObjectProperty = true;
|
|
|
|
assert.equal(node.start.pos, 12);
|
|
assert.equal(node.end.endpos, 46);
|
|
|
|
assert(node.key instanceof UglifyJS.AST_SymbolMethod);
|
|
assert.equal(node.key.start.pos, 12);
|
|
assert.equal(node.key.end.endpos, 22);
|
|
|
|
assert(node.value instanceof UglifyJS.AST_Accessor);
|
|
assert.equal(node.value.start.pos, 22);
|
|
assert.equal(node.value.end.endpos, 46);
|
|
|
|
}
|
|
});
|
|
ast.walk(checkWalker);
|
|
assert(checkedAST_ObjectProperty, "AST_ObjectProperty not found");
|
|
});
|
|
}); |