function createAndInsertMessage()

in performance-monitoring/src/index.js [332:370]


 function createAndInsertMessage(id, timestamp) {
   const container = document.createElement('div');
   container.innerHTML = MESSAGE_TEMPLATE;
   const div = container.firstChild;
   div.setAttribute('id', id);

   // If timestamp is null, assume we've gotten a brand new message.
   // https://stackoverflow.com/a/47781432/4816918
   timestamp = timestamp ? timestamp.toMillis() : Date.now();
   div.setAttribute('timestamp', timestamp);

   // figure out where to insert new message
   const existingMessages = messageListElement.children;
   if (existingMessages.length === 0) {
     messageListElement.appendChild(div);
   } else {
     let messageListNode = existingMessages[0];

     while (messageListNode) {
       const messageListNodeTime = messageListNode.getAttribute('timestamp');

       if (!messageListNodeTime) {
         throw new Error(
           `Child ${messageListNode.id} has no 'timestamp' attribute`
         );
       }

       if (messageListNodeTime > timestamp) {
         break;
       }

       messageListNode = messageListNode.nextSibling;
     }

     messageListElement.insertBefore(div, messageListNode);
   }

   return div;
 }