#test: tokenize keyword for (i 1..2) #test: tokenize regexp /"[a]/ #test: tokenize functions foo = ({args}) -> foo = ({a1, a2}) -> foo = ({@a1, a2}) -> foo : ({args}) -> foo = ({args}) -> foo = ({0abc}) -> foo = ({/abc}) => foo = ({abc/}) -> foo = ({#abc}) -> foo = ({abc#}) -> foo = ({)abc}) -> foo = ({abc)}) -> foo = ({a{bc}) -> foo = ({}) -> foo = ({ }) -> foo : ({}) -> foo = (args) -> foo = (arg1, arg2) -> foo = (arg1 = 1, arg2 = 'name') -> foo = (@arg1 = /abc/, arg2 = 'name') -> #test: tokenize function: invalid case: foo=(/args) -> foo = () -> foo = ( ) -> foo : ( ) -> window.foo = (args) -> foo = -> foo = -> foo : -> #test: tokenize callback function foo bar: 1, (args) -> foo = (1, 2 (x) -> #test: tokenize class class Foo class Foo extends Bar #test: tokenize illegal name property foo.static.function #!test tokenize string with interpolation a = "#{ 22 / 7 + {x: "#{a + b}"} + 2}" " #{ "" + {} } )" """heredoc """ do -> ### herecomment ### re = /regex/imgy.test /// heregex # comment ///imgy this isnt: `just JavaScript` undefined