__initSlots(slotNames) {
      for (const slotName of slotNames) {
        if (this.__slotsProvidedByUserOnFirstConnected.has(slotName)) {
          // eslint-disable-next-line no-continue
          continue;
        }

        const slotFunctionResult = this.slots[slotName]();
        // Allow to conditionally return a slot
        if (slotFunctionResult === undefined) {
          // eslint-disable-next-line no-continue
          continue;
        }

        if (!this.__isConnectedSlotMixin) {
          this.__privateSlots.add(slotName);
        }

        const slotFunctionResultType = determineSlotFunctionResultType(slotFunctionResult);

        switch (slotFunctionResultType) {
          case 'template-result':
            this.__renderTemplateInScopedContext({
              template: /** @type {import('lit').TemplateResult} */ (slotFunctionResult),
              renderAsDirectHostChild: true,
              slotName,
            });
            break;
          case 'node':
            this.__appendNodes({
              nodes: [/** @type {Node} */ (slotFunctionResult)],
              renderParent: this,
              slotName,
            });
            break;
          case 'slot-rerender-object':
            // Rerenderable slots are scheduled in the "update loop"
            this.__slotsThatNeedRerender.add(slotName);
            // For backw. compat, we allow a first render on connectedCallback
            if (/** @type {SlotRerenderObject} */ (slotFunctionResult).firstRenderOnConnected) {
              this.__rerenderSlot(slotName);
            }
            break;
          default:
            throw new Error(
              `Slot "${slotName}" configured inside "get slots()" (in prototype) of ${this.constructor.name} may return these types: TemplateResult | Node | {template:TemplateResult, afterRender?:function} | undefined.
              You provided: ${slotFunctionResult}`,
            );
        }
      }
    }
Here we look what's inside our `get slots`.
Rerenderable slots get scheduled and "one time slots" get rendered once on connected
@param {string[]} slotNames