aboutsummaryrefslogtreecommitdiff
path: root/node_modules/html-minifier/src/tokenchain.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/html-minifier/src/tokenchain.js')
-rw-r--r--node_modules/html-minifier/src/tokenchain.js71
1 files changed, 0 insertions, 71 deletions
diff --git a/node_modules/html-minifier/src/tokenchain.js b/node_modules/html-minifier/src/tokenchain.js
deleted file mode 100644
index f8892d017..000000000
--- a/node_modules/html-minifier/src/tokenchain.js
+++ /dev/null
@@ -1,71 +0,0 @@
-'use strict';
-
-function Sorter() {
-}
-
-Sorter.prototype.sort = function(tokens, fromIndex) {
- fromIndex = fromIndex || 0;
- for (var i = 0, len = this.keys.length; i < len; i++) {
- var key = this.keys[i];
- var token = key.slice(1);
- var index = tokens.indexOf(token, fromIndex);
- if (index !== -1) {
- do {
- if (index !== fromIndex) {
- tokens.splice(index, 1);
- tokens.splice(fromIndex, 0, token);
- }
- fromIndex++;
- } while ((index = tokens.indexOf(token, fromIndex)) !== -1);
- return this[key].sort(tokens, fromIndex);
- }
- }
- return tokens;
-};
-
-function TokenChain() {
-}
-
-TokenChain.prototype = {
- add: function(tokens) {
- var self = this;
- tokens.forEach(function(token) {
- var key = '$' + token;
- if (!self[key]) {
- self[key] = [];
- self[key].processed = 0;
- }
- self[key].push(tokens);
- });
- },
- createSorter: function() {
- var self = this;
- var sorter = new Sorter();
- sorter.keys = Object.keys(self).sort(function(j, k) {
- var m = self[j].length;
- var n = self[k].length;
- return m < n ? 1 : m > n ? -1 : j < k ? -1 : j > k ? 1 : 0;
- }).filter(function(key) {
- if (self[key].processed < self[key].length) {
- var token = key.slice(1);
- var chain = new TokenChain();
- self[key].forEach(function(tokens) {
- var index;
- while ((index = tokens.indexOf(token)) !== -1) {
- tokens.splice(index, 1);
- }
- tokens.forEach(function(token) {
- self['$' + token].processed++;
- });
- chain.add(tokens.slice(0));
- });
- sorter[key] = chain.createSorter();
- return true;
- }
- return false;
- });
- return sorter;
- }
-};
-
-module.exports = TokenChain;