@@ -16,6 +16,7 @@ import {
1616 ViewChildMetadata
1717} from 'angular2/src/core/metadata' ;
1818import { reflector } from 'angular2/src/core/reflection/reflection' ;
19+ import { ReflectorReader } from 'angular2/src/core/reflection/reflector_reader' ;
1920
2021function _isDirectiveMetadata ( type : any ) : boolean {
2122 return type instanceof DirectiveMetadata ;
@@ -30,15 +31,25 @@ function _isDirectiveMetadata(type: any): boolean {
3031 */
3132@Injectable ( )
3233export class DirectiveResolver {
34+ private _reflector : ReflectorReader ;
35+
36+ constructor ( _reflector ?: ReflectorReader ) {
37+ if ( isPresent ( _reflector ) ) {
38+ this . _reflector = _reflector ;
39+ } else {
40+ this . _reflector = reflector ;
41+ }
42+ }
43+
3344 /**
3445 * Return {@link DirectiveMetadata} for a given `Type`.
3546 */
3647 resolve ( type : Type ) : DirectiveMetadata {
37- var typeMetadata = reflector . annotations ( resolveForwardRef ( type ) ) ;
48+ var typeMetadata = this . _reflector . annotations ( resolveForwardRef ( type ) ) ;
3849 if ( isPresent ( typeMetadata ) ) {
3950 var metadata = typeMetadata . find ( _isDirectiveMetadata ) ;
4051 if ( isPresent ( metadata ) ) {
41- var propertyMetadata = reflector . propMetadata ( type ) ;
52+ var propertyMetadata = this . _reflector . propMetadata ( type ) ;
4253 return this . _mergeWithPropertyMetadata ( metadata , propertyMetadata , type ) ;
4354 }
4455 }
@@ -155,4 +166,4 @@ export class DirectiveResolver {
155166 }
156167}
157168
158- export var CODEGEN_DIRECTIVE_RESOLVER = new DirectiveResolver ( ) ;
169+ export var CODEGEN_DIRECTIVE_RESOLVER = new DirectiveResolver ( reflector ) ;
0 commit comments