@@ -243,6 +243,15 @@ describe "Javascript grammar", ->
243243 expect(tokens[1]).toEqual value: operator, scopes: ['source.js', 'keyword.operator.logical.js']
244244 expect(tokens[2]).toEqual value: ' b', scopes: ['source.js']
245245
246+ it "tokenizes spread operator", ->
247+ {tokens} = grammar.tokenizeLine('myFunction(...args);')
248+ expect(tokens[2]).toEqual value: '...', scopes: ['source.js', 'meta.function-call.js', 'keyword.operator.spread.js']
249+ expect(tokens[3]).toEqual value: 'args', scopes: ['source.js', 'meta.function-call.js']
250+
251+ {tokens} = grammar.tokenizeLine('[...iterableObj]')
252+ expect(tokens[1]).toEqual value: '...', scopes: ['source.js', 'keyword.operator.spread.js']
253+ expect(tokens[2]).toEqual value: 'iterableObj', scopes: ['source.js']
254+
246255 describe "comparison", ->
247256 operators = ["<=", ">=", "!=", "!==", "===", "==", "<", ">" ]
248257
@@ -380,7 +389,7 @@ describe "Javascript grammar", ->
380389 expect(tokens[6]).toEqual value: ',', scopes: ['source.js', 'meta.delimiter.object.comma.js']
381390 expect(tokens[7]).toEqual value: 'second', scopes: ['source.js', 'constant.other.js']
382391 expect(tokens[8]).toEqual value: ',', scopes: ['source.js', 'meta.delimiter.object.comma.js']
383- expect(tokens[9]).toEqual value: '...', scopes: ['source.js', 'keyword.operator.js']
392+ expect(tokens[9]).toEqual value: '...', scopes: ['source.js', 'keyword.operator.spread. js']
384393 expect(tokens[10]).toEqual value: 'rest', scopes: ['source.js', 'constant.other.js']
385394 expect(tokens[11]).toEqual value: '}', scopes: ['source.js', 'meta.brace.curly.js']
386395 expect(tokens[12]).toEqual value: ' ', scopes: ['source.js']
0 commit comments