From 468b532885006bcd15455bc19dad7530e5ac6f53 Mon Sep 17 00:00:00 2001 From: Matthew Dean Date: Sat, 16 Jun 2018 11:59:18 -0700 Subject: [PATCH] Fixes #3195 (#3215) --- lib/less/tree/ruleset.js | 34 +++++++++++++++++-------------- test/less/extract-and-length.less | 13 ++++++++++++ 2 files changed, 32 insertions(+), 15 deletions(-) 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 {