Edit File by line
/home/barbar84/www/wp-inclu.../js/codemirr...
File: csslint.js
}
[1000] Fix | Delete
}
[1001] Fix | Delete
},
[1002] Fix | Delete
[1003] Fix | Delete
_import: function(emit) {
[1004] Fix | Delete
/*
[1005] Fix | Delete
* import
[1006] Fix | Delete
* : IMPORT_SYM S*
[1007] Fix | Delete
* [STRING|URI] S* media_query_list? ';' S*
[1008] Fix | Delete
*/
[1009] Fix | Delete
[1010] Fix | Delete
var tokenStream = this._tokenStream,
[1011] Fix | Delete
uri,
[1012] Fix | Delete
importToken,
[1013] Fix | Delete
mediaList = [];
[1014] Fix | Delete
[1015] Fix | Delete
//read import symbol
[1016] Fix | Delete
tokenStream.mustMatch(Tokens.IMPORT_SYM);
[1017] Fix | Delete
importToken = tokenStream.token();
[1018] Fix | Delete
this._readWhitespace();
[1019] Fix | Delete
[1020] Fix | Delete
tokenStream.mustMatch([Tokens.STRING, Tokens.URI]);
[1021] Fix | Delete
[1022] Fix | Delete
//grab the URI value
[1023] Fix | Delete
uri = tokenStream.token().value.replace(/^(?:url\()?["']?([^"']+?)["']?\)?$/, "$1");
[1024] Fix | Delete
[1025] Fix | Delete
this._readWhitespace();
[1026] Fix | Delete
[1027] Fix | Delete
mediaList = this._media_query_list();
[1028] Fix | Delete
[1029] Fix | Delete
//must end with a semicolon
[1030] Fix | Delete
tokenStream.mustMatch(Tokens.SEMICOLON);
[1031] Fix | Delete
this._readWhitespace();
[1032] Fix | Delete
[1033] Fix | Delete
if (emit !== false) {
[1034] Fix | Delete
this.fire({
[1035] Fix | Delete
type: "import",
[1036] Fix | Delete
uri: uri,
[1037] Fix | Delete
media: mediaList,
[1038] Fix | Delete
line: importToken.startLine,
[1039] Fix | Delete
col: importToken.startCol
[1040] Fix | Delete
});
[1041] Fix | Delete
}
[1042] Fix | Delete
[1043] Fix | Delete
},
[1044] Fix | Delete
[1045] Fix | Delete
_namespace: function(emit) {
[1046] Fix | Delete
/*
[1047] Fix | Delete
* namespace
[1048] Fix | Delete
* : NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S*
[1049] Fix | Delete
*/
[1050] Fix | Delete
[1051] Fix | Delete
var tokenStream = this._tokenStream,
[1052] Fix | Delete
line,
[1053] Fix | Delete
col,
[1054] Fix | Delete
prefix,
[1055] Fix | Delete
uri;
[1056] Fix | Delete
[1057] Fix | Delete
//read import symbol
[1058] Fix | Delete
tokenStream.mustMatch(Tokens.NAMESPACE_SYM);
[1059] Fix | Delete
line = tokenStream.token().startLine;
[1060] Fix | Delete
col = tokenStream.token().startCol;
[1061] Fix | Delete
this._readWhitespace();
[1062] Fix | Delete
[1063] Fix | Delete
//it's a namespace prefix - no _namespace_prefix() method because it's just an IDENT
[1064] Fix | Delete
if (tokenStream.match(Tokens.IDENT)) {
[1065] Fix | Delete
prefix = tokenStream.token().value;
[1066] Fix | Delete
this._readWhitespace();
[1067] Fix | Delete
}
[1068] Fix | Delete
[1069] Fix | Delete
tokenStream.mustMatch([Tokens.STRING, Tokens.URI]);
[1070] Fix | Delete
/*if (!tokenStream.match(Tokens.STRING)){
[1071] Fix | Delete
tokenStream.mustMatch(Tokens.URI);
[1072] Fix | Delete
}*/
[1073] Fix | Delete
[1074] Fix | Delete
//grab the URI value
[1075] Fix | Delete
uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1");
[1076] Fix | Delete
[1077] Fix | Delete
this._readWhitespace();
[1078] Fix | Delete
[1079] Fix | Delete
//must end with a semicolon
[1080] Fix | Delete
tokenStream.mustMatch(Tokens.SEMICOLON);
[1081] Fix | Delete
this._readWhitespace();
[1082] Fix | Delete
[1083] Fix | Delete
if (emit !== false) {
[1084] Fix | Delete
this.fire({
[1085] Fix | Delete
type: "namespace",
[1086] Fix | Delete
prefix: prefix,
[1087] Fix | Delete
uri: uri,
[1088] Fix | Delete
line: line,
[1089] Fix | Delete
col: col
[1090] Fix | Delete
});
[1091] Fix | Delete
}
[1092] Fix | Delete
[1093] Fix | Delete
},
[1094] Fix | Delete
[1095] Fix | Delete
_supports: function(emit) {
[1096] Fix | Delete
/*
[1097] Fix | Delete
* supports_rule
[1098] Fix | Delete
* : SUPPORTS_SYM S* supports_condition S* group_rule_body
[1099] Fix | Delete
* ;
[1100] Fix | Delete
*/
[1101] Fix | Delete
var tokenStream = this._tokenStream,
[1102] Fix | Delete
line,
[1103] Fix | Delete
col;
[1104] Fix | Delete
[1105] Fix | Delete
if (tokenStream.match(Tokens.SUPPORTS_SYM)) {
[1106] Fix | Delete
line = tokenStream.token().startLine;
[1107] Fix | Delete
col = tokenStream.token().startCol;
[1108] Fix | Delete
[1109] Fix | Delete
this._readWhitespace();
[1110] Fix | Delete
this._supports_condition();
[1111] Fix | Delete
this._readWhitespace();
[1112] Fix | Delete
[1113] Fix | Delete
tokenStream.mustMatch(Tokens.LBRACE);
[1114] Fix | Delete
this._readWhitespace();
[1115] Fix | Delete
[1116] Fix | Delete
if (emit !== false) {
[1117] Fix | Delete
this.fire({
[1118] Fix | Delete
type: "startsupports",
[1119] Fix | Delete
line: line,
[1120] Fix | Delete
col: col
[1121] Fix | Delete
});
[1122] Fix | Delete
}
[1123] Fix | Delete
[1124] Fix | Delete
while (true) {
[1125] Fix | Delete
if (!this._ruleset()) {
[1126] Fix | Delete
break;
[1127] Fix | Delete
}
[1128] Fix | Delete
}
[1129] Fix | Delete
[1130] Fix | Delete
tokenStream.mustMatch(Tokens.RBRACE);
[1131] Fix | Delete
this._readWhitespace();
[1132] Fix | Delete
[1133] Fix | Delete
this.fire({
[1134] Fix | Delete
type: "endsupports",
[1135] Fix | Delete
line: line,
[1136] Fix | Delete
col: col
[1137] Fix | Delete
});
[1138] Fix | Delete
}
[1139] Fix | Delete
},
[1140] Fix | Delete
[1141] Fix | Delete
_supports_condition: function() {
[1142] Fix | Delete
/*
[1143] Fix | Delete
* supports_condition
[1144] Fix | Delete
* : supports_negation | supports_conjunction | supports_disjunction |
[1145] Fix | Delete
* supports_condition_in_parens
[1146] Fix | Delete
* ;
[1147] Fix | Delete
*/
[1148] Fix | Delete
var tokenStream = this._tokenStream,
[1149] Fix | Delete
ident;
[1150] Fix | Delete
[1151] Fix | Delete
if (tokenStream.match(Tokens.IDENT)) {
[1152] Fix | Delete
ident = tokenStream.token().value.toLowerCase();
[1153] Fix | Delete
[1154] Fix | Delete
if (ident === "not") {
[1155] Fix | Delete
tokenStream.mustMatch(Tokens.S);
[1156] Fix | Delete
this._supports_condition_in_parens();
[1157] Fix | Delete
} else {
[1158] Fix | Delete
tokenStream.unget();
[1159] Fix | Delete
}
[1160] Fix | Delete
} else {
[1161] Fix | Delete
this._supports_condition_in_parens();
[1162] Fix | Delete
this._readWhitespace();
[1163] Fix | Delete
[1164] Fix | Delete
while (tokenStream.peek() === Tokens.IDENT) {
[1165] Fix | Delete
ident = tokenStream.LT(1).value.toLowerCase();
[1166] Fix | Delete
if (ident === "and" || ident === "or") {
[1167] Fix | Delete
tokenStream.mustMatch(Tokens.IDENT);
[1168] Fix | Delete
this._readWhitespace();
[1169] Fix | Delete
this._supports_condition_in_parens();
[1170] Fix | Delete
this._readWhitespace();
[1171] Fix | Delete
}
[1172] Fix | Delete
}
[1173] Fix | Delete
}
[1174] Fix | Delete
},
[1175] Fix | Delete
[1176] Fix | Delete
_supports_condition_in_parens: function() {
[1177] Fix | Delete
/*
[1178] Fix | Delete
* supports_condition_in_parens
[1179] Fix | Delete
* : ( '(' S* supports_condition S* ')' ) | supports_declaration_condition |
[1180] Fix | Delete
* general_enclosed
[1181] Fix | Delete
* ;
[1182] Fix | Delete
*/
[1183] Fix | Delete
var tokenStream = this._tokenStream,
[1184] Fix | Delete
ident;
[1185] Fix | Delete
[1186] Fix | Delete
if (tokenStream.match(Tokens.LPAREN)) {
[1187] Fix | Delete
this._readWhitespace();
[1188] Fix | Delete
if (tokenStream.match(Tokens.IDENT)) {
[1189] Fix | Delete
// look ahead for not keyword, if not given, continue with declaration condition.
[1190] Fix | Delete
ident = tokenStream.token().value.toLowerCase();
[1191] Fix | Delete
if (ident === "not") {
[1192] Fix | Delete
this._readWhitespace();
[1193] Fix | Delete
this._supports_condition();
[1194] Fix | Delete
this._readWhitespace();
[1195] Fix | Delete
tokenStream.mustMatch(Tokens.RPAREN);
[1196] Fix | Delete
} else {
[1197] Fix | Delete
tokenStream.unget();
[1198] Fix | Delete
this._supports_declaration_condition(false);
[1199] Fix | Delete
}
[1200] Fix | Delete
} else {
[1201] Fix | Delete
this._supports_condition();
[1202] Fix | Delete
this._readWhitespace();
[1203] Fix | Delete
tokenStream.mustMatch(Tokens.RPAREN);
[1204] Fix | Delete
}
[1205] Fix | Delete
} else {
[1206] Fix | Delete
this._supports_declaration_condition();
[1207] Fix | Delete
}
[1208] Fix | Delete
},
[1209] Fix | Delete
[1210] Fix | Delete
_supports_declaration_condition: function(requireStartParen) {
[1211] Fix | Delete
/*
[1212] Fix | Delete
* supports_declaration_condition
[1213] Fix | Delete
* : '(' S* declaration ')'
[1214] Fix | Delete
* ;
[1215] Fix | Delete
*/
[1216] Fix | Delete
var tokenStream = this._tokenStream;
[1217] Fix | Delete
[1218] Fix | Delete
if (requireStartParen !== false) {
[1219] Fix | Delete
tokenStream.mustMatch(Tokens.LPAREN);
[1220] Fix | Delete
}
[1221] Fix | Delete
this._readWhitespace();
[1222] Fix | Delete
this._declaration();
[1223] Fix | Delete
tokenStream.mustMatch(Tokens.RPAREN);
[1224] Fix | Delete
},
[1225] Fix | Delete
[1226] Fix | Delete
_media: function() {
[1227] Fix | Delete
/*
[1228] Fix | Delete
* media
[1229] Fix | Delete
* : MEDIA_SYM S* media_query_list S* '{' S* ruleset* '}' S*
[1230] Fix | Delete
* ;
[1231] Fix | Delete
*/
[1232] Fix | Delete
var tokenStream = this._tokenStream,
[1233] Fix | Delete
line,
[1234] Fix | Delete
col,
[1235] Fix | Delete
mediaList;// = [];
[1236] Fix | Delete
[1237] Fix | Delete
//look for @media
[1238] Fix | Delete
tokenStream.mustMatch(Tokens.MEDIA_SYM);
[1239] Fix | Delete
line = tokenStream.token().startLine;
[1240] Fix | Delete
col = tokenStream.token().startCol;
[1241] Fix | Delete
[1242] Fix | Delete
this._readWhitespace();
[1243] Fix | Delete
[1244] Fix | Delete
mediaList = this._media_query_list();
[1245] Fix | Delete
[1246] Fix | Delete
tokenStream.mustMatch(Tokens.LBRACE);
[1247] Fix | Delete
this._readWhitespace();
[1248] Fix | Delete
[1249] Fix | Delete
this.fire({
[1250] Fix | Delete
type: "startmedia",
[1251] Fix | Delete
media: mediaList,
[1252] Fix | Delete
line: line,
[1253] Fix | Delete
col: col
[1254] Fix | Delete
});
[1255] Fix | Delete
[1256] Fix | Delete
while (true) {
[1257] Fix | Delete
if (tokenStream.peek() === Tokens.PAGE_SYM) {
[1258] Fix | Delete
this._page();
[1259] Fix | Delete
} else if (tokenStream.peek() === Tokens.FONT_FACE_SYM) {
[1260] Fix | Delete
this._font_face();
[1261] Fix | Delete
} else if (tokenStream.peek() === Tokens.VIEWPORT_SYM) {
[1262] Fix | Delete
this._viewport();
[1263] Fix | Delete
} else if (tokenStream.peek() === Tokens.DOCUMENT_SYM) {
[1264] Fix | Delete
this._document();
[1265] Fix | Delete
} else if (tokenStream.peek() === Tokens.SUPPORTS_SYM) {
[1266] Fix | Delete
this._supports();
[1267] Fix | Delete
} else if (tokenStream.peek() === Tokens.MEDIA_SYM) {
[1268] Fix | Delete
this._media();
[1269] Fix | Delete
} else if (!this._ruleset()) {
[1270] Fix | Delete
break;
[1271] Fix | Delete
}
[1272] Fix | Delete
}
[1273] Fix | Delete
[1274] Fix | Delete
tokenStream.mustMatch(Tokens.RBRACE);
[1275] Fix | Delete
this._readWhitespace();
[1276] Fix | Delete
[1277] Fix | Delete
this.fire({
[1278] Fix | Delete
type: "endmedia",
[1279] Fix | Delete
media: mediaList,
[1280] Fix | Delete
line: line,
[1281] Fix | Delete
col: col
[1282] Fix | Delete
});
[1283] Fix | Delete
},
[1284] Fix | Delete
[1285] Fix | Delete
[1286] Fix | Delete
//CSS3 Media Queries
[1287] Fix | Delete
_media_query_list: function() {
[1288] Fix | Delete
/*
[1289] Fix | Delete
* media_query_list
[1290] Fix | Delete
* : S* [media_query [ ',' S* media_query ]* ]?
[1291] Fix | Delete
* ;
[1292] Fix | Delete
*/
[1293] Fix | Delete
var tokenStream = this._tokenStream,
[1294] Fix | Delete
mediaList = [];
[1295] Fix | Delete
[1296] Fix | Delete
[1297] Fix | Delete
this._readWhitespace();
[1298] Fix | Delete
[1299] Fix | Delete
if (tokenStream.peek() === Tokens.IDENT || tokenStream.peek() === Tokens.LPAREN) {
[1300] Fix | Delete
mediaList.push(this._media_query());
[1301] Fix | Delete
}
[1302] Fix | Delete
[1303] Fix | Delete
while (tokenStream.match(Tokens.COMMA)) {
[1304] Fix | Delete
this._readWhitespace();
[1305] Fix | Delete
mediaList.push(this._media_query());
[1306] Fix | Delete
}
[1307] Fix | Delete
[1308] Fix | Delete
return mediaList;
[1309] Fix | Delete
},
[1310] Fix | Delete
[1311] Fix | Delete
/*
[1312] Fix | Delete
* Note: "expression" in the grammar maps to the _media_expression
[1313] Fix | Delete
* method.
[1314] Fix | Delete
[1315] Fix | Delete
*/
[1316] Fix | Delete
_media_query: function() {
[1317] Fix | Delete
/*
[1318] Fix | Delete
* media_query
[1319] Fix | Delete
* : [ONLY | NOT]? S* media_type S* [ AND S* expression ]*
[1320] Fix | Delete
* | expression [ AND S* expression ]*
[1321] Fix | Delete
* ;
[1322] Fix | Delete
*/
[1323] Fix | Delete
var tokenStream = this._tokenStream,
[1324] Fix | Delete
type = null,
[1325] Fix | Delete
ident = null,
[1326] Fix | Delete
token = null,
[1327] Fix | Delete
expressions = [];
[1328] Fix | Delete
[1329] Fix | Delete
if (tokenStream.match(Tokens.IDENT)) {
[1330] Fix | Delete
ident = tokenStream.token().value.toLowerCase();
[1331] Fix | Delete
[1332] Fix | Delete
//since there's no custom tokens for these, need to manually check
[1333] Fix | Delete
if (ident !== "only" && ident !== "not") {
[1334] Fix | Delete
tokenStream.unget();
[1335] Fix | Delete
ident = null;
[1336] Fix | Delete
} else {
[1337] Fix | Delete
token = tokenStream.token();
[1338] Fix | Delete
}
[1339] Fix | Delete
}
[1340] Fix | Delete
[1341] Fix | Delete
this._readWhitespace();
[1342] Fix | Delete
[1343] Fix | Delete
if (tokenStream.peek() === Tokens.IDENT) {
[1344] Fix | Delete
type = this._media_type();
[1345] Fix | Delete
if (token === null) {
[1346] Fix | Delete
token = tokenStream.token();
[1347] Fix | Delete
}
[1348] Fix | Delete
} else if (tokenStream.peek() === Tokens.LPAREN) {
[1349] Fix | Delete
if (token === null) {
[1350] Fix | Delete
token = tokenStream.LT(1);
[1351] Fix | Delete
}
[1352] Fix | Delete
expressions.push(this._media_expression());
[1353] Fix | Delete
}
[1354] Fix | Delete
[1355] Fix | Delete
if (type === null && expressions.length === 0) {
[1356] Fix | Delete
return null;
[1357] Fix | Delete
} else {
[1358] Fix | Delete
this._readWhitespace();
[1359] Fix | Delete
while (tokenStream.match(Tokens.IDENT)) {
[1360] Fix | Delete
if (tokenStream.token().value.toLowerCase() !== "and") {
[1361] Fix | Delete
this._unexpectedToken(tokenStream.token());
[1362] Fix | Delete
}
[1363] Fix | Delete
[1364] Fix | Delete
this._readWhitespace();
[1365] Fix | Delete
expressions.push(this._media_expression());
[1366] Fix | Delete
}
[1367] Fix | Delete
}
[1368] Fix | Delete
[1369] Fix | Delete
return new MediaQuery(ident, type, expressions, token.startLine, token.startCol);
[1370] Fix | Delete
},
[1371] Fix | Delete
[1372] Fix | Delete
//CSS3 Media Queries
[1373] Fix | Delete
_media_type: function() {
[1374] Fix | Delete
/*
[1375] Fix | Delete
* media_type
[1376] Fix | Delete
* : IDENT
[1377] Fix | Delete
* ;
[1378] Fix | Delete
*/
[1379] Fix | Delete
return this._media_feature();
[1380] Fix | Delete
},
[1381] Fix | Delete
[1382] Fix | Delete
/**
[1383] Fix | Delete
* Note: in CSS3 Media Queries, this is called "expression".
[1384] Fix | Delete
* Renamed here to avoid conflict with CSS3 Selectors
[1385] Fix | Delete
* definition of "expression". Also note that "expr" in the
[1386] Fix | Delete
* grammar now maps to "expression" from CSS3 selectors.
[1387] Fix | Delete
* @method _media_expression
[1388] Fix | Delete
* @private
[1389] Fix | Delete
*/
[1390] Fix | Delete
_media_expression: function() {
[1391] Fix | Delete
/*
[1392] Fix | Delete
* expression
[1393] Fix | Delete
* : '(' S* media_feature S* [ ':' S* expr ]? ')' S*
[1394] Fix | Delete
* ;
[1395] Fix | Delete
*/
[1396] Fix | Delete
var tokenStream = this._tokenStream,
[1397] Fix | Delete
feature = null,
[1398] Fix | Delete
token,
[1399] Fix | Delete
expression = null;
[1400] Fix | Delete
[1401] Fix | Delete
tokenStream.mustMatch(Tokens.LPAREN);
[1402] Fix | Delete
[1403] Fix | Delete
feature = this._media_feature();
[1404] Fix | Delete
this._readWhitespace();
[1405] Fix | Delete
[1406] Fix | Delete
if (tokenStream.match(Tokens.COLON)) {
[1407] Fix | Delete
this._readWhitespace();
[1408] Fix | Delete
token = tokenStream.LT(1);
[1409] Fix | Delete
expression = this._expression();
[1410] Fix | Delete
}
[1411] Fix | Delete
[1412] Fix | Delete
tokenStream.mustMatch(Tokens.RPAREN);
[1413] Fix | Delete
this._readWhitespace();
[1414] Fix | Delete
[1415] Fix | Delete
return new MediaFeature(feature, expression ? new SyntaxUnit(expression, token.startLine, token.startCol) : null);
[1416] Fix | Delete
},
[1417] Fix | Delete
[1418] Fix | Delete
//CSS3 Media Queries
[1419] Fix | Delete
_media_feature: function() {
[1420] Fix | Delete
/*
[1421] Fix | Delete
* media_feature
[1422] Fix | Delete
* : IDENT
[1423] Fix | Delete
* ;
[1424] Fix | Delete
*/
[1425] Fix | Delete
var tokenStream = this._tokenStream;
[1426] Fix | Delete
[1427] Fix | Delete
this._readWhitespace();
[1428] Fix | Delete
[1429] Fix | Delete
tokenStream.mustMatch(Tokens.IDENT);
[1430] Fix | Delete
[1431] Fix | Delete
return SyntaxUnit.fromToken(tokenStream.token());
[1432] Fix | Delete
},
[1433] Fix | Delete
[1434] Fix | Delete
//CSS3 Paged Media
[1435] Fix | Delete
_page: function() {
[1436] Fix | Delete
/*
[1437] Fix | Delete
* page:
[1438] Fix | Delete
* PAGE_SYM S* IDENT? pseudo_page? S*
[1439] Fix | Delete
* '{' S* [ declaration | margin ]? [ ';' S* [ declaration | margin ]? ]* '}' S*
[1440] Fix | Delete
* ;
[1441] Fix | Delete
*/
[1442] Fix | Delete
var tokenStream = this._tokenStream,
[1443] Fix | Delete
line,
[1444] Fix | Delete
col,
[1445] Fix | Delete
identifier = null,
[1446] Fix | Delete
pseudoPage = null;
[1447] Fix | Delete
[1448] Fix | Delete
//look for @page
[1449] Fix | Delete
tokenStream.mustMatch(Tokens.PAGE_SYM);
[1450] Fix | Delete
line = tokenStream.token().startLine;
[1451] Fix | Delete
col = tokenStream.token().startCol;
[1452] Fix | Delete
[1453] Fix | Delete
this._readWhitespace();
[1454] Fix | Delete
[1455] Fix | Delete
if (tokenStream.match(Tokens.IDENT)) {
[1456] Fix | Delete
identifier = tokenStream.token().value;
[1457] Fix | Delete
[1458] Fix | Delete
//The value 'auto' may not be used as a page name and MUST be treated as a syntax error.
[1459] Fix | Delete
if (identifier.toLowerCase() === "auto") {
[1460] Fix | Delete
this._unexpectedToken(tokenStream.token());
[1461] Fix | Delete
}
[1462] Fix | Delete
}
[1463] Fix | Delete
[1464] Fix | Delete
//see if there's a colon upcoming
[1465] Fix | Delete
if (tokenStream.peek() === Tokens.COLON) {
[1466] Fix | Delete
pseudoPage = this._pseudo_page();
[1467] Fix | Delete
}
[1468] Fix | Delete
[1469] Fix | Delete
this._readWhitespace();
[1470] Fix | Delete
[1471] Fix | Delete
this.fire({
[1472] Fix | Delete
type: "startpage",
[1473] Fix | Delete
id: identifier,
[1474] Fix | Delete
pseudo: pseudoPage,
[1475] Fix | Delete
line: line,
[1476] Fix | Delete
col: col
[1477] Fix | Delete
});
[1478] Fix | Delete
[1479] Fix | Delete
this._readDeclarations(true, true);
[1480] Fix | Delete
[1481] Fix | Delete
this.fire({
[1482] Fix | Delete
type: "endpage",
[1483] Fix | Delete
id: identifier,
[1484] Fix | Delete
pseudo: pseudoPage,
[1485] Fix | Delete
line: line,
[1486] Fix | Delete
col: col
[1487] Fix | Delete
});
[1488] Fix | Delete
[1489] Fix | Delete
},
[1490] Fix | Delete
[1491] Fix | Delete
//CSS3 Paged Media
[1492] Fix | Delete
_margin: function() {
[1493] Fix | Delete
/*
[1494] Fix | Delete
* margin :
[1495] Fix | Delete
* margin_sym S* '{' declaration [ ';' S* declaration? ]* '}' S*
[1496] Fix | Delete
* ;
[1497] Fix | Delete
*/
[1498] Fix | Delete
var tokenStream = this._tokenStream,
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function