(function() { var OldValue, Prefixer, Value, utils, vendor, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, __hasProp = {}.hasOwnProperty; Prefixer = require('./prefixer'); OldValue = require('./old-value'); utils = require('./utils'); vendor = require('postcss/lib/vendor'); Value = (function(_super) { __extends(Value, _super); function Value() { return Value.__super__.constructor.apply(this, arguments); } Value.save = function(prefixes, decl) { var already, cloned, prefix, prefixed, propPrefix, rule, trimmed, value, _ref, _results; _ref = decl._autoprefixerValues; _results = []; for (prefix in _ref) { value = _ref[prefix]; if (value === decl.value) { continue; } propPrefix = vendor.prefix(decl.prop); if (propPrefix === prefix) { _results.push(decl.value = value); } else if (propPrefix === '-pie-') { continue; } else { prefixed = prefixes.prefixed(decl.prop, prefix); rule = decl.parent; if (rule.every(function(i) { return i.prop !== prefixed; })) { trimmed = value.replace(/\s+/, ' '); already = rule.some(function(i) { return i.prop === decl.prop && i.value.replace(/\s+/, ' ') === trimmed; }); if (!already) { if (value.indexOf('-webkit-filter') !== -1 && (decl.prop === 'transition' || decl.prop === 'trasition-property')) { _results.push(decl.value = value); } else { cloned = this.clone(decl, { value: value }); _results.push(decl.parent.insertBefore(decl, cloned)); } } else { _results.push(void 0); } } else { _results.push(void 0); } } } return _results; }; Value.prototype.check = function(decl) { var value; value = decl.value; if (value.indexOf(this.name) !== -1) { return !!value.match(this.regexp()); } else { return false; } }; Value.prototype.regexp = function() { return this.regexpCache || (this.regexpCache = utils.regexp(this.name)); }; Value.prototype.replace = function(string, prefix) { return string.replace(this.regexp(), '$1' + prefix + '$2'); }; Value.prototype.add = function(decl, prefix) { var value, _ref; decl._autoprefixerValues || (decl._autoprefixerValues = {}); value = decl._autoprefixerValues[prefix] || ((_ref = decl._value) != null ? _ref.raw : void 0) || decl.value; value = this.replace(value, prefix); if (value) { return decl._autoprefixerValues[prefix] = value; } }; Value.prototype.old = function(prefix) { return new OldValue(this.name, prefix + this.name); }; return Value; })(Prefixer); module.exports = Value; }).call(this);