code: function generalize(GeneralClass, SpecificClass) {
    expect(arguments).to.have.length(
      2,
      'Invalid argument length when generalizing classes (it has to be passed ' +
      '2 arguments)'
    );
    expect(GeneralClass).to.be.a(
      'function',
      'Invalid argument "GeneralClass" when generalizing classes (it has to be ' +
      'a function)'
    );
    expect(SpecificClass).to.be.a(
      'function',
      'Invalid argument "SpecificClass" when generalizing classes (ut has to ' +
      'be a function)'
    );
  
    util.inherits(SpecificClass, GeneralClass);
  
    for (var property in GeneralClass) {
      if (SpecificClass.hasOwnProperty(property) === false) {
        var descriptor = Object.getOwnPropertyDescriptor(GeneralClass, property);
        if (descriptor) {
          descriptor.configurable = true;
          Object.defineProperty(SpecificClass, property, descriptor);
        }
      }
    }
  }
docs: Makes the GeneralClass to generalize the SpecificClass.
  @param {!Class} GeneralClass The general class to generalize the
  SpecificClass.
  @param {!Class} SpecificClass The specific class to be generalized by the
  GeneralClass.
  @example
  function GeneralClass() {}
  
  function SpecificClass() {
  GeneralClass.call(this);
  }
  
  classes.generalize(GeneralClass, SpecificClass);