Dependency Injection
Rejecting Non-String DI Tokens
Binding this In Injected Functions
Providing Locals to Injected Functions
Array-style Dependency Annotation
Dependency Annotation from Function Arguments
Integrating Annotation with Invocation
Instantiating Objects with Dependency Injection
The Simplest Possible Provider: An Object with A $get Method
Injecting Dependencies to The $get Method
Lazy Instantiation of Dependencies
Singleton Enforcement
Circular Dependencies
Provider Constructors
Two Injectors: The Provider Injector and The Instance Injector
Unshifting Constants in The Invoke Queue