Pregunta

¿Cómo puedo registrar de manera eficiente el código ASM.JS si un valor de punto flotante es un nan?

Una forma que funciona en principio es importar la función global de JavaScript Javascript como una función extraña en el módulo ASM.JS.Sin embargo, a medida que la función de llamada extranjera es costosa, por lo que esto no producirá un código óptimo.

Comparando con el valor NAN (que forma parte de la biblioteca estándar) no es una opción porque la comparación de una NAN a otra NAN siempre se produce False por la semántica de JavaScript.

Los bits de examen en el montón tampoco son ninguna opción porque la endiaisa no está especificada.

¿Por qué es isNaN no parte de la biblioteca estándar en asm.js?

¿Fue útil?

Solución

Esta propiedad de NAN se usa comúnmente para identificarla:

var isNaN = a!=a; 

de wikipedia :

Las predicadas de igualdad y desigualdad no son señalización, así que x= x La devolución de FALSO se puede usar para probar si X es una NAN tranquila

Otros consejos

if (value !== value) {
    // Definitely NaN
}

Puede hacerlo como una función como esta

function isNaN(inputValue) {
    return inputValue !== inputValue;
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top