diff --git a/lib/less/tree/ruleset.js b/lib/less/tree/ruleset.js index c57facc1..93321dcd 100644 --- a/lib/less/tree/ruleset.js +++ b/lib/less/tree/ruleset.js @@ -349,21 +349,25 @@ Ruleset.prototype.parseValue = function(toParse) { var self = this; function transformDeclaration(decl) { if (decl.value instanceof Anonymous && !decl.parsed) { - this.parse.parseNode( - decl.value.value, - ["value", "important"], - decl.value.getIndex(), - decl.fileInfo(), - function(err, result) { - if (err) { - decl.parsed = true; - } - if (result) { - decl.value = result[0]; - decl.important = result[1] || ''; - decl.parsed = true; - } - }); + if (typeof decl.value.value === "string") { + this.parse.parseNode( + decl.value.value, + ["value", "important"], + decl.value.getIndex(), + decl.fileInfo(), + function(err, result) { + if (err) { + decl.parsed = true; + } + if (result) { + decl.value = result[0]; + decl.important = result[1] || ''; + decl.parsed = true; + } + }); + } else { + decl.parsed = true; + } return decl; } diff --git a/test/less/extract-and-length.less b/test/less/extract-and-length.less index 8b1901c8..d064bdb9 100644 --- a/test/less/extract-and-length.less +++ b/test/less/extract-and-length.less @@ -1,4 +1,17 @@ +// test late parsing +@cols: 1, 2; + +.a(@i: length(@cols)) when (@i > 0) { + @divider: e(extract(@cols, @i)); +} +.a; + +.b(@j: 1) when (@j < length(@cols)) { + @divider: e(extract(@cols, @j)); +} +.b; + // simple array/list: .multiunit {