added function* support with esnext option, and errors on function* with moz option

for `moz` option, `function` can contain a `yield` statement
for `esnext` option, `function` cannot contain a `yield` statement, but `function*` shall contain a `yield` statement