Make dejavu usages faster
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
tasks
.editorconfig
.gitignore
.jshintrc
CHANGELOG.md
LICENSE
README.md
index.js
package.json

README.md

dejavu optimizer

NOTE: This project is deprecated and is no longer mantained.

The dejavu optimizer analyzes your code, making dejavu usages faster.
Benchmarks: jsperf

What it does?

  • Improves $super(), $self and $static usage
  • Removes the need for wrappers, improving performance by a great margin
  • Removes abstract functions from abstract classes
  • Removes functions from interfaces
  • Removes all $locked and $member() because they are not used in the loose version

Usage

Node script

There's a simple nodejs script located in the bin folder. If you are optimizing your code for nodejs then pass the --closure option. This will boost the performance when running code in v8. Please look at the jsperf results to see the difference in the different browsers.

Example usage:

node optimizer < file_in.js > file_out.js node optimizer --closure < file_in.js > file_out.closure.js

Programmatic

To use the optimizer programatically, please check bin/optimizer for an example.

Tasks

dejavu comes with an automaton and grunt task.

Sample usage of automaton:

var dejavuOptimizer = require('dejavu/tasks/optimizer.autofile');

module.exports = function (task) {
    task.do(dejavuOptimizer, {
        description: 'Optimize myfile',
        options: {
            closure: true, // defaults to false
            files: {
                'src/myfile.js': 'dst/myfile.opt.js'
            }
        }
    });
}

Sample usage of grunt:

grunt.loadNpmTasks('dejavu');

grunt.initConfig({
    dejavuopt: {
        sometarget: {
            closure: true, // defaults to false
            files: {
                'dst/myfile.opt.js': 'src/myfile.js'
            }
        }
    }
});

License

Released under the MIT License.