From 7a3df06eb573d36142bd1a8e03c5ce8752d300b3 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 24 May 2017 15:10:37 +0200 Subject: fix build issues and add typedoc --- node_modules/clean-css/lib/tokenizer/tokenize.js | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'node_modules/clean-css/lib/tokenizer/tokenize.js') diff --git a/node_modules/clean-css/lib/tokenizer/tokenize.js b/node_modules/clean-css/lib/tokenizer/tokenize.js index 15fb584a0..7c071dd93 100644 --- a/node_modules/clean-css/lib/tokenizer/tokenize.js +++ b/node_modules/clean-css/lib/tokenizer/tokenize.js @@ -28,6 +28,7 @@ var BLOCK_RULES = [ '@supports' ]; +var REPEAT_PATTERN = /^\[\s*\d+\s*\]$/; var RULE_WORD_SEPARATOR_PATTERN = /[\s\(]/; var TAIL_BROKEN_VALUE_PATTERN = /[\s|\}]*$/; @@ -376,6 +377,12 @@ function intoTokens(source, externalContext, internalContext, isNested) { // comma within a property after space, e.g. a{background:url(image.png) ,<-- propertyToken.push([Token.PROPERTY_VALUE, character, [[position.line, position.column, position.source]]]); + buffer = []; + } else if (character == Marker.CLOSE_SQUARE_BRACKET && propertyToken && propertyToken.length > 1 && buffer.length > 0 && isRepeatToken(buffer)) { + buffer.push(character); + serializedBuffer = buffer.join('').trim(); + propertyToken[propertyToken.length - 1][1] += serializedBuffer; + buffer = []; } else if ((isSpace || (isNewLineNix && !isNewLineWin)) && level == Level.RULE && seekingValue && propertyToken && buffer.length > 0) { // space or *nix newline within property, e.g. a{margin:0 <-- @@ -460,4 +467,8 @@ function tokenScopeFrom(tokenType) { } } +function isRepeatToken(buffer) { + return REPEAT_PATTERN.test(buffer.join('') + Marker.CLOSE_SQUARE_BRACKET); +} + module.exports = tokenize; -- cgit v1.2.3