Fixes #489 - edge case in filter optimizations.
authorJakub Pawlowicz <contact@jakubpawlowicz.com>
Thu, 12 Mar 2015 19:10:40 +0000 (19:10 +0000)
committerJakub Pawlowicz <contact@jakubpawlowicz.com>
Thu, 12 Mar 2015 19:47:56 +0000 (19:47 +0000)
So Chroma and Alpha filters can be shortened if they are not mixed,
but the regexp was too greedy and AlphaImageLoader was matched too.

History.md
lib/selectors/optimizers/simple.js
test/integration-test.js

index 4e784de..1310653 100644 (file)
@@ -5,6 +5,11 @@
 * Fixed issue [#396](https://github.com/jakubpawlowicz/clean-css/issues/396) - better input source maps tracking.
 * Fixed issue [#480](https://github.com/jakubpawlowicz/clean-css/issues/480) - extracting uppercase property names.
 
+[3.1.6 / 2015-xx-xx](https://github.com/jakubpawlowicz/clean-css/compare/v3.1.5...3.1)
+==================
+
+* Fixes issue [#489](https://github.com/jakubpawlowicz/clean-css/issues/489) - `AlphaImageLoader` IE filter.
+
 [3.1.5 / 2015-03-06](https://github.com/jakubpawlowicz/clean-css/compare/v3.1.4...v3.1.5)
 ==================
 
index bd0361f..b221c31 100644 (file)
@@ -45,8 +45,8 @@ var valueMinifiers = {
   },
   'filter': function (value) {
     if (value.indexOf('DXImageTransform') === value.lastIndexOf('DXImageTransform')) {
-      value = value.replace(/progid:DXImageTransform\.Microsoft\.(Alpha|Chroma)/, function (match, filter) {
-        return filter.toLowerCase();
+      value = value.replace(/progid:DXImageTransform\.Microsoft\.(Alpha|Chroma)(\W)/, function (match, filter, suffix) {
+        return filter.toLowerCase() + suffix;
       });
     }
 
index 5da35fd..503b4eb 100644 (file)
@@ -1284,6 +1284,10 @@ title']{display:block}",
     'multiple filters (IE7 issue)': [
       "a{filter:progid:DXImageTransform.Microsoft.Chroma(color=#919191) progid:DXImageTransform.Microsoft.Matrix(M11=0.984, M22=0.984, M12=0.17, M21=-0.17, SizingMethod='auto expand')}",
       "a{filter:progid:DXImageTransform.Microsoft.Chroma(color=#919191) progid:DXImageTransform.Microsoft.Matrix(M11=.984, M22=.984, M12=.17, M21=-.17, SizingMethod='auto expand')}"
+    ],
+    'AlphaImageLoader': [
+      'div{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/skyline.jpg)}',
+      'div{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/skyline.jpg)}'
     ]
   }),
   'charsets': cssContext({