Permalink
Commits on Jul 24, 2012
  1. v1.3.3

    mishoo committed Jul 24, 2012
Commits on Jul 20, 2012
  1. Merge pull request #432 from rvanvelzen/fix-431

    mishoo committed Jul 20, 2012
    Fix issue #431
  2. fix --lift-vars for "for(var i; ...)" (var declared in for but uninit…

    mishoo committed Jul 20, 2012
    …ialized)
    
    (fixes #436)
Commits on Jul 19, 2012
Commits on Jul 16, 2012
  1. Fix issue #431

    Richard van Velzen
    Richard van Velzen committed Jul 16, 2012
    In prepare_ifs(), the ast was being walked recursively infinitely.
Commits on Jul 12, 2012
  1. "sys" → "util"

    mishoo committed Jul 12, 2012
  2. emacs vars

    mishoo committed Jul 12, 2012
  3. revert f5419ec (squashable directives)

    mishoo committed Jul 12, 2012
    Seems we cannot rely on the scope in ast_squeeze because there's no scope
    after tighten (which is called for function bodies).
Commits on Jun 26, 2012
  1. v1.3.2

    mishoo committed Jun 26, 2012
  2. add the space in “return λ” and similar cases

    mishoo committed Jun 26, 2012
    fixes #420
Commits on Jun 18, 2012
  1. v1.3.1

    mishoo committed Jun 18, 2012
Commits on Jun 7, 2012
  1. minor --make stuff

    mishoo committed Jun 7, 2012
    - use eval rather than JSON.parse for reading the Makefile (I dislike the
      obligatory quotes in property names in JSON)
    
    - locate files relative to the path of the Makefile
Commits on Jun 6, 2012
Commits on Jun 5, 2012
  1. Merge pull request #410 from RGustBardon/infinite

    mishoo committed Jun 5, 2012
    Fix representation of infinite values
  2. Fix representation of infinite values

    RGustBardon committed Jun 5, 2012
    Infinite numbers (NaN and Infinity) were represented incorrectly due
    to make_num using the Number.prototype.toString method (15.7.4.2)
    which in turn performs the abstract operation ToString (9.8) which
    returns a string "NaN" or "Infinity" in accordance with the first and
    the fourth step of 9.8.1.
    
    As the corresponding value properties of the global object can be
    "shadowed", representing such numbers as "NaN" and "Infinity" can lead
    to incorrect behavior. For example:
    
    ```javascript
    with({
      get NaN() {
        throw new Error();
      }
    }) {
      0 / 0;
    }
    ```
    
    This patch checks for the values in question in the make_num function
    and represents them using MultiplicativeExpression nonterminals
    (e.g. "0/0" instead of "NaN").
  3. Merge pull request #408 from RGustBardon/if-not

    mishoo committed Jun 5, 2012
    Remove NOT in IfStatement with EmptyStatement (-s)
  4. Merge pull request #407 from RGustBardon/1e+21

    mishoo committed Jun 5, 2012
    Remove unnecessary "+" sign in SignedInteger
  5. Remove NOT in IfStatement with EmptyStatement (-s)

    RGustBardon committed Jun 5, 2012
    If the only statement of a nonterminal IfStatement is a nonterminal
    EmptyStatement or a nonterminal IfStatement consists of two
    nonterminal EmptyStatement symbols, such a statement is transformed
    into a nonterminal ExpressionStatement that consists of a
    UnaryExpression with the logical NOT operator and the expression found
    in the nonterminal IfStatement.  The operator in question is
    superfluous.
    
    This patch omits the negation by detecting the described case earlier.
  6. Remove unnecessary "+" sign in SignedInteger

    RGustBardon committed Jun 5, 2012
    A "+" sign is added unnecessarily for numbers like 1e21 (resulting in
    1e+21) due to make_num using the Number.prototype.toString method
    (15.7.4.2) which in turn performs the abstract operation ToString
    (9.8) which adds the "+" sign in accordance with the last step of
    9.8.1.
    
    This patch removes the sign after the conversion in question by
    replacing "e+" with "e".
Commits on Jun 3, 2012
  1. fix options for ast_mangle

    mishoo committed Jun 3, 2012
    issue #404
Commits on May 31, 2012
Commits on May 28, 2012
  1. v1.3.0

    mishoo committed May 28, 2012
    - support for directives (i.e. "use strict";)
    - newlines in multi-line comments trigger ASI
    - added nodeunit dependency for NPM, other code restructuring
    - apply ascii_only option to regexps
    - allow defines when not mangling
    - some parser/code generator fixes #376, #396
    - (static) mangler optimization for gzip (#397)
    
    Contributors (in no particular order):
    
    Richard van Velzen <rvanvelzen@expert-shops.com>
    Paul Baumgart <paul@proxv.com>
    Mal Graty <mal.graty@googlemail.com>
    Jez Ng <jezreel@gmail.com>
    Robert Gust-Bardon <donate@robert.gust-bardon.org>
  2. Merge pull request #401 from proxv/ast-squeeze-call

    mishoo committed May 28, 2012
    Also descend arg AST nodes in ast_squeeze function-call handler
Commits on May 27, 2012
  1. Merge pull request #400 from proxv/override-digits-in-tests

    mishoo committed May 27, 2012
    Add base54 digits override for unit tests.
  2. Add base54 digits override for unit tests.

    Paul Baumgart
    Paul Baumgart committed May 27, 2012
    Prevents unit tests from depending on how mangled variable name
    generation is optimized for gzip compression.
Commits on May 26, 2012
  1. Merge branch 'fix-222-and-324' of https://github.com/RGustBardon/Ugli…

    mishoo committed May 26, 2012
    …fyJS into RGustBardon-fix-222-and-324
  2. Undo commit 133b36f

    mishoo committed May 26, 2012
    Using the tokenizer there slows down the code generator by orders of
    magnitude (26s instead of 2s for 600K code).  It's not worth to trade so
    many seconds for a couple extra-parens.
    
    I hope the tree is in good shape now, except for issue #368.
Commits on May 25, 2012
  1. Merge pull request #397 from rvanvelzen/optimize_gzip

    mishoo committed May 25, 2012
    Optimize list of digits for generating identifiers for gzip compression. (fixes #142)
  2. Optimize list of digits for generating identifiers for gzip compression.

    Richard van Velzen
    Richard van Velzen committed May 25, 2012
    The list is based on reserved words and identifiers used in dot-expressions. It saves a quite a few bytes.