angular/angular — pull request #63 by vsavkin (2014-10-06 19:09:39+00:00)
Title: Implement @InjectLazy and @InjectFuture

PR implements:

1. It implements @InjectLazy that enables delayed instantiation.

```
class Parent {
constructor(@InjectLazy(Child) childFactory:Function) {
this.child = engineFactory(); // it can be executed conditionally
}
}
```

2. It implements @InjectFuture:
```
class UserController {
constructor(@InjectFuture(UserList) userList:Future) {
this.userList = userList;
}
}
```

so you can get an instance of UserController synchronously:
```
inject.get(UserController)
```

3. It adds handling of construction errors (e.g., cyclic dependencies).

4. Refactoring.