@@ -498,9 +498,10 @@ describe('reactivity/readonly', () => {
const r = ref(false)
const ror = readonly(r)
const obj = reactive({ ror })
- expect(() => {
- obj.ror = true
- }).toThrow()
+ obj.ror = true
+ expect(
+ `Set operation on key "ror" failed: target is readonly.`,
+ ).toHaveBeenWarned()
expect(obj.ror).toBe(false)
})
@@ -153,7 +153,13 @@ class MutableReactiveHandler extends BaseReactiveHandler {
}
if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
if (isOldValueReadonly) {
- return false
+ if (__DEV__) {
+ warn(
+ `Set operation on key "${String(key)}" failed: target is readonly.`,
+ target[key],
+ )
+ }
+ return true
} else {
oldValue.value = value
return true