Fixes #1006 - handling invalid input source maps.
authorJakub Pawlowicz <contact@jakubpawlowicz.com>
Mon, 5 Mar 2018 18:23:32 +0000 (19:23 +0100)
committerJakub Pawlowicz <contact@jakubpawlowicz.com>
Mon, 5 Mar 2018 18:36:11 +0000 (19:36 +0100)
History.md
lib/reader/input-source-map-tracker.js

index ee2ff01..f17d525 100644 (file)
@@ -12,6 +12,7 @@
 * Fixed issue [#988](https://github.com/jakubpawlowicz/clean-css/issues/988) - edge case in dropping default animation-duration.
 * Fixed issue [#989](https://github.com/jakubpawlowicz/clean-css/issues/989) - edge case in removing unused at rules.
 * Fixed issue [#1001](https://github.com/jakubpawlowicz/clean-css/issues/1001) - corrupted tokenizer state.
+* Fixed issue [#1006](https://github.com/jakubpawlowicz/clean-css/issues/1006) - edge case in handling invalid source maps.
 * Fixed issue [#1008](https://github.com/jakubpawlowicz/clean-css/issues/1008) - edge case in breaking up `font` shorthand.
 
 [4.1.9 / 2017-09-19](https://github.com/jakubpawlowicz/clean-css/compare/v4.1.8...v4.1.9)
index ea2c034..4b8730c 100644 (file)
@@ -34,6 +34,10 @@ function originalPositionFor(maps, metadata, range, selectorFallbacks) {
     originalPosition = maps[source].originalPositionFor(position);
   }
 
+  if (!originalPosition || originalPosition.column < 0) {
+    return metadata;
+  }
+
   if (originalPosition.line === null && line > 1 && selectorFallbacks > 0) {
     return originalPositionFor(maps, [line - 1, column, source], range, selectorFallbacks - 1);
   }