### Version 3.2.12 ### Reproduction link [sfc.vuejs.org/](https://sfc.vuejs.org/#eyJBcHAudnVlIjoiPHNjcmlwdCBzZXR1cD5cbmltcG9ydCB7IHJlZiwgcmVhY3RpdmUsIG1hcmtSYXcgfSBmcm9tICd2dWUnXG5cbiAgXG4vLy8vIHNvdXJjZSBjb2RlIGZyb20gJ3R5cGVzYWZlLWkxOG4nXG4vLy9cbi8vL1xuY29uc3QgZ2V0VHJhbnNsYXRlSW5zdGFuY2UgPSAobG9jYWxlLCB0cmFuc2xhdGlvbnMsIGZvcm1hdHRlcnMpID0+IHtcbiAgICBjb25zdCBjYWNoZSA9IHt9O1xuICAgIGNvbnN0IHBsdXJhbFJ1bGVzID0gbmV3IEludGwuUGx1cmFsUnVsZXMobG9jYWxlKTtcbiAgICByZXR1cm4gKGtleSwgLi4uYXJncykgPT4gdHJhbnNsYXRlKGdldFBhcnRzRnJvbVN0cmluZyhjYWNoZSwgZ2V0VGV4dEZyb21UcmFuc2xhdGlvbktleSh0cmFuc2xhdGlvbnMsIGtleSkpLCBwbHVyYWxSdWxlcywgZm9ybWF0dGVycywgYXJncyk7XG59O1xuXG5mdW5jdGlvbiBpMThuT2JqZWN0KGxvY2FsZSwgdHJhbnNsYXRpb25zLCBmb3JtYXR0ZXJzID0ge30pIHtcbiAgICByZXR1cm4gY3JlYXRlUHJveHkoZ2V0VHJhbnNsYXRlSW5zdGFuY2UobG9jYWxlLCB0cmFuc2xhdGlvbnMsIGZvcm1hdHRlcnMpKTtcbn1cbiAgXG5jb25zdCBjcmVhdGVQcm94eSA9IChmbiwgcHJlZml4S2V5LCBwcm94eU9iamVjdCA9IHt9KSA9PiBuZXcgUHJveHkoKHByZWZpeEtleSA/IGZuLmJpbmQobnVsbCwgcHJlZml4S2V5KSA6IHByb3h5T2JqZWN0KSwge1xuICAgIGdldDogKHRhcmdldCwga2V5KSA9PiAhKHRhcmdldCA9PT0gcHJveHlPYmplY3QgJiYga2V5ID09PSAndGhlbicpICYmIGNyZWF0ZVByb3h5KGZuLCBwcmVmaXhLZXkgPyBgJHtwcmVmaXhLZXl9LiR7a2V5fWAgOiBrZXkpLFxufSk7XG4gIFxuLy8vL1xuLy8vXG4vLy9cbiAgXG5jb25zdCByZWFjdGl2ZU9iamVjdCA9IHJlYWN0aXZlKHt9KVxucmVhY3RpdmVPYmplY3QubmV3UHJvcGVydHkgPSBtYXJrUmF3KGkxOG5PYmplY3QoXCJlblwiLCB7fSwge30pKTtcbmNvbnN0IG1zZyA9IHJlZignSGVsbG8gV29ybGQhJylcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxoMT57eyBtc2cgfX08L2gxPlxuICA8aW5wdXQgdi1tb2RlbD1cIm1zZ1wiPlxuPC90ZW1wbGF0ZT4iLCJpbXBvcnQtbWFwLmpzb24iOiJ7XG4gIFwiaW1wb3J0c1wiOiB7XG4gICAgXCJ2dWVcIjogXCJodHRwczovL3NmYy52dWVqcy5vcmcvdnVlLnJ1bnRpbWUuZXNtLWJyb3dzZXIuanNcIlxuICB9XG59In0=) ### Steps to reproduce 1. Make a reactive object. 2. Make a Proxy where the getter always returns another Proxy. 3. Mark Proxy as raw with markRaw. 4. Add Proxy to reactive object. ### What is expected? No error. ### What is actually happening? toRaw gets stuck in a loop after adding the proxy to the reactive object. --- Workaround: Dont use markRaw and use shallowReactive instead of reactive. Possible solution proposals: 1. Change toRaw to check for the property '__v_skip' and instantly return it's argument when the property is true. 2. Use WeakMap to keep track of Reactive properties instead. <!-- generated by vue-issues. DO NOT REMOVE -->