@@ -14,35 +14,6 @@ var uid = 0
14
14
var ARRAY = 0
15
15
var OBJECT = 1
16
16
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
-
46
17
/**
47
18
* Observer class that are attached to each observed
48
19
* object. Once attached, the observer converts target
@@ -71,9 +42,7 @@ function Observer (value, type) {
71
42
}
72
43
}
73
44
74
- Observer . target = null
75
-
76
- var p = Observer . prototype
45
+ // Static methods
77
46
78
47
/**
79
48
* Attempt to create an observer instance for a value,
@@ -102,6 +71,20 @@ Observer.create = function (value) {
102
71
}
103
72
}
104
73
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
+
105
88
/**
106
89
* Walk through each property and convert them into
107
90
* getter/setters. This method should only be called when
@@ -168,10 +151,8 @@ p.convert = function (key, val) {
168
151
enumerable : true ,
169
152
configurable : true ,
170
153
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 ( )
175
156
}
176
157
return val
177
158
} ,
@@ -231,4 +212,35 @@ p.removeVm = function (vm) {
231
212
this . vms . $remove ( vm )
232
213
}
233
214
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
+
234
246
module . exports = Observer
0 commit comments