Beispiel #1
0
module.exports = function (a) {
	var db = new Database(), proto = db.Object.prototype, obj = new db.Object()
	  , protoDesc, protoSet, set, item, protoItem, args, i, x = {};

	protoDesc = proto.$getOwn('foo');
	protoDesc.multiple = true;

	set = obj.foo;
	item = set.$getOwn('foo');
	protoSet = proto.foo;
	protoItem = protoSet.$getOwn('foo');

	a(getPrototypeOf(item), protoItem, "Item prototype");
	a(isObservable(set._get('foo')), true, "Observable");

	a.h1("forEachOwnItem");
	obj._getOwnMultipleItem_('raz', 'dwa', 'dwa');
	obj._getOwnMultipleItem_('trzy', 'trzy', 'trzy');
	args = primitiveSet('foo.foo', 'raz.dwa', 'trzy.trzy');
	i = 0;
	obj._forEachOwnItem_(function (item, key) {
		var argKey = item._pSKey_ + '.' + item._sKey_;
		if (!args[argKey]) {
			a.never();
			return;
		}
		delete args[argKey];
		++i;
		a(item._sKey_, key, "Item #" + i);
		a(this, x, "Context #" + i);
	}, x);
	a(obj._getOwnMultipleItem_('raz', 'dwa', 'dwa'),
		obj._getMultipleItem_('raz', 'dwa'), "Get");
	a(keys(args).length, 0, "All processed");
};
Beispiel #2
0
		_has: d(function (value) {
			var result, onChange;
			if (isObservable(value)) {
				result = new ReadOnly(this.has(value.value));
				this.on('change', onChange = function () { result._setValue(this.has(value.value)); });
				value.on('change', onChange);
			} else {
				result = new ReadOnly(this.has(value));
				this.on('change', function () { result._setValue(this.has(value)); });
			}
			return result;
		}, { getNormalizer: getNormalizer })
Beispiel #3
0
		cb = function (item, index, list) {
			var result;
			result = this.safeCollectRaw(renderItem.bind(thisArg, item, index, list));
			if (result == null) return null;
			if (isObservableValue(result)) {
				return normalize.call(this.document, result.map(function (result) {
					result = normalize.call(this.document, result);
					if (result == null) return null;
					if (!isChildNode(result)) result = makeElement.call(this.document, childName, result);
					return result;
				}, this));
			}
			result = normalize.call(this.document, result);
			if (!isChildNode(result)) result = makeElement.call(this.document, childName, result);
			return result;
		};
Beispiel #4
0
module.exports = function (value) {
	var current;
	element(this);
	if (!isObservableValue(value)) {
		this.classList.add(value);
		return this;
	}
	if (this.hasOwnProperty(prefix + value.dbId)) return;
	current = value.value;
	if (current != null) this.classList.add(current);
	value.on('change', this[prefix + value.dbId] = function () {
		if (current != null) this.classList.remove(current);
		current = value.value;
		if (current != null) this.classList.add(current);
	}.bind(this));
};
		result = getter.call(this, function (obj, forceMap) {
			var dupe;
			if (!isNonMapObservable(obj, forceMap)) return obj;
			if (!nu) nu = [];
			else if (contains.call(nu, obj)) dupe = true;
			if (!dupe) {
				nu.push(obj);
				if (obj._makeObservable_) obj._makeObservable_();
			}
			if (!isObservableValue(obj)) return obj;
			obj = obj.value;
			if (dupe) return obj;
			if (isNonMapObservable(obj, forceMap)) {
				nu.push(obj);
				if (obj._makeObservable_) obj._makeObservable_();
			}
			return obj;
		}, arg);
Beispiel #6
0
var observeMock = function (value) { return isObservable(value) ? value.value : value; };