Per the spec, before invoking the GetSubstitution abstraction, the named capture groups (if not undefined) should be coerced to an object via the ToObject abstraction.