Index: src/compiler/operation-typer.cc |
diff --git a/src/compiler/operation-typer.cc b/src/compiler/operation-typer.cc |
index 53c2770864864de5294d62403dfc8110677143da..d50862c61e406fb738a5dfd3c5ed46cf12c8c0c0 100644 |
--- a/src/compiler/operation-typer.cc |
+++ b/src/compiler/operation-typer.cc |
@@ -485,7 +485,10 @@ Type* OperationTyper::NumberToUint32(Type* type) { |
Type* OperationTyper::NumberSilenceNaN(Type* type) { |
DCHECK(type->Is(Type::Number())); |
- // TODO(turbofan): We should have a dedicated type for the signaling NaN. |
+ // TODO(jarin): This is a terrible hack; we definitely need a dedicated type |
+ // for the hole (tagged and/or double). Otherwise if the input is the hole |
+ // NaN constant, we'd just eliminate this node in JSTypedLowering. |
+ if (type->Maybe(Type::NaN())) return Type::Number(); |
return type; |
} |