Optimize _.sortBy and remove the _.map dependency from _.sortBy.

Former-commit-id: f6a133f0d27e7a00cb54e2e8478066dcfbe05659
This commit is contained in:
John-David Dalton
2012-06-29 03:11:31 -04:00
parent 81b28d005d
commit ad4101bc99
3 changed files with 73 additions and 34 deletions

View File

@@ -226,20 +226,24 @@
// remove debug sourceURL use in `_.template`
source = source.replace(/(?:\s*\/\/.*\n)* *if *\(useSourceURL[^}]+}/, '');
// minify `_.sortBy` internal properties
// minify internal properties used by `_.sortBy`
(function() {
var properties = ['criteria', 'value'],
snippet = (source.match(/( +)function sortBy\b[\s\S]+?\n\1}/) || 0)[0],
result = snippet;
snippets = source.match(/( +)(?:function compareAscending|function sortBy|var toSortable)\b[\s\S]+?\n\1}/g);
if (!snippets) {
return;
}
snippets.forEach(function(snippet) {
var result = snippet;
if (snippet) {
// minify properties
properties.forEach(function(property, index) {
result = result.replace(RegExp('\\b' + property + '\\b', 'g'), minNames[index]);
});
// replace with modified snippet
source = source.replace(snippet, result);
}
});
}());
// minify all compilable snippets