remove backtrackTo and trimNewLines from mozParser

* backtrackTo is not needed since 2e86c958
* trimNewLines does exactly the same as trim()
This commit is contained in:
tophf 2017-11-14 09:24:38 +03:00
parent 2a95793de0
commit 417d6855ff

View File

@ -7,19 +7,6 @@ var mozParser = (() => {
const propertyToCss = {urls: 'url', urlPrefixes: 'url-prefix', domains: 'domain', regexps: 'regexp'}; const propertyToCss = {urls: 'url', urlPrefixes: 'url-prefix', domains: 'domain', regexps: 'regexp'};
const CssToProperty = {'url': 'urls', 'url-prefix': 'urlPrefixes', 'domain': 'domains', 'regexp': 'regexps'}; const CssToProperty = {'url': 'urls', 'url-prefix': 'urlPrefixes', 'domain': 'domains', 'regexp': 'regexps'};
function backtrackTo(parser, tokenType, startEnd) {
const tokens = parser._tokenStream._lt;
for (let i = parser._tokenStream._ltIndex - 1; i >= 0; --i) {
if (tokens[i].type === tokenType) {
return {line: tokens[i][startEnd + 'Line'], col: tokens[i][startEnd + 'Col']};
}
}
}
function trimNewLines(s) {
return s.replace(/^[\s\n]+/, '').replace(/[\s\n]+$/, '');
}
function parseMozFormat(mozStyle) { function parseMozFormat(mozStyle) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const parser = new parserlib.css.Parser(); const parser = new parserlib.css.Parser();
@ -28,15 +15,21 @@ var mozParser = (() => {
const errors = []; const errors = [];
const sections = []; const sections = [];
parser.addListener('startdocument', function (e) { parser.addListener('startdocument', e => {
const lastSection = sectionStack[sectionStack.length - 1]; const lastSection = sectionStack[sectionStack.length - 1];
let outerText = getRange(lastSection.start, (--e.col, e)); let outerText = getRange(lastSection.start, {line: e.line, col: e.col - 1});
const gapComment = outerText.match(/(\/\*[\s\S]*?\*\/)[\s\n]*$/); const gapComment = outerText.match(/(\/\*[\s\S]*?\*\/)[\s\n]*$/);
const section = {code: '', start: backtrackTo(this, parserlib.css.Tokens.LBRACE, 'end')}; const section = {
code: '',
start: {
line: parser._tokenStream._token.endLine,
col: parser._tokenStream._token.endCol,
},
};
// move last comment before @-moz-document inside the section // move last comment before @-moz-document inside the section
if (gapComment && !gapComment[1].match(/\/\*\s*AGENT_SHEET\s*\*\//)) { if (gapComment && !gapComment[1].match(/\/\*\s*AGENT_SHEET\s*\*\//)) {
section.code = gapComment[1] + '\n'; section.code = gapComment[1] + '\n';
outerText = trimNewLines(outerText.substring(0, gapComment.index)); outerText = outerText.substring(0, gapComment.index).trim();
} }
if (outerText.trim()) { if (outerText.trim()) {
lastSection.code = outerText; lastSection.code = outerText;