JSFiddle - React, Tailwind, and code Playground

HTML

<pre id="log-result">
Max size for Map and Set
</pre>

JavaScript

const log = (typeof document !== 'undefined') ? function(message) {
  document.getElementById('log-result').innerText += message + '\n';
} :  function(message) {
  console.log(message);
};

function wrap(fn) {
  return function wrapped() {
    const next = fn();
    if (next) {
      setTimeout(next, 50);
    }
  }
}

let checkMapSize, checkSetSize;

const map = new Map();
const set = new Set();
let i = 0;

checkMapSize = wrap(function() {
  try {
    while (true) {
      map.set('key' + i++, true);
      if (i % 1000000 === 0) break;
    }
    console.log('map size', i);
    return checkMapSize;
  } catch (e) {
    console.log(e, typeof e);
    console.log(e.name, e.message, i);
    log('Map maximum size: ' + (i - 1));
    i = 0;
    map.clear();
    return checkSetSize;
  }
});

checkSetSize = wrap(function() {
  try {
    while (true) {
      set.add('key' + i++);
      if (i % 1000000 === 0) break;
    }
    console.log('set size', i);
    return checkSetSize;
  } catch (e) {
    console.log(e, typeof e);
    console.log(e.name, e.message, i);
    log('Set maximum size: ' + (i - 1));
    set.clear();
  }
});

if (typeof navigator !== 'undefined') {
  log(navigator.userAgent);
}

checkMapSize();