code: function() {
          this.willReopen();
  
          var l = arguments.length;
          var args = new Array(l);
          if (l > 0) {
            for (var i = 0; i < l; i++) {
              args[i] = arguments[i];
            }
          }
  
          apply(this.PrototypeMixin, reopen, args);
          return this;
        }
docs: Augments a constructor's prototype with additional
  properties and functions:
  
  ```javascript
  MyObject = Ember.Object.extend({
  name: 'an object'
  });
  
  o = MyObject.create();
  o.get('name'); // 'an object'
  
  MyObject.reopen({
  say: function(msg){
  console.log(msg);
  }
  })
  
  o2 = MyObject.create();
  o2.say("hello"); // logs "hello"
  
  o.say("goodbye"); // logs "goodbye"
  ```
  
  To add functions and properties to the constructor itself,
  see `reopenClass`
  
  @method reopen