function validateDangerousTag(tag) {
  if (!hasOwnProperty.call(validatedTagCache, tag)) {
    ("production" !== process.env.NODE_ENV ? invariant(VALID_TAG_REGEX.test(tag), 'Invalid tag: %s', tag) : invariant(VALID_TAG_REGEX.test(tag)));
    validatedTagCache[tag] = true;
  }
}
Creates markup for the open tag and all attributes.

This method has side effects because events get registered.

Iterating over object properties is faster than iterating over arrays.
@see http://jsperf.com/obj-vs-arr-iteration

@private
@param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
@return {string} Markup of opening tag.