fix(runtime-core): allow overriding properties other than props (#3105)
This is useful for testing, as Jest can't spy on an object without `hasOwnProperty`. VTU can add it, but this commit is needed first.
This commit is contained in:
		
							parent
							
								
									48f0d2944f
								
							
						
					
					
						commit
						73117f6b5b
					
				| @ -295,6 +295,10 @@ describe('component props', () => { | |||||||
|       ;(instance!.proxy as any).foo = 2 |       ;(instance!.proxy as any).foo = 2 | ||||||
|     }).toThrow(TypeError) |     }).toThrow(TypeError) | ||||||
|     expect(`Attempting to mutate prop "foo"`).toHaveBeenWarned() |     expect(`Attempting to mutate prop "foo"`).toHaveBeenWarned() | ||||||
|  |     // should not throw when overriding properties other than props
 | ||||||
|  |     expect(() => { | ||||||
|  |       ;(instance!.proxy as any).hasOwnProperty = () => {} | ||||||
|  |     }).not.toThrow(TypeError) | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|   test('merging props from mixins and extends', () => { |   test('merging props from mixins and extends', () => { | ||||||
|  | |||||||
| @ -368,7 +368,7 @@ export const PublicInstanceProxyHandlers: ProxyHandler<any> = { | |||||||
|       setupState[key] = value |       setupState[key] = value | ||||||
|     } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { |     } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { | ||||||
|       data[key] = value |       data[key] = value | ||||||
|     } else if (key in instance.props) { |     } else if (hasOwn(instance.props, key)) { | ||||||
|       __DEV__ && |       __DEV__ && | ||||||
|         warn( |         warn( | ||||||
|           `Attempting to mutate prop "${key}". Props are readonly.`, |           `Attempting to mutate prop "${key}". Props are readonly.`, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user