Skip to content

Commit c816d82

Browse files
authored
Fixes less#3325 less#3313 less#3328 - each() function fixes (less#3333)
1 parent 96fa179 commit c816d82

File tree

8 files changed

+67
-6831
lines changed

8 files changed

+67
-6831
lines changed

lib/less/functions/list.js

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
var Dimension = require('../tree/dimension'),
1+
var Comment = require('../tree/comment'),
2+
Dimension = require('../tree/dimension'),
23
Declaration = require('../tree/declaration'),
34
Ruleset = require('../tree/ruleset'),
45
Selector = require('../tree/selector'),
@@ -27,7 +28,7 @@ functionRegistry.addMultiple({
2728
return new Dimension(getItemsFromNode(values).length);
2829
},
2930
each: function(list, rs) {
30-
var i = 0, rules = [], newRules, iterator;
31+
var rules = [], newRules, iterator;
3132

3233
if (list.value) {
3334
if (Array.isArray(list.value)) {
@@ -37,6 +38,8 @@ functionRegistry.addMultiple({
3738
}
3839
} else if (list.ruleset) {
3940
iterator = list.ruleset.rules;
41+
} else if (list.rules) {
42+
iterator = list.rules;
4043
} else if (Array.isArray(list)) {
4144
iterator = list;
4245
} else {
@@ -55,17 +58,20 @@ functionRegistry.addMultiple({
5558
} else {
5659
rs = rs.ruleset;
5760
}
58-
59-
iterator.forEach(function(item) {
60-
i = i + 1;
61-
var key, value;
61+
62+
for (var i = 0; i < iterator.length; i++) {
63+
var key, value, item = iterator[i];
6264
if (item instanceof Declaration) {
6365
key = typeof item.name === 'string' ? item.name : item.name[0].value;
6466
value = item.value;
6567
} else {
66-
key = new Dimension(i);
68+
key = new Dimension(i + 1);
6769
value = item;
6870
}
71+
72+
if (item instanceof Comment) {
73+
continue;
74+
}
6975

7076
newRules = rs.rules.slice(0);
7177
if (valueName) {
@@ -75,7 +81,7 @@ functionRegistry.addMultiple({
7581
}
7682
if (indexName) {
7783
newRules.push(new Declaration(indexName,
78-
new Dimension(i),
84+
new Dimension(i + 1),
7985
false, false, this.index, this.currentFileInfo));
8086
}
8187
if (keyName) {
@@ -89,7 +95,7 @@ functionRegistry.addMultiple({
8995
rs.strictImports,
9096
rs.visibilityInfo()
9197
));
92-
});
98+
}
9399

94100
return new Ruleset([ new(Selector)([ new Element("", '&') ]) ],
95101
rules,

lib/less/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module.exports = function(environment, fileManagers) {
22
var SourceMapOutput, SourceMapBuilder, ParseTree, ImportManager, Environment;
33

44
var initial = {
5-
version: [3, 8, 1],
5+
version: [3, 8, 2],
66
data: require('./data'),
77
tree: require('./tree'),
88
Environment: (Environment = require('./environment/environment')),

lib/less/tree/variable-call.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,19 @@ VariableCall.prototype.eval = function (context) {
1717
error = new LessError({message: 'Could not evaluate variable call ' + this.variable});
1818

1919
if (!detachedRuleset.ruleset) {
20-
if (Array.isArray(detachedRuleset)) {
20+
if (detachedRuleset.rules) {
2121
rules = detachedRuleset;
2222
}
23+
else if (Array.isArray(detachedRuleset)) {
24+
rules = new Ruleset('', detachedRuleset);
25+
}
2326
else if (Array.isArray(detachedRuleset.value)) {
24-
rules = detachedRuleset.value;
27+
rules = new Ruleset('', detachedRuleset.value);
2528
}
2629
else {
2730
throw error;
2831
}
29-
detachedRuleset = new DetachedRuleset(new Ruleset('', rules));
32+
detachedRuleset = new DetachedRuleset(rules);
3033
}
3134
if (detachedRuleset.ruleset) {
3235
return detachedRuleset.callEval(context);

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "less",
3-
"version": "3.8.1",
3+
"version": "3.8.2",
44
"description": "Leaner CSS",
55
"homepage": "http://lesscss.org",
66
"author": {
@@ -51,7 +51,6 @@
5151
"source-map": "~0.6.0"
5252
},
5353
"devDependencies": {
54-
"bootstrap": "3.3.7",
5554
"bootstrap-less-port": "0.3.0",
5655
"diff": "^3.2.0",
5756
"git-rev": "^0.2.1",

0 commit comments

Comments
 (0)