code: function definePropertyHolder(object) {
                  let holder = defaultValue;
  
                  Object.defineProperty(object, id, {
                      enumerable: false,
                      configurable: true,
                      get: function getterWrapper() {
                          if (checkIfWrapped(getterWrapper.caller)) {
                              return holder;
                          }
                          throw new ReferenceError(`Access violation for private property: 
                              ${id}`);
                      },
                      set: function setterWrapper(value) {
                          if (checkIfWrapped(setterWrapper.caller)) {
                              holder = value;
                          } else {
                              throw new ReferenceError(`Access violation for private property:
                                   ${id}`);
                          }
                      }
                  });
                  propertyHolderDefined = true;
              }
docs: Defines a secret property holder on a current object instance. Access to it is only permitted to those two wrappers below. /* eslint-disable no-use-before-define