function navigateToFragment(window, newURL, flags) {
  const document = idlUtils.implForWrapper(window._document);

  window._sessionHistory.clearHistoryTraversalTasks();

  if (!flags.replacement) {
    // handling replacement=true here deviates from spec, but matches real browser behaviour
    // see https://github.com/whatwg/html/issues/2796 for spec bug
    window._sessionHistory.removeAllEntriesAfterCurrentEntry();
  }
  const newEntry = { document, url: newURL };
  window._sessionHistory.addEntryAfterCurrentEntry(newEntry);
  window._sessionHistory.traverseHistory(newEntry, { nonBlockingEvents: true, replacement: flags.replacement });
}
function navigateToFragment(window, newURL, flags) {
  const document = idlUtils.implForWrapper(window._document);

  window._sessionHistory.clearHistoryTraversalTasks();

  if (!flags.replacement) {
    
    
    window._sessionHistory.removeAllEntriesAfterCurrentEntry();
  }
  const newEntry = { document, url: newURL };
  window._sessionHistory.addEntryAfterCurrentEntry(newEntry);
  window._sessionHistory.traverseHistory(newEntry, { nonBlockingEvents: true, replacement: flags.replacement });
}
function navigateToFragment ( window , newURL , flags ) { const document = idlUtils . implForWrapper ( window . _document ) ; window . _sessionHistory . clearHistoryTraversalTasks ( ) ; if ( ! flags . replacement ) { // handling replacement=true here deviates from spec, but matches real browser behaviour // see https://github.com/whatwg/html/issues/2796 for spec bug window . _sessionHistory . removeAllEntriesAfterCurrentEntry ( ) ; } const newEntry = { document , url : newURL } ; window . _sessionHistory . addEntryAfterCurrentEntry ( newEntry ) ; window . _sessionHistory . traverseHistory ( newEntry , { nonBlockingEvents : true , replacement : flags . replacement } ) ; }
https://html.spec.whatwg.org/#scroll-to-fragid
https : // html . spec . whatwg . org / #scroll - to - fragid