Skip to content

Commit 2bb901e

Browse files
committed
parse.js: Changed line counting for error reporting to happen inside error handler
1 parent 37d2765 commit 2bb901e

1 file changed

Lines changed: 8 additions & 11 deletions

File tree

lib/parse.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,13 @@ CSSOM.parse = function parse(token) {
5555

5656
var atKeyframesRegExp = /@(-(?:\w+-)+)?keyframes/g;
5757

58-
var lineNumber = 1,
59-
charNumber = 0,
60-
parseError = function (msg) {
61-
var err = new Error(msg + ' at Line ' + lineNumber + ', char ' + charNumber, null, lineNumber);
62-
err.line = lineNumber;
63-
err.char = charNumber;
58+
var parseError = function (msg) {
59+
var tmp = token.substring(0, i).split('\n'),
60+
lines = tmp.length,
61+
chars = tmp.pop().length;
62+
var err = new Error(msg + ' (line ' + lines + ', char ' + chars + ')', null, lines);
63+
err.line = lines;
64+
err.char = chars;
6465
err.styleSheet = styleSheet;
6566
throw err;
6667
};
@@ -70,12 +71,10 @@ CSSOM.parse = function parse(token) {
7071

7172
switch (character) {
7273

73-
case "\n":
74-
lineNumber += 1;
75-
charNumber = 0;
7674
case " ":
7775
case "\t":
7876
case "\r":
77+
case "\n":
7978
case "\f":
8079
if (SIGNIFICANT_WHITESPACE[state]) {
8180
buffer += character;
@@ -329,8 +328,6 @@ CSSOM.parse = function parse(token) {
329328
buffer += character;
330329
break;
331330
}
332-
333-
charNumber += 1;
334331
}
335332

336333
return styleSheet;

0 commit comments

Comments
 (0)