`Y.Array.unique()` doesn't _require_ a comparison function to compare non-primitive values. It's optional. If one isn't provided, then values will be compared using a strict === comparison, so:

```js
var obj = {};
Y.Array.unique([obj, obj, obj]) // => [obj]
```

But...

```js
Y.Array.unique([{}, {}, {}]) // => [{}, {}, {}]
```