diff --git a/lib/processor.js b/lib/processor.js index 8eaa53f08..28d565933 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -3,6 +3,7 @@ const Value = require('./value'); const OLD_LINEAR = /(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i; const OLD_RADIAL = /(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i; const RADIAL_BLOCK = /\(((?:[^)(]+|\((?:[^)(]+|\([^)(]*\))*\))*)\)/i; +const IGNORE_NEXT = /(!\s*)?autoprefixer:\s*ignore\s+next/i; const SIZES = [ 'width', 'height', 'min-width', 'max-width', @@ -339,19 +340,16 @@ class Processor { */ disabled(node, result) { if (!node) return false; + if (node._autoprefixerDisabled !== undefined) { return node._autoprefixerDisabled; } - if (node.parent) { - const previousNode = node.prev(); - if (previousNode && - previousNode.type === 'comment' && - /(!\s*)?autoprefixer:\s*ignore\s+next/i - .test(previousNode.text)) { - node._autoprefixerDisabled = true; - node._autoprefixerOnlySelfDisabled = true; - return node._autoprefixerDisabled; - } + + const prev = node.prev(); + if (prev && prev.type === 'comment' && IGNORE_NEXT.test(prev.text)) { + node._autoprefixerDisabled = true; + node._autoprefixerOnlySelfDisabled = true; + return node._autoprefixerDisabled; } let value = null;