diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/jsifier.js | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index 6bf3e712..fb813e30 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -710,12 +710,17 @@ function JSify(data, functionsOnly, givenTypes, givenFunctions) { } case 'fcmp': { switch (variant) { + // XXX 'o' ones should be 'ordered (no NaN) and', + // 'u' ones should be 'unordered or'. case 'uge': case 'oge': return ident1 + ' >= ' + ident2; case 'ule': case 'ole': return ident1 + ' <= ' + ident2; case 'ugt': case 'ogt': return ident1 + ' > ' + ident2; case 'ult': case 'olt': return ident1 + ' < ' + ident2; case 'une': case 'one': return ident1 + ' != ' + ident2; case 'ueq': case 'oeq': return ident1 + ' == ' + ident2; + case 'ord': return '!isNaN(' + ident1 + ') && !isNaN(' + ident2 + ')'; + case 'uno': return 'isNaN(' + ident1 + ') || isNaN(' + ident2 + ')'; + case 'true': return '1'; default: throw 'Unknown fcmp variant: ' + variant } } |