Função recursiva de otimização de chamada de cauda

Esta é uma função que nivela profundamente uma matriz

const deepFlatten = (input) => {
  let result = [];
  input.forEach((val, index) => {
    if (Array.isArray(val)) {
      result.push(...deepFlatten(val));
    } else {
      result.push(val);
    }
  });
  return result;
};

Durante uma discussão, disseram-me que não é eficiente em termos de memória, pois pode causar estouros de pilha.

Eu li emhttp://2ality.com/2015/06/tail-call-optimization.html que eu poderia potencialmente reescrevê-lo para que seja editado por TCO.

Como isso seria e como eu poderia medir o perfil de uso da memória?

questionAnswers(3)

yourAnswerToTheQuestion