on[name] = value;
        } else {
          if (!Array.isArray(json[name])) {
            json[name] = [json[name]];
          }
          json[name].push(value);
        }
      }

      // Go through all of the registered custom components.
      for (var el, i = 0; el = this._customElements[i], i < this._customElements.length; i++) {
        // If this custom element is inside a custom element that has already
        // registered to this form, skip it.
        if (!this._isChildOfRegisteredParent(el) 