aboutsummaryrefslogtreecommitdiff
path: root/lib/utils.js
AgeCommit message (Collapse)Author
2020-05-09implement AST validation (#3863)Alex Lam S.L
2020-05-05update links to repository after rename (#3847)Alex Lam S.L
2020-04-18report top-level default options (#3797)Alex Lam S.L
2020-04-17suppress mutation of input `options` (#3785)Alex Lam S.L
2020-04-11fix corner case in `inline` (#3778)Alex Lam S.L
fixes #3777
2020-03-21fix corner case in `evaluate` & `ie8` (#3751)Alex Lam S.L
fixes #3750
2020-02-06export missing API for AST manipulation (#3707)Alex Lam S.L
2019-10-20minor tweaks (#3502)Alex Lam S.L
2019-04-30unify logging functionality (#3392)Alex Lam S.L
fixes #3253 fixes #3254
2018-07-19fix corner case in `ie8` (#3216)Alex Lam S.L
fixes #3215
2018-07-13fix corner cases in `preserve_line` (#3212)Alex Lam S.L
2018-06-24enhance `arguments` (#3193)Alex Lam S.L
fixes #3192
2018-06-06general clean-ups (#3175)Alex Lam S.L
2018-04-27improve general performance (#3104)Alex Lam S.L
2018-04-03improve performance through `makePredicate()` (#3048)Alex Lam S.L
2018-01-17fix `AST_Scope.clone()` (#2803)Alex Lam S.L
fixes #2799
2017-12-22make comments output more robust (#2633)Alex Lam S.L
- improve handling of comments right after `return` - retain comments after `OutputStream` - preserve trailing comments - fix handling of new line before comments - handle comments around parentheses fixes #88 fixes #112 fixes #218 fixes #372 fixes #2629
2017-12-11remove unused code (#2579)Alex Lam S.L
fixes #2577
2017-06-03clean up `lib/parse.js` (#2047)Alex Lam S.L
- remove unused definitions - replace `array_to_hash()`
2017-04-12convert `AST_Seq` from binary tree to array (#1460)Alex Lam S.L
- rename `AST_Seq` to `AST_Sequence` - raise default sequences_limit from 200 to 800
2017-03-15fix `AST_Node.optimize()` (#1602)Alex Lam S.L
Liberal use of `Compressor.transform()` and `AST_Node.optimize()` presents an issue for look-up operations like `TreeWalker.in_boolean_context()` and `TreeWalker.parent()`. This is an incremental fix such that `AST_Node.optimize()` would now contain the correct stack information when called correctly.
2017-03-01fix crash on missing `props` to `string_template()` (#1523)Alex Lam S.L
Patched up `make_node()` without `orig`. There may be other cases where `start` could be missing, so make it print "undefined" instead of crashing. fixes #1518
2017-02-27improve error messages (#1506)Alex Lam S.L
- better inheritance of `Error` sub-classes - mark parse error against source in CLI closes #235 closes #348 closes #524 closes #1356 closes #1405
2017-02-21clean up `negate_iife`alexlamsl
- remove extra tree scanning phase for `negate_iife` - `negate_iife` now only deals with the narrowest form, i.e. IIFE sitting directly under `AST_SimpleStatement` - `booleans`, `conditionals` etc. will now take care the rest via more accurate accounting - `a(); void b();` => `a(); b();` fixes #1288 closes #1451
2016-11-29Do not overwrite options.comments + cleanupAnthony Van de Gejuchte
2016-06-30Various LineTerminator changesAnthony Van de Gejuchte
* Escaped newlines should also produce SyntaxError * Fix multiline comment parsing and add tests * Adapt makePredicate to handle \u2028 and \u2029 * Move up nlb check in regex so it's checked before any escape handling * Change error messages to conform ecma standard * Find_eol not recornizing \u2028 and \u2029 as line terminator * Remove \u180e as it is removed in unicode 6.3.0 from the category zs
2016-04-07Simplify member(name, array) implementation.kzc
2016-04-07Avoid using inherited hasOwnPropertyMihai Bazon
Fix #1031
2015-03-14Add property name manglerMihai Bazon
We only touch properties that are present in an object literal, or which are assigned to. Example: x = { foo: 1 }; x.bar = 2; x["baz"] = 3; x[cond ? "qwe" : "asd"] = 4; console.log(x.stuff); The names "foo", "bar", "baz", "qwe" and "asd" will be mangled, and the resulting mangled names will be used for the same properties throughout the code. The "stuff" will not be, since it's just referenced but never assigned to. This *will* break most of the code out there, but could work on carefully written code: do not use eval, do not define methods or properties by walking an array of names, etc. Also, a comprehensive list of exclusions needs to be passed, to avoid mangling properties that are standard in JavaScript, DOM, used in external libraries etc.
2013-12-10semicolonsMihai Bazon
2013-12-10Merge pull request #245 from ForbesLindesay/patch-1Mihai Bazon
Make `DefaultsError` a real `Error` object
2013-11-28Add --noerr to turn off argument name checkingMihai Bazon
for now only used for keys passed to `-c` or `-b`.
2013-07-22Make `DefaultsError` a real `Error` objectForbes Lindesay
2013-05-14Only compress code in `new Function` if all arguments are strings.Mihai Bazon
2012-12-05When hoisting variables, try to merge in assignments that follow.Mihai Bazon
2012-11-06add option to mangle names even if eval/with is in useMihai Bazon
(for more fair comparison to Closure compiler)
2012-11-02use a Dictionary object instead of plain object for hashesMihai Bazon
to mitigate the `__proto__` issue related to #30
2012-10-18more optimizations for some break/continue casesMihai Bazon
2012-10-11stealing more hacks from acorn in the name of speedMihai Bazon
2012-10-11using makeComparator from acorn to generate functions that tests whether aMihai Bazon
string is keyword, reserved etc. speeds up the parser a bit, though not spectacular.. still far from acorn.
2012-10-11cleanupMihai Bazon
- use prototype-less objects where feasible (minor speed improvement) - get rid of HOP
2012-10-02"use strict";Mihai Bazon
2012-10-02a shy attempt to obey `width` in the beautifier; added `bracketize` option ↵Mihai Bazon
to always print brackets around if/do/while/for statements; export more options via the CLI
2012-09-26compressor successfully moved to TreeTransformerMihai Bazon
2012-09-23properly drop mutually-referring declarations that are not otherwiseMihai Bazon
referenced and have no side effects
2012-09-16rewrite handle_if_returnMihai Bazon
optimizations of if/return/continue seem to be even better now
2012-09-12more AST_If optimizationsMihai Bazon
2012-09-11fixed some mess with symbols/scopeMihai Bazon
- all symbols now have a `thedef` property which is a SymbolDef object, instead of the `uniq` that we had before (pointing to the first occurrence of the name as declaration). - for undeclared symbols we still create a SymbolDef object in the toplevel scope but mark it "undeclared" - we can now call figure_out_scope after squeezing, which is useful in order not to mangle names that were dropped by the squeezer
2012-09-10adaptive base54 digits depending on char frequency (WIP)Mihai Bazon
2012-09-10more progress on the compressor (WIP)Mihai Bazon