@@ -111,6 +111,21 @@ describe "Javascript grammar", ->
111111 expect (tokens[6 ]).toEqual value : ' /' , scopes : [' source.js' , ' string.regexp.js' , ' punctuation.definition.string.end.js' ]
112112 expect (tokens[7 ]).toEqual value : ' ]' , scopes : [' source.js' , ' meta.brace.square.js' ]
113113
114+ it " tokenizes regular expressions inside ternary expressions" , ->
115+ {tokens } = grammar .tokenizeLine (' a ? /b/ : /c/' )
116+ expect (tokens[ 0 ]).toEqual value : ' a ' , scopes : [' source.js' ]
117+ expect (tokens[ 1 ]).toEqual value : ' ?' , scopes : [' source.js' , ' keyword.operator.js' ]
118+ expect (tokens[ 2 ]).toEqual value : ' ' , scopes : [' source.js' , ' string.regexp.js' ]
119+ expect (tokens[ 3 ]).toEqual value : ' /' , scopes : [' source.js' , ' string.regexp.js' , ' punctuation.definition.string.begin.js' ]
120+ expect (tokens[ 4 ]).toEqual value : ' b' , scopes : [' source.js' , ' string.regexp.js' ]
121+ expect (tokens[ 5 ]).toEqual value : ' /' , scopes : [' source.js' , ' string.regexp.js' , ' punctuation.definition.string.end.js' ]
122+ expect (tokens[ 6 ]).toEqual value : ' ' , scopes : [' source.js' ]
123+ expect (tokens[ 7 ]).toEqual value : ' :' , scopes : [' source.js' , ' keyword.operator.js' ]
124+ expect (tokens[ 8 ]).toEqual value : ' ' , scopes : [' source.js' , ' string.regexp.js' ]
125+ expect (tokens[ 9 ]).toEqual value : ' /' , scopes : [' source.js' , ' string.regexp.js' , ' punctuation.definition.string.begin.js' ]
126+ expect (tokens[10 ]).toEqual value : ' c' , scopes : [' source.js' , ' string.regexp.js' ]
127+ expect (tokens[11 ]).toEqual value : ' /' , scopes : [' source.js' , ' string.regexp.js' , ' punctuation.definition.string.end.js' ]
128+
114129 it " verifies that regular expressions have explicit count modifiers" , ->
115130 source = fs .readFileSync (path .resolve (__dirname , ' ..' , ' grammars' , ' javascript.cson' ), ' utf8' )
116131 expect (source .search / {,/ ).toEqual - 1
0 commit comments