code: function(sub) {
      var Super = this;
      var Constructor = hasOwn.call(sub, 'constructor') ? sub.constructor : function() {
        Super.apply(this, arguments);
      };
  
      // This initialization logic is somewhat sensitive to be compatible with
      // divergent JS implementations like the one found in Qt. See here for more
      // context:
      //
      // https://github.com/stripe/stripe-node/pull/334
      Object.assign(Constructor, Super);
      Constructor.prototype = Object.create(Super.prototype);
      Object.assign(Constructor.prototype, sub);
  
      return Constructor;
    }
docs: Provide simple "Class" extension mechanism