From 7b3da1ffe899820f4b9936ba5ef47459b2dda251 Mon Sep 17 00:00:00 2001 From: Jakub Pawlowicz Date: Tue, 14 Apr 2015 21:39:38 +0100 Subject: [PATCH] Fixes #521 - unit optimizations inside `calc()`. It's used as a hack so we should not optimize such expressions. --- History.md | 1 + lib/selectors/optimizers/simple.js | 3 +++ test/selectors/optimizers/simple-test.js | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/History.md b/History.md index ef06fadf..cec96cc3 100644 --- a/History.md +++ b/History.md @@ -17,6 +17,7 @@ * Fixed issue [#500](https://github.com/jakubpawlowicz/clean-css/issues/500) - merging duplicate adjacent properties. * Fixed issue [#507](https://github.com/jakubpawlowicz/clean-css/issues/507) - merging longhands into many shorthands. * Fixed issue [#508](https://github.com/jakubpawlowicz/clean-css/issues/508) - removing duplicate media queries. +* Fixed issue [#521](https://github.com/jakubpawlowicz/clean-css/issues/521) - unit optimizations inside `calc()`. * Fixed issue [#526](https://github.com/jakubpawlowicz/clean-css/issues/526) - shorthand overriding into a function. [3.1.9 / 2015-04-04](https://github.com/jakubpawlowicz/clean-css/compare/v3.1.8...v3.1.9) diff --git a/lib/selectors/optimizers/simple.js b/lib/selectors/optimizers/simple.js index 66fabb93..f4f47bbd 100644 --- a/lib/selectors/optimizers/simple.js +++ b/lib/selectors/optimizers/simple.js @@ -100,6 +100,9 @@ function precisionMinifier(_, value, precisionOptions) { } function unitMinifier(_, value, unitsRegexp) { + if (/^(?:\-moz\-calc|\-webkit\-calc|calc)\(/.test(value)) + return value; + return value.replace(unitsRegexp, '$1' + '0'); } diff --git a/test/selectors/optimizers/simple-test.js b/test/selectors/optimizers/simple-test.js index 61d6b032..5bc0fc62 100644 --- a/test/selectors/optimizers/simple-test.js +++ b/test/selectors/optimizers/simple-test.js @@ -429,6 +429,10 @@ vows.describe(SimpleOptimizer) 'mixed vales': [ 'a{padding:10px 0em 30% 0rem}', [['padding', '10px', '0', '30%', '0']] + ], + 'inside calc': [ + 'a{font-size:calc(100% + 0px)}', + [['font-size', 'calc(100% + 0px)']] ] }) ) -- 2.34.1