Skip to content

Commit 8e488b2

Browse files
committed
Fix no-prototype-builtins issues in Ruleset and ToCSSVisitor
1 parent 53f84f0 commit 8e488b2

File tree

4 files changed

+10
-12
lines changed

4 files changed

+10
-12
lines changed

packages/less/src/less/tree/ruleset.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,7 @@ Ruleset.prototype = Object.assign(new Node(), {
295295
if (r.type === 'Import' && r.root && r.root.variables) {
296296
const vars = r.root.variables();
297297
for (const name in vars) {
298-
// eslint-disable-next-line no-prototype-builtins
299-
if (vars.hasOwnProperty(name)) {
298+
if (Object.prototype.hasOwnProperty.call(vars, name)) {
300299
hash[name] = r.root.variable(name);
301300
}
302301
}

packages/less/src/less/visitors/to-css-visitor.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -303,19 +303,16 @@ ToCSSVisitor.prototype = {
303303
// remove duplicates
304304
const ruleCache = {};
305305

306-
let ruleList;
307-
let rule;
308-
let i;
309-
310-
for (i = rules.length - 1; i >= 0 ; i--) {
311-
rule = rules[i];
306+
for (let i = rules.length - 1; i >= 0 ; i--) {
307+
let rule = rules[i];
312308
if (rule instanceof tree.Declaration) {
313-
if (!ruleCache[rule.name]) {
309+
if (!Object.prototype.hasOwnProperty.call(ruleCache, rule.name)) {
314310
ruleCache[rule.name] = rule;
315311
} else {
316-
ruleList = ruleCache[rule.name];
317-
if (ruleList instanceof tree.Declaration) {
318-
ruleList = ruleCache[rule.name] = [ruleCache[rule.name].toCSS(this._context)];
312+
let ruleList = ruleCache[rule.name];
313+
if (!Array.isArray(ruleList)) {
314+
const prevRuleCSS = ruleList.toCSS(this._context);
315+
ruleList = ruleCache[rule.name] = [prevRuleCSS];
319316
}
320317
const ruleCSS = rule.toCSS(this._context);
321318
if (ruleList.indexOf(ruleCSS) !== -1) {

packages/test-data/css/_main/rulesets.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#first > .one {
22
font-size: 2em;
3+
hasOwnProperty: blue;
34
}
45
#first > .one > #second .two > #deux {
56
width: 50%;

packages/test-data/less/_main/rulesets.less

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@
2727
}
2828
}
2929
font-size: 2em;
30+
hasOwnProperty: blue;
3031
}

0 commit comments

Comments
 (0)