Skip to content

Commit

Permalink
Merge pull request #183 from bgriffith/feature/reset-prefix-array-on-…
Browse files Browse the repository at this point in the history
…new-assertion

Fix issue of non-reseting prefixes
  • Loading branch information
DanPurdy committed Sep 22, 2015
2 parents a3c5529 + 6880a17 commit 69bf761
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 13 deletions.
33 changes: 21 additions & 12 deletions lib/rules/no-vendor-prefixes.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,42 @@ var helpers = require('../helpers');

var prefixes = ['webkit', 'moz', 'ms'];

var handleExcludes = function (excludes) {
var getPrefixCopy = function (prefixArr) {
return prefixArr.slice();
};

var handleExcludes = function (prefixArr, excludes) {
excludes.forEach(function (item) {
var index = prefixes.indexOf(item);
var index = prefixArr.indexOf(item);

if (index > -1) {
prefixes.splice(index, 1);
prefixArr.splice(index, 1);
}
});

return prefixArr;
};

var handleIncludes = function (includes) {
var handleIncludes = function (prefixArr, includes) {
includes.forEach(function (item) {
if (prefixes.indexOf(item) === -1) {
prefixes.push(item);
if (prefixArr.indexOf(item) === -1) {
prefixArr.push(item);
}
});
};

var precompileRegEx = function (includes, excludes) {
return prefixArr;
};

var precompileRegEx = function (prefixArr, includes, excludes) {
if (includes.length) {
handleIncludes(includes);
prefixArr = handleIncludes(prefixArr, includes);
}

if (excludes.length) {
handleExcludes(excludes);
prefixArr = handleExcludes(prefixArr, excludes);
}

return new RegExp('-(' + prefixes.join('|') + ')-');
return new RegExp('-(' + prefixArr.join('|') + ')-');
};

module.exports = {
Expand All @@ -42,8 +49,10 @@ module.exports = {
'excluded-identifiers': []
},
'detect': function (ast, parser) {

var result = [],
statement = precompileRegEx(parser.options['additional-identifiers'], parser.options['excluded-identifiers']);
validPrefixes = getPrefixCopy(prefixes),
statement = precompileRegEx(validPrefixes, parser.options['additional-identifiers'], parser.options['excluded-identifiers']);

ast.traverseByType('ident', function (value) {
if (statement.test(value.content)) {
Expand Down
2 changes: 1 addition & 1 deletion tests/rules/no-vendor-prefixes.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ describe('no vendor prefix', function () {
}
]
}, function (data) {
lint.assert.equal(2, data.warningCount);
lint.assert.equal(6, data.warningCount);
done();
});
});
Expand Down

0 comments on commit 69bf761

Please sign in to comment.