From 2d5f9b58acbe62815735a1c9c4019ed8a004803e Mon Sep 17 00:00:00 2001 From: Chester <291164091@qq.com> Date: Tue, 5 Nov 2019 23:45:04 +0800 Subject: [PATCH] refactor: skip destructuring when use with (#425) --- packages/runtime-core/src/componentProxy.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/runtime-core/src/componentProxy.ts b/packages/runtime-core/src/componentProxy.ts index 312577b5e8..ce3e36c935 100644 --- a/packages/runtime-core/src/componentProxy.ts +++ b/packages/runtime-core/src/componentProxy.ts @@ -65,6 +65,10 @@ const enum AccessTypes { export const PublicInstanceProxyHandlers: ProxyHandler = { get(target: ComponentInternalInstance, key: string) { + // fast path for unscopables when using `with` block + if (__RUNTIME_COMPILE__ && (key as any) === Symbol.unscopables) { + return + } const { renderContext, data, @@ -74,10 +78,6 @@ export const PublicInstanceProxyHandlers: ProxyHandler = { type, sink } = target - // fast path for unscopables when using `with` block - if (__RUNTIME_COMPILE__ && (key as any) === Symbol.unscopables) { - return - } // This getter gets called for every property access on the render context // during render and is a major hotspot. The most expensive part of this // is the multiple hasOwn() calls. It's much faster to do a simple property -- 2.47.3