JSLint informa el uso inesperado de '&' y '|' - Me gustaría limpiar esto

Estoy tratando de limpiar mi código Javascript 100% JSLint.

Tengo un código JS que he sacado de otro lugar para crear un UUID. Ese código tiene la siguiente línea:

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

Esta línea incita a JSLint a generar dos mensajes de error:

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

No entiendo por qué: agradecería consejos sobre cómo recodificar para eliminar el mensaje de error.

Respuestas a la pregunta(3)

Su respuesta a la pregunta