diff --git a/modules/angular2/platform/testing/browser_static.ts b/modules/angular2/platform/testing/browser_static.ts index 9f97e6aa4b..1eb9dcbe9d 100644 --- a/modules/angular2/platform/testing/browser_static.ts +++ b/modules/angular2/platform/testing/browser_static.ts @@ -47,7 +47,7 @@ function createNgZone(): NgZone { * Default platform providers for testing without a compiler. */ export const TEST_BROWSER_STATIC_PLATFORM_PROVIDERS: Array = - /*@ts2dart_const*/ [ + /*@ts2dart_const*/[ PLATFORM_COMMON_PROVIDERS, /*@ts2dart_Provider*/{provide: PLATFORM_INITIALIZER, useValue: initBrowserTests, multi: true} ]; diff --git a/modules/angular2/platform/testing/server.ts b/modules/angular2/platform/testing/server.ts index b9e6f8c221..440f2a7250 100644 --- a/modules/angular2/platform/testing/server.ts +++ b/modules/angular2/platform/testing/server.ts @@ -49,9 +49,9 @@ function initServerTests() { * Default platform providers for testing. */ export const TEST_SERVER_PLATFORM_PROVIDERS: Array = - /*@ts2dart_const*/ [ + /*@ts2dart_const*/[ PLATFORM_COMMON_PROVIDERS, - /*@ts2dart_Provider*/{provide: PLATFORM_INITIALIZER, useValue: initServerTests, multi: true} + /*@ts2dart_Provider*/ {provide: PLATFORM_INITIALIZER, useValue: initServerTests, multi: true} ]; function appDoc() { @@ -66,26 +66,26 @@ function appDoc() { * Default application providers for testing. */ export const TEST_SERVER_APPLICATION_PROVIDERS: Array = - /*@ts2dart_const*/ [ + /*@ts2dart_const*/[ // TODO(julie: when angular2/platform/server is available, use that instead of making our own // list here. APPLICATION_COMMON_PROVIDERS, COMPILER_PROVIDERS, - /*@ts2dart_Provider*/{provide: DOCUMENT, useFactory: appDoc}, - /*@ts2dart_Provider*/{provide: DomRootRenderer, useClass: DomRootRenderer_}, - /*@ts2dart_Provider*/{provide: RootRenderer, useExisting: DomRootRenderer}, + /* @ts2dart_Provider */ {provide: DOCUMENT, useFactory: appDoc}, + /* @ts2dart_Provider */ {provide: DomRootRenderer, useClass: DomRootRenderer_}, + /* @ts2dart_Provider */ {provide: RootRenderer, useExisting: DomRootRenderer}, EventManager, - /*@ts2dart_Provider*/{provide: EVENT_MANAGER_PLUGINS, useClass: DomEventsPlugin, multi: true}, - /*@ts2dart_Provider*/{provide: XHR, useClass: XHR}, - /*@ts2dart_Provider*/{provide: APP_ID, useValue: 'a'}, - /*@ts2dart_Provider*/{provide: SharedStylesHost, useExisting: DomSharedStylesHost}, + /* @ts2dart_Provider */ {provide: EVENT_MANAGER_PLUGINS, useClass: DomEventsPlugin, multi: true}, + /* @ts2dart_Provider */ {provide: XHR, useClass: XHR}, + /* @ts2dart_Provider */ {provide: APP_ID, useValue: 'a'}, + /* @ts2dart_Provider */ {provide: SharedStylesHost, useExisting: DomSharedStylesHost}, DomSharedStylesHost, ELEMENT_PROBE_PROVIDERS, - /*@ts2dart_Provider*/{provide: DirectiveResolver, useClass: MockDirectiveResolver}, - /*@ts2dart_Provider*/{provide: ViewResolver, useClass: MockViewResolver}, + /* @ts2dart_Provider */ {provide: DirectiveResolver, useClass: MockDirectiveResolver}, + /* @ts2dart_Provider */ {provide: ViewResolver, useClass: MockViewResolver}, Log, TestComponentBuilder, - /*@ts2dart_Provider*/{provide: NgZone, useFactory: createNgZone}, - /*@ts2dart_Provider*/{provide: LocationStrategy, useClass: MockLocationStrategy}, - /*@ts2dart_Provider*/{provide: AnimationBuilder, useClass: MockAnimationBuilder}, + /* @ts2dart_Provider */ {provide: NgZone, useFactory: createNgZone}, + /* @ts2dart_Provider */ {provide: LocationStrategy, useClass: MockLocationStrategy}, + /* @ts2dart_Provider */ {provide: AnimationBuilder, useClass: MockAnimationBuilder}, ]; diff --git a/modules/angular2/platform/worker_render.ts b/modules/angular2/platform/worker_render.ts index fbd596d4fe..a72d95139b 100644 --- a/modules/angular2/platform/worker_render.ts +++ b/modules/angular2/platform/worker_render.ts @@ -57,7 +57,7 @@ export function bootstrapRender( var app = ReflectiveInjector.resolveAndCreate( [ WORKER_RENDER_APPLICATION, - new Provider(WORKER_SCRIPT, {useValue: workerScriptUri}), + /* @ts2dart_Provider */ {provide: WORKER_SCRIPT, useValue: workerScriptUri}, isPresent(customProviders) ? customProviders : [] ], workerRenderPlatform().injector); diff --git a/modules/angular2/router/router_link_dsl.ts b/modules/angular2/router/router_link_dsl.ts index f0ea49d6e3..0955b15d6f 100644 --- a/modules/angular2/router/router_link_dsl.ts +++ b/modules/angular2/router/router_link_dsl.ts @@ -1,5 +1,4 @@ import {TEMPLATE_TRANSFORMS} from 'angular2/compiler'; -import {Provider} from 'angular2/core'; import {RouterLinkTransform} from 'angular2/src/router/directives/router_link_transform'; export {RouterLinkTransform} from 'angular2/src/router/directives/router_link_transform'; @@ -31,5 +30,8 @@ export {RouterLinkTransform} from 'angular2/src/router/directives/router_link_tr * ``` */ export const ROUTER_LINK_DSL_PROVIDER = - /*@ts2dart_const*/ - new Provider(TEMPLATE_TRANSFORMS, {useClass: RouterLinkTransform, multi: true}); + /*@ts2dart_const*/ /* @ts2dart_Provider */ { + provide: TEMPLATE_TRANSFORMS, + useClass: RouterLinkTransform, + multi: true + }; diff --git a/modules/angular2/src/common/forms/directives/checkbox_value_accessor.ts b/modules/angular2/src/common/forms/directives/checkbox_value_accessor.ts index 7c4d8970de..22c167e482 100644 --- a/modules/angular2/src/common/forms/directives/checkbox_value_accessor.ts +++ b/modules/angular2/src/common/forms/directives/checkbox_value_accessor.ts @@ -2,8 +2,11 @@ import {Directive, Renderer, ElementRef, Self, forwardRef, Provider} from 'angul import {NG_VALUE_ACCESSOR, ControlValueAccessor} from './control_value_accessor'; -export const CHECKBOX_VALUE_ACCESSOR = /*@ts2dart_const*/ new Provider( - NG_VALUE_ACCESSOR, {useExisting: forwardRef(() => CheckboxControlValueAccessor), multi: true}); +export const CHECKBOX_VALUE_ACCESSOR: any = /*@ts2dart_const*/ { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => CheckboxControlValueAccessor), + multi: true +}; /** * The accessor for writing a value and listening to changes on a checkbox input element. diff --git a/modules/angular2/src/common/forms/directives/default_value_accessor.ts b/modules/angular2/src/common/forms/directives/default_value_accessor.ts index 48b8bd3ee8..83514299a3 100644 --- a/modules/angular2/src/common/forms/directives/default_value_accessor.ts +++ b/modules/angular2/src/common/forms/directives/default_value_accessor.ts @@ -2,8 +2,12 @@ import {Directive, ElementRef, Renderer, Self, forwardRef, Provider} from 'angul import {NG_VALUE_ACCESSOR, ControlValueAccessor} from './control_value_accessor'; import {isBlank} from 'angular2/src/facade/lang'; -export const DEFAULT_VALUE_ACCESSOR = /*@ts2dart_const*/ new Provider( - NG_VALUE_ACCESSOR, {useExisting: forwardRef(() => DefaultValueAccessor), multi: true}); +export const DEFAULT_VALUE_ACCESSOR: any = /*@ts2dart_const*/ + /* @ts2dart_Provider */ { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => DefaultValueAccessor), + multi: true + }; /** * The default accessor for writing a value and listening to changes that is used by the diff --git a/modules/angular2/src/common/forms/directives/ng_control_group.ts b/modules/angular2/src/common/forms/directives/ng_control_group.ts index efde8d793f..2a1ca6d216 100644 --- a/modules/angular2/src/common/forms/directives/ng_control_group.ts +++ b/modules/angular2/src/common/forms/directives/ng_control_group.ts @@ -18,9 +18,11 @@ import {Form} from './form_interface'; import {NG_VALIDATORS, NG_ASYNC_VALIDATORS} from '../validators'; import {AsyncValidatorFn, ValidatorFn} from './validators'; -export const controlGroupProvider = - /*@ts2dart_const*/ - new Provider(ControlContainer, {useExisting: forwardRef(() => NgControlGroup)}); +export const controlGroupProvider: any = + /*@ts2dart_const*/ /* @ts2dart_Provider */ { + provide: ControlContainer, + useExisting: forwardRef(() => NgControlGroup) + }; /** * Creates and binds a control group to a DOM element. diff --git a/modules/angular2/src/common/forms/directives/ng_control_name.ts b/modules/angular2/src/common/forms/directives/ng_control_name.ts index 62b5a2f6e4..5217375cd8 100644 --- a/modules/angular2/src/common/forms/directives/ng_control_name.ts +++ b/modules/angular2/src/common/forms/directives/ng_control_name.ts @@ -30,8 +30,11 @@ import {NG_VALIDATORS, NG_ASYNC_VALIDATORS} from '../validators'; import {ValidatorFn, AsyncValidatorFn} from './validators'; -export const controlNameBinding = - /*@ts2dart_const*/ new Provider(NgControl, {useExisting: forwardRef(() => NgControlName)}); +export const controlNameBinding: any = + /*@ts2dart_const*/ /* @ts2dart_Provider */ { + provide: NgControl, + useExisting: forwardRef(() => NgControlName) + }; /** * Creates and binds a control with a specified name to a DOM element. diff --git a/modules/angular2/src/common/forms/directives/ng_form.ts b/modules/angular2/src/common/forms/directives/ng_form.ts index 5e3344257f..9efbff5f3b 100644 --- a/modules/angular2/src/common/forms/directives/ng_form.ts +++ b/modules/angular2/src/common/forms/directives/ng_form.ts @@ -15,8 +15,11 @@ import {AbstractControl, ControlGroup, Control} from '../model'; import {setUpControl, setUpControlGroup, composeValidators, composeAsyncValidators} from './shared'; import {Validators, NG_VALIDATORS, NG_ASYNC_VALIDATORS} from '../validators'; -const formDirectiveProvider = - /*@ts2dart_const*/ new Provider(ControlContainer, {useExisting: forwardRef(() => NgForm)}); +export const formDirectiveProvider: any = + /*@ts2dart_const*/ /* @ts2dart_Provider */ { + provide: ControlContainer, + useExisting: forwardRef(() => NgForm) + }; /** * If `NgForm` is bound in a component, `
` elements in that component will be diff --git a/modules/angular2/src/common/forms/directives/ng_form_control.ts b/modules/angular2/src/common/forms/directives/ng_form_control.ts index 020f851545..d54119f456 100644 --- a/modules/angular2/src/common/forms/directives/ng_form_control.ts +++ b/modules/angular2/src/common/forms/directives/ng_form_control.ts @@ -24,8 +24,11 @@ import { } from './shared'; import {ValidatorFn, AsyncValidatorFn} from './validators'; -const formControlBinding = - /*@ts2dart_const*/ new Provider(NgControl, {useExisting: forwardRef(() => NgFormControl)}); +export const formControlBinding: any = + /*@ts2dart_const*/ /* @ts2dart_Provider */ { + provide: NgControl, + useExisting: forwardRef(() => NgFormControl) + }; /** * Binds an existing {@link Control} to a DOM element. diff --git a/modules/angular2/src/common/forms/directives/ng_form_model.ts b/modules/angular2/src/common/forms/directives/ng_form_model.ts index 1a412467aa..82c5bab8c5 100644 --- a/modules/angular2/src/common/forms/directives/ng_form_model.ts +++ b/modules/angular2/src/common/forms/directives/ng_form_model.ts @@ -20,9 +20,11 @@ import {Control, ControlGroup} from '../model'; import {setUpControl, setUpControlGroup, composeValidators, composeAsyncValidators} from './shared'; import {Validators, NG_VALIDATORS, NG_ASYNC_VALIDATORS} from '../validators'; -export const formDirectiveProvider = - /*@ts2dart_const*/ - new Provider(ControlContainer, {useExisting: forwardRef(() => NgFormModel)}); +export const formDirectiveProvider: any = + /*@ts2dart_const*/ /* @ts2dart_Provider */ { + provide: ControlContainer, + useExisting: forwardRef(() => NgFormModel) + }; /** * Binds an existing control group to a DOM element. diff --git a/modules/angular2/src/common/forms/directives/ng_model.ts b/modules/angular2/src/common/forms/directives/ng_model.ts index e4b695306e..9ac04d3f67 100644 --- a/modules/angular2/src/common/forms/directives/ng_model.ts +++ b/modules/angular2/src/common/forms/directives/ng_model.ts @@ -22,8 +22,11 @@ import { } from './shared'; import {ValidatorFn, AsyncValidatorFn} from './validators'; -export const formControlBinding = - /*@ts2dart_const*/ new Provider(NgControl, {useExisting: forwardRef(() => NgModel)}); +export const formControlBinding: any = + /*@ts2dart_const*/ /* @ts2dart_Provider */ { + provide: NgControl, + useExisting: forwardRef(() => NgModel) + }; /** * Binds a domain model to a form control. diff --git a/modules/angular2/src/common/forms/directives/radio_control_value_accessor.ts b/modules/angular2/src/common/forms/directives/radio_control_value_accessor.ts index b94e355b06..6f549259b3 100644 --- a/modules/angular2/src/common/forms/directives/radio_control_value_accessor.ts +++ b/modules/angular2/src/common/forms/directives/radio_control_value_accessor.ts @@ -21,7 +21,7 @@ import {looseIdentical, isPresent} from 'angular2/src/facade/lang'; import {ListWrapper} from 'angular2/src/facade/collection'; export const RADIO_VALUE_ACCESSOR: any = /*@ts2dart_const*/ /*@ts2dart_Provider*/ { - povide: NG_VALUE_ACCESSOR, + provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RadioControlValueAccessor), multi: true }; diff --git a/modules/angular2/src/common/forms/directives/validators.ts b/modules/angular2/src/common/forms/directives/validators.ts index ecb30498ef..1c6ba4d9a9 100644 --- a/modules/angular2/src/common/forms/directives/validators.ts +++ b/modules/angular2/src/common/forms/directives/validators.ts @@ -62,12 +62,11 @@ export interface AsyncValidatorFn { * * {@example common/forms/ts/validators/validators.ts region='min'} */ -export const MIN_LENGTH_VALIDATOR: any = /*@ts2dart_const*/ - /*@ts2dart_Provider*/ { - provide: NG_VALIDATORS, - useExisting: forwardRef(() => MinLengthValidator), - multi: true - }; +export const MIN_LENGTH_VALIDATOR: any = /*@ts2dart_const*/ /*@ts2dart_Provider*/ { + provide: NG_VALIDATORS, + useExisting: forwardRef(() => MinLengthValidator), + multi: true +}; /** * A directive which installs the {@link MinLengthValidator} for any `ngControl`, @@ -94,12 +93,11 @@ export class MinLengthValidator implements Validator { * * {@example common/forms/ts/validators/validators.ts region='max'} */ -export const MAX_LENGTH_VALIDATOR: any = /*@ts2dart_const*/ - /*@ts2dart_Provider*/ { - provide: NG_VALIDATORS, - useExisting: forwardRef(() => MaxLengthValidator), - multi: true - }; +export const MAX_LENGTH_VALIDATOR: any = /*@ts2dart_const*/ /*@ts2dart_Provider*/ { + provide: NG_VALIDATORS, + useExisting: forwardRef(() => MaxLengthValidator), + multi: true +}; /** * A directive which installs the {@link MaxLengthValidator} for any `ngControl, `ngFormControl`, @@ -132,12 +130,11 @@ export class MaxLengthValidator implements Validator { * * ``` */ -export const PATTERN_VALIDATOR: any = /*@ts2dart_const*/ - /*@ts2dart_Provider*/ { - provide: NG_VALIDATORS, - useExisting: forwardRef(() => PatternValidator), - multi: true - }; +export const PATTERN_VALIDATOR: any = /*@ts2dart_const*/ /*@ts2dart_Provider*/ { + provide: NG_VALIDATORS, + useExisting: forwardRef(() => PatternValidator), + multi: true +}; @Directive({ selector: '[pattern][ngControl],[pattern][ngFormControl],[pattern][ngModel]', providers: [PATTERN_VALIDATOR] diff --git a/modules/angular2/src/common/pipes/date_pipe.ts b/modules/angular2/src/common/pipes/date_pipe.ts index 29de777981..3439d51814 100644 --- a/modules/angular2/src/common/pipes/date_pipe.ts +++ b/modules/angular2/src/common/pipes/date_pipe.ts @@ -83,7 +83,6 @@ var defaultLocale: string = 'en-US'; * * {@example core/pipes/ts/date_pipe/date_pipe_example.ts region='DatePipe'} */ -/* @ts2dart_const */ @Pipe({name: 'date', pure: true}) @Injectable() export class DatePipe implements PipeTransform { diff --git a/modules/angular2/src/common/pipes/i18n_plural_pipe.ts b/modules/angular2/src/common/pipes/i18n_plural_pipe.ts index 11c6a4ccfe..4debe7f2cb 100644 --- a/modules/angular2/src/common/pipes/i18n_plural_pipe.ts +++ b/modules/angular2/src/common/pipes/i18n_plural_pipe.ts @@ -35,7 +35,6 @@ var interpolationExp: RegExp = RegExpWrapper.create('#'); * ``` * */ -/* @ts2dart_const */ @Pipe({name: 'i18nPlural', pure: true}) @Injectable() export class I18nPluralPipe implements PipeTransform { diff --git a/modules/angular2/src/common/pipes/i18n_select_pipe.ts b/modules/angular2/src/common/pipes/i18n_select_pipe.ts index 18aae6d79a..7afce9b797 100644 --- a/modules/angular2/src/common/pipes/i18n_select_pipe.ts +++ b/modules/angular2/src/common/pipes/i18n_select_pipe.ts @@ -32,7 +32,6 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception'; * } * ``` */ -/* @ts2dart_const */ @Pipe({name: 'i18nSelect', pure: true}) @Injectable() export class I18nSelectPipe implements PipeTransform { diff --git a/modules/angular2/src/common/pipes/lowercase_pipe.ts b/modules/angular2/src/common/pipes/lowercase_pipe.ts index d00eee11c8..f3a1faffd7 100644 --- a/modules/angular2/src/common/pipes/lowercase_pipe.ts +++ b/modules/angular2/src/common/pipes/lowercase_pipe.ts @@ -9,7 +9,6 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception'; * * {@example core/pipes/ts/lowerupper_pipe/lowerupper_pipe_example.ts region='LowerUpperPipe'} */ -/* @ts2dart_const */ @Pipe({name: 'lowercase'}) @Injectable() export class LowerCasePipe implements PipeTransform { diff --git a/modules/angular2/src/common/pipes/number_pipe.ts b/modules/angular2/src/common/pipes/number_pipe.ts index 5bc326f661..424562b596 100644 --- a/modules/angular2/src/common/pipes/number_pipe.ts +++ b/modules/angular2/src/common/pipes/number_pipe.ts @@ -19,7 +19,6 @@ var _re = RegExpWrapper.create('^(\\d+)?\\.((\\d+)(\\-(\\d+))?)?$'); /** * Internal base class for numeric pipes. */ -/* @ts2dart_const */ @Injectable() export class NumberPipe { /** @internal */ @@ -81,7 +80,6 @@ export class NumberPipe { * * {@example core/pipes/ts/number_pipe/number_pipe_example.ts region='NumberPipe'} */ -/* @ts2dart_const */ @Pipe({name: 'number'}) @Injectable() export class DecimalPipe extends NumberPipe implements PipeTransform { @@ -106,7 +104,6 @@ export class DecimalPipe extends NumberPipe implements PipeTransform { * * {@example core/pipes/ts/number_pipe/number_pipe_example.ts region='PercentPipe'} */ -/* @ts2dart_const */ @Pipe({name: 'percent'}) @Injectable() export class PercentPipe extends NumberPipe implements PipeTransform { @@ -135,7 +132,6 @@ export class PercentPipe extends NumberPipe implements PipeTransform { * * {@example core/pipes/ts/number_pipe/number_pipe_example.ts region='CurrencyPipe'} */ -/* @ts2dart_const */ @Pipe({name: 'currency'}) @Injectable() export class CurrencyPipe extends NumberPipe implements PipeTransform { diff --git a/modules/angular2/src/common/pipes/uppercase_pipe.ts b/modules/angular2/src/common/pipes/uppercase_pipe.ts index de5d56fe8e..80cf4a322e 100644 --- a/modules/angular2/src/common/pipes/uppercase_pipe.ts +++ b/modules/angular2/src/common/pipes/uppercase_pipe.ts @@ -9,7 +9,6 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception'; * * {@example core/pipes/ts/lowerupper_pipe/lowerupper_pipe_example.ts region='LowerUpperPipe'} */ -/* @ts2dart_const */ @Pipe({name: 'uppercase'}) @Injectable() export class UpperCasePipe implements PipeTransform { diff --git a/modules/angular2/src/compiler/compiler.ts b/modules/angular2/src/compiler/compiler.ts index 28538bc5b6..bf489909f2 100644 --- a/modules/angular2/src/compiler/compiler.ts +++ b/modules/angular2/src/compiler/compiler.ts @@ -13,7 +13,6 @@ export {DirectiveResolver} from './directive_resolver'; export {PipeResolver} from './pipe_resolver'; import {assertionsEnabled, Type} from 'angular2/src/facade/lang'; -import {provide, Provider} from 'angular2/src/core/di'; import {TemplateParser} from 'angular2/src/compiler/template_parser'; import {HtmlParser} from 'angular2/src/compiler/html_parser'; import {DirectiveNormalizer} from 'angular2/src/compiler/directive_normalizer'; @@ -40,7 +39,7 @@ function _createCompilerConfig() { * A set of providers that provide `RuntimeCompiler` and its dependencies to use for * template compilation. */ -export const COMPILER_PROVIDERS: Array = /*@ts2dart_const*/ [ +export const COMPILER_PROVIDERS: Array = /*@ts2dart_const*/ [ Lexer, Parser, HtmlParser, diff --git a/modules/angular2/src/compiler/metadata_resolver.ts b/modules/angular2/src/compiler/metadata_resolver.ts index e71184f9c5..2ba43c7bea 100644 --- a/modules/angular2/src/compiler/metadata_resolver.ts +++ b/modules/angular2/src/compiler/metadata_resolver.ts @@ -37,6 +37,7 @@ import { } from 'angular2/src/core/di/metadata'; import {AttributeMetadata, QueryMetadata} from 'angular2/src/core/metadata/di'; import {ReflectorReader} from 'angular2/src/core/reflection/reflector_reader'; +import {isProviderLiteral, createProvider} from '../core/di/provider_util'; @Injectable() export class CompileMetadataResolver { @@ -292,6 +293,8 @@ export class CompileMetadataResolver { return this.getProvidersMetadata(provider); } else if (provider instanceof Provider) { return this.getProviderMetadata(provider); + } else if (isProviderLiteral(provider)) { + return this.getProviderMetadata(createProvider(provider)); } else { return this.getTypeMetadata(provider, staticTypeModuleUrl(provider)); } diff --git a/modules/angular2/src/compiler/selector.ts b/modules/angular2/src/compiler/selector.ts index deed232f37..8cae83c2f4 100644 --- a/modules/angular2/src/compiler/selector.ts +++ b/modules/angular2/src/compiler/selector.ts @@ -8,7 +8,7 @@ import { } from 'angular2/src/facade/lang'; import {BaseException, WrappedException} from 'angular2/src/facade/exceptions'; -const _EMPTY_ATTR_VALUE = ''; +const _EMPTY_ATTR_VALUE = /*@ts2dart_const*/ ''; // TODO: Can't use `const` here as // in Dart this is not transpiled into `final` yet... diff --git a/modules/angular2/src/compiler/template_parser.ts b/modules/angular2/src/compiler/template_parser.ts index 757ebd66ac..3e5655ca8f 100644 --- a/modules/angular2/src/compiler/template_parser.ts +++ b/modules/angular2/src/compiler/template_parser.ts @@ -4,13 +4,7 @@ import { SetWrapper, MapWrapper } from 'angular2/src/facade/collection'; -import { - RegExpWrapper, - isPresent, - StringWrapper, - isBlank, - isArray -} from 'angular2/src/facade/lang'; +import {RegExpWrapper, isPresent, StringWrapper, isBlank, isArray} from 'angular2/src/facade/lang'; import {Injectable, Inject, OpaqueToken, Optional} from 'angular2/core'; import {Console} from 'angular2/src/core/console'; import {BaseException} from 'angular2/src/facade/exceptions'; @@ -113,7 +107,7 @@ var TEXT_CSS_SELECTOR = CssSelector.parse('*')[0]; * * This is currently an internal-only feature and not meant for general use. */ -export const TEMPLATE_TRANSFORMS = /*@ts2dart_const*/ new OpaqueToken('TemplateTransforms'); +export const TEMPLATE_TRANSFORMS: any = /*@ts2dart_const*/ new OpaqueToken('TemplateTransforms'); export class TemplateParseError extends ParseError { constructor(message: string, span: ParseSourceSpan, level: ParseErrorLevel) { diff --git a/modules/angular2/src/compiler/url_resolver.ts b/modules/angular2/src/compiler/url_resolver.ts index c3f1c2fdc5..094a17c7bf 100644 --- a/modules/angular2/src/compiler/url_resolver.ts +++ b/modules/angular2/src/compiler/url_resolver.ts @@ -26,7 +26,10 @@ export function createOfflineCompileUrlResolver(): UrlResolver { /** * A default provider for {@link PACKAGE_ROOT_URL} that maps to '/'. */ -export var DEFAULT_PACKAGE_URL_PROVIDER = new Provider(PACKAGE_ROOT_URL, {useValue: "/"}); +export var DEFAULT_PACKAGE_URL_PROVIDER = { + provide: PACKAGE_ROOT_URL, + useValue: "/" +}; /** * Used by the {@link Compiler} when resolving HTML and CSS template URLs. diff --git a/modules/angular2/src/core/application_common_providers.ts b/modules/angular2/src/core/application_common_providers.ts index 3d62057c45..b06e516300 100644 --- a/modules/angular2/src/core/application_common_providers.ts +++ b/modules/angular2/src/core/application_common_providers.ts @@ -1,5 +1,4 @@ import {Type} from 'angular2/src/facade/lang'; -import {provide, Provider, Injector, OpaqueToken} from 'angular2/src/core/di'; import {APP_ID_RANDOM_PROVIDER} from './application_tokens'; import {APPLICATION_CORE_PROVIDERS} from './application_ref'; import { @@ -18,13 +17,13 @@ let __unused: Type; // avoid unused import when Type union types are erased * A default set of providers which should be included in any Angular * application, regardless of the platform it runs onto. */ -export const APPLICATION_COMMON_PROVIDERS: Array = +export const APPLICATION_COMMON_PROVIDERS: Array = /*@ts2dart_const*/[ APPLICATION_CORE_PROVIDERS, - /*@ts2dart_const*/ {provide: ComponentResolver, useClass: ReflectorComponentResolver}, + /* @ts2dart_Provider */ {provide: ComponentResolver, useClass: ReflectorComponentResolver}, APP_ID_RANDOM_PROVIDER, ViewUtils, - /*@ts2dart_const*/ {provide: IterableDiffers, useValue: defaultIterableDiffers}, - /*@ts2dart_const*/ {provide: KeyValueDiffers, useValue: defaultKeyValueDiffers}, - /*@ts2dart_const*/ {provide: DynamicComponentLoader, useClass: DynamicComponentLoader_}, + /* @ts2dart_Provider */ {provide: IterableDiffers, useValue: defaultIterableDiffers}, + /* @ts2dart_Provider */ {provide: KeyValueDiffers, useValue: defaultKeyValueDiffers}, + /* @ts2dart_Provider */ {provide: DynamicComponentLoader, useClass: DynamicComponentLoader_} ]; diff --git a/modules/angular2/src/core/application_ref.ts b/modules/angular2/src/core/application_ref.ts index a30dd8b594..b5adcb5f28 100644 --- a/modules/angular2/src/core/application_ref.ts +++ b/modules/angular2/src/core/application_ref.ts @@ -435,13 +435,19 @@ export class ApplicationRef_ extends ApplicationRef { * @internal */ export const PLATFORM_CORE_PROVIDERS = - /*@ts2dart_const*/[PlatformRef_, new Provider(PlatformRef, {useExisting: PlatformRef_})]; + /*@ts2dart_const*/[ + PlatformRef_, + /*@ts2dart_const*/ (/* @ts2dart_Provider */ { + provide: PlatformRef, + useExisting: PlatformRef_ + }) + ]; /** * @internal */ export const APPLICATION_CORE_PROVIDERS = /*@ts2dart_const*/[ - new Provider(NgZone, {useFactory: createNgZone, deps: []}), + /* @ts2dart_Provider */ {provide: NgZone, useFactory: createNgZone, deps: []}, ApplicationRef_, - new Provider(ApplicationRef, {useExisting: ApplicationRef_}) + /* @ts2dart_Provider */ {provide: ApplicationRef, useExisting: ApplicationRef_} ]; diff --git a/modules/angular2/src/core/application_tokens.ts b/modules/angular2/src/core/application_tokens.ts index eb08c9e8eb..852dce53e9 100644 --- a/modules/angular2/src/core/application_tokens.ts +++ b/modules/angular2/src/core/application_tokens.ts @@ -10,7 +10,7 @@ import {Math, StringWrapper} from 'angular2/src/facade/lang'; * a custom value via a DI provider configuring the root {@link Injector} * using this token. */ -export const APP_ID: OpaqueToken = /*@ts2dart_const*/ new OpaqueToken('AppId'); +export const APP_ID: any = /*@ts2dart_const*/ new OpaqueToken('AppId'); function _appIdRandomProviderFactory() { return `${_randomChar()}${_randomChar()}${_randomChar()}`; @@ -19,8 +19,12 @@ function _appIdRandomProviderFactory() { /** * Providers that will generate a random APP_ID_TOKEN. */ -export const APP_ID_RANDOM_PROVIDER: Provider = - /*@ts2dart_const*/ new Provider(APP_ID, {useFactory: _appIdRandomProviderFactory, deps: []}); +export const APP_ID_RANDOM_PROVIDER = + /*@ts2dart_const*/ /* @ts2dart_Provider */ { + provide: APP_ID, + useFactory: _appIdRandomProviderFactory, + deps: [] + }; function _randomChar(): string { return StringWrapper.fromCharCode(97 + Math.floor(Math.random() * 25)); @@ -29,17 +33,17 @@ function _randomChar(): string { /** * A function that will be executed when a platform is initialized. */ -export const PLATFORM_INITIALIZER: OpaqueToken = +export const PLATFORM_INITIALIZER: any = /*@ts2dart_const*/ new OpaqueToken("Platform Initializer"); /** * A function that will be executed when an application is initialized. */ -export const APP_INITIALIZER: OpaqueToken = +export const APP_INITIALIZER: any = /*@ts2dart_const*/ new OpaqueToken("Application Initializer"); /** * A token which indicates the root directory of the application */ -export const PACKAGE_ROOT_URL: OpaqueToken = +export const PACKAGE_ROOT_URL: any = /*@ts2dart_const*/ new OpaqueToken("Application Packages Root URL"); diff --git a/modules/angular2/src/core/change_detection/change_detection_util.ts b/modules/angular2/src/core/change_detection/change_detection_util.ts index af18261b11..0f97c30c85 100644 --- a/modules/angular2/src/core/change_detection/change_detection_util.ts +++ b/modules/angular2/src/core/change_detection/change_detection_util.ts @@ -6,7 +6,7 @@ import { } from 'angular2/src/facade/collection'; export {looseIdentical} from 'angular2/src/facade/lang'; -export var uninitialized: Object = /*@ts2dart_const*/(new Object()); +export var uninitialized: Object = /*@ts2dart_const*/ new Object(); export function devModeEqual(a: any, b: any): boolean { if (isListLikeIterable(a) && isListLikeIterable(b)) { diff --git a/modules/angular2/src/core/change_detection/differs/default_iterable_differ.ts b/modules/angular2/src/core/change_detection/differs/default_iterable_differ.ts index a37dfd11ae..07f3b12f7d 100644 --- a/modules/angular2/src/core/change_detection/differs/default_iterable_differ.ts +++ b/modules/angular2/src/core/change_detection/differs/default_iterable_differ.ts @@ -15,6 +15,7 @@ import {IterableDiffer, IterableDifferFactory, TrackByFn} from '../differs/itera /* @ts2dart_const */ export class DefaultIterableDifferFactory implements IterableDifferFactory { + constructor() {} supports(obj: Object): boolean { return isListLikeIterable(obj); } create(cdRef: ChangeDetectorRef, trackByFn?: TrackByFn): DefaultIterableDiffer { return new DefaultIterableDiffer(trackByFn); diff --git a/modules/angular2/src/core/change_detection/differs/default_keyvalue_differ.ts b/modules/angular2/src/core/change_detection/differs/default_keyvalue_differ.ts index 8e71077ef3..255c4ed987 100644 --- a/modules/angular2/src/core/change_detection/differs/default_keyvalue_differ.ts +++ b/modules/angular2/src/core/change_detection/differs/default_keyvalue_differ.ts @@ -4,8 +4,8 @@ import {BaseException} from 'angular2/src/facade/exceptions'; import {ChangeDetectorRef} from '../change_detector_ref'; import {KeyValueDiffer, KeyValueDifferFactory} from '../differs/keyvalue_differs'; -/*@ts2dart_const*/ export class DefaultKeyValueDifferFactory implements KeyValueDifferFactory { + /* @ts2dart_const */ constructor() {} supports(obj: any): boolean { return obj instanceof Map || isJsObject(obj); } diff --git a/modules/angular2/src/core/change_detection/differs/iterable_differs.ts b/modules/angular2/src/core/change_detection/differs/iterable_differs.ts index d6d73df68e..132642e552 100644 --- a/modules/angular2/src/core/change_detection/differs/iterable_differs.ts +++ b/modules/angular2/src/core/change_detection/differs/iterable_differs.ts @@ -32,8 +32,8 @@ export interface IterableDifferFactory { * A repository of different iterable diffing strategies used by NgFor, NgClass, and others. * @ts2dart_const */ -/* @ts2dart_const */ export class IterableDiffers { + /*@ts2dart_const*/ constructor(public factories: IterableDifferFactory[]) {} static create(factories: IterableDifferFactory[], parent?: IterableDiffers): IterableDiffers { diff --git a/modules/angular2/src/core/change_detection/differs/keyvalue_differs.ts b/modules/angular2/src/core/change_detection/differs/keyvalue_differs.ts index 627a777d99..b12cefe999 100644 --- a/modules/angular2/src/core/change_detection/differs/keyvalue_differs.ts +++ b/modules/angular2/src/core/change_detection/differs/keyvalue_differs.ts @@ -24,8 +24,8 @@ export interface KeyValueDifferFactory { * A repository of different Map diffing strategies used by NgClass, NgStyle, and others. * @ts2dart_const */ -/* @ts2dart_const */ export class KeyValueDiffers { + /*@ts2dart_const*/ constructor(public factories: KeyValueDifferFactory[]) {} static create(factories: KeyValueDifferFactory[], parent?: KeyValueDiffers): KeyValueDiffers { diff --git a/modules/angular2/src/core/di/injector.ts b/modules/angular2/src/core/di/injector.ts index e2cbe973da..3f06dd4557 100644 --- a/modules/angular2/src/core/di/injector.ts +++ b/modules/angular2/src/core/di/injector.ts @@ -1,7 +1,7 @@ import {unimplemented} from 'angular2/src/facade/exceptions'; const _THROW_IF_NOT_FOUND = /*@ts2dart_const*/ new Object(); -export const THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND; +export const THROW_IF_NOT_FOUND = /*@ts2dart_const*/ _THROW_IF_NOT_FOUND; export abstract class Injector { static THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND; diff --git a/modules/angular2/src/core/di/metadata.ts b/modules/angular2/src/core/di/metadata.ts index b7eb809a0f..2b57c6212b 100644 --- a/modules/angular2/src/core/di/metadata.ts +++ b/modules/angular2/src/core/di/metadata.ts @@ -39,8 +39,8 @@ import {stringify, isBlank, isPresent} from "angular2/src/facade/lang"; * var injector = Injector.resolveAndCreate([Engine, Car]); * expect(injector.get(Car).engine instanceof Engine).toBe(true); * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class InjectMetadata { constructor(public token) {} toString(): string { return `@Inject(${stringify(this.token)})`; } @@ -66,8 +66,8 @@ export class InjectMetadata { * var injector = Injector.resolveAndCreate([Car]); * expect(injector.get(Car).engine).toBeNull(); * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class OptionalMetadata { toString(): string { return `@Optional()`; } } @@ -75,8 +75,8 @@ export class OptionalMetadata { /** * `DependencyMetadata` is used by the framework to extend DI. * This is internal to Angular and should not be used directly. + * @ts2dart_const */ -/* @ts2dart_const */ export class DependencyMetadata { get token() { return null; } } @@ -111,8 +111,8 @@ export class DependencyMetadata { * var injector = Injector.resolveAndCreate([NeedsService, UsefulService]); * expect(() => injector.get(NeedsService)).toThrowError(); * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class InjectableMetadata { constructor() {} } @@ -143,8 +143,8 @@ export class InjectableMetadata { * var child = inj.resolveAndCreateChild([NeedsDependency]); * expect(() => child.get(NeedsDependency)).toThrowError(); * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class SelfMetadata { toString(): string { return `@Self()`; } } @@ -173,8 +173,8 @@ export class SelfMetadata { * var inj = Injector.resolveAndCreate([Dependency, NeedsDependency]); * expect(() => inj.get(NeedsDependency)).toThrowError(); * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class SkipSelfMetadata { toString(): string { return `@SkipSelf()`; } } @@ -232,8 +232,8 @@ export class SkipSelfMetadata { * * bootstrap(App); *``` + * @ts2dart_const */ -/* @ts2dart_const */ export class HostMetadata { toString(): string { return `@Host()`; } } diff --git a/modules/angular2/src/core/di/opaque_token.ts b/modules/angular2/src/core/di/opaque_token.ts index 170f6bbb32..e0165793a8 100644 --- a/modules/angular2/src/core/di/opaque_token.ts +++ b/modules/angular2/src/core/di/opaque_token.ts @@ -19,8 +19,8 @@ * * Using an `OpaqueToken` is preferable to using an `Object` as tokens because it provides better * error messages. + * @ts2dart_const */ -/* @ts2dart_const */ export class OpaqueToken { constructor(private _desc: string) {} diff --git a/modules/angular2/src/core/di/provider.ts b/modules/angular2/src/core/di/provider.ts index 876dd1d3bc..ee057e92e1 100644 --- a/modules/angular2/src/core/di/provider.ts +++ b/modules/angular2/src/core/di/provider.ts @@ -22,8 +22,8 @@ import {BaseException} from 'angular2/src/facade/exceptions'; * * expect(injector.get("message")).toEqual('Hello'); * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class Provider { /** * Token used when retrieving this provider. Usually, it is a type {@link Type}. @@ -45,11 +45,11 @@ export class Provider { * * var injectorClass = Injector.resolveAndCreate([ * Car, - * new Provider(Vehicle, { useClass: Car }) + * {provide: Vehicle, useClass: Car } * ]); * var injectorAlias = Injector.resolveAndCreate([ * Car, - * new Provider(Vehicle, { useExisting: Car }) + * {provide: Vehicle, useExisting: Car } * ]); * * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car)); @@ -94,11 +94,11 @@ export class Provider { * * var injectorAlias = Injector.resolveAndCreate([ * Car, - * new Provider(Vehicle, { useExisting: Car }) + * {provide: Vehicle, useExisting: Car } * ]); * var injectorClass = Injector.resolveAndCreate([ * Car, - * new Provider(Vehicle, { useClass: Car }) + * {provide: Vehicle, useClass: Car } * ]); * * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car)); @@ -117,7 +117,7 @@ export class Provider { * * ```typescript * var injector = Injector.resolveAndCreate([ - * new Provider(Number, { useFactory: () => { return 1+2; }}), + * {provide: Number, useFactory: () => { return 1+2; }}, * new Provider(String, { useFactory: (value) => { return "Value: " + value; }, * deps: [Number] }) * ]); @@ -138,7 +138,7 @@ export class Provider { * * ```typescript * var injector = Injector.resolveAndCreate([ - * new Provider(Number, { useFactory: () => { return 1+2; }}), + * {provide: Number, useFactory: () => { return 1+2; }}, * new Provider(String, { useFactory: (value) => { return "Value: " + value; }, * deps: [Number] }) * ]); @@ -208,8 +208,8 @@ export class Provider { * See {@link Provider} instead. * * @deprecated + * @ts2dart_const */ -/* @ts2dart_const */ export class Binding extends Provider { constructor(token, {toClass, toValue, toAlias, toFactory, deps, multi}: { toClass?: Type, diff --git a/modules/angular2/src/core/di/reflective_injector.ts b/modules/angular2/src/core/di/reflective_injector.ts index 9fd4129fda..066de1e148 100644 --- a/modules/angular2/src/core/di/reflective_injector.ts +++ b/modules/angular2/src/core/di/reflective_injector.ts @@ -625,7 +625,7 @@ export class ReflectiveInjector_ implements ReflectiveInjector { */ debugContext(): any { return this._debugContext(); } - get(token: any, notFoundValue: any = THROW_IF_NOT_FOUND): any { + get(token: any, notFoundValue: any = /*@ts2dart_const*/ THROW_IF_NOT_FOUND): any { return this._getByKey(ReflectiveKey.get(token), null, null, notFoundValue); } diff --git a/modules/angular2/src/core/linker/component_factory.ts b/modules/angular2/src/core/linker/component_factory.ts index 46f7db0c4f..20ebe91a01 100644 --- a/modules/angular2/src/core/linker/component_factory.ts +++ b/modules/angular2/src/core/linker/component_factory.ts @@ -72,6 +72,7 @@ export class ComponentRef_ extends ComponentRef { const EMPTY_CONTEXT = /*@ts2dart_const*/new Object(); export class ComponentFactory { + /* @ts2dart_const */ constructor(public selector: string, private _viewFactory: Function, private _componentType: Type) {} diff --git a/modules/angular2/src/core/linker/element_injector.ts b/modules/angular2/src/core/linker/element_injector.ts index 794f588d0c..cda70d5099 100644 --- a/modules/angular2/src/core/linker/element_injector.ts +++ b/modules/angular2/src/core/linker/element_injector.ts @@ -1,4 +1,3 @@ -import {isBlank, stringify} from 'angular2/src/facade/lang'; import {Injector, THROW_IF_NOT_FOUND} from 'angular2/src/core/di/injector'; import {AppView} from './view'; diff --git a/modules/angular2/src/core/metadata/di.ts b/modules/angular2/src/core/metadata/di.ts index 4743971c48..f01e7adce5 100644 --- a/modules/angular2/src/core/metadata/di.ts +++ b/modules/angular2/src/core/metadata/di.ts @@ -18,8 +18,8 @@ import {DependencyMetadata} from 'angular2/src/core/di/metadata'; * A decorator can inject string literal `text` like so: * * {@example core/ts/metadata/metadata.ts region='attributeMetadata'} + * @ts2dart_const */ -/* @ts2dart_const */ export class AttributeMetadata extends DependencyMetadata { constructor(public attributeName: string) { super(); } @@ -140,8 +140,8 @@ export class AttributeMetadata extends DependencyMetadata { * * The injected object is an unmodifiable live list. * See {@link QueryList} for more details. + * @ts2dart_const */ -/* @ts2dart_const */ export class QueryMetadata extends DependencyMetadata { /** * whether we want to query only direct children (false) or all @@ -207,8 +207,8 @@ export class QueryMetadata extends DependencyMetadata { * } * } * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class ContentChildrenMetadata extends QueryMetadata { constructor(_selector: Type | string, {descendants = false, read = null}: {descendants?: boolean, read?: any} = {}) { @@ -236,8 +236,8 @@ export class ContentChildrenMetadata extends QueryMetadata { * } * } * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class ContentChildMetadata extends QueryMetadata { constructor(_selector: Type | string, {read = null}: {read?: any} = {}) { super(_selector, {descendants: true, first: true, read: read}); @@ -278,8 +278,8 @@ export class ContentChildMetadata extends QueryMetadata { * * The injected object is an iterable and observable live list. * See {@link QueryList} for more details. + * @ts2dart_const */ -/* @ts2dart_const */ export class ViewQueryMetadata extends QueryMetadata { constructor(_selector: Type | string, {descendants = false, first = false, @@ -370,8 +370,8 @@ export class ViewQueryMetadata extends QueryMetadata { * } * } * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class ViewChildrenMetadata extends ViewQueryMetadata { constructor(_selector: Type | string, {read = null}: {read?: any} = {}) { super(_selector, {descendants: true, read: read}); @@ -447,8 +447,8 @@ export class ViewChildrenMetadata extends ViewQueryMetadata { * } * } * ``` + * @ts2dart_const */ -/* @ts2dart_const */ export class ViewChildMetadata extends ViewQueryMetadata { constructor(_selector: Type | string, {read = null}: {read?: any} = {}) { super(_selector, {descendants: true, first: true, read: read}); diff --git a/modules/angular2/src/core/metadata/directives.ts b/modules/angular2/src/core/metadata/directives.ts index 575eb74acd..20be8da4a3 100644 --- a/modules/angular2/src/core/metadata/directives.ts +++ b/modules/angular2/src/core/metadata/directives.ts @@ -380,8 +380,8 @@ import {ViewEncapsulation} from 'angular2/src/core/metadata/view'; * Note also that although the `
  • ` template still exists inside the ``, * the instantiated * view occurs on the second `
  • ` which is a sibling to the `