code: function chain(a, b) {
      var prop, descriptor = {};
      for (prop in a) {
          if (a.hasOwnProperty(prop)) {
              descriptor[prop] = Object.getOwnPropertyDescriptor(a, prop);
          }
      }
      return Object.create(b, descriptor);
  }
docs: Return a copy of a with prototype of b