lib/vendor/sugar.js
function extend(klass, instance, override, methods) {
    var extendee = instance ? klass.prototype : klass;
    initializeClass(klass);
    iterateOverObject(methods, function(name, method) {
      var original = extendee[name];
      var existed  = hasOwnProperty(extendee, name);
      if(typeof override === 'function') {
        method = wrapNative(extendee[name], method, override);
      }
      if(override !== false || !extendee[name]) {
        defineProperty(extendee, name, method);
      }
      // If the method is internal to Sugar, then store a reference so it can be restored later.
      klass['SugarMethods'][name] = { instance: instance, method: method, original: original, existed: existed };
    });
  }
function extend(klass, instance, override, methods) {
    var extendee = instance ? klass.prototype : klass;
    initializeClass(klass);
    iterateOverObject(methods, function(name, method) {
      var original = extendee[name];
      var existed  = hasOwnProperty(extendee, name);
      if(typeof override === 'function') {
        method = wrapNative(extendee[name], method, override);
      }
      if(override !== false || !extendee[name]) {
        defineProperty(extendee, name, method);
      }
      // If the method is internal to Sugar, then store a reference so it can be restored later.
      klass['SugarMethods'][name] = { instance: instance, method: method, original: original, existed: existed };
    });
  }
function extend ( klass , instance , override , methods ) { var extendee = instance ? klass . prototype : klass ; initializeClass ( klass ) ; iterateOverObject ( methods , function ( name , method ) { var original = extendee [ name ] ; var existed = hasOwnProperty ( extendee , name ) ; if ( typeof override === 'function' ) { method = wrapNative ( extendee [ name ] , method , override ) ; } if ( override !== false || ! extendee [ name ] ) { defineProperty ( extendee , name , method ) ; } // If the method is internal to Sugar, then store a reference so it can be restored later. klass [ 'SugarMethods' ] [ name ] = { instance : instance , method : method , original : original , existed : existed } ; } ) ; }
Class extending methods
Class extending methods