andrewplummer/Sugar — pull request #306 by kevincox (2013-04-05 18:19:15+00:00)
Title: Made object methods return extended objects if called on extended objects

Noteably select() and reject().

This allows

```js
Object.extended({a:5,b:4,c:2}).select("a", "b").merge({f:16});
```

rather than

```js
Object.extended(Object.extended({a:5,b:4,c:2}).select("a", "b")).merge({f:16});
```

If called statically on a non-extended object it returns a plain object.

```js
Object.select({a:5,b:4,c:2}, ["a", "b"]).merge({f:16}); // Error, merge is undefined.
```