[[
   "start",
  ["comment","//test: tokenize 'standard' functions"]
],[
   "no_regex",
  ["identifier","string"],
  ["punctuation.operator","."],
  ["support.function","charCodeAt"],
  ["paren.lparen","("],
  ["constant.numeric","23"],
  ["paren.rparen",")"],
  ["punctuation.operator",";"],
  ["text"," "],
  ["variable.language","document"],
  ["punctuation.operator","."],
  ["support.function.dom","getElementById"],
  ["paren.lparen","("],
  ["string","'test'"],
  ["paren.rparen",")"],
  ["punctuation.operator",";"],
  ["text"," "],
  ["storage.type","console"],
  ["punctuation.operator","."],
  ["support.function.firebug","log"],
  ["paren.lparen","("],
  ["string","'Here it is'"],
  ["paren.rparen",")"],
  ["punctuation.operator",";"],
  ["string","\";"]
],[
   "no_regex",
  ["identifier","test"],
  ["punctuation.operator",":"],
  ["text"," "],
  [
    "comment.doc",
    "/**"
  ],
  [
    "comment.doc.body",
    "tokenize doc"
  ],
  [
    "comment.doc",
    "*/"
  ],
  ["text"," "],
  ["identifier","comment"]
],[
   "no_regex",
  [
    "comment.doc",
    "/**"
  ],
  [
    "comment.doc.body",
    "tokenize doc comment with "
  ],
  ["comment.doc.tag","@tag"],
  [
    "comment.doc.body",
    " {}"
  ],
  [
    "comment.doc",
    "*/"
  ]
],[
   "no_regex",
  ["comment","//test: tokenize parens"]
],[
   "start",
  ["text","    "],
  ["storage.type","var"],
  ["text"," "],
  ["identifier","$line$"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["string","\"[{( )}]\""],
  ["punctuation.operator",";"]
],[
   "start",
  ["comment","//test tokenize arithmetic expression which looks like a regexp"]
],[
   "no_regex",
  ["identifier","a"],
  ["keyword.operator","/"],
  ["identifier","b"],
  ["keyword.operator","/"],
  ["identifier","c"]
],[
   "no_regex",
  ["identifier","a"],
  ["keyword.operator","/="],
  ["identifier","b"],
  ["keyword.operator","/"],
  ["identifier","c"]
],[
   "no_regex",
  ["comment","//test tokenize reg exps"]
],[
   "no_regex",
  ["identifier","a"],
  ["keyword.operator","="],
  ["string.regexp","/b/g"]
],[
   "no_regex",
  ["identifier","a"],
  ["keyword.operator","+"],
  ["string.regexp","/b/g"]
],[
   "no_regex",
  ["identifier","a"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["constant.numeric","1"],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["string.regexp","/2 "],
  ["constant.language.escape","+"],
  ["string.regexp"," 1/gimyx"],
  ["identifier","k"]
],[
   "no_regex",
  ["identifier","a"],
  ["keyword.operator","="],
  ["string.regexp","/a/"],
  ["text"," "],
  ["keyword.operator","/"],
  ["text"," "],
  ["string.regexp","/a/"]
],[
   "no_regex",
  ["keyword","case"],
  ["text"," "],
  ["string.regexp","/a/"],
  ["punctuation.operator","."],
  ["support.function","test"],
  ["paren.lparen","("],
  ["identifier","c"],
  ["paren.rparen",")"]
],[
   "no_regex",
  ["comment","//test tokenize multi-line comment containing a single line comment"]
],[
   "no_regex",
  ["identifier","noRegex"]
],[
   "no_regex",
  ["comment","/* foo // bar */"]
],[
   "start",
  ["identifier","canBeRegex"],
  ["punctuation.operator",";"]
],[
   "start",
  ["comment","/* foo // bar */"]
],[
   "start",
  ["comment","// test tokenize identifier with umlauts"]
],[
   "no_regex",
  ["identifier","fu"],
  ["punctuation.operator","?"],
  ["identifier","e"]
],[
   "no_regex",
  ["comment","// test // is not a regexp"]
],[
   "start",
  ["paren.lparen","{"],
  ["text"," "],
  ["comment","// 123"]
],[
   "start",
  ["comment","//test skipping escaped chars"]
],[
   "no_regex",
  ["string","'Meh"],
  ["constant.language.escape","\\\\"],
  ["string","nNeh'"]
],[
   "no_regex",
  ["storage.type","console"],
  ["punctuation.operator","."],
  ["support.function.firebug","log"],
  ["paren.lparen","("],
  ["string","'"],
  ["constant.language.escape","\\\\"],
  ["string","u1232Feh'"]
],[
   "qqstring",
  ["string","\"test multiline\\"]
],[
   "no_regex",
  ["string"," strings\""]
],[
   "no_regex",
  ["identifier","a"],
  ["keyword.operator","="],
  ["text","'"]
],[
   "qqstring",
  ["identifier","b"],
  ["keyword.operator","="],
  ["string","\"\\"]
],[
   "no_regex",
  ["string","still a string"]
],[
   "no_regex"
],[
   "no_regex"
],[
   "start",
  ["storage.type","function"],
  ["text"," "],
  ["entity.name.function","foo"],
  ["paren.lparen","("],
  ["variable.parameter","items"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","nada"],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","    "],
  ["keyword","for"],
  ["text"," "],
  ["paren.lparen","("],
  ["storage.type","var"],
  ["text"," "],
  ["identifier","i"],
  ["keyword.operator","="],
  ["constant.numeric","0"],
  ["punctuation.operator",";"],
  ["text"," "],
  ["identifier","i"],
  ["keyword.operator","<"],
  ["identifier","items"],
  ["punctuation.operator","."],
  ["support.constant","length"],
  ["punctuation.operator",";"],
  ["text"," "],
  ["identifier","i"],
  ["keyword.operator","++"],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","        "],
  ["support.function","alert"],
  ["paren.lparen","("],
  ["identifier","items"],
  ["paren.lparen","["],
  ["identifier","i"],
  ["paren.rparen","]"],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["string","\"juhu"],
  ["constant.language.escape","\\n"],
  ["string","\""],
  ["paren.rparen",")"],
  ["punctuation.operator",";"]
],[
   "no_regex",
  ["text","    "],
  ["paren.rparen","}"],
  ["text","\t"],
  ["comment","// Real Tab."]
],[
   "no_regex",
  ["paren.rparen","}"]
],[
   "no_regex"
],[
   "no_regex",
  ["identifier","regexp"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["string.regexp","/p"],
  ["constant.language.delimiter","|"],
  ["string.regexp","p/"],
  ["text"," "],
  ["comment","// ends here"]
],[
   "no_regex"
],[
   "no_regex",
  ["identifier","r"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["string.regexp","/d"],
  ["constant.language.escape","{1,2}?"],
  ["string.regexp","f{e}"],
  ["invalid","++"],
  ["string.regexp","r"],
  ["constant.language.escape","*?"],
  ["regexp.keyword.operator","\\d"],
  ["constant.language.escape","+?[]"],
  ["string.regexp","r"],
  ["constant.language.escape","[^"],
  ["string.regexp.charachterclass","r"],
  ["constant.language.escape","-"],
  ["string.regexp.charachterclass","o"],
  ["regexp.charclass.keyword.operator","\\f\\f"],
  ["string.regexp.charachterclass","["],
  ["regexp.charclass.keyword.operator","\\f"],
  ["constant.language.escape","]?"],
  ["string.regexp","r"],
  ["invalid","{7}+"],
  ["string.regexp","r"],
  ["regexp.keyword.operator","\\{"],
  ["string.regexp","7}"],
  ["constant.language.escape","+"],
  ["string.regexp","rr--rr"],
  ["constant.language.escape","$^(?:"],
  ["string.regexp","d"],
  ["constant.language.delimiter","|"],
  ["string.regexp","s"],
  ["constant.language.escape",")(?="],
  ["string.regexp","a"],
  ["constant.language.delimiter","|"],
  ["constant.language.escape",")(?!"],
  ["string.regexp","y"],
  ["constant.language.escape",")[]"],
  ["constant.language.delimiter","|"],
  ["invalid","$?"],
  ["constant.language.delimiter","|"],
  ["invalid","^*"],
  ["string.regexp","/"],
  ["text"," "],
  ["identifier","o"]
],[
   "no_regex",
  ["identifier","a"],
  ["keyword.operator","="],
  ["string.regexp","/a/"],
  ["text"," "],
  ["identifier","jk"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["string.regexp","/ /"],
  ["text"," "],
  ["keyword.operator","/"],
  ["text"," "],
  ["string.regexp","/ /"]
],[
   "no_regex",
  ["text"," "],
  [
    "comment.doc",
    "/**"
  ],
  [
    "comment.doc.body",
    "*********************************"
  ],
  [
    "comment.doc",
    "*/"
  ]
],[
   "no_regex",
  [
    "comment.doc",
    "/**"
  ],
  [
    "comment.doc.body",
    " total mess, tricky to highlight*"
  ],
  [
    "comment.doc",
    "*/"
  ]
],[
   "no_regex"
],[
   "start",
  ["storage.type","function"],
  ["text"," "],
  ["paren.lparen","("],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "doc-start",
  ["text","\t"],
  ["comment.doc","/**"]
],[
   "doc-start",
  [
    "comment.doc.body",
    "\t * docComment"
  ]
],[
   "no_regex",
  [
    "comment.doc.body",
    "\t *"
  ],
  [
    "comment.doc",
    "*/"
  ]
],[
   "no_regex",
  ["text","\t"],
  ["identifier","r"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["string.regexp","/u"],
  ["regexp.keyword.operator","\\t"],
  ["constant.language.escape","*"],
  ["string.regexp","/"]
],[
   "no_regex",
  ["text","\t"],
  ["identifier","g"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["constant.numeric","1.00"],
  ["identifier","E"],
  ["keyword.operator","^"],
  ["constant.numeric","1"],
  ["punctuation.operator",","],
  ["text"," "],
  ["identifier","y"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["constant.numeric","1.2"],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["constant.numeric","1."],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["constant.numeric",".2"],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["constant.numeric","052"],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["constant.numeric","0O7"],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["constant.numeric","0x25"]
],[
   "no_regex",
  ["text","\t"],
  ["identifier","t"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["paren.lparen","["],
  ["string","'d'"],
  ["punctuation.operator",","],
  ["text"," "],
  ["string","''"],
  ["paren.rparen","]"]
],[
   "no_regex",
  ["paren.rparen","}"]
],[
   "start",
  ["storage.type","function"],
  ["text"," "],
  ["paren.lparen","("],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","\t"],
  ["comment","/* eee */"]
],[
   "no_regex",
  ["paren.rparen","}"]
],[
   "no_regex"
],[
   "qqstring",
  ["string","\"s\\"]
],[
   "no_regex",
  ["string","s"],
  ["constant.language.escape","\\u7824"],
  ["string","sss"],
  ["constant.language.escape","\\u"],
  ["string","1\""]
],[
   "no_regex"
],[
   "qstring",
  ["string","'\\"]
],[
   "no_regex",
  ["string","string'"]
],[
   "no_regex"
],[
   "no_regex",
  ["text","'"]
],[
   "no_regex",
  ["identifier","string"],
  ["text","'"]
],[
   "no_regex"
],[
   "qqstring",
  ["string","\"trailing space\\"]
],[
   "no_regex",
  ["string","\""],
  ["text","         "],
  ["string","\"    /not a regexp/g"]
],[
   "no_regex"
],[
   "doc-start",
  ["comment.doc","/**"]
],[
   "doc-start",
  [
    "comment.doc.body",
    " *doc"
  ]
],[
   "no_regex",
  [
    "comment.doc.body",
    " "
  ],
  [
    "comment.doc",
    "*/"
  ]
],[
   "no_regex"
],[
   "start",
  ["identifier","a"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","\t"],
  ["string","'a'"],
  ["punctuation.operator",":"],
  ["text"," "],
  ["identifier","b"],
  ["punctuation.operator",","]
],[
   "no_regex",
  ["text","\t"],
  ["string","'g'"],
  ["text",":"],
  ["text"," "],
  ["storage.type","function"],
  ["paren.lparen","("],
  ["variable.parameter","t"],
  ["paren.rparen",")"]
],[
   "no_regex",
  ["text","\t"],
  ["entity.name.function","gta"],
  ["punctuation.operator",":"],
  ["storage.type","function"],
  ["paren.lparen","("],
  ["variable.parameter","a"],
  ["punctuation.operator",","],
  ["variable.parameter","b"],
  ["paren.rparen",")"]
],[
   "no_regex",
  ["paren.rparen","}"]
],[
   "no_regex"
],[
   "no_regex",
  ["identifier","z"],
  ["keyword.operator",">>="],
  ["identifier","t"],
  ["keyword.operator","<<"],
  ["identifier","f"],
  ["keyword.operator",">>"],
  ["identifier","r"],
  ["keyword.operator",">>>"],
  ["identifier","s"],
  ["keyword.operator",">="],
  ["constant.numeric","0b1"]
],[
   "no_regex"
],[
   "function_arguments",
  ["identifier","foo"],
  ["punctuation.operator","."],
  ["support.function","prototype"],
  ["punctuation.operator","."],
  ["identifier","d"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["storage.type","function"],
  ["paren.lparen","("],
  ["variable.parameter","a"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","b"],
  ["punctuation.operator",","]
],[
   "no_regex",
  ["text","                          "],
  ["variable.parameter","c"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","d"],
  ["paren.rparen",")"]
],[
   "no_regex",
  ["identifier","foo"],
  ["punctuation.operator","."],
  ["identifier","d"],
  ["text"," "],
  ["keyword.operator","="],
  ["storage.type","function"],
  ["paren.lparen","("],
  ["variable.parameter","a"],
  ["punctuation.operator",","],
  ["text","     "],
  ["variable.parameter","b"],
  ["paren.rparen",")"]
],[
   "no_regex",
  ["identifier","foo"],
  ["punctuation.operator","."],
  ["identifier","d"],
  ["text"," "],
  ["keyword.operator","="],
  ["storage.type","function"],
  ["paren.lparen","("],
  ["variable.parameter","a"],
  ["punctuation.operator",","],
  ["text","  "],
  ["comment","/*****/"],
  ["text"," "],
  ["variable.parameter","d"],
  ["string","\"string\""]
],[
   "no_regex"
],[
   "no_regex",
  ["keyword.operator","<"],
  ["identifier","div"]
],[
   ["start","jsxAttributes","jsxAttributes","jsx",1],
  ["identifier","z"],
  ["keyword.operator","="],
  ["meta.tag.punctuation.tag-open.xml","<"],
  ["meta.tag.tag-name.xml","div"],
  ["text.tag-whitespace.xml"," "],
  ["paren.quasi.start","{"],
  ["keyword.operator","..."],
  ["variable.language","this"],
  ["punctuation.operator","."],
  ["identifier","props"],
  ["paren.quasi.end","}"],
  ["text.tag-whitespace.xml"," "],
  ["entity.other.attribute-name.xml","x"],
  ["keyword.operator.attribute-equals.xml","="],
  ["paren.quasi.start","{"],
  ["constant.numeric","1"],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["constant.numeric","2"],
  ["paren.quasi.end","}"],
  ["text.tag-whitespace.xml"," "],
  ["entity.other.attribute-name.xml","y"],
  ["keyword.operator.attribute-equals.xml","="],
  ["string.attribute-value.xml","\"z{a}b"],
  ["constant.language.escape.reference.xml","&amp;"],
  ["string.attribute-value.xml","\""],
  ["text.tag-whitespace.xml"," "],
  ["entity.other.attribute-name.xml","t"],
  ["keyword.operator.attribute-equals.xml","="],
  ["paren.quasi.start","{"]
],[
   ["start","jsxAttributes","jsxAttributes","jsx",1],
  ["text","        "],
  ["constant.numeric","1"],
  ["text"," "],
  ["keyword.operator","+"],
  ["text"," "],
  ["meta.tag.punctuation.tag-open.xml","<"],
  ["meta.tag.tag-name.xml","a"],
  ["meta.tag.punctuation.tag-close.xml",">"],
  ["paren.quasi.start","{"],
  ["constant.numeric","2"],
  ["paren.quasi.end","}"],
  ["meta.tag.punctuation.end-tag-open.xml","</"],
  ["meta.tag.tag-name.xml","a"],
  ["meta.tag.punctuation.tag-close.xml",">"]
],[
   ["jsx",1],
  ["text","    "],
  ["paren.quasi.end","}"],
  ["meta.tag.punctuation.tag-close.xml",">"]
],[
   ["jsx",1],
  ["string.xml","1 "],
  ["meta.tag.punctuation.tag-open.xml","<"],
  ["meta.tag.tag-name.xml","a"],
  ["meta.tag.punctuation.tag-close.xml",">"],
  ["string.xml"," "],
  ["paren.quasi.start","{"],
  ["text"," "],
  ["keyword.operator","++"],
  ["identifier","x"],
  ["text","  "],
  ["paren.quasi.end","}"],
  ["string.xml"," "],
  ["meta.tag.punctuation.end-tag-open.xml","</"],
  ["meta.tag.tag-name.xml","a"],
  ["meta.tag.punctuation.tag-close.xml",">"]
],[
   "start",
  ["meta.tag.punctuation.end-tag-open.xml","</"],
  ["meta.tag.tag-name.xml","div"],
  ["meta.tag.punctuation.tag-close.xml",">"]
],[
   "start"
],[
   "start",
  ["storage.type","var"],
  ["text"," "],
  ["identifier","o"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["paren.lparen","{"]
],[
   ["start","no_regex","start","string.quasi.start","string.quasi.start","no_regex"],
  ["text","    "],
  ["identifier","t"],
  ["punctuation.operator",":"],
  ["string.quasi.start","`"],
  ["paren.quasi.start","${"],
  ["paren.lparen","["],
  ["paren.rparen","]"],
  ["punctuation.operator","."],
  ["identifier","map"],
  ["paren.lparen","("],
  ["variable.parameter","x"],
  ["text"," "],
  ["keyword.operator","=>"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   ["#tmp","no_regex","start","no_regex","start","string.quasi.start","string.quasi.start","no_regex"],
  ["text","        "],
  ["keyword","return"],
  ["text"," "],
  ["identifier","x"]
],[
   "no_regex",
  ["text","    "],
  ["paren.rparen","})"],
  ["paren.quasi.end","}"],
  ["string.quasi.end","`"]
],[
   "start",
  ["paren.rparen","}"],
  ["punctuation.operator",";"]
],[
   "start"
],[
   "start",
  ["comment","//test generator function"]
],[
   "start",
  ["storage.type","function"],
  ["storage.type","*"],
  ["text"," "],
  ["entity.name.function","range"],
  ["text"," "],
  ["paren.lparen","("],
  ["variable.parameter","start"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","end"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","step"],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","    "],
  ["keyword","while"],
  ["text"," "],
  ["paren.lparen","("],
  ["identifier","start"],
  ["text"," "],
  ["keyword.operator","<"],
  ["text"," "],
  ["identifier","end"],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "no_regex",
  ["text","        "],
  ["keyword","yield"],
  ["text"," "],
  ["identifier","start"]
],[
   "no_regex",
  ["text","        "],
  ["identifier","start"],
  ["text"," "],
  ["keyword.operator","+="],
  ["text"," "],
  ["identifier","step"]
],[
   "no_regex",
  ["text","    "],
  ["paren.rparen","}"]
],[
   "no_regex",
  ["paren.rparen","}"]
],[
   "no_regex",
  ["comment","//test ES6 new built-in methods"]
],[
   "no_regex",
  ["string","\"hello\""],
  ["punctuation.operator","."],
  ["support.function","startsWith"],
  ["paren.lparen","("],
  ["string","\"ello\""],
  ["punctuation.operator",","],
  ["text"," "],
  ["constant.numeric","1"],
  ["paren.rparen",")"],
  ["text"," "],
  ["comment","// true"]
],[
   "no_regex",
  ["string","\"hello\""],
  ["punctuation.operator","."],
  ["support.function","endsWith"],
  ["paren.lparen","("],
  ["string","\"hell\""],
  ["punctuation.operator",","],
  ["text"," "],
  ["constant.numeric","4"],
  ["paren.rparen",")"],
  ["text","   "],
  ["comment","// true"]
],[
   "no_regex",
  ["string","\"hello\""],
  ["punctuation.operator","."],
  ["support.function","includes"],
  ["paren.lparen","("],
  ["string","\"ell\""],
  ["paren.rparen",")"],
  ["text","       "],
  ["comment","// true"]
],[
   "no_regex",
  ["paren.lparen","["],
  ["text"," "],
  ["constant.numeric","1"],
  ["punctuation.operator",","],
  ["text"," "],
  ["constant.numeric","3"],
  ["punctuation.operator",","],
  ["text"," "],
  ["constant.numeric","4"],
  ["punctuation.operator",","],
  ["text"," "],
  ["constant.numeric","2"],
  ["text"," "],
  ["paren.rparen","]"],
  ["punctuation.operator","."],
  ["support.function","find"],
  ["paren.lparen","("],
  ["variable.parameter","x"],
  ["text"," "],
  ["keyword.operator","=>"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword.operator",">"],
  ["text"," "],
  ["constant.numeric","3"],
  ["paren.rparen",")"],
  ["text"," "],
  ["comment","// 4"]
],[
   "no_regex",
  ["paren.lparen","["],
  ["text"," "],
  ["constant.numeric","1"],
  ["punctuation.operator",","],
  ["text"," "],
  ["constant.numeric","3"],
  ["punctuation.operator",","],
  ["text"," "],
  ["constant.numeric","4"],
  ["punctuation.operator",","],
  ["text"," "],
  ["constant.numeric","2"],
  ["text"," "],
  ["paren.rparen","]"],
  ["punctuation.operator","."],
  ["support.function","findIndex"],
  ["paren.lparen","("],
  ["variable.parameter","x"],
  ["text"," "],
  ["keyword.operator","=>"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword.operator",">"],
  ["text"," "],
  ["constant.numeric","3"],
  ["paren.rparen",")"],
  ["text"," "],
  ["comment","// 2"]
],[
   "no_regex",
  ["string","\"foo\""],
  ["punctuation.operator","."],
  ["support.function","repeat"],
  ["paren.lparen","("],
  ["constant.numeric","3"],
  ["paren.rparen",")"]
],[
   "no_regex",
  ["variable.language","Number"],
  ["punctuation.operator","."],
  ["support.function","isSafeInteger"],
  ["paren.lparen","("],
  ["constant.numeric","42"],
  ["paren.rparen",")"],
  ["text"," "],
  ["keyword.operator","==="],
  ["text"," "],
  ["constant.language.boolean","true"]
],[
   "no_regex"
],[
   "start",
  ["storage.type","let"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["variable.language","Number"],
  ["punctuation.operator","."],
  ["constant.language","MAX_SAFE_INTEGER"],
  ["punctuation.operator",";"]
],[
   "start",
  ["storage.type","let"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["variable.language","Number"],
  ["punctuation.operator","."],
  ["constant.language","MIN_SAFE_INTEGER"],
  ["punctuation.operator",";"]
],[
   "start",
  ["storage.type","let"],
  ["text"," "],
  ["identifier","x"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["variable.language","Number"],
  ["punctuation.operator","."],
  ["constant.language","EPSILON"],
  ["punctuation.operator",";"]
],[
   "start",
  ["comment","//test Promises"]
],[
   "no_regex",
  ["keyword","new"],
  ["text"," "],
  ["variable.language","Promise"],
  ["paren.lparen","("],
  ["identifier","tetheredGetNumber"],
  ["paren.rparen",")"]
],[
   "no_regex",
  ["text","  "],
  ["punctuation.operator","."],
  ["support.function","then"],
  ["paren.lparen","("],
  ["identifier","determineParity"],
  ["punctuation.operator",","],
  ["text"," "],
  ["identifier","troubleWithGetNumber"],
  ["paren.rparen",")"]
],[
   "no_regex",
  ["text","  "],
  ["punctuation.operator","."],
  ["support.function","then"],
  ["paren.lparen","("],
  ["identifier","promiseGetWord"],
  ["paren.rparen",")"]
],[
   "start",
  ["text","  "],
  ["punctuation.operator","."],
  ["support.function","then"],
  ["paren.lparen","(("],
  ["variable.parameter","info"],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","    "],
  ["storage.type","console"],
  ["punctuation.operator","."],
  ["support.function.firebug","log"],
  ["paren.lparen","("],
  ["string.quasi.start","`"],
  ["string.quasi","Got: "],
  ["paren.quasi.start","${"],
  ["identifier","info"],
  ["punctuation.operator","."],
  ["identifier","value"],
  ["paren.quasi.end","}"],
  ["string.quasi",", "],
  ["paren.quasi.start","${"],
  ["identifier","info"],
  ["punctuation.operator","."],
  ["identifier","wordEvenOdd"],
  ["paren.quasi.end","}"],
  ["string.quasi.end","`"],
  ["paren.rparen",")"],
  ["punctuation.operator",";"]
],[
   "start",
  ["text","    "],
  ["keyword","return"],
  ["text"," "],
  ["identifier","info"],
  ["punctuation.operator",";"]
],[
   "no_regex",
  ["text","  "],
  ["paren.rparen","})"]
],[
   "start",
  ["text","  "],
  ["punctuation.operator","."],
  ["support.function","catch"],
  ["paren.lparen","(("],
  ["variable.parameter","reason"],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","    "],
  ["keyword","if"],
  ["text"," "],
  ["paren.lparen","("],
  ["identifier","reason"],
  ["punctuation.operator","."],
  ["identifier","cause"],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","      "],
  ["storage.type","console"],
  ["punctuation.operator","."],
  ["support.function.firebug","error"],
  ["paren.lparen","("],
  ["string","\"Had previously handled error\""],
  ["paren.rparen",")"],
  ["punctuation.operator",";"]
],[
   "start",
  ["text","    "],
  ["paren.rparen","}"],
  ["text"," "],
  ["keyword","else"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","      "],
  ["storage.type","console"],
  ["punctuation.operator","."],
  ["support.function.firebug","error"],
  ["paren.lparen","("],
  ["string.quasi.start","`"],
  ["string.quasi","Trouble with promiseGetWord(): "],
  ["paren.quasi.start","${"],
  ["identifier","reason"],
  ["paren.quasi.end","}"],
  ["string.quasi.end","`"],
  ["paren.rparen",")"],
  ["punctuation.operator",";"]
],[
   "no_regex",
  ["text","    "],
  ["paren.rparen","}"]
],[
   "no_regex",
  ["text","  "],
  ["paren.rparen","})"]
],[
   "start",
  ["text","  "],
  ["punctuation.operator","."],
  ["support.function","finally"],
  ["paren.lparen","(("],
  ["variable.parameter","info"],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["storage.type","console"],
  ["punctuation.operator","."],
  ["support.function.firebug","log"],
  ["paren.lparen","("],
  ["string","\"All done\""],
  ["paren.rparen","))"],
  ["punctuation.operator",";"]
],[
   "start",
  ["comment","//test ES6 arrow functions"]
],[
   "start",
  ["variable.parameter","param"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["identifier","expression"],
  ["punctuation.operator",";"]
],[
   "start"
],[
   "start",
  ["paren.lparen","("],
  ["variable.parameter","param"],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["identifier","expression"],
  ["punctuation.operator",";"]
],[
   "start"
],[
   "start",
  ["paren.lparen","("],
  ["variable.parameter","param1"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["constant.numeric","123"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","paramN"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["string","\"test\""],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["identifier","expression"],
  ["punctuation.operator",";"]
],[
   "start"
],[
   "start",
  ["variable.parameter","param"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","  "],
  ["identifier","statements"],
  ["punctuation.operator",";"]
],[
   "start",
  ["paren.rparen","}"],
  ["punctuation.operator",";"]
],[
   "start",
  ["paren.lparen","("],
  ["variable.parameter","param1"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","paramN"],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "no_regex",
  ["text","  "],
  ["identifier","statements"]
],[
   "no_regex",
  ["paren.rparen","}"]
],[
   "no_regex"
],[
   "start",
  ["paren.lparen","("],
  ["variable.parameter","a"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","b"],
  ["punctuation.operator",","],
  ["text"," "],
  ["keyword.operator","..."],
  ["variable.parameter","r"],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["identifier","expression"],
  ["punctuation.operator",";"]
],[
   "start"
],[
   "start",
  ["paren.lparen","("],
  ["variable.parameter","a"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["constant.numeric","400"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","b"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["constant.numeric","20"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","c"],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["identifier","expression"],
  ["punctuation.operator",";"]
],[
   "start"
],[
   "start",
  ["keyword","async"],
  ["text"," "],
  ["variable.parameter","param"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["identifier","expression"],
  ["punctuation.operator",";"]
],[
   "start"
],[
   "start",
  ["comment","//test JSX functions arguments in arrow functions"]
],[
   ["start","no_regex","start","jsxAttributes","jsxAttributes","jsx",1],
  ["meta.tag.punctuation.tag-open.xml","<"],
  ["meta.tag.tag-name.xml","Component"],
  ["text.tag-whitespace.xml"," "],
  ["entity.other.attribute-name.xml","onclick"],
  ["keyword.operator.attribute-equals.xml","="],
  ["paren.quasi.start","{"],
  ["paren.lparen","("],
  ["variable.parameter","param1"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","param2"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["string","\"Test\""],
  ["punctuation.operator",","],
  ["text"," "],
  ["keyword.operator","..."],
  ["variable.parameter","paramN"],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   ["#tmp","no_regex","start","no_regex","start","jsxAttributes","jsxAttributes","jsx",1],
  ["text","    "],
  ["storage.type","console"],
  ["punctuation.operator","."],
  ["support.function.firebug","log"],
  ["paren.lparen","("],
  ["string","\"Test\""],
  ["paren.rparen",")"]
],[
   "start",
  ["paren.rparen","}"],
  ["paren.quasi.end","}"],
  ["meta.tag.punctuation.tag-close.xml","/>"]
],[
   ["start","no_regex","start","jsxAttributes","jsxAttributes","jsx",1],
  ["meta.tag.punctuation.tag-open.xml","<"],
  ["meta.tag.tag-name.xml","Component"],
  ["text.tag-whitespace.xml"," "],
  ["entity.other.attribute-name.xml","onclick"],
  ["keyword.operator.attribute-equals.xml","="],
  ["paren.quasi.start","{"],
  ["variable.parameter","param1"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   ["#tmp","no_regex","start","no_regex","start","jsxAttributes","jsxAttributes","jsx",1],
  ["text","    "],
  ["storage.type","console"],
  ["punctuation.operator","."],
  ["support.function.firebug","log"],
  ["paren.lparen","("],
  ["string","\"Test\""],
  ["paren.rparen",")"]
],[
   "start",
  ["paren.rparen","}"],
  ["paren.quasi.end","}"],
  ["meta.tag.punctuation.tag-close.xml","/>"]
],[
   "start"
],[
   "start",
  ["comment","//test different generator functions use cases"]
],[
   "no_regex",
  ["storage.type","function"],
  ["storage.type","*"],
  ["text"," "],
  ["entity.name.function","generator"],
  ["paren.lparen","("],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"],
  ["paren.rparen","}"]
],[
   "no_regex",
  ["storage.type","function"],
  ["storage.type","*"],
  ["entity.name.function","generator"],
  ["paren.lparen","("],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"],
  ["paren.rparen","}"]
],[
   "no_regex",
  ["identifier","Sound"],
  ["punctuation.operator","."],
  ["identifier","play"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["storage.type","function"],
  ["storage.type","*"],
  ["text"," "],
  ["entity.name.function","play"],
  ["paren.lparen","("],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"],
  ["text","  "],
  ["paren.rparen","}"]
],[
   "no_regex",
  ["entity.name.function","foobar"],
  ["punctuation.operator",":"],
  ["text"," "],
  ["storage.type","function"],
  ["text","   "],
  ["storage.type","*"],
  ["text","   "],
  ["paren.lparen","("],
  ["paren.rparen",")"],
  ["text"," "],
  ["paren.lparen","{"],
  ["text"," "],
  ["paren.rparen","}"]
],[
   "no_regex"
],[
   "no_regex",
  ["comment","//func's args shouldn't be determined as arrow function"]
],[
   "no_regex",
  ["identifier","func"],
  ["text"," "],
  ["paren.lparen","("],
  ["identifier","a"],
  ["punctuation.operator",","],
  ["identifier","b"],
  ["punctuation.operator",","],
  ["constant.numeric","1"],
  ["punctuation.operator",","],
  ["constant.numeric","2"],
  ["punctuation.operator",","],
  ["constant.numeric","3"],
  ["punctuation.operator",","],
  ["text"," "],
  ["keyword","async"],
  ["text"," "],
  ["paren.lparen","("],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["paren.lparen","{"],
  ["paren.rparen","})"]
],[
   "no_regex",
  ["identifier","func"],
  ["paren.lparen","("],
  ["identifier","a"],
  ["punctuation.operator",","],
  ["identifier","b"],
  ["punctuation.operator",","],
  ["identifier","innerCall"],
  ["paren.lparen","("],
  ["identifier","c"],
  ["punctuation.operator",","],
  ["identifier","d"],
  ["paren.rparen",")"],
  ["punctuation.operator",","],
  ["text"," "],
  ["paren.lparen","("],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["paren.lparen","{"],
  ["paren.rparen","})"]
],[
   "no_regex"
],[
   "no_regex",
  ["comment","//async arrow function with default params"]
],[
   "start",
  ["keyword","async"],
  ["text"," "],
  ["paren.lparen","("],
  ["variable.parameter","param1"],
  ["punctuation.operator",","],
  ["text"," "],
  ["variable.parameter","param2"],
  ["punctuation.operator",","],
  ["text"," "],
  ["keyword.operator","..."],
  ["variable.parameter","paramN"],
  ["paren.rparen",")"],
  ["text"," "],
  ["storage.type","=>"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "no_regex",
  ["text","  "],
  ["identifier","statements"]
],[
   "no_regex",
  ["paren.rparen","}"]
],[
   "no_regex"
]]