|
@@ -10,6 +10,7 @@ var dataEvents = [
|
|
|
'add:self',
|
|
'add:self',
|
|
|
'delete:self'
|
|
'delete:self'
|
|
|
]
|
|
]
|
|
|
|
|
+var proxyEvents = dataEvents.slice(0, 5)
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Setup the data scope of an instance.
|
|
* Setup the data scope of an instance.
|
|
@@ -63,16 +64,16 @@ exports._initObserver = function () {
|
|
|
var ob = this.$observer = new Emitter(this)
|
|
var ob = this.$observer = new Emitter(this)
|
|
|
// setup data proxy handlers
|
|
// setup data proxy handlers
|
|
|
var proxies = this._dataProxies = {}
|
|
var proxies = this._dataProxies = {}
|
|
|
- dataEvents.forEach(function (event) {
|
|
|
|
|
- proxies[event] = function (a, b, c) {
|
|
|
|
|
|
|
+ proxyEvents.forEach(function (event) {
|
|
|
|
|
+ proxies[event] = function dataProxyFn (a, b, c) {
|
|
|
ob.emit(event, a, b, c)
|
|
ob.emit(event, a, b, c)
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
var self = this
|
|
var self = this
|
|
|
- proxies['add:self'] = function (key) {
|
|
|
|
|
|
|
+ proxies['add:self'] = function dataProxyFn (key) {
|
|
|
self._proxy(key)
|
|
self._proxy(key)
|
|
|
}
|
|
}
|
|
|
- proxies['delete:self'] = function (key) {
|
|
|
|
|
|
|
+ proxies['delete:self'] = function dataProxyFn (key) {
|
|
|
self._unproxy(key)
|
|
self._unproxy(key)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -173,10 +174,10 @@ exports._proxy = function (key) {
|
|
|
Object.defineProperty(self, key, {
|
|
Object.defineProperty(self, key, {
|
|
|
configurable: true,
|
|
configurable: true,
|
|
|
enumerable: true,
|
|
enumerable: true,
|
|
|
- get: function () {
|
|
|
|
|
|
|
+ get: function proxyGetter () {
|
|
|
return self._data[key]
|
|
return self._data[key]
|
|
|
},
|
|
},
|
|
|
- set: function (val) {
|
|
|
|
|
|
|
+ set: function proxySetter (val) {
|
|
|
self._data[key] = val
|
|
self._data[key] = val
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
@@ -265,13 +266,13 @@ exports._defineMeta = function (key, value) {
|
|
|
Object.defineProperty(this, key, {
|
|
Object.defineProperty(this, key, {
|
|
|
enumerable: true,
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
configurable: true,
|
|
|
- get: function () {
|
|
|
|
|
|
|
+ get: function metaGetter () {
|
|
|
if (Observer.emitGet) {
|
|
if (Observer.emitGet) {
|
|
|
ob.emit('get', key)
|
|
ob.emit('get', key)
|
|
|
}
|
|
}
|
|
|
return value
|
|
return value
|
|
|
},
|
|
},
|
|
|
- set: function (val) {
|
|
|
|
|
|
|
+ set: function metaSetter (val) {
|
|
|
if (val !== value) {
|
|
if (val !== value) {
|
|
|
value = val
|
|
value = val
|
|
|
ob.emit('set', key, val)
|
|
ob.emit('set', key, val)
|