function createNodesFromMarkup()

in packages/fbjs/src/core/createNodesFromMarkup.js [51:82]


function createNodesFromMarkup(markup, handleScript) {
  let node = dummyNode;
  invariant(!!dummyNode, 'createNodesFromMarkup dummy not initialized');
  const nodeName = getNodeName(markup);

  const wrap = nodeName && getMarkupWrap(nodeName);
  if (wrap) {
    node.innerHTML = wrap[1] + markup + wrap[2];

    let wrapDepth = wrap[0];
    while (wrapDepth--) {
      node = node.lastChild;
    }
  } else {
    node.innerHTML = markup;
  }

  const scripts = node.getElementsByTagName('script');
  if (scripts.length) {
    invariant(
      handleScript,
      'createNodesFromMarkup(...): Unexpected <script> element rendered.'
    );
    createArrayFromMixed(scripts).forEach(handleScript);
  }

  const nodes = Array.from(node.childNodes);
  while (node.lastChild) {
    node.removeChild(node.lastChild);
  }
  return nodes;
}