Classtrophobic landed on older browsers too
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Classtrophobic ES5 build status Coverage Status

Project Classtrophobic can work on older browsers too.

No class or Proxy used in here, and the only caveat is that subclasses with a constructor must return the super instance.

var List = Class({
  extends: Array,
  constructor: function () {
    // super might promote current instance
    var self = this.super();
    // be sure you use the right reference
    self.push.apply(self, arguments);
    // and remember to return it
    return self;
  push: function () {
    // constructor a part, everything else is the same
    this.super.push.apply(this, arguments);
    // make push chainable for demo purpose
    return this;

Which Version For My Targets?

You can test live both classtrophobic and classtrophobic-es5. If the page turns out green, you're good to go!

The main difference is that ES5 version has a greedy runtime when it comes to super usage, while this original version uses real classes and delegate to Proxy access the super resolution, working only when a method is accessed and per single method, as opposite of runtime setup for all methods in the es5 case.

Luckily overrides are not the most frequent thing ever.


At least the annex B __proto__ accessor should be there. This means pretty much every Mobile browser and every Desktop one, starting from IE11.