I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
This PR adds support for the built-in URL type. This is supported everywhere Set and Map are supported so I don't think compatibility should be an issue.
As far as how the actual value is serialized: the string-ified URL value itself is not escaped because URL will do this for us e.g. (new URL("https://script>.com")).toString() ➡️ "https://script%3E.com/".
Originally posted by @rrdelaney in yahoo/serialize-javascript#123