Version 2.10.0-54.0.dev

Merge commit '51cd4cb3d647ec851b6b9a46d494a84695285442' into 'dev'
diff --git a/pkg/compiler/lib/src/inferrer/powersets/powerset_bits.dart b/pkg/compiler/lib/src/inferrer/powersets/powerset_bits.dart
index 2078d8a..82af3fd 100644
--- a/pkg/compiler/lib/src/inferrer/powersets/powerset_bits.dart
+++ b/pkg/compiler/lib/src/inferrer/powersets/powerset_bits.dart
@@ -86,21 +86,25 @@
   }
 
   int createPrimitiveValue(PrimitiveConstantValue value) {
-    if (value is TrueConstantValue) {
-      return trueMask;
-    }
-    if (value is FalseConstantValue) {
-      return falseMask;
-    }
-    if (value is NullConstantValue) {
-      return nullMask;
-    }
-    return otherMask;
+    return computeAbstractValueForConstant(value);
   }
 
   // TODO(coam): Same as getPrimitiveValue above.
   bool isPrimitiveValue(int value) => isSingleton(value);
 
+  int computeAbstractValueForConstant(ConstantValue value) {
+    if (value.isTrue) {
+      return trueMask;
+    }
+    if (value.isFalse) {
+      return falseMask;
+    }
+    if (value.isNull) {
+      return nullMask;
+    }
+    return otherMask;
+  }
+
   AbstractBool areDisjoint(int a, int b) =>
       AbstractBool.trueOrMaybe(a & b == powersetBottom);
 
diff --git a/pkg/compiler/lib/src/inferrer/powersets/powersets.dart b/pkg/compiler/lib/src/inferrer/powersets/powersets.dart
index 91eb49a..1cc13f9 100644
--- a/pkg/compiler/lib/src/inferrer/powersets/powersets.dart
+++ b/pkg/compiler/lib/src/inferrer/powersets/powersets.dart
@@ -338,7 +338,8 @@
   // that can tell us information about the bits given a ConstantValue
   @override
   AbstractValue computeAbstractValueForConstant(covariant ConstantValue value) {
-    int powersetBits = _powersetBitsDomain.powersetTop;
+    int powersetBits =
+        _powersetBitsDomain.computeAbstractValueForConstant(value);
     AbstractValue abstractValue =
         _abstractValueDomain.computeAbstractValueForConstant(value);
     return PowersetValue(abstractValue, powersetBits);
diff --git a/pkg/compiler/test/inference/powerset_bits_test.dart b/pkg/compiler/test/inference/powerset_bits_test.dart
index 4e37897..4261af7 100644
--- a/pkg/compiler/test/inference/powerset_bits_test.dart
+++ b/pkg/compiler/test/inference/powerset_bits_test.dart
@@ -20,6 +20,7 @@
 var c = true;
 var d = true;
 var e = func();
+var sink;
 
 bool func() {
   return false;
@@ -30,6 +31,8 @@
   c = b && a;
   d = a || b;
   e = false;
+  sink = e;
+  print(sink);
 }
 """;
 
diff --git a/tools/VERSION b/tools/VERSION
index f462d6b..d90ea8e 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 10
 PATCH 0
-PRERELEASE 53
+PRERELEASE 54
 PRERELEASE_PATCH 0
\ No newline at end of file