From 3987fa499b4a355edf5c7c5f07fb5a641387d45c Mon Sep 17 00:00:00 2001 From: Jakub Pawlowicz Date: Thu, 26 Jan 2017 14:35:42 +0100 Subject: [PATCH] Fixes #874 - regression in at-rule tokenization. Why: * Another case after #872 where at-rules were incorrectly tokenized because `propertyToken` wasn't reset. --- History.md | 5 ++++ lib/tokenizer/tokenize.js | 1 + test/tokenizer/tokenize-test.js | 43 +++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) diff --git a/History.md b/History.md index 9a0153c8..7f644f85 100644 --- a/History.md +++ b/History.md @@ -1,3 +1,8 @@ +[4.0.2 / 2017-xx-xx](https://github.com/jakubpawlowicz/clean-css/compare/v4.0.1...4.0) +================== + +* Fixed issue [#874](https://github.com/jakubpawlowicz/clean-css/issues/874) - regression in at-rule tokenization. + [4.0.1 / 2017-01-25](https://github.com/jakubpawlowicz/clean-css/compare/v4.0.0...v4.0.1) ================== diff --git a/lib/tokenizer/tokenize.js b/lib/tokenizer/tokenize.js index c3ff4f49..acb24483 100644 --- a/lib/tokenizer/tokenize.js +++ b/lib/tokenizer/tokenize.js @@ -242,6 +242,7 @@ function intoTokens(source, externalContext, internalContext, isNested) { buffer = []; } else if (character == Marker.SEMICOLON && level == Level.RULE && propertyToken && buffer.length === 0) { // semicolon after bracketed value at rule level, e.g. a{color:rgb(...);<-- + propertyToken = null; seekingValue = false; } else if (character == Marker.SEMICOLON && level == Level.RULE && buffer.length > 0 && buffer[0] == Marker.AT) { // semicolon for at-rule at rule level, e.g. a{@apply(--variable);<-- diff --git a/test/tokenizer/tokenize-test.js b/test/tokenizer/tokenize-test.js index 2b4cff52..dfc67571 100644 --- a/test/tokenizer/tokenize-test.js +++ b/test/tokenizer/tokenize-test.js @@ -1688,6 +1688,49 @@ vows.describe(tokenize) ] ] ], + '@apply after a function': [ + '.block{color:rgb(0,0,0);@apply(--test)}', + [ + [ + 'rule', + [ + [ + 'rule-scope', + '.block', + [ + [1, 0, undefined] + ] + ] + ], + [ + [ + 'property', + [ + 'property-name', + 'color', + [ + [1, 7, undefined] + ] + ], + [ + 'property-value', + 'rgb(0,0,0)', + [ + [1, 13, undefined] + ] + ] + ], + [ + 'at-rule', + '@apply(--test)', + [ + [1, 24, undefined] + ] + ] + ] + ] + ] + ], 'media query': [ '@media (min-width:980px){}', [ -- 2.34.1