Sets the value of the named property for an object. If a property with
the same name already exists for the object (even if it is a different
property type), the new property type and value replaces the old one.
For a string property, the toolkit stores a copy of the given string.