diff --git a/modules/canvaskit/CHANGELOG.md b/modules/canvaskit/CHANGELOG.md
index 12a3d0c..468d229 100644
--- a/modules/canvaskit/CHANGELOG.md
+++ b/modules/canvaskit/CHANGELOG.md
@@ -18,7 +18,7 @@
 ### Fixed
  - Bug that sometimes resulted in 'Cannot perform Construct on a neutered ArrayBuffer'
  - Bug with SkImage.readPixels (skbug.com/9788)
-
+ - Bug with transparent colors in Canvas2d mode (skbug.com/9800)
 
 ## [0.11.0] - 2020-01-10
 
diff --git a/modules/canvaskit/htmlcanvas/color.js b/modules/canvaskit/htmlcanvas/color.js
index 49a56f7..7fe17a1 100644
--- a/modules/canvaskit/htmlcanvas/color.js
+++ b/modules/canvaskit/htmlcanvas/color.js
@@ -31,7 +31,10 @@
 }
 
 function valueOrPercent(aStr) {
-  var a = parseFloat(aStr) || 1;
+  if (aStr === undefined) {
+    return 1; // default to opaque.
+  }
+  var a = parseFloat(aStr);
   if (aStr && aStr.indexOf('%') !== -1) {
     return a / 100;
   }
diff --git a/modules/canvaskit/tests/canvas2d.spec.js b/modules/canvaskit/tests/canvas2d.spec.js
index f19db09..1569d64 100644
--- a/modules/canvaskit/tests/canvas2d.spec.js
+++ b/modules/canvaskit/tests/canvas2d.spec.js
@@ -44,6 +44,12 @@
                     CanvasKit.Color(117, 33, 64, 1.0));
                 expect(parseColor('rgb(117,33, 64)')).toEqual(
                     CanvasKit.Color(117, 33, 64, 1.0));
+                expect(parseColor('rgb(117,33, 64, 32%)')).toEqual(
+                    CanvasKit.Color(117, 33, 64, 0.32));
+                expect(parseColor('rgb(117,33, 64, 0.001)')).toEqual(
+                    CanvasKit.Color(117, 33, 64, 0.001));
+                expect(parseColor('rgb(117,33,64,0)')).toEqual(
+                    CanvasKit.Color(117, 33, 64, 0.0));
                 done();
             }));
         });
