javascript – Funcionamiento de Map.set() y sumar el numero de veces que se repite una clave como valor

tengo que crear un mapa que contenga una palabra recibida a través de prompt como clave y el numero de veces que se repite la misma palabra como valor. Tengo que crear un prompt que se repita hasta que se cancele o se deje vacio, Mientras tanto irá guardando cada palabra.
Este ha sido mi intento pero no logro dar con el resultado correcto. Ya que estoy un poco mareada con el funcionamiento de map y sobre como funciona a la hora de guardar palabras y extraerlas correctamente.

Este es mi codigo, agradezco cualquier tipo de ayuda.

function mapa() {
  let contar = 1;
  while (true) {
    let pregunta = window.prompt('Escribe palabras');
    if (pregunta == null || pregunta.trim() === '') {
      break;
    } else {
      agregarMapa();
    }
  }
  
  function agregarMapa(pregunta, contar) {
    var map = new Map();
    map.set(pregunta, contar++);
    console.log(map);
  }
}