freak.js
function wrapMutatingArrayMethod(method, func) {
      return function() {
        var result = [][method].apply(obj, arguments);
        this.len = this.values.length;
        cache = {};
        children = {};
        func.apply(this, arguments);
        target.parent.trigger('update', target.prop);
        return result;
      };
    }
function wrapMutatingArrayMethod(method, func) {
      return function() {
        var result = [][method].apply(obj, arguments);
        this.len = this.values.length;
        cache = {};
        children = {};
        func.apply(this, arguments);
        target.parent.trigger('update', target.prop);
        return result;
      };
    }
function wrapMutatingArrayMethod ( method , func ) { return function ( ) { var result = [ ] [ method ] . apply ( obj , arguments ) ; this . len = this . values . length ; cache = { } ; children = { } ; func . apply ( this , arguments ) ; target . parent . trigger ( 'update' , target . prop ) ; return result ; } ; }
Wrap mutating array method to update state and notify listeners
Wrap mutating array method to update state and notify listeners