@@ -19,7 +19,7 @@ export const ERROR_MAP = {
1919 LOG_UNKNOWN_TYPE : [ 1 , "Calling log on an unknown runtime type." ] ,
2020 ARITH_OP_UNKNOWN_TYPE : [ 2 , "Calling an arithmetic operation on an unsupported runtime type." ] ,
2121 COMPLEX_COMPARISON : [ 3 , "Using an unsupported comparison operator on complex type." ] ,
22- COMPARE_OP_UNKNOWN_TYPE : [ 4 , "Calling a comparison operation on an unsupported runtime type ." ] ,
22+ COMPARE_OP_UNKNOWN_TYPE : [ 4 , "Calling a comparison operation on unsupported operands ." ] ,
2323 CALL_NOT_FX : [ 5 , "Calling a non-function value." ] ,
2424 FUNC_WRONG_ARITY : [ 6 , "Calling function with wrong number of arguments." ] ,
2525 UNBOUND : [ 7 , "Accessing an unbound value." ] ,
@@ -624,7 +624,17 @@ export const COMPARISON_OP_FX = wasm
624624 )
625625 ) ,
626626
627- // else, unreachable
627+ // else, default to not equal
628+ wasm
629+ . if ( i32 . eq ( local . get ( "$op" ) , i32 . const ( COMPARISON_OP_TAG . EQ ) ) )
630+ . then ( wasm . return ( wasm . call ( MAKE_BOOL_FX ) . args ( i32 . const ( 0 ) ) ) )
631+ . else (
632+ wasm
633+ . if ( i32 . eq ( local . get ( "$op" ) , i32 . const ( COMPARISON_OP_TAG . NEQ ) ) )
634+ . then ( wasm . return ( wasm . call ( MAKE_BOOL_FX ) . args ( i32 . const ( 1 ) ) ) )
635+ ) ,
636+
637+ // other operators: unreachable
628638 wasm . call ( "$_log_error" ) . args ( i32 . const ( ERROR_MAP . COMPARE_OP_UNKNOWN_TYPE [ 0 ] ) ) ,
629639 wasm . unreachable ( )
630640 ) ;
0 commit comments