diff --git a/lib/less/parser.js b/lib/less/parser.js index d0c552337..0e3038500 100644 --- a/lib/less/parser.js +++ b/lib/less/parser.js @@ -1048,7 +1048,7 @@ less.Parser = function Parser(env) { }, mediaFeature: function () { - var nodes = []; + var e, nodes = []; do { if (e = $(this.entities.keyword)) { @@ -1074,11 +1074,18 @@ less.Parser = function Parser(env) { }, mediaFeatures: function () { - var f, features = []; - while (f = $(this.mediaFeature)) { - features.push(f); - if (! $(',')) { break } - } + var e, features = []; + + do { + if (e = $(this.mediaFeature)) { + features.push(e); + if (! $(',')) { break } + } else if (e = $(this.entities.variable)) { + features.push(e); + if (! $(',')) { break } + } + } while (e); + return features.length > 0 ? features : null; }, diff --git a/test/css/media.css b/test/css/media.css index 751b179d9..55f99deef 100644 --- a/test/css/media.css +++ b/test/css/media.css @@ -25,3 +25,6 @@ max-width: 480px; } } +@media only screen and (max-width: 200px) { + width: 480px; +} diff --git a/test/less/media.less b/test/less/media.less index b26c18e0b..0e1dab394 100644 --- a/test/less/media.less +++ b/test/less/media.less @@ -5,7 +5,7 @@ @media print { .class { - color: blue; + color: blue; .sub { width: @var; } @@ -29,3 +29,8 @@ max-width: 480px; } } + +@smartphone: ~"only screen and (max-width: 200px)"; +@media @smartphone { + width: 480px; +}