function SimpleOptimizer(options, context) {
this.options = options;
this.propertyOptimizer = new PropertyOptimizer(this.options.compatibility, this.options.aggressiveMerging, context);
+
+ var units = ['px', 'em', 'ex', 'cm', 'mm', 'in', 'pt', 'pc', '%'];
+ if (['ie7', 'ie8'].indexOf(options.compatibility) == -1)
+ units.push('rem');
+ options.unitsRegexp = new RegExp('(^|\\s|\\(|,)0(?:' + units.join('|') + ')', 'g');
}
function removeUnsupported(token, compatibility) {
.replace(/(\d)\.($|\D)/g, '$1$2');
}
-function unitMinifier(_, value, compatibility) {
- var units = ['px', 'em', 'ex', 'cm', 'mm', 'in', 'pt', 'pc', '%'];
- if (['ie7', 'ie8'].indexOf(compatibility) == -1)
- units.push('rem');
-
- return value.replace(new RegExp('(^|\\s|\\(|,)0(?:' + units.join('|') + ')', 'g'), '$1' + '0');
+function unitMinifier(_, value, unitsRegexp) {
+ return value.replace(unitsRegexp, '$1' + '0');
}
function multipleZerosMinifier(property, value) {
value = zeroMinifier(property, value);
value = precisionMinifier(property, value, options.roundingPrecision);
- value = unitMinifier(property, value, options.compatibility);
+ value = unitMinifier(property, value, options.unitsRegexp);
value = multipleZerosMinifier(property, value);
value = colorMininifier(property, value, options.compatibility);