ConstantLogic: null and undefined warnings for strict equals too
diff --git a/compiler/src/main/jburg/org/apache/royale/compiler/internal/as/codegen/ConstantLogic.jbg b/compiler/src/main/jburg/org/apache/royale/compiler/internal/as/codegen/ConstantLogic.jbg
index 31a95df..8fa0f86 100644
--- a/compiler/src/main/jburg/org/apache/royale/compiler/internal/as/codegen/ConstantLogic.jbg
+++ b/compiler/src/main/jburg/org/apache/royale/compiler/internal/as/codegen/ConstantLogic.jbg
@@ -151,6 +151,36 @@
}
boolean_constant=
+ Op_StrictEqualID(numeric_constant l, constant_value r) : 0
+ {
+ if (r == NULL_VALUE)
+ {
+ String numberType = l instanceof Integer ? "int" : "Number";
+ recordError(new ComparisonBetweenUnrelatedTypesProblem(__p, numberType, "null"));
+ }
+ if (r == UNDEFINED_VALUE)
+ {
+ recordError(new IllogicalComparisonWithUndefinedProblem(__p));
+ }
+ return ECMASupport.strictEquals(l, r);
+ }
+
+ boolean_constant=
+ Op_StrictEqualID(constant_value l, numeric_constant r) : 0
+ {
+ if (l == NULL_VALUE)
+ {
+ String numberType = r instanceof Integer ? "int" : "Number";
+ recordError(new ComparisonBetweenUnrelatedTypesProblem(__p, numberType, "null"));
+ }
+ if (l == UNDEFINED_VALUE)
+ {
+ recordError(new IllogicalComparisonWithUndefinedProblem(__p));
+ }
+ return ECMASupport.strictEquals(l, r);
+ }
+
+ boolean_constant=
Op_StrictEqualID(constant_value l, constant_value r): 0
{
return ECMASupport.strictEquals(l, r);