Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve the JS performance for logic-heavy stylesheets #760

Merged
merged 5 commits into from
Jul 15, 2019
Merged

Commits on Jul 15, 2019

  1. Don't compile to JS in minified mode

    The JS size doesn't really matter on the server side, and this makes
    profiling the release-mode binary substantially easier, as well as
    improving the quality of stack traces provided by downstream users.
    nex3 committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    a841882 View commit details
    Browse the repository at this point in the history
  2. Pass a dummy isValidKey callback to normalized map and set

    The default implementation runs a type check, which was a performance
    bottleneck when compiled to JS. There's no need for this type check in
    practice, since we never pass a non-String value to the contains(),
    containsKey(), or remove() methods (and if we do, it will throw a
    TypeError in our tests).
    nex3 committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    a8e99e9 View commit details
    Browse the repository at this point in the history
  3. Use list comprehensions in *Evaluate._evaluateArguments

    As well as being arguably more readable, the toList() method was
    running a type check that was showing up as a minor bottleneck in JS
    profiles.
    nex3 committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    58e9e74 View commit details
    Browse the repository at this point in the history
  4. Update benchmarks for JS performance improvements

    As expected, this substantially improves the JS performance in
    logic-heavy benchmarks. I believe the other changes are just noise.
    nex3 committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    ed73c2c View commit details
    Browse the repository at this point in the history
  5. Release 1.22.5

    nex3 committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    535030b View commit details
    Browse the repository at this point in the history