optimize performance.

look at this bench:

```js
var co = require('co');
var foo = function *(){};

co(function * () {
    for (var i = 0; i < 1000 * 1000; i++) {
        yield foo();
    }
})(function (err) {
    if (err) console.log(err);
});
```

The original version's result is:
real    0m7.985s
user    0m7.622s
sys     0m0.373s

And my version's result is:
real    0m1.465s
user    0m1.446s
sys     0m0.017s

It's much faster, and I think the behavior of my version is exactly the same as origin (my node version is node 0.11.11).
What do you think?

:)