rearranged Url.prototype.format

the same as #3291, just without the regression and including all updates