“use strict”;

Object.defineProperty(exports, “__esModule”, {

value: true

}); exports.default = inherits;

var _constants = require(“../constants”);

var _inheritsComments = _interopRequireDefault(require(“../comments/inheritsComments”));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function inherits(child, parent) {

if (!child || !parent) return child;

for (const key of _constants.INHERIT_KEYS.optional) {
  if (child[key] == null) {
    child[key] = parent[key];
  }
}

for (const key of Object.keys(parent)) {
  if (key[0] === "_" && key !== "__clone") child[key] = parent[key];
}

for (const key of _constants.INHERIT_KEYS.force) {
  child[key] = parent[key];
}

(0, _inheritsComments.default)(child, parent);
return child;

}