From 5a2b3e115dcdd5c6ac0cf42f3e7902c124759d2f Mon Sep 17 00:00:00 2001 From: Thomas Weber Date: Thu, 10 Sep 2020 11:09:17 -0500 Subject: [PATCH] Revert "js: Optimize op.less when right side is always a number" This reverts commit 36ee6f65de95c23117782f831b9b621cc27dce40. --- src/compiler/jsgen.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/compiler/jsgen.js b/src/compiler/jsgen.js index 387f4038..0b3146df 100644 --- a/src/compiler/jsgen.js +++ b/src/compiler/jsgen.js @@ -324,10 +324,9 @@ class JSGenerator { if (left.isNeverNumber() || right.isNeverNumber()) { return new TypedInput(`(${left.asString()}.toLowerCase() < ${right.asString()}.toLowerCase())`, TYPE_BOOLEAN); } - // When the right hand side is known to be a number, we can use > - // NaN always returns false in JS's < when compared against a number, just like Scratch. - if (right.isAlwaysNumber()) { - return new TypedInput(`(${left.asNumberOrNaN()} < ${right.asNumber()})`, TYPE_BOOLEAN); + // When both operands are known to be numbers, we can use > + if (left.isAlwaysNumber() && right.isAlwaysNumber()) { + return new TypedInput(`(${left.asNumber()} < ${right.asNumber()})`, TYPE_BOOLEAN); } // No compile-time optimizations possible - use fallback method. return new TypedInput(`compareLessThan(${left.asUnknown()}, ${right.asUnknown()})`, TYPE_BOOLEAN);