throw native Error
bunch of final's
fix #350
ok, *really* fix #350
avoid visiting null expression (happens on syntax errors)
use Util.isTypeUnknown
remove isUnknown; use Util.isTypeUnknown instead
check dynamic spread argument for #366
relax the check on the return value for #366
tests for #366