action in this zone.
action throws, the synchronous exception is not caught by the zone's
error handler. Use runGuarded to achieve that.
Since the root zone is the only zone that can modify the value of current, custom zones intercepting run should always delegate to their parent zone. They may take actions before and after the call.
R run<R>(R action());