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();