Improves QuoteScanner to handle comments correctly.
authorJakub Pawlowicz <contact@jakubpawlowicz.com>
Sat, 5 Jul 2014 12:58:17 +0000 (13:58 +0100)
committerJakub Pawlowicz <contact@jakubpawlowicz.com>
Sat, 5 Jul 2014 13:59:56 +0000 (14:59 +0100)
History.md
lib/text/quote-scanner.js

index bfebc2c..a2b8626 100644 (file)
@@ -1,6 +1,7 @@
 [2.2.6 / 2014-xx-xx](https://github.com/GoalSmashers/clean-css/compare/v2.2.5...v2.2.6)
 ==================
 
+* Improves QuoteScanner to handle comments correctly.
 * Fixed issue [#311](https://github.com/GoalSmashers/clean-css/issues/311) - leading/trailing decimal points.
 
 [2.2.5 / 2014-06-29](https://github.com/GoalSmashers/clean-css/compare/v2.2.4...v2.2.5)
index cc1b9e6..5511753 100644 (file)
@@ -3,10 +3,21 @@
     this.data = data;
   };
 
-  var findNonEscapedEnd = function(data, matched, start) {
+  var findCommentEnd = function(data, matched, start) {
+    var commentStartMark = '/*';
+    var commentEndMark = '*/';
     var end = start;
     while (true) {
-      end = data.indexOf(matched, end);
+      var from = end;
+
+      end = data.indexOf(matched, from);
+      var commentStart = data.indexOf(commentStartMark, from);
+      var commentEnd = data.indexOf(commentEndMark, from);
+
+      if (end > -1 && commentEnd > -1 && commentEnd < end && (commentStart == -1 || commentStart > commentEnd)) {
+        end = commentEnd + 1;
+        break;
+      }
 
       if (end > -1 && data[end - 1] == '\\') {
         end += 1;
@@ -50,7 +61,7 @@
       if (nextStart == -1)
         break;
 
-      nextEnd = findNonEscapedEnd(data, matchedMark, nextStart + 1);
+      nextEnd = findCommentEnd(data, matchedMark, nextStart + 1);
       if (nextEnd == -1)
         break;