(function() { var AtRule, Prefixer, extend = 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'); AtRule = (function(superClass) { extend(AtRule, superClass); function AtRule() { return AtRule.__super__.constructor.apply(this, arguments); } AtRule.prototype.add = function(rule, prefix) { var already, cloned, prefixed; prefixed = prefix + rule.name; already = rule.parent.some(function(i) { return i.name === prefixed && i.params === rule.params; }); if (already) { return; } cloned = this.clone(rule, { name: prefixed }); return rule.parent.insertBefore(rule, cloned); }; AtRule.prototype.process = function(node) { var j, len, parent, prefix, ref, results; parent = this.parentPrefix(node); ref = this.prefixes; results = []; for (j = 0, len = ref.length; j < len; j++) { prefix = ref[j]; if (parent && parent !== prefix) { continue; } results.push(this.add(node, prefix)); } return results; }; return AtRule; })(Prefixer); module.exports = AtRule; }).call(this);