1
1
/*global Tokens, TokenStreamBase*/
2
2
3
3
var h = / ^ [ 0 - 9 a - f A - F ] $ / ,
4
- nonascii = / ^ [ \u00A0 - \uFFFF ] $ / ,
4
+ // nonascii = /^[\u00A0-\uFFFF]$/,
5
5
nl = / \n | \r \n | \r | \f / ,
6
6
whitespace = / \u0009 | \u000a | \u000c | \u000d | \u0020 / ;
7
7
@@ -96,7 +96,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
96
96
*/
97
97
case "/" :
98
98
99
- if ( reader . peek ( ) == "*" ) {
99
+ if ( reader . peek ( ) === "*" ) {
100
100
token = this . commentToken ( c , startLine , startCol ) ;
101
101
} else {
102
102
token = this . charToken ( c , startLine , startCol ) ;
@@ -117,7 +117,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
117
117
case "^" :
118
118
case "$" :
119
119
case "*" :
120
- if ( reader . peek ( ) == "=" ) {
120
+ if ( reader . peek ( ) === "=" ) {
121
121
token = this . comparisonToken ( c , startLine , startCol ) ;
122
122
} else {
123
123
token = this . charToken ( c , startLine , startCol ) ;
@@ -171,7 +171,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
171
171
* - PERCENTAGE
172
172
*/
173
173
case "-" :
174
- if ( reader . peek ( ) == "-" ) { //could be closing HTML-style comment
174
+ if ( reader . peek ( ) === "-" ) { //could be closing HTML-style comment
175
175
token = this . htmlCommentEndToken ( c , startLine , startCol ) ;
176
176
} else if ( isNameStart ( reader . peek ( ) ) ) {
177
177
token = this . identOrFunctionToken ( c , startLine , startCol ) ;
@@ -235,7 +235,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
235
235
*/
236
236
case "U" :
237
237
case "u" :
238
- if ( reader . peek ( ) == "+" ) {
238
+ if ( reader . peek ( ) === "+" ) {
239
239
token = this . unicodeRangeToken ( c , startLine , startCol ) ;
240
240
break ;
241
241
}
@@ -354,9 +354,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
354
354
var rule = first ,
355
355
reader = this . _reader ,
356
356
tt = Tokens . CHAR ,
357
- valid = false ,
358
- ident ,
359
- c ;
357
+ ident ;
360
358
361
359
/*
362
360
* First, mark where we are. There are only four @ rules,
@@ -373,7 +371,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
373
371
tt = Tokens . type ( rule . toLowerCase ( ) ) ;
374
372
375
373
//if it's not valid, use the first character only and reset the reader
376
- if ( tt == Tokens . CHAR || tt == Tokens . UNKNOWN ) {
374
+ if ( tt === Tokens . CHAR || tt = == Tokens . UNKNOWN ) {
377
375
if ( rule . length > 1 ) {
378
376
tt = Tokens . UNKNOWN_SYM ;
379
377
} else {
@@ -400,7 +398,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
400
398
var tt = Tokens . type ( c ) ;
401
399
var opts = { } ;
402
400
403
- if ( tt == - 1 ) {
401
+ if ( tt === - 1 ) {
404
402
tt = Tokens . CHAR ;
405
403
} else {
406
404
opts . endChar = Tokens [ tt ] . endChar ;
@@ -420,8 +418,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
420
418
* @method commentToken
421
419
*/
422
420
commentToken : function ( first , startLine , startCol ) {
423
- var reader = this . _reader ,
424
- comment = this . readComment ( first ) ;
421
+ var comment = this . readComment ( first ) ;
425
422
426
423
return this . createToken ( Tokens . COMMENT , comment , startLine , startCol ) ;
427
424
} ,
@@ -455,8 +452,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
455
452
* @method hashToken
456
453
*/
457
454
hashToken : function ( first , startLine , startCol ) {
458
- var reader = this . _reader ,
459
- name = this . readName ( first ) ;
455
+ var name = this . readName ( first ) ;
460
456
461
457
return this . createToken ( Tokens . HASH , name , startLine , startCol ) ;
462
458
} ,
@@ -478,7 +474,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
478
474
reader . mark ( ) ;
479
475
text += reader . readCount ( 3 ) ;
480
476
481
- if ( text == "<!--" ) {
477
+ if ( text === "<!--" ) {
482
478
return this . createToken ( Tokens . CDO , text , startLine , startCol ) ;
483
479
} else {
484
480
reader . reset ( ) ;
@@ -503,7 +499,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
503
499
reader . mark ( ) ;
504
500
text += reader . readCount ( 2 ) ;
505
501
506
- if ( text == "-->" ) {
502
+ if ( text === "-->" ) {
507
503
return this . createToken ( Tokens . CDC , text , startLine , startCol ) ;
508
504
} else {
509
505
reader . reset ( ) ;
@@ -528,7 +524,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
528
524
uriFns = [ "url(" , "url-prefix(" , "domain(" ] ;
529
525
530
526
//if there's a left paren immediately after, it's a URI or function
531
- if ( reader . peek ( ) == "(" ) {
527
+ if ( reader . peek ( ) === "(" ) {
532
528
ident += reader . read ( ) ;
533
529
if ( uriFns . indexOf ( ident . toLowerCase ( ) ) > - 1 ) {
534
530
tt = Tokens . URI ;
@@ -541,10 +537,10 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
541
537
} else {
542
538
tt = Tokens . FUNCTION ;
543
539
}
544
- } else if ( reader . peek ( ) == ":" ) { //might be an IE function
540
+ } else if ( reader . peek ( ) === ":" ) { //might be an IE function
545
541
546
542
//IE-specific functions always being with progid:
547
- if ( ident . toLowerCase ( ) == "progid" ) {
543
+ if ( ident . toLowerCase ( ) === "progid" ) {
548
544
ident += reader . readTo ( "(" ) ;
549
545
tt = Tokens . IE_FUNCTION ;
550
546
}
@@ -576,10 +572,10 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
576
572
while ( c ) {
577
573
578
574
//there can be a comment in here
579
- if ( c == "/" ) {
575
+ if ( c === "/" ) {
580
576
581
577
//if the next character isn't a star, then this isn't a valid !important token
582
- if ( reader . peek ( ) != "*" ) {
578
+ if ( reader . peek ( ) !== "*" ) {
583
579
break ;
584
580
} else {
585
581
temp = this . readComment ( c ) ;
@@ -604,7 +600,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
604
600
c = reader . read ( ) ;
605
601
}
606
602
607
- if ( tt == Tokens . CHAR ) {
603
+ if ( tt === Tokens . CHAR ) {
608
604
reader . reset ( ) ;
609
605
return this . charToken ( first , startLine , startCol ) ;
610
606
} else {
@@ -631,7 +627,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
631
627
reader . mark ( ) ;
632
628
text += reader . readCount ( 4 ) ;
633
629
634
- if ( text . toLowerCase ( ) == ":not(" ) {
630
+ if ( text . toLowerCase ( ) === ":not(" ) {
635
631
return this . createToken ( Tokens . NOT , text , startLine , startCol ) ;
636
632
} else {
637
633
reader . reset ( ) ;
@@ -675,7 +671,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
675
671
tt = Tokens . DIMENSION ;
676
672
}
677
673
678
- } else if ( c == "%" ) {
674
+ } else if ( c === "%" ) {
679
675
value += reader . read ( ) ;
680
676
tt = Tokens . PERCENTAGE ;
681
677
}
@@ -708,12 +704,12 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
708
704
string += c ;
709
705
710
706
//if the delimiter is found with an escapement, we're done.
711
- if ( c == delim && prev != "\\" ) {
707
+ if ( c === delim && prev != = "\\" ) {
712
708
break ;
713
709
}
714
710
715
711
//if there's a newline without an escapement, it's an invalid string
716
- if ( isNewLine ( reader . peek ( ) ) && c != "\\" ) {
712
+ if ( isNewLine ( reader . peek ( ) ) && c !== "\\" ) {
717
713
tt = Tokens . INVALID ;
718
714
break ;
719
715
}
@@ -738,28 +734,28 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
738
734
tt = Tokens . CHAR ;
739
735
740
736
//then it should be a unicode range
741
- if ( reader . peek ( ) == "+" ) {
737
+ if ( reader . peek ( ) === "+" ) {
742
738
reader . mark ( ) ;
743
739
value += reader . read ( ) ;
744
740
value += this . readUnicodeRangePart ( true ) ;
745
741
746
742
//ensure there's an actual unicode range here
747
- if ( value . length == 2 ) {
743
+ if ( value . length === 2 ) {
748
744
reader . reset ( ) ;
749
745
} else {
750
746
751
747
tt = Tokens . UNICODE_RANGE ;
752
748
753
749
//if there's a ? in the first part, there can't be a second part
754
- if ( value . indexOf ( "?" ) == - 1 ) {
750
+ if ( value . indexOf ( "?" ) === - 1 ) {
755
751
756
- if ( reader . peek ( ) == "-" ) {
752
+ if ( reader . peek ( ) === "-" ) {
757
753
reader . mark ( ) ;
758
754
temp = reader . read ( ) ;
759
755
temp += this . readUnicodeRangePart ( false ) ;
760
756
761
757
//if there's not another value, back up and just take the first
762
- if ( temp . length == 1 ) {
758
+ if ( temp . length === 1 ) {
763
759
reader . reset ( ) ;
764
760
} else {
765
761
value += temp ;
@@ -784,8 +780,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
784
780
* @method whitespaceToken
785
781
*/
786
782
whitespaceToken : function ( first , startLine , startCol ) {
787
- var reader = this . _reader ,
788
- value = first + this . readWhitespace ( ) ;
783
+ var value = first + this . readWhitespace ( ) ;
789
784
return this . createToken ( Tokens . S , value , startLine , startCol ) ;
790
785
} ,
791
786
@@ -810,7 +805,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
810
805
811
806
//then read question marks if allowed
812
807
if ( allowQuestionMark ) {
813
- while ( c == "?" && part . length < 6 ) {
808
+ while ( c === "?" && part . length < 6 ) {
814
809
reader . read ( ) ;
815
810
part += c ;
816
811
c = reader . peek ( ) ;
@@ -838,14 +833,14 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
838
833
readNumber : function ( first ) {
839
834
var reader = this . _reader ,
840
835
number = first ,
841
- hasDot = ( first == "." ) ,
836
+ hasDot = ( first === "." ) ,
842
837
c = reader . peek ( ) ;
843
838
844
839
845
840
while ( c ) {
846
841
if ( isDigit ( c ) ) {
847
842
number += reader . read ( ) ;
848
- } else if ( c == "." ) {
843
+ } else if ( c === "." ) {
849
844
if ( hasDot ) {
850
845
break ;
851
846
} else {
@@ -873,12 +868,12 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
873
868
string += c ;
874
869
875
870
//if the delimiter is found with an escapement, we're done.
876
- if ( c == delim && prev != "\\" ) {
871
+ if ( c === delim && prev != = "\\" ) {
877
872
break ;
878
873
}
879
874
880
875
//if there's a newline without an escapement, it's an invalid string
881
- if ( isNewLine ( reader . peek ( ) ) && c != "\\" ) {
876
+ if ( isNewLine ( reader . peek ( ) ) && c !== "\\" ) {
882
877
string = "" ;
883
878
break ;
884
879
}
@@ -910,7 +905,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
910
905
}
911
906
912
907
//it's a string
913
- if ( c == "'" || c == "\"" ) {
908
+ if ( c === "'" || c = == "\"" ) {
914
909
inner = this . readString ( ) ;
915
910
} else {
916
911
inner = this . readURL ( ) ;
@@ -925,7 +920,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
925
920
}
926
921
927
922
//if there was no inner value or the next character isn't closing paren, it's not a URI
928
- if ( inner === "" || c != ")" ) {
923
+ if ( inner === "" || c !== ")" ) {
929
924
uri = first ;
930
925
reader . reset ( ) ;
931
926
} else {
@@ -954,7 +949,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
954
949
c = reader . peek ( ) ;
955
950
956
951
while ( true ) {
957
- if ( c == "\\" ) {
952
+ if ( c === "\\" ) {
958
953
if ( / ^ [ ^ \r \n \f ] $ / . test ( reader . peek ( 2 ) ) ) {
959
954
ident += this . readEscape ( reader . read ( ) , true ) ;
960
955
c = reader . peek ( ) ;
@@ -1019,12 +1014,12 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
1019
1014
comment = first || "" ,
1020
1015
c = reader . read ( ) ;
1021
1016
1022
- if ( c == "*" ) {
1017
+ if ( c === "*" ) {
1023
1018
while ( c ) {
1024
1019
comment += c ;
1025
1020
1026
1021
//look for end of comment
1027
- if ( comment . length > 2 && c == "*" && reader . peek ( ) == "/" ) {
1022
+ if ( comment . length > 2 && c === "*" && reader . peek ( ) = == "/" ) {
1028
1023
comment += reader . read ( ) ;
1029
1024
break ;
1030
1025
}
0 commit comments