浏览代码

avoid traversing frozen objects in deep watch

Evan You 9 年之前
父节点
当前提交
1d02463ced
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/core/observer/watcher.js

+ 1 - 1
src/core/observer/watcher.js

@@ -264,7 +264,7 @@ function traverse (val: any, seen?: Set) {
   }
   }
   const isA = Array.isArray(val)
   const isA = Array.isArray(val)
   const isO = isObject(val)
   const isO = isObject(val)
-  if (isA || isO) {
+  if ((isA || isO) && Object.isExtensible(val)) {
     if (val.__ob__) {
     if (val.__ob__) {
       const depId = val.__ob__.dep.id
       const depId = val.__ob__.dep.id
       if (seen.has(depId)) {
       if (seen.has(depId)) {