JSLint relata uso inesperado de '&' e '|' - Eu gostaria de limpar isso

Estou tentando obter meu código Javascript 100% JSLint limpo.

Eu tenho um código JS que eu levantei de outro lugar para criar um UUID. Esse código tem a seguinte linha:

s[16] = hexDigits.substr((s[16] & 0x3) | 0x8, 1);

Esta linha incita o JSLint a gerar duas mensagens de erro:

1) Unexpected use of '&'
2) Unexpected use of '|'

Não entendo o porquê - eu gostaria de receber conselhos sobre como recodificar para eliminar a mensagem de erro.

questionAnswers(3)

yourAnswerToTheQuestion