         registerObjectGroup(.jsJSONObject)
         registerObjectGroup(.jsReflectObject)
         registerObjectGroup(.jsArrayBufferConstructor)
-        for variant in ["Error", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "AggregateError"] {
+        for variant in ["Error", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "AggregateError", "URIError"] {
             registerObjectGroup(.jsError(variant))
         }
 


    /// Type of a JavaScript Error object of the given variant.
    static func jsError(_ variant: String) -> Type {
       return .object(ofGroup: variant, withProperties: ["constructor", "__proto__", "message", "name"], withMethods: ["toString"])
    }
    
    /// Type of the JavaScript Error constructor builtin
    static func jsErrorConstructor(_ variant: String) -> Type {
        return .functionAndConstructor([.opt(.string)] => .jsError(variant))

    private var groups: [String: ObjectGroup] = [:]

    public var constructables = [String]()

    // Builtin objects (ObjectGroups to be precise) that are not constructors.
    public let nonConstructors = ["Math", "JSON", "Reflect"]

