aboutsummaryrefslogtreecommitdiff
path: root/node_modules/clean-css/lib/optimizer/level-2/properties/optimize.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/clean-css/lib/optimizer/level-2/properties/optimize.js')
-rw-r--r--node_modules/clean-css/lib/optimizer/level-2/properties/optimize.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/node_modules/clean-css/lib/optimizer/level-2/properties/optimize.js b/node_modules/clean-css/lib/optimizer/level-2/properties/optimize.js
new file mode 100644
index 00000000..5dc4bfb9
--- /dev/null
+++ b/node_modules/clean-css/lib/optimizer/level-2/properties/optimize.js
@@ -0,0 +1,40 @@
+var mergeIntoShorthands = require('./merge-into-shorthands');
+var overrideProperties = require('./override-properties');
+var populateComponents = require('./populate-components');
+
+var restoreWithComponents = require('../restore-with-components');
+
+var wrapForOptimizing = require('../../wrap-for-optimizing').all;
+var removeUnused = require('../../remove-unused');
+var restoreFromOptimizing = require('../../restore-from-optimizing');
+
+var OptimizationLevel = require('../../../options/optimization-level').OptimizationLevel;
+
+function optimizeProperties(properties, withOverriding, withMerging, context) {
+ var levelOptions = context.options.level[OptimizationLevel.Two];
+ var _properties = wrapForOptimizing(properties, false, levelOptions.skipProperties);
+ var _property;
+ var i, l;
+
+ populateComponents(_properties, context.validator, context.warnings);
+
+ for (i = 0, l = _properties.length; i < l; i++) {
+ _property = _properties[i];
+ if (_property.block) {
+ optimizeProperties(_property.value[0][1], withOverriding, withMerging, context);
+ }
+ }
+
+ if (withMerging && levelOptions.mergeIntoShorthands) {
+ mergeIntoShorthands(_properties, context.validator);
+ }
+
+ if (withOverriding && levelOptions.overrideProperties) {
+ overrideProperties(_properties, withMerging, context.options.compatibility, context.validator);
+ }
+
+ restoreFromOptimizing(_properties, restoreWithComponents);
+ removeUnused(_properties);
+}
+
+module.exports = optimizeProperties;