diff --git a/lib/syntax/node/Atrule.js b/lib/syntax/node/Atrule.js index a17e6bc0..fc61f5e2 100644 --- a/lib/syntax/node/Atrule.js +++ b/lib/syntax/node/Atrule.js @@ -93,5 +93,6 @@ module.exports = { result.push(node.block ? this.generate(node.block) : ';'); return result; - } + }, + walkContext: 'atrule' }; diff --git a/lib/walker/index.js b/lib/walker/index.js index 27f89e1d..a66886ed 100644 --- a/lib/walker/index.js +++ b/lib/walker/index.js @@ -13,7 +13,12 @@ function walkRules(node, item, list) { case 'Atrule': if (node.block !== null) { + var oldAtrule = this.atrule; + this.atrule = node; + walkRules.call(this, node.block); + + this.atrule = oldAtrule; } this.fn(node, item, list); @@ -54,7 +59,12 @@ function walkRulesRight(node, item, list) { case 'Atrule': if (node.block !== null) { + var oldAtrule = this.atrule; + this.atrule = node; + walkRulesRight.call(this, node.block); + + this.atrule = oldAtrule; } this.fn(node, item, list); @@ -95,7 +105,12 @@ function walkDeclarations(node) { case 'Atrule': if (node.block !== null) { + var oldAtrule = this.atrule; + this.atrule = node; + walkDeclarations.call(this, node.block); + + this.atrule = oldAtrule; } break; @@ -127,6 +142,7 @@ function createContext(root, fn) { fn: fn, root: root, stylesheet: null, + atrule: null, atruleExpression: null, rule: null, selector: null,