Итак, мы наткнулись на 18 миллионов элементов данных, и система рухнула. Потребовалось немного времени, чтобы сузить круг, но это была оскорбительная авария…

const lilLookup = {
  lanc: 'lancaster',
  berks: 'berkshire'
}
if (lilLookup[stringToCheck] !== undefined) {
  return lilLookup[stringToCheck]
}
return stringToCheck

Хм. Логика выглядит нормально. Мы добавили логирование и выяснили, что такое stringToCheck, когда он ломается.

stringToCheck === 'constructor'

Оооо «конструктор», звучит знакомо. О, Боже. Пожалуйста, Боже, пусть это будет Нежить Дог!

Если это Undead Dawg, нам лучше проверить каждый запрос на наличие ошибки 30/18000000, которая может произойти где угодно.

lilLookup['constructor'] === A Function

Мораль этой басни, мои друзья Javascript, заключается в том, чтобы проверять hasOwnProperty на наличие поисковых запросов, если вы не можете пережить визит, очень… очень… время от времени, от Undead Dawg.

const lilLookup = {
  lanc: 'lancaster',
  berks: 'berkshire'
}
if (lilLookup.hasOwnProperty(stringToCheck)) {
  return lilLookup[stringToCheck]
}
return stringToCheck