Por favor, explique este uso de dois pontos em javascript

Estou fazendo uma biblioteca, e muitas vezes inspeciono o resultado da saída do Compilador do Closure para ver como ele está fazendo as coisas (eu tenho testes de unidade, mas ainda gosto de ver o código compilado para dicas de como ele pode compactar melhor).

Então, eu encontrei este pedaço muito estranho de código, que eu nunca vi antes.

variable : {
    some();
    code()
}

Nota: isto énão é um objeto literal! Além disso, não há? em qualquer lugar que faria issoa ?: condicional.
Esse código está em um bloco de função regular (aIIFE).

variable, neste caso, é uma variável indefinida.Não há código tornando-se verdadeiro, falso ou o que for, e só para ter certeza, eu coloquei umconsole.log lá e de fato, eu tenho umReferenceError.

Por favor, note que eu testo o meu código no IE8 também, então isso não é apenas nos navegadores modernos. Parece ser um javascript normal e simples.

Então vamos experimentar. Ativando o console do Chrome, recebo isto:

undeclaredVariable:{console.log('does this get logged?')} // yes it does.
trueValue:{console.log('what about this?')}               // same thing.
falseValue:{console.log('and this?')}                     // same thing.

mas então...

(true):{console.log('does this work too?')} // SyntaxError: Unexpected token :

...e...

so?{console.log('is this a conditional?')}:{alert(123)} // Unexpected token .

Então, o que isso faz?

thisThing:{console.log('is used to declare a variable?')}
thisThing // ReferenceError: thisThing is not defined

Por favor, eu adoraria se alguém pudesse me explicar o que esse código deve fazer, ou pelo menos o que ele faz.

questionAnswers(5)

yourAnswerToTheQuestion