We should not be using JSObject::putDirectCustomAccessor() to put a CustomValue. A JSObject::putDirectCustomValue() would read more clearer. Also, clients of JSObject::putDirectCustomValue() should a pass in an attribute with the PropertyAttribute::CustomValue bit set.