Cierres de JavaScript: utilizando la especificación ECMA, explique cómo se crea y mantiene el cierre

Estoy leyendo sobreCierres de JavaScript. Estoy familiarizado conContextos de ejecución, cómoAmbiente léxico Se mantiene, y muy familiarizado conAlcance léxico.

quiero sabercómo cierres en JavaScript soncreado ymantenido. A veces me cuesta entender conceptos tan importantes sin saberlo.cómo En realidad lo está haciendo. Sé que, según Wikipedia, un cierre es

es una función o referencia a una función junto con un entorno de referencia: una tabla que almacena una referencia a cada una de las variables no locales (también llamadas variables libres) de esa función.

Pero mi pregunta es, quiero saber.cómo, de acuerdo con laEspecificación de ECMA, que se crea y mantiene un cierre. soyno En busca de una explicación de alto nivel de la teoría del cierre, consulte la especificación ECMA en su respuesta.

Nota: Por favor, no considere esto como un duplicado, a menos que la respuesta explique un cierre utilizando la Especificación ECMA. Una vez más, no estoy interesado en que alguien cite wikipedia y dé un ejemplo, quiero entender completamente cómo hace JavaScript. (Estoy familiarizado conesta pregunta en SO).

Respuestas a la pregunta(1)

Su respuesta a la pregunta