mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-18 06:50:12 +01:00
Stop caching forEachLine/flattenLists results on params object.
This commit is contained in:
parent
5adbf30628
commit
bc8776c582
1 changed files with 12 additions and 6 deletions
|
|
@ -106,9 +106,11 @@ function filterTokens(params, type, callback) {
|
||||||
}
|
}
|
||||||
module.exports.filterTokens = filterTokens;
|
module.exports.filterTokens = filterTokens;
|
||||||
|
|
||||||
|
var lastForEachLineParams = null;
|
||||||
|
var lastForEachLineResult = null;
|
||||||
// Calls the provided function for each line (with context)
|
// Calls the provided function for each line (with context)
|
||||||
module.exports.forEachLine = function forEachLine(params, callback) {
|
module.exports.forEachLine = function forEachLine(params, callback) {
|
||||||
if (!params.forEachLine) {
|
if (params !== lastForEachLineParams) {
|
||||||
var lineMetadata = new Array(params.lines.length);
|
var lineMetadata = new Array(params.lines.length);
|
||||||
var fenceStart = null;
|
var fenceStart = null;
|
||||||
var inFence = false;
|
var inFence = false;
|
||||||
|
|
@ -139,11 +141,12 @@ module.exports.forEachLine = function forEachLine(params, callback) {
|
||||||
lineMetadata[i] += 8;
|
lineMetadata[i] += 8;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
params.forEachLine = lineMetadata;
|
lastForEachLineParams = params;
|
||||||
|
lastForEachLineResult = lineMetadata;
|
||||||
}
|
}
|
||||||
// Invoke callback
|
// Invoke callback
|
||||||
params.lines.forEach(function forLine(line, lineIndex) {
|
params.lines.forEach(function forLine(line, lineIndex) {
|
||||||
var metadata = params.forEachLine[lineIndex];
|
var metadata = lastForEachLineResult[lineIndex];
|
||||||
callback(
|
callback(
|
||||||
line,
|
line,
|
||||||
lineIndex,
|
lineIndex,
|
||||||
|
|
@ -179,9 +182,11 @@ module.exports.forEachHeading = function forEachHeading(params, callback) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var lastFlattenListsParams = null;
|
||||||
|
var lastFlattenListsResult = null;
|
||||||
// Returns (nested) lists as a flat array (in order)
|
// Returns (nested) lists as a flat array (in order)
|
||||||
module.exports.flattenLists = function flattenLists(params) {
|
module.exports.flattenLists = function flattenLists(params) {
|
||||||
if (!params.flattenLists) {
|
if (lastFlattenListsParams !== params) {
|
||||||
var lists = [];
|
var lists = [];
|
||||||
var stack = [];
|
var stack = [];
|
||||||
var current = null;
|
var current = null;
|
||||||
|
|
@ -216,9 +221,10 @@ module.exports.flattenLists = function flattenLists(params) {
|
||||||
lastWithMap = token;
|
lastWithMap = token;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
params.flattenLists = lists;
|
lastFlattenListsParams = params;
|
||||||
|
lastFlattenListsResult = lists;
|
||||||
}
|
}
|
||||||
return params.flattenLists;
|
return lastFlattenListsResult;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Adds a generic error object via the onError callback
|
// Adds a generic error object via the onError callback
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue