mirror of
https://github.com/hanzoai/postcss.git
synced 2026-09-24 17:01:56 +00:00
Speed up tokenizer
This commit is contained in:
+13
-10
@@ -19,14 +19,6 @@ let singleQuote = "'".charCodeAt(0),
|
||||
wordEnd = /[ \n\t\r\(\)\{\}:;@!'"\\]|\/(?=\*)/g,
|
||||
badBracket = /.[\\\/\("'\n]/;
|
||||
|
||||
var spaces = {
|
||||
[cr]: true,
|
||||
[tab]: true,
|
||||
[feed]: true,
|
||||
[space]: true,
|
||||
[newline]: true
|
||||
};
|
||||
|
||||
export default function tokenize(input) {
|
||||
let tokens = [];
|
||||
let css = input.css.valueOf();
|
||||
@@ -70,7 +62,11 @@ export default function tokenize(input) {
|
||||
offset = next;
|
||||
line += 1;
|
||||
}
|
||||
} while ( spaces[code] );
|
||||
} while ( code == space ||
|
||||
code == newline ||
|
||||
code == tab ||
|
||||
code == cr ||
|
||||
code == feed );
|
||||
|
||||
tokens.push(['space', css.slice(pos, next)]);
|
||||
pos = next - 1;
|
||||
@@ -157,7 +153,14 @@ export default function tokenize(input) {
|
||||
escape = !escape;
|
||||
}
|
||||
code = css.charCodeAt(next + 1);
|
||||
if ( escape && !spaces[code] ) next += 1;
|
||||
if ( escape && (code != slash &&
|
||||
code != space &&
|
||||
code != newline &&
|
||||
code != tab &&
|
||||
code != cr &&
|
||||
code != feed ) ) {
|
||||
next += 1;
|
||||
}
|
||||
tokens.push(['word', css.slice(pos, next + 1),
|
||||
line, pos - offset,
|
||||
line, next - offset
|
||||
|
||||
Reference in New Issue
Block a user