code: function extend(d, element) {
      var map = Object.keys(element.prototype).reduce(function (descriptors, key) {
          descriptors[key] = Object.getOwnPropertyDescriptor(element.prototype, key);
          return descriptors;
      }, {});
      Object.defineProperties(d, map);
  }
docs: new extend, works with getters and setters