Avoid segfault when return in top-level block

Previously, this top-level code:
    {
        return
    }.apply
would cause a segfault because the return statement would try to jump to
a pointer derived from uninitialised memory. Now, it will raise an error
on execution saying that returning from top-level blocks is prohibited.