]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(reactivity): avoid tracking internal symbols in has trap
authorEvan You <yyx990803@gmail.com>
Thu, 23 Jul 2020 01:19:10 +0000 (21:19 -0400)
committerEvan You <yyx990803@gmail.com>
Thu, 23 Jul 2020 01:23:32 +0000 (21:23 -0400)
fix #1683

packages/reactivity/__tests__/effect.spec.ts
packages/reactivity/src/baseHandlers.ts

index 4e49a146d230435e212b5089813d4857d001fbd2..7285bb539ed833ffa5d302ed77e22fab904b2589 100644 (file)
@@ -759,7 +759,7 @@ describe('reactivity/effect', () => {
     expect(fnSpy).toHaveBeenCalledTimes(1)
   })
 
-  it('should trigger all effects when array length is set 0', () => {
+  it('should trigger all effects when array length is set to 0', () => {
     const observed: any = reactive([1])
     let dummy, record
     effect(() => {
index fbb18a22c98971014328e857fb79b5db70e111bd..6c0a1a4464e8c36041c97b8542fbdd8bb615f573 100644 (file)
@@ -142,7 +142,9 @@ function deleteProperty(target: object, key: string | symbol): boolean {
 
 function has(target: object, key: string | symbol): boolean {
   const result = Reflect.has(target, key)
-  track(target, TrackOpTypes.HAS, key)
+  if (!isSymbol(key) || !builtInSymbols.has(key)) {
+    track(target, TrackOpTypes.HAS, key)
+  }
   return result
 }