@@ -14,35 +14,6 @@ var uid = 0
1414var ARRAY = 0
1515var OBJECT = 1
1616
17- /**
18- * Augment an target Object or Array by intercepting
19- * the prototype chain using __proto__
20- *
21- * @param {Object|Array } target
22- * @param {Object } proto
23- */
24-
25- function protoAugment ( target , src ) {
26- target . __proto__ = src
27- }
28-
29- /**
30- * Augment an target Object or Array by defining
31- * hidden properties.
32- *
33- * @param {Object|Array } target
34- * @param {Object } proto
35- */
36-
37- function copyAugment ( target , src , keys ) {
38- var i = keys . length
39- var key
40- while ( i -- ) {
41- key = keys [ i ]
42- _ . define ( target , key , src [ key ] )
43- }
44- }
45-
4617/**
4718 * Observer class that are attached to each observed
4819 * object. Once attached, the observer converts target
@@ -71,9 +42,7 @@ function Observer (value, type) {
7142 }
7243}
7344
74- Observer . target = null
75-
76- var p = Observer . prototype
45+ // Static methods
7746
7847/**
7948 * Attempt to create an observer instance for a value,
@@ -102,6 +71,20 @@ Observer.create = function (value) {
10271 }
10372}
10473
74+ /**
75+ * Set the target watcher that is currently being evaluated.
76+ *
77+ * @param {Watcher } watcher
78+ */
79+
80+ Observer . setTarget = function ( watcher ) {
81+ Dep . target = watcher
82+ }
83+
84+ // Instance methods
85+
86+ var p = Observer . prototype
87+
10588/**
10689 * Walk through each property and convert them into
10790 * getter/setters. This method should only be called when
@@ -168,10 +151,8 @@ p.convert = function (key, val) {
168151 enumerable : true ,
169152 configurable : true ,
170153 get : function ( ) {
171- // Observer.target is a watcher whose getter is
172- // currently being evaluated.
173- if ( ob . active && Observer . target ) {
174- Observer . target . addDep ( dep )
154+ if ( ob . active ) {
155+ dep . depend ( )
175156 }
176157 return val
177158 } ,
@@ -231,4 +212,35 @@ p.removeVm = function (vm) {
231212 this . vms . $remove ( vm )
232213}
233214
215+ // helpers
216+
217+ /**
218+ * Augment an target Object or Array by intercepting
219+ * the prototype chain using __proto__
220+ *
221+ * @param {Object|Array } target
222+ * @param {Object } proto
223+ */
224+
225+ function protoAugment ( target , src ) {
226+ target . __proto__ = src
227+ }
228+
229+ /**
230+ * Augment an target Object or Array by defining
231+ * hidden properties.
232+ *
233+ * @param {Object|Array } target
234+ * @param {Object } proto
235+ */
236+
237+ function copyAugment ( target , src , keys ) {
238+ var i = keys . length
239+ var key
240+ while ( i -- ) {
241+ key = keys [ i ]
242+ _ . define ( target , key , src [ key ] )
243+ }
244+ }
245+
234246module . exports = Observer
0 commit comments