CoffeeScript Inheritance vs augment

Benchmark created by Aadit M Shah on


Description

CoffeeScript is understandably better than augment when it comes to a single class without inheritance, but how much faster is augment when there's inheritance?

Preparation HTML

<script src="https://raw.github.com/javascript/augment/master/augment.js"></script>
<script>
var __hasProp = {}.hasOwnProperty,
  __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
CoffeeScript
var Rectangle = (function() {

  function Rectangle(width, height) {
    this.width = width;
    this.height = height;
  }

  Rectangle.prototype.area = function() {
    return this.width * this.height;
  };

  return Rectangle;

})();

var Square = (function(_super) {

  __extends(Square, _super);

  function Square(side) {
    Square.__super__.constructor.call(this, side);
  }

  return Square;

})(Rectangle);

var square = new Square(5);
square.area();
ready
augment
var Rectangle = Object.augment(function () {
    this.area = function () {
        return this.width * this.height;
    };

    return Rectangle;

    function Rectangle(width, height) {
        this.height = height;
        this.width = width;
    }
});

var Square = Rectangle.augment(function (Rectangle) {
    return Square;

    function Square(side) {
        Rectangle.call(this, side, side);
    }
});

var square = new Square(5);
square.area();
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.