diff --git a/Foundation/CPArray+KVO.j b/Foundation/CPArray+KVO.j index ad05ef8c6..afe962229 100644 --- a/Foundation/CPArray+KVO.j +++ b/Foundation/CPArray+KVO.j @@ -428,7 +428,9 @@ var avgOperator, maxOperator, minOperator, countOperator, - sumOperator; + sumOperator, + distinctUnionOfObjectsOperator, + unionOfObjectsOperator; kvoOperators["avg"] = function avgOperator(self, _cmd, param) { @@ -495,6 +497,18 @@ kvoOperators["sum"] = function sumOperator(self, _cmd, param) return sum; } +kvoOperators["distinctUnionOfObjects"] = function distinctUnionOfObjectsOperator(self, _cmd, param) +{ + var objects = [self valueForKeyPath:param]; + + return [[CPSet setWithArray:objects] allObjects]; +} + +kvoOperators["unionOfObjects"] = function unionOfObjectsOperator(self, _cmd, param) +{ + return [self valueForKeyPath:param]; +} + @implementation CPArray (KeyValueObserving) - (void)addObserver:(id)anObserver toObjectsAtIndexes:(CPIndexSet)indexes forKeyPath:(CPString)aKeyPath options:(unsigned)options context:(id)context