| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | 
							- (function() {
 
-   var Browsers, Prefixer, clone, utils, vendor,
 
-     hasProp = {}.hasOwnProperty;
 
-   Browsers = require('./browsers');
 
-   utils = require('./utils');
 
-   vendor = require('postcss/lib/vendor');
 
-   clone = function(obj, parent) {
 
-     var cloned, i, value;
 
-     cloned = new obj.constructor();
 
-     for (i in obj) {
 
-       if (!hasProp.call(obj, i)) continue;
 
-       value = obj[i];
 
-       if (i === 'parent' && typeof value === 'object') {
 
-         if (parent) {
 
-           cloned[i] = parent;
 
-         }
 
-       } else if (i === 'source') {
 
-         cloned[i] = value;
 
-       } else if (i === null) {
 
-         cloned[i] = value;
 
-       } else if (value instanceof Array) {
 
-         cloned[i] = value.map(function(i) {
 
-           return clone(i, cloned);
 
-         });
 
-       } else if (i !== '_autoprefixerPrefix' && i !== '_autoprefixerValues') {
 
-         if (typeof value === 'object' && value !== null) {
 
-           value = clone(value, cloned);
 
-         }
 
-         cloned[i] = value;
 
-       }
 
-     }
 
-     return cloned;
 
-   };
 
-   Prefixer = (function() {
 
-     Prefixer.hack = function(klass) {
 
-       var j, len, name, ref, results;
 
-       this.hacks || (this.hacks = {});
 
-       ref = klass.names;
 
-       results = [];
 
-       for (j = 0, len = ref.length; j < len; j++) {
 
-         name = ref[j];
 
-         results.push(this.hacks[name] = klass);
 
-       }
 
-       return results;
 
-     };
 
-     Prefixer.load = function(name, prefixes, all) {
 
-       var klass, ref;
 
-       klass = (ref = this.hacks) != null ? ref[name] : void 0;
 
-       if (klass) {
 
-         return new klass(name, prefixes, all);
 
-       } else {
 
-         return new this(name, prefixes, all);
 
-       }
 
-     };
 
-     Prefixer.clone = function(node, overrides) {
 
-       var cloned, name;
 
-       cloned = clone(node);
 
-       for (name in overrides) {
 
-         cloned[name] = overrides[name];
 
-       }
 
-       return cloned;
 
-     };
 
-     function Prefixer(name1, prefixes1, all1) {
 
-       this.name = name1;
 
-       this.prefixes = prefixes1;
 
-       this.all = all1;
 
-     }
 
-     Prefixer.prototype.parentPrefix = function(node) {
 
-       var prefix;
 
-       prefix = node._autoprefixerPrefix != null ? node._autoprefixerPrefix : node.type === 'decl' && node.prop[0] === '-' ? vendor.prefix(node.prop) : node.type === 'root' ? false : node.type === 'rule' && node.selector.indexOf(':-') !== -1 && /:(-\w+-)/.test(node.selector) ? node.selector.match(/:(-\w+-)/)[1] : node.type === 'atrule' && node.name[0] === '-' ? vendor.prefix(node.name) : this.parentPrefix(node.parent);
 
-       if (Browsers.prefixes().indexOf(prefix) === -1) {
 
-         prefix = false;
 
-       }
 
-       return node._autoprefixerPrefix = prefix;
 
-     };
 
-     Prefixer.prototype.process = function(node) {
 
-       var added, j, k, len, len1, parent, prefix, prefixes, ref;
 
-       if (!this.check(node)) {
 
-         return;
 
-       }
 
-       parent = this.parentPrefix(node);
 
-       prefixes = [];
 
-       ref = this.prefixes;
 
-       for (j = 0, len = ref.length; j < len; j++) {
 
-         prefix = ref[j];
 
-         if (parent && parent !== utils.removeNote(prefix)) {
 
-           continue;
 
-         }
 
-         prefixes.push(prefix);
 
-       }
 
-       added = [];
 
-       for (k = 0, len1 = prefixes.length; k < len1; k++) {
 
-         prefix = prefixes[k];
 
-         if (this.add(node, prefix, added.concat([prefix]))) {
 
-           added.push(prefix);
 
-         }
 
-       }
 
-       return added;
 
-     };
 
-     Prefixer.prototype.clone = function(node, overrides) {
 
-       return Prefixer.clone(node, overrides);
 
-     };
 
-     return Prefixer;
 
-   })();
 
-   module.exports = Prefixer;
 
- }).call(this);
 
 
  |