diff --git a/packages/runtime-core/src/componentProxy.ts b/packages/runtime-core/src/componentProxy.ts index 312577b5e..ce3e36c93 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