From 10a2cf47ea5c4c53852c3f99b0b8d5feef1010c2 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 19 Aug 2019 15:06:03 -0400 Subject: [PATCH] wip: make injected values immutable --- packages/runtime-core/src/apiInject.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/runtime-core/src/apiInject.ts b/packages/runtime-core/src/apiInject.ts index 93d5e39a1d..c7f8f327e4 100644 --- a/packages/runtime-core/src/apiInject.ts +++ b/packages/runtime-core/src/apiInject.ts @@ -1,4 +1,6 @@ import { currentInstance } from './component' +import { immutable } from './apiState' +import { isObject } from '@vue/shared' export interface InjectionKey extends Symbol {} @@ -29,8 +31,8 @@ export function inject(key: InjectionKey | string, defaultValue?: any) { } else { // TODO should also check for app-level provides const provides = currentInstance.parent && currentInstance.provides - return provides && key in provides - ? (provides[key as any] as any) - : defaultValue + const val = + provides && key in provides ? (provides[key as any] as any) : defaultValue + return __DEV__ && isObject(val) ? immutable(val) : val } } -- 2.47.3