code: function updateTabList(
    tabs: TabList,
    { url, framework = null, sourceId, isOriginal = false }
  ) {
    // Set currentIndex to -1 for URL-less tabs so that they aren't
    // filtered by isSimilarTab
    const currentIndex = url
      ? tabs.findIndex(tab => isSimilarTab(tab, url, isOriginal))
      : -1;
  
    if (currentIndex === -1) {
      tabs = [{ url, framework, sourceId, isOriginal }, ...tabs];
    } else if (framework) {
      tabs[currentIndex].framework = framework;
    }
  
    asyncStore.tabs = persistTabs(tabs);
    return tabs;
  }
docs: Adds the new source to the tab list if it is not already there
  @memberof reducers/tabs
  @static