From 77ee27c59e878f6fb5c040d1421266716d811b0f Mon Sep 17 00:00:00 2001 From: Joao Dias Date: Sat, 12 Nov 2016 14:08:58 +0100 Subject: [PATCH] refactor(): use const and let instead of var --- .../data/installed_script.ts | 6 +- .../src/firefox_extension/lib/main.ts | 16 +- .../src/firefox_extension/lib/parser_util.ts | 24 +- .../src/firefox_extension/lib/test_helper.ts | 24 +- .../benchpress/src/metric/multi_metric.ts | 4 +- .../benchpress/src/metric/perflog_metric.ts | 88 ++-- .../benchpress/src/metric/user_metric.ts | 8 +- .../src/reporter/console_reporter.ts | 10 +- .../src/reporter/json_file_reporter.ts | 4 +- .../benchpress/src/reporter/multi_reporter.ts | 2 +- .../@angular/benchpress/src/reporter/util.ts | 8 +- modules/@angular/benchpress/src/runner.ts | 16 +- modules/@angular/benchpress/src/sampler.ts | 10 +- modules/@angular/benchpress/src/statistic.ts | 10 +- .../benchpress/src/web_driver_extension.ts | 6 +- .../src/webdriver/chrome_driver_extension.ts | 34 +- .../src/webdriver/firefox_driver_extension.ts | 2 +- .../src/webdriver/ios_driver_extension.ts | 18 +- .../benchpress/test/firefox_extension/conf.ts | 2 +- .../firefox_extension/parser_util_spec.ts | 32 +- .../firefox_extension/sample_benchmark.ts | 4 +- .../benchpress/test/firefox_extension/spec.ts | 8 +- .../test/metric/multi_metric_spec.ts | 16 +- .../test/metric/perflog_metric_spec.ts | 60 +-- .../test/metric/user_metric_spec.ts | 8 +- .../test/reporter/console_reporter_spec.ts | 6 +- .../test/reporter/json_file_reporter_spec.ts | 8 +- .../test/reporter/multi_reporter_spec.ts | 18 +- .../@angular/benchpress/test/runner_spec.ts | 8 +- .../@angular/benchpress/test/sampler_spec.ts | 45 +- .../benchpress/test/trace_event_factory.ts | 4 +- .../regression_slope_validator_spec.ts | 6 +- .../test/validator/size_validator_spec.ts | 4 +- .../webdriver/chrome_driver_extension_spec.ts | 28 +- .../webdriver/ios_driver_extension_spec.ts | 6 +- .../@angular/common/src/directives/ng_for.ts | 4 +- .../common/src/directives/ng_switch.ts | 2 +- .../src/location/hash_location_strategy.ts | 8 +- .../@angular/common/src/location/location.ts | 2 +- .../src/location/path_location_strategy.ts | 4 +- .../@angular/common/src/pipes/number_pipe.ts | 2 +- .../common/test/directives/ng_class_spec.ts | 14 +- .../common/test/pipes/async_pipe_spec.ts | 32 +- .../common/test/pipes/date_pipe_spec.ts | 8 +- .../test/pipes/i18n_plural_pipe_spec.ts | 16 +- .../common/test/pipes/json_pipe_spec.ts | 20 +- .../common/test/pipes/lowercase_pipe_spec.ts | 12 +- .../common/test/pipes/number_pipe_spec.ts | 6 +- .../common/test/pipes/slice_pipe_spec.ts | 10 +- .../common/test/pipes/uppercase_pipe_spec.ts | 12 +- .../@angular/common/testing/location_mock.ts | 12 +- .../common/testing/mock_location_strategy.ts | 10 +- .../integrationtest/test/animate_spec.ts | 8 +- .../test/entry_components_spec.ts | 4 +- .../integrationtest/test/projection_spec.ts | 6 +- .../integrationtest/test/query_spec.ts | 12 +- .../@angular/compiler-cli/src/extractor.ts | 2 +- .../src/path_mapped_reflector_host.ts | 4 +- .../compiler-cli/src/reflector_host.ts | 16 +- .../compiler-cli/src/static_reflector.ts | 46 +- modules/@angular/compiler-cli/test/mocks.ts | 18 +- .../compiler-cli/test/reflector_host_spec.ts | 22 +- .../test/static_reflector_spec.ts | 73 +-- .../src/animation/animation_compiler.ts | 84 +-- .../src/animation/animation_parser.ts | 190 +++---- .../src/animation/styles_collection.ts | 14 +- modules/@angular/compiler/src/assertions.ts | 2 +- .../@angular/compiler/src/compile_metadata.ts | 16 +- modules/@angular/compiler/src/compiler.ts | 4 +- .../src/compiler_util/binding_util.ts | 2 +- .../src/compiler_util/expression_converter.ts | 40 +- .../src/compiler_util/identifier_util.ts | 2 +- .../compiler/src/compiler_util/render_util.ts | 6 +- .../compiler/src/css_parser/css_ast.ts | 8 +- .../compiler/src/css_parser/css_lexer.ts | 128 ++--- .../compiler/src/css_parser/css_parser.ts | 234 ++++----- .../compiler/src/directive_normalizer.ts | 18 +- .../compiler/src/directive_resolver.ts | 2 +- .../src/directive_wrapper_compiler.ts | 6 +- .../compiler/src/expression_parser/ast.ts | 4 +- .../compiler/src/expression_parser/lexer.ts | 17 +- .../compiler/src/expression_parser/parser.ts | 76 +-- modules/@angular/compiler/src/i18n/digest.ts | 3 +- .../src/i18n/serializers/serializer.ts | 4 +- .../compiler/src/i18n/serializers/xliff.ts | 4 +- .../compiler/src/i18n/serializers/xmb.ts | 4 +- .../compiler/src/i18n/serializers/xtb.ts | 2 +- modules/@angular/compiler/src/identifiers.ts | 8 +- .../compiler/src/metadata_resolver.ts | 10 +- .../@angular/compiler/src/ml_parser/ast.ts | 4 +- .../src/ml_parser/icu_ast_expander.ts | 2 +- .../@angular/compiler/src/ml_parser/lexer.ts | 34 +- .../@angular/compiler/src/ml_parser/parser.ts | 2 +- .../compiler/src/ng_module_compiler.ts | 77 ++- .../compiler/src/output/abstract_emitter.ts | 32 +- .../src/output/abstract_js_emitter.ts | 6 +- .../compiler/src/output/js_emitter.ts | 8 +- .../compiler/src/output/output_ast.ts | 6 +- .../compiler/src/output/output_interpreter.ts | 96 ++-- .../compiler/src/output/output_jit.ts | 14 +- .../@angular/compiler/src/output/path_util.ts | 2 +- .../compiler/src/output/ts_emitter.ts | 14 +- modules/@angular/compiler/src/parse_util.ts | 16 +- .../@angular/compiler/src/pipe_resolver.ts | 4 +- .../compiler/src/provider_analyzer.ts | 80 +-- .../@angular/compiler/src/runtime_compiler.ts | 24 +- .../src/schema/dom_element_schema_registry.ts | 10 +- .../src/schema/dom_security_schema.ts | 2 +- modules/@angular/compiler/src/selector.ts | 2 +- modules/@angular/compiler/src/shadow_css.ts | 2 +- .../compiler/src/style_url_resolver.ts | 8 +- .../src/template_parser/binding_parser.ts | 2 +- .../src/template_parser/template_parser.ts | 10 +- .../src/template_parser/template_preparser.ts | 16 +- modules/@angular/compiler/src/url_resolver.ts | 42 +- modules/@angular/compiler/src/util.ts | 2 +- .../src/view_compiler/compile_element.ts | 83 +-- .../src/view_compiler/compile_method.ts | 8 +- .../src/view_compiler/compile_pipe.ts | 19 +- .../src/view_compiler/compile_query.ts | 26 +- .../src/view_compiler/compile_view.ts | 14 +- .../src/view_compiler/lifecycle_binder.ts | 20 +- .../src/view_compiler/property_binder.ts | 2 +- .../compiler/src/view_compiler/util.ts | 6 +- .../src/view_compiler/view_builder.ts | 106 ++-- .../test/animation/animation_compiler_spec.ts | 20 +- .../test/animation/animation_parser_spec.ts | 184 +++---- .../compiler_util/identifier_util_spec.ts | 8 +- .../test/css_parser/css_lexer_spec.ts | 70 +-- .../test/css_parser/css_parser_spec.ts | 324 ++++++------ .../test/css_parser/css_visitor_spec.ts | 110 ++-- .../test/directive_normalizer_spec.ts | 50 +- .../test/directive_resolver_mock_spec.ts | 18 +- .../test/expression_parser/lexer_spec.ts | 38 +- .../test/expression_parser/parser_spec.ts | 44 +- .../test/expression_parser/unparser.ts | 12 +- .../test/expression_parser/validator.ts | 2 +- .../test/i18n/serializers/xliff_spec.ts | 6 +- .../test/i18n/serializers/xmb_spec.ts | 2 +- .../test/i18n/serializers/xtb_spec.ts | 4 +- .../test/ml_parser/ast_serializer_spec.ts | 2 +- .../compiler/test/ml_parser/ast_spec_utils.ts | 16 +- .../test/ml_parser/html_parser_spec.ts | 32 +- .../compiler/test/ml_parser/lexer_spec.ts | 12 +- .../test/ng_module_resolver_mock_spec.ts | 6 +- .../compiler/test/ng_module_resolver_spec.ts | 4 +- .../compiler/test/output/js_emitter_spec.ts | 29 +- .../output/output_emitter_codegen_untyped.ts | 6 +- .../test/output/output_emitter_spec.ts | 12 +- .../test/output/output_emitter_util.ts | 12 +- .../compiler/test/output/ts_emitter_spec.ts | 35 +- .../compiler/test/pipe_resolver_mock_spec.ts | 6 +- .../test/resource_loader_mock_spec.ts | 24 +- .../compiler/test/runtime_compiler_spec.ts | 2 +- .../compiler/test/schema/schema_extractor.ts | 4 +- .../@angular/compiler/test/selector_spec.ts | 4 +- .../compiler/test/style_url_resolver_spec.ts | 30 +- .../template_parser/template_parser_spec.ts | 389 +++++++------- .../template_preparser_spec.ts | 2 +- .../compiler/test/url_resolver_spec.ts | 4 +- .../testing/directive_resolver_mock.ts | 4 +- .../compiler/testing/metadata_overrider.ts | 10 +- .../compiler/testing/pipe_resolver_mock.ts | 2 +- .../compiler/testing/resource_loader_mock.ts | 12 +- .../src/animation/animation_group_player.ts | 8 +- .../core/src/animation/animation_queue.ts | 6 +- .../animation/animation_sequence_player.ts | 2 +- .../src/animation/animation_style_util.ts | 28 +- .../@angular/core/src/animation/metadata.ts | 12 +- .../core/src/animation/view_animation_map.ts | 6 +- .../differs/default_iterable_differ.ts | 92 ++-- .../differs/default_keyvalue_differ.ts | 16 +- .../differs/iterable_differs.ts | 4 +- .../differs/keyvalue_differs.ts | 4 +- .../@angular/core/src/debug/debug_renderer.ts | 38 +- .../@angular/core/src/di/reflective_errors.ts | 12 +- .../core/src/di/reflective_injector.ts | 84 +-- .../@angular/core/src/di/reflective_key.ts | 4 +- .../core/src/di/reflective_provider.ts | 2 +- .../core/src/linker/animation_view_context.ts | 4 +- .../core/src/linker/component_factory.ts | 4 +- .../src/linker/component_factory_resolver.ts | 2 +- .../@angular/core/src/linker/debug_context.ts | 12 +- .../core/src/linker/ng_module_factory.ts | 4 +- .../src/linker/ng_module_factory_loader.ts | 4 +- .../system_js_ng_module_factory_loader.ts | 4 +- modules/@angular/core/src/linker/view.ts | 12 +- .../core/src/linker/view_container.ts | 18 +- .../core/src/linker/view_container_ref.ts | 18 +- .../@angular/core/src/linker/view_utils.ts | 10 +- modules/@angular/core/src/profile/wtf_impl.ts | 6 +- .../src/reflection/reflection_capabilities.ts | 4 +- .../core/src/testability/testability.ts | 2 +- modules/@angular/core/src/util/decorators.ts | 2 +- .../active_animations_players_map_spec.ts | 18 +- .../animation/animation_group_player_spec.ts | 44 +- .../animation/animation_integration_spec.ts | 479 +++++++++--------- .../test/animation/animation_player_spec.ts | 10 +- .../animation_sequence_player_spec.ts | 44 +- .../animation/animation_style_util_spec.ts | 49 +- .../core/test/application_ref_spec.ts | 18 +- .../differs/default_iterable_differ_spec.ts | 98 ++-- .../differs/default_keyvalue_differ_spec.ts | 8 +- .../differs/iterable_differs_spec.ts | 22 +- .../core/test/component_fixture_spec.ts | 46 +- .../core/test/debug/debug_node_spec.ts | 28 +- .../@angular/core/test/di/forward_ref_spec.ts | 2 +- .../core/test/di/reflective_injector_spec.ts | 166 +++--- .../core/test/di/reflective_key_spec.ts | 2 +- .../directive_lifecycle_integration_spec.ts | 2 +- .../core/test/dom/dom_adapter_spec.ts | 36 +- modules/@angular/core/test/dom/shim_spec.ts | 2 +- .../@angular/core/test/error_handler_spec.ts | 42 +- .../core/test/facade/observable_spec.ts | 6 +- modules/@angular/core/test/fake_async_spec.ts | 46 +- .../change_detection_integration_spec.ts | 167 +++--- .../entry_components_integration_spec.ts | 20 +- .../core/test/linker/integration_spec.ts | 202 ++++---- .../linker/ng_container_integration_spec.ts | 4 +- .../test/linker/ng_module_integration_spec.ts | 114 ++--- .../linker/projection_integration_spec.ts | 50 +- .../core/test/linker/query_list_spec.ts | 10 +- .../linker/regression_integration_spec.ts | 20 +- .../test/linker/security_integration_spec.ts | 28 +- .../system_ng_module_factory_loader_spec.ts | 6 +- .../linker/view_injector_integration_spec.ts | 4 +- .../core/test/metadata/decorators_spec.ts | 6 +- .../core/test/reflection/reflector_spec.ts | 2 +- .../core/test/testability/testability_spec.ts | 8 +- .../@angular/core/test/zone/ng_zone_spec.ts | 68 +-- modules/@angular/core/testing/async.ts | 6 +- modules/@angular/core/testing/fake_async.ts | 4 +- modules/@angular/core/testing/test_bed.ts | 2 +- modules/@angular/core/testing/testing.ts | 2 +- .../@angular/core/testing/testing_internal.ts | 42 +- modules/@angular/examples/_common/e2e_util.ts | 4 +- .../examples/common/pipes/ts/async_pipe.ts | 4 +- .../common/pipes/ts/e2e_test/pipe_spec.ts | 4 +- .../compiler/ts/url_resolver/url_resolver.ts | 2 +- .../ts/dsl/e2e_test/animation_example_spec.ts | 4 +- .../debug/ts/debug_element/debug_element.ts | 4 +- .../di/ts/forward_ref/forward_ref_spec.ts | 8 +- .../examples/core/ts/platform/platform.ts | 2 +- .../examples/facade/ts/async/observable.ts | 4 +- .../facade/ts/async/observable_patched.ts | 4 +- .../facade/ts/async/observable_pure.ts | 4 +- .../platform-browser/dom/debug/ts/by/by.ts | 2 +- .../examples/testing/ts/fake_async.ts | 2 +- .../@angular/examples/testing/ts/testing.ts | 2 +- modules/@angular/facade/src/collection.ts | 8 +- modules/@angular/facade/src/intl.ts | 6 +- modules/@angular/facade/src/lang.ts | 6 +- modules/@angular/facade/test/async_spec.ts | 14 +- .../select_control_value_accessor.ts | 2 +- .../select_multiple_control_value_accessor.ts | 16 +- .../@angular/forms/src/directives/shared.ts | 6 +- modules/@angular/forms/src/form_builder.ts | 4 +- modules/@angular/forms/src/model.ts | 4 +- modules/@angular/forms/src/validators.ts | 2 +- .../@angular/forms/test/directives_spec.ts | 82 +-- .../@angular/forms/test/form_array_spec.ts | 14 +- .../@angular/forms/test/form_builder_spec.ts | 12 +- .../@angular/forms/test/form_control_spec.ts | 14 +- .../@angular/forms/test/form_group_spec.ts | 14 +- .../forms/test/reactive_integration_spec.ts | 6 +- .../forms/test/template_integration_spec.ts | 4 +- .../@angular/forms/test/validators_spec.ts | 16 +- .../http/src/backends/browser_jsonp.ts | 8 +- .../http/src/backends/jsonp_backend.ts | 10 +- .../@angular/http/src/backends/xhr_backend.ts | 22 +- modules/@angular/http/src/http_utils.ts | 4 +- modules/@angular/http/src/static_request.ts | 4 +- .../@angular/http/src/url_search_params.ts | 4 +- .../http/test/backends/jsonp_backend_spec.ts | 36 +- .../http/test/backends/mock_backend_spec.ts | 38 +- .../http/test/backends/xhr_backend_spec.ts | 213 ++++---- .../http/test/base_request_options_spec.ts | 8 +- modules/@angular/http/test/http_spec.ts | 38 +- .../http/test/url_search_params_spec.ts | 30 +- modules/@angular/http/testing/mock_backend.ts | 2 +- .../resource_loader/resource_loader_impl.ts | 10 +- .../resource_loader_cache_spec.ts | 4 +- .../resource_loader_impl_spec.ts | 6 +- .../test/testing_public_browser_spec.ts | 22 +- .../testing/dom_test_component_renderer.ts | 4 +- .../src/browser/testability.ts | 14 +- .../src/browser/tools/common_tools.ts | 8 +- .../src/browser/tools/tools.ts | 2 +- .../src/dom/events/hammer_gestures.ts | 2 +- .../src/dom/shared_styles_host.ts | 4 +- .../@angular/platform-browser/src/dom/util.ts | 4 +- .../src/dom/web_animations_driver.ts | 12 +- .../src/dom/web_animations_player.ts | 4 +- .../src/security/html_sanitizer.ts | 32 +- .../src/security/style_sanitizer.ts | 2 +- .../test/browser/bootstrap_spec.ts | 46 +- .../test/browser/browser_adapter_spec.ts | 2 +- .../test/browser/title_spec.ts | 4 +- .../test/browser_util_spec.ts | 4 +- .../test/dom/events/event_manager_spec.ts | 52 +- .../test/dom/shared_styles_host_spec.ts | 6 +- .../test/dom/web_animations_driver_spec.ts | 36 +- .../test/dom/web_animations_player_spec.ts | 28 +- .../test/security/html_sanitizer_spec.ts | 8 +- .../test/security/url_sanitizer_spec.ts | 8 +- .../test/testing_public_spec.ts | 22 +- .../platform-browser/testing/browser_util.ts | 18 +- .../platform-browser/testing/matchers.ts | 2 +- .../testing/mock_animation_driver.ts | 4 +- .../platform-server/src/parse5_adapter.ts | 8 +- .../platform-server/src/server_renderer.ts | 34 +- .../platform-server/test/integration_spec.ts | 8 +- .../shared/client_message_broker.ts | 20 +- .../web_workers/shared/post_message_bus.ts | 18 +- .../src/web_workers/shared/render_store.ts | 2 +- .../shared/service_message_broker.ts | 6 +- .../src/web_workers/ui/event_dispatcher.ts | 2 +- .../src/web_workers/ui/event_serializer.ts | 14 +- .../src/web_workers/ui/location_providers.ts | 2 +- .../src/web_workers/ui/platform_location.ts | 4 +- .../src/web_workers/ui/renderer.ts | 8 +- .../web_workers/worker/platform_location.ts | 26 +- .../src/web_workers/worker/renderer.ts | 60 +-- .../platform-webworker/src/worker_app.ts | 8 +- .../platform-webworker/src/worker_render.ts | 18 +- .../web_workers/shared/message_bus_spec.ts | 32 +- .../web_workers/shared/message_bus_util.ts | 6 +- .../web_workers/shared/render_store_spec.ts | 10 +- .../shared/service_message_broker_spec.ts | 6 +- .../shared/web_worker_test_util.ts | 16 +- .../worker/platform_location_spec.ts | 24 +- .../renderer_animation_integration_spec.ts | 50 +- .../worker/renderer_integration_spec.ts | 45 +- .../@angular/router/src/apply_redirects.ts | 4 +- .../@angular/router/src/create_url_tree.ts | 4 +- modules/@angular/router/src/recognize.ts | 8 +- modules/@angular/router/src/router.ts | 2 +- .../@angular/router/src/router_preloader.ts | 2 +- modules/@angular/router/src/url_tree.ts | 10 +- .../@angular/router/src/utils/collection.ts | 8 +- modules/@angular/router/src/utils/tree.ts | 4 +- .../@angular/router/test/integration.spec.ts | 14 +- .../router/testing/router_testing_module.ts | 2 +- modules/@angular/upgrade/src/angular_js.ts | 2 +- .../src/aot/downgrade_component_adapter.ts | 50 +- .../upgrade/src/aot/upgrade_component.ts | 16 +- .../upgrade/src/aot/upgrade_module.ts | 2 +- .../upgrade/src/downgrade_ng2_adapter.ts | 50 +- modules/@angular/upgrade/src/metadata.ts | 22 +- .../@angular/upgrade/src/upgrade_adapter.ts | 52 +- .../upgrade/src/upgrade_ng1_adapter.ts | 123 +++-- .../test/aot/integration/injection_spec.ts | 2 +- .../aot/integration/upgrade_component_spec.ts | 20 +- .../@angular/upgrade/test/aot/test_helpers.ts | 2 +- modules/angular1_router/src/ng_outlet.ts | 30 +- .../benchmarks/e2e_test/old/compiler_perf.ts | 2 +- modules/benchmarks/e2e_test/old/costs_perf.ts | 4 +- modules/benchmarks/e2e_test/old/di_perf.ts | 2 +- .../e2e_test/old/largetable_perf.ts | 2 +- .../old/naive_infinite_scroll_perf.ts | 2 +- .../old/naive_infinite_scroll_spec.ts | 18 +- .../benchmarks/e2e_test/old/page_load_perf.ts | 4 +- .../benchmarks/e2e_test/old/selector_perf.ts | 2 +- .../e2e_test/old/static_tree_perf.ts | 2 +- modules/benchmarks/src/bootstrap_ng2.ts | 2 +- modules/benchmarks/src/largeform/ng2/app.ts | 4 +- .../src/largetable/baseline/index.ts | 2 +- .../src/largetable/incremental_dom/index.ts | 2 +- .../src/old/compiler/compiler_benchmark.ts | 18 +- .../src/old/compiler/selector_benchmark.ts | 36 +- modules/benchmarks/src/old/costs/index.ts | 10 +- modules/benchmarks/src/old/di/di_benchmark.ts | 40 +- .../src/old/naive_infinite_scroll/app.ts | 16 +- .../src/old/naive_infinite_scroll/cells.ts | 2 +- .../src/old/naive_infinite_scroll/common.ts | 28 +- .../old/naive_infinite_scroll/random_data.ts | 26 +- .../old/naive_infinite_scroll/scroll_area.ts | 10 +- modules/benchmarks/src/tree/baseline/index.ts | 2 +- .../src/tree/incremental_dom/index.ts | 2 +- .../benchmarks/src/tree/ng2_ftl/ftl_util.ts | 4 +- .../benchmarks/src/tree/ng2_static/index.ts | 4 +- .../benchmarks/src/tree/ng2_static/tree.ts | 2 +- .../benchmarks/src/tree/ng2_switch/init.ts | 4 +- .../src/tree/polymer_leaves/index.ts | 2 +- modules/benchmarks/src/util.ts | 34 +- .../e2e_test/compiler_perf.ts | 2 +- .../e2e_test/largetable_perf.ts | 2 +- .../e2e_test/naive_infinite_scroll_perf.ts | 4 +- .../e2e_test/polymer_tree_perf.ts | 2 +- .../e2e_test/react_tree_perf.ts | 2 +- .../e2e_test/static_tree_perf.ts | 2 +- .../benchmarks_external/e2e_test/tree_perf.ts | 2 +- modules/benchmarks_external/src/bootstrap.ts | 2 +- .../src/compiler/compiler_benchmark.ts | 32 +- .../src/largetable/largetable_benchmark.ts | 20 +- .../src/static_tree/tree_benchmark.ts | 10 +- .../src/tree/react/index.ts | 20 +- .../src/tree/tree_benchmark.ts | 18 +- modules/e2e_util/e2e_util.ts | 10 +- modules/e2e_util/perf_util.ts | 4 +- .../playground/e2e_test/async/async_spec.ts | 14 +- .../e2e_test/key_events/key_events_spec.ts | 10 +- .../model_driven_forms_spec.ts | 8 +- .../order_management/order_management_spec.ts | 2 +- .../person_management_spec.ts | 2 +- .../e2e_test/sourcemap/sourcemap_spec.ts | 20 +- modules/playground/e2e_test/svg/svg_spec.ts | 4 +- .../template_driven_forms_spec.ts | 8 +- .../e2e_test/upgrade/upgrade_spec.ts | 6 +- .../web_workers/animations/animations_spec.ts | 4 +- .../e2e_test/web_workers/input/input_spec.ts | 12 +- .../kitchen_sink/kitchen_sink_spec.ts | 12 +- .../message_broker/message_broker_spec.ts | 6 +- .../web_workers/router/router_spec.ts | 14 +- .../e2e_test/web_workers/todo/todo_spec.ts | 2 +- .../e2e_test/zippy_component/zippy_spec.ts | 4 +- modules/playground/src/bootstrap.ts | 2 +- .../playground/src/person_management/index.ts | 2 +- .../src/web_workers/message_broker/index.ts | 10 +- .../message_broker/index_common.ts | 2 +- tools/@angular/tsc-wrapped/src/collector.ts | 18 +- tools/@angular/tsc-wrapped/src/evaluator.ts | 6 +- tools/@angular/tsc-wrapped/src/symbols.ts | 4 +- tools/@angular/tsc-wrapped/src/tsc.ts | 8 +- .../tsc-wrapped/test/collector.spec.ts | 122 ++--- .../tsc-wrapped/test/evaluator.spec.ts | 2 +- .../@angular/tsc-wrapped/test/symbols.spec.ts | 14 +- .../tsc-wrapped/test/typescript.mocks.ts | 6 +- tools/cjs-jasmine/index-tools.ts | 3 +- tools/cjs-jasmine/index.ts | 9 +- tools/cjs-jasmine/test-cjs-main.ts | 6 +- tools/tsc-watch/index.ts | 20 +- tools/tsc-watch/tsc_watch.ts | 16 +- tools/tslint/enforceCopyrightHeaderRule.ts | 40 -- .../requireInternalWithUnderscoreRule.ts | 4 +- 435 files changed, 4637 insertions(+), 4663 deletions(-) delete mode 100644 tools/tslint/enforceCopyrightHeaderRule.ts diff --git a/modules/@angular/benchpress/src/firefox_extension/data/installed_script.ts b/modules/@angular/benchpress/src/firefox_extension/data/installed_script.ts index 21bac4e0d2..1e14d5cc6b 100644 --- a/modules/@angular/benchpress/src/firefox_extension/data/installed_script.ts +++ b/modules/@angular/benchpress/src/firefox_extension/data/installed_script.ts @@ -10,7 +10,7 @@ declare var exportFunction: any; declare var unsafeWindow: any; exportFunction(function() { - var curTime = unsafeWindow.performance.now(); + const curTime = unsafeWindow.performance.now(); (self).port.emit('startProfiler', curTime); }, unsafeWindow, {defineAs: 'startProfiler'}); @@ -28,11 +28,11 @@ exportFunction(function() { }, unsafeWindow, {defineAs: 'forceGC'}); exportFunction(function(name: string) { - var curTime = unsafeWindow.performance.now(); + const curTime = unsafeWindow.performance.now(); (self).port.emit('markStart', name, curTime); }, unsafeWindow, {defineAs: 'markStart'}); exportFunction(function(name: string) { - var curTime = unsafeWindow.performance.now(); + const curTime = unsafeWindow.performance.now(); (self).port.emit('markEnd', name, curTime); }, unsafeWindow, {defineAs: 'markEnd'}); diff --git a/modules/@angular/benchpress/src/firefox_extension/lib/main.ts b/modules/@angular/benchpress/src/firefox_extension/lib/main.ts index 4786914b07..956dc44b8b 100644 --- a/modules/@angular/benchpress/src/firefox_extension/lib/main.ts +++ b/modules/@angular/benchpress/src/firefox_extension/lib/main.ts @@ -6,9 +6,9 @@ * found in the LICENSE file at https://angular.io/license */ -var {Cc, Ci, Cu} = require('chrome'); -var os = Cc['@mozilla.org/observer-service;1'].getService(Ci.nsIObserverService); -var ParserUtil = require('./parser_util'); +const {Cc, Ci, Cu} = require('chrome'); +const os = Cc['@mozilla.org/observer-service;1'].getService(Ci.nsIObserverService); +const ParserUtil = require('./parser_util'); class Profiler { private _profiler: any; @@ -26,8 +26,8 @@ class Profiler { stop() { this._profiler.StopProfiler(); } getProfilePerfEvents() { - var profileData = this._profiler.getProfileData(); - var perfEvents = ParserUtil.convertPerfProfileToEvents(profileData); + const profileData = this._profiler.getProfileData(); + let perfEvents = ParserUtil.convertPerfProfileToEvents(profileData); perfEvents = this._mergeMarkerEvents(perfEvents); perfEvents.sort(function(event1: any, event2: any) { return event1.ts - event2.ts; @@ -55,9 +55,9 @@ function forceGC() { os.notifyObservers(null, 'child-gc-request', null); }; -var mod = require('sdk/page-mod'); -var data = require('sdk/self').data; -var profiler = new Profiler(); +const mod = require('sdk/page-mod'); +const data = require('sdk/self').data; +const profiler = new Profiler(); mod.PageMod({ include: ['*'], contentScriptFile: data.url('installed_script.js'), diff --git a/modules/@angular/benchpress/src/firefox_extension/lib/parser_util.ts b/modules/@angular/benchpress/src/firefox_extension/lib/parser_util.ts index 04ac3c5aa4..f6a9afedc7 100644 --- a/modules/@angular/benchpress/src/firefox_extension/lib/parser_util.ts +++ b/modules/@angular/benchpress/src/firefox_extension/lib/parser_util.ts @@ -12,11 +12,11 @@ * within the perf profile. */ export function convertPerfProfileToEvents(perfProfile: any): any[] { - var inProgressEvents = new Map(); // map from event name to start time - var finishedEvents: {[key: string]: any}[] = []; // Event[] finished events - var addFinishedEvent = function(eventName: string, startTime: number, endTime: number) { - var categorizedEventName = categorizeEvent(eventName); - var args: {[key: string]: any} = undefined; + const inProgressEvents = new Map(); // map from event name to start time + const finishedEvents: {[key: string]: any}[] = []; // Event[] finished events + const addFinishedEvent = function(eventName: string, startTime: number, endTime: number) { + const categorizedEventName = categorizeEvent(eventName); + let args: {[key: string]: any} = undefined; if (categorizedEventName == 'gc') { // TODO: We cannot measure heap size at the moment args = {usedHeapSize: 0}; @@ -31,17 +31,17 @@ export function convertPerfProfileToEvents(perfProfile: any): any[] { } }; - var samples = perfProfile.threads[0].samples; + const samples = perfProfile.threads[0].samples; // In perf profile, firefox samples all the frames in set time intervals. Here // we go through all the samples and construct the start and end time for each // event. - for (var i = 0; i < samples.length; ++i) { - var sample = samples[i]; - var sampleTime = sample.time; + for (let i = 0; i < samples.length; ++i) { + const sample = samples[i]; + const sampleTime = sample.time; // Add all the frames into a set so it's easier/faster to find the set // differences - var sampleFrames = new Set(); + const sampleFrames = new Set(); sample.frames.forEach(function(frame: {[key: string]: any}) { sampleFrames.add(frame['location']); }); @@ -49,7 +49,7 @@ export function convertPerfProfileToEvents(perfProfile: any): any[] { // If an event is in the inProgressEvents map, but not in the current sample, // then it must have just finished. We add this event to the finishedEvents // array and remove it from the inProgressEvents map. - var previousSampleTime = (i == 0 ? /* not used */ -1 : samples[i - 1].time); + const previousSampleTime = (i == 0 ? /* not used */ -1 : samples[i - 1].time); inProgressEvents.forEach(function(startTime, eventName) { if (!(sampleFrames.has(eventName))) { addFinishedEvent(eventName, startTime, previousSampleTime); @@ -69,7 +69,7 @@ export function convertPerfProfileToEvents(perfProfile: any): any[] { // If anything is still in progress, we need to included it as a finished event // since recording ended. - var lastSampleTime = samples[samples.length - 1].time; + const lastSampleTime = samples[samples.length - 1].time; inProgressEvents.forEach(function(startTime, eventName) { addFinishedEvent(eventName, startTime, lastSampleTime); }); diff --git a/modules/@angular/benchpress/src/firefox_extension/lib/test_helper.ts b/modules/@angular/benchpress/src/firefox_extension/lib/test_helper.ts index 8a3b185f66..5177a0c7d8 100644 --- a/modules/@angular/benchpress/src/firefox_extension/lib/test_helper.ts +++ b/modules/@angular/benchpress/src/firefox_extension/lib/test_helper.ts @@ -6,15 +6,15 @@ * found in the LICENSE file at https://angular.io/license */ -var q = require('q'); -var FirefoxProfile = require('firefox-profile'); -var jpm = require('jpm/lib/xpi'); -var pathUtil = require('path'); +const q = require('q'); +const FirefoxProfile = require('firefox-profile'); +const jpm = require('jpm/lib/xpi'); +const pathUtil = require('path'); -var PERF_ADDON_PACKAGE_JSON_DIR = '..'; +const PERF_ADDON_PACKAGE_JSON_DIR = '..'; exports.getAbsolutePath = function(path: string) { - var normalizedPath = pathUtil.normalize(path); + const normalizedPath = pathUtil.normalize(path); if (pathUtil.resolve(normalizedPath) == normalizedPath) { // Already absolute path return normalizedPath; @@ -24,12 +24,12 @@ exports.getAbsolutePath = function(path: string) { }; exports.getFirefoxProfile = function(extensionPath: string) { - var deferred = q.defer(); + const deferred = q.defer(); - var firefoxProfile = new FirefoxProfile(); + const firefoxProfile = new FirefoxProfile(); firefoxProfile.addExtensions([extensionPath], () => { firefoxProfile.encoded((encodedProfile: any) => { - var multiCapabilities = [{browserName: 'firefox', firefox_profile: encodedProfile}]; + const multiCapabilities = [{browserName: 'firefox', firefox_profile: encodedProfile}]; deferred.resolve(multiCapabilities); }); }); @@ -38,10 +38,10 @@ exports.getFirefoxProfile = function(extensionPath: string) { }; exports.getFirefoxProfileWithExtension = function() { - var absPackageJsonDir = pathUtil.join(__dirname, PERF_ADDON_PACKAGE_JSON_DIR); - var packageJson = require(pathUtil.join(absPackageJsonDir, 'package.json')); + const absPackageJsonDir = pathUtil.join(__dirname, PERF_ADDON_PACKAGE_JSON_DIR); + const packageJson = require(pathUtil.join(absPackageJsonDir, 'package.json')); - var savedCwd = process.cwd(); + const savedCwd = process.cwd(); process.chdir(absPackageJsonDir); return jpm(packageJson).then((xpiPath: string) => { diff --git a/modules/@angular/benchpress/src/metric/multi_metric.ts b/modules/@angular/benchpress/src/metric/multi_metric.ts index 1a92a33200..8561773654 100644 --- a/modules/@angular/benchpress/src/metric/multi_metric.ts +++ b/modules/@angular/benchpress/src/metric/multi_metric.ts @@ -55,9 +55,9 @@ export class MultiMetric extends Metric { } function mergeStringMaps(maps: {[key: string]: string}[]): {[key: string]: string} { - var result: {[key: string]: string} = {}; + const result: {[key: string]: string} = {}; maps.forEach(map => { Object.keys(map).forEach(prop => { result[prop] = map[prop]; }); }); return result; } -var _CHILDREN = new OpaqueToken('MultiMetric.children'); +const _CHILDREN = new OpaqueToken('MultiMetric.children'); diff --git a/modules/@angular/benchpress/src/metric/perflog_metric.ts b/modules/@angular/benchpress/src/metric/perflog_metric.ts index 0e141543cf..86d34c390f 100644 --- a/modules/@angular/benchpress/src/metric/perflog_metric.ts +++ b/modules/@angular/benchpress/src/metric/perflog_metric.ts @@ -56,7 +56,7 @@ export class PerflogMetric extends Metric { } describe(): {[key: string]: string} { - var res: {[key: string]: any} = { + const res: {[key: string]: any} = { 'scriptTime': 'script execution time in ms, including gc and render', 'pureScriptTime': 'script execution time in ms, without gc nor render' }; @@ -80,7 +80,7 @@ export class PerflogMetric extends Metric { } if (this._captureFrames) { if (!this._perfLogFeatures.frameCapture) { - var warningMsg = 'WARNING: Metric requested, but not supported by driver'; + const warningMsg = 'WARNING: Metric requested, but not supported by driver'; // using dot syntax for metric name to keep them grouped together in console reporter res['frameTime.mean'] = warningMsg; res['frameTime.worst'] = warningMsg; @@ -93,14 +93,14 @@ export class PerflogMetric extends Metric { res['frameTime.smooth'] = 'percentage of frames that hit 60fps'; } } - for (let name in this._microMetrics) { + for (const name in this._microMetrics) { res[name] = this._microMetrics[name]; } return res; } beginMeasure(): Promise { - var resultPromise = Promise.resolve(null); + let resultPromise = Promise.resolve(null); if (this._forceGc) { resultPromise = resultPromise.then((_) => this._driverExtension.gc()); } @@ -119,7 +119,7 @@ export class PerflogMetric extends Metric { private _endPlainMeasureAndMeasureForceGc(restartMeasure: boolean) { return this._endMeasure(true).then((measureValues) => { // disable frame capture for measurements during forced gc - var originalFrameCaptureValue = this._captureFrames; + const originalFrameCaptureValue = this._captureFrames; this._captureFrames = false; return this._driverExtension.gc() .then((_) => this._endMeasure(restartMeasure)) @@ -137,8 +137,8 @@ export class PerflogMetric extends Metric { } private _endMeasure(restart: boolean): Promise<{[key: string]: number}> { - var markName = this._markName(this._measureCount - 1); - var nextMarkName = restart ? this._markName(this._measureCount++) : null; + const markName = this._markName(this._measureCount - 1); + const nextMarkName = restart ? this._markName(this._measureCount++) : null; return this._driverExtension.timeEnd(markName, nextMarkName) .then((_) => this._readUntilEndMark(markName)); } @@ -150,26 +150,26 @@ export class PerflogMetric extends Metric { } return this._driverExtension.readPerfLog().then((events) => { this._addEvents(events); - var result = this._aggregateEvents(this._remainingEvents, markName); + const result = this._aggregateEvents(this._remainingEvents, markName); if (result) { this._remainingEvents = events; return result; } - var resolve: (result: any) => void; - var promise = new Promise(res => { resolve = res; }); + let resolve: (result: any) => void; + const promise = new Promise(res => { resolve = res; }); this._setTimeout(() => resolve(this._readUntilEndMark(markName, loopCount + 1)), 100); return promise; }); } private _addEvents(events: PerfLogEvent[]) { - var needSort = false; + let needSort = false; events.forEach(event => { if (event['ph'] === 'X') { needSort = true; - var startEvent: PerfLogEvent = {}; - var endEvent: PerfLogEvent = {}; - for (let prop in event) { + const startEvent: PerfLogEvent = {}; + const endEvent: PerfLogEvent = {}; + for (const prop in event) { startEvent[prop] = event[prop]; endEvent[prop] = event[prop]; } @@ -185,14 +185,14 @@ export class PerflogMetric extends Metric { if (needSort) { // Need to sort because of the ph==='X' events this._remainingEvents.sort((a, b) => { - var diff = a['ts'] - b['ts']; + const diff = a['ts'] - b['ts']; return diff > 0 ? 1 : diff < 0 ? -1 : 0; }); } } private _aggregateEvents(events: PerfLogEvent[], markName: string): {[key: string]: number} { - var result: {[key: string]: number} = {'scriptTime': 0, 'pureScriptTime': 0}; + const result: {[key: string]: number} = {'scriptTime': 0, 'pureScriptTime': 0}; if (this._perfLogFeatures.gc) { result['gcTime'] = 0; result['majorGcTime'] = 0; @@ -207,7 +207,7 @@ export class PerflogMetric extends Metric { result['frameTime.worst'] = 0; result['frameTime.smooth'] = 0; } - for (let name in this._microMetrics) { + for (const name in this._microMetrics) { result[name] = 0; } if (this._receivedData) { @@ -217,11 +217,11 @@ export class PerflogMetric extends Metric { result['requestCount'] = 0; } - var markStartEvent: PerfLogEvent = null; - var markEndEvent: PerfLogEvent = null; + let markStartEvent: PerfLogEvent = null; + let markEndEvent: PerfLogEvent = null; events.forEach((event) => { - var ph = event['ph']; - var name = event['name']; + const ph = event['ph']; + const name = event['name']; if (ph === 'B' && name === markName) { markStartEvent = event; } else if (ph === 'I' && name === 'navigationStart') { @@ -237,23 +237,23 @@ export class PerflogMetric extends Metric { return null; } - var gcTimeInScript = 0; - var renderTimeInScript = 0; + let gcTimeInScript = 0; + let renderTimeInScript = 0; - var frameTimestamps: number[] = []; - var frameTimes: number[] = []; - var frameCaptureStartEvent: PerfLogEvent = null; - var frameCaptureEndEvent: PerfLogEvent = null; + const frameTimestamps: number[] = []; + const frameTimes: number[] = []; + let frameCaptureStartEvent: PerfLogEvent = null; + let frameCaptureEndEvent: PerfLogEvent = null; - var intervalStarts: {[key: string]: PerfLogEvent} = {}; - var intervalStartCount: {[key: string]: number} = {}; + const intervalStarts: {[key: string]: PerfLogEvent} = {}; + const intervalStartCount: {[key: string]: number} = {}; - var inMeasureRange = false; + let inMeasureRange = false; events.forEach((event) => { - var ph = event['ph']; - var name = event['name']; - var microIterations = 1; - var microIterationsMatch = name.match(_MICRO_ITERATIONS_REGEX); + const ph = event['ph']; + let name = event['name']; + let microIterations = 1; + const microIterationsMatch = name.match(_MICRO_ITERATIONS_REGEX); if (microIterationsMatch) { name = microIterationsMatch[1]; microIterations = parseInt(microIterationsMatch[2], 10); @@ -307,15 +307,15 @@ export class PerflogMetric extends Metric { } else if ((ph === 'E') && intervalStarts[name]) { intervalStartCount[name]--; if (intervalStartCount[name] === 0) { - var startEvent = intervalStarts[name]; - var duration = (event['ts'] - startEvent['ts']); + const startEvent = intervalStarts[name]; + const duration = (event['ts'] - startEvent['ts']); intervalStarts[name] = null; if (name === 'gc') { result['gcTime'] += duration; - var amount = + const amount = (startEvent['args']['usedHeapSize'] - event['args']['usedHeapSize']) / 1000; result['gcAmount'] += amount; - var majorGc = event['args']['majorGc']; + const majorGc = event['args']['majorGc']; if (majorGc && majorGc) { result['majorGcTime'] += duration; } @@ -351,7 +351,7 @@ export class PerflogMetric extends Metric { private _addFrameMetrics(result: {[key: string]: number}, frameTimes: any[]) { result['frameTime.mean'] = frameTimes.reduce((a, b) => a + b, 0) / frameTimes.length; - var firstFrame = frameTimes[0]; + const firstFrame = frameTimes[0]; result['frameTime.worst'] = frameTimes.reduce((a, b) => a > b ? a : b, firstFrame); result['frameTime.best'] = frameTimes.reduce((a, b) => a < b ? a : b, firstFrame); result['frameTime.smooth'] = @@ -361,11 +361,11 @@ export class PerflogMetric extends Metric { private _markName(index: number) { return `${_MARK_NAME_PREFIX}${index}`; } } -var _MICRO_ITERATIONS_REGEX = /(.+)\*(\d+)$/; +const _MICRO_ITERATIONS_REGEX = /(.+)\*(\d+)$/; -var _MAX_RETRY_COUNT = 20; -var _MARK_NAME_PREFIX = 'benchpress'; +const _MAX_RETRY_COUNT = 20; +const _MARK_NAME_PREFIX = 'benchpress'; -var _MARK_NAME_FRAME_CAPUTRE = 'frameCapture'; +const _MARK_NAME_FRAME_CAPUTRE = 'frameCapture'; // using 17ms as a somewhat looser threshold, instead of 16.6666ms -var _FRAME_TIME_SMOOTH_THRESHOLD = 17; +const _FRAME_TIME_SMOOTH_THRESHOLD = 17; diff --git a/modules/@angular/benchpress/src/metric/user_metric.ts b/modules/@angular/benchpress/src/metric/user_metric.ts index 32f67df32f..19b8d57dfe 100644 --- a/modules/@angular/benchpress/src/metric/user_metric.ts +++ b/modules/@angular/benchpress/src/metric/user_metric.ts @@ -33,12 +33,12 @@ export class UserMetric extends Metric { endMeasure(restart: boolean): Promise<{[key: string]: any}> { let resolve: (result: any) => void; let reject: (error: any) => void; - let promise = new Promise((res, rej) => { + const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); - let adapter = this._wdAdapter; - let names = Object.keys(this._userMetrics); + const adapter = this._wdAdapter; + const names = Object.keys(this._userMetrics); function getAndClearValues() { Promise.all(names.map(name => adapter.executeScript(`return window.${name}`))) @@ -46,7 +46,7 @@ export class UserMetric extends Metric { if (values.every(v => typeof v === 'number')) { Promise.all(names.map(name => adapter.executeScript(`delete window.${name}`))) .then((_: any[]) => { - let map: {[k: string]: any} = {}; + const map: {[k: string]: any} = {}; for (let i = 0, n = names.length; i < n; i++) { map[names[i]] = values[i]; } diff --git a/modules/@angular/benchpress/src/reporter/console_reporter.ts b/modules/@angular/benchpress/src/reporter/console_reporter.ts index 96187a311f..832e16835a 100644 --- a/modules/@angular/benchpress/src/reporter/console_reporter.ts +++ b/modules/@angular/benchpress/src/reporter/console_reporter.ts @@ -28,8 +28,8 @@ export class ConsoleReporter extends Reporter { ]; private static _lpad(value: string, columnWidth: number, fill = ' ') { - var result = ''; - for (var i = 0; i < columnWidth - value.length; i++) { + let result = ''; + for (let i = 0; i < columnWidth - value.length; i++) { result += fill; } return result + value; @@ -49,7 +49,7 @@ export class ConsoleReporter extends Reporter { private _printDescription(sampleDescription: SampleDescription) { this._print(`BENCHMARK ${sampleDescription.id}`); this._print('Description:'); - var props = sortedProps(sampleDescription.description); + const props = sortedProps(sampleDescription.description); props.forEach((prop) => { this._print(`- ${prop}: ${sampleDescription.description[prop]}`); }); this._print('Metrics:'); this._metricNames.forEach((metricName) => { @@ -61,8 +61,8 @@ export class ConsoleReporter extends Reporter { } reportMeasureValues(measureValues: MeasureValues): Promise { - var formattedValues = this._metricNames.map(metricName => { - var value = measureValues.values[metricName]; + const formattedValues = this._metricNames.map(metricName => { + const value = measureValues.values[metricName]; return formatNum(value); }); this._printStringRow(formattedValues); diff --git a/modules/@angular/benchpress/src/reporter/json_file_reporter.ts b/modules/@angular/benchpress/src/reporter/json_file_reporter.ts index 18457d3044..b1d42a14cc 100644 --- a/modules/@angular/benchpress/src/reporter/json_file_reporter.ts +++ b/modules/@angular/benchpress/src/reporter/json_file_reporter.ts @@ -38,7 +38,7 @@ export class JsonFileReporter extends Reporter { sortedProps(this._description.metrics).forEach((metricName) => { stats[metricName] = formatStats(validSample, metricName); }); - var content = JSON.stringify( + const content = JSON.stringify( { 'description': this._description, 'stats': stats, @@ -46,7 +46,7 @@ export class JsonFileReporter extends Reporter { 'validSample': validSample, }, null, 2); - var filePath = `${this._path}/${this._description.id}_${this._now().getTime()}.json`; + const filePath = `${this._path}/${this._description.id}_${this._now().getTime()}.json`; return this._writeFile(filePath, content); } } diff --git a/modules/@angular/benchpress/src/reporter/multi_reporter.ts b/modules/@angular/benchpress/src/reporter/multi_reporter.ts index d3045f043a..fed4bb39b5 100644 --- a/modules/@angular/benchpress/src/reporter/multi_reporter.ts +++ b/modules/@angular/benchpress/src/reporter/multi_reporter.ts @@ -39,4 +39,4 @@ export class MultiReporter extends Reporter { } } -var _CHILDREN = new OpaqueToken('MultiReporter.children'); +const _CHILDREN = new OpaqueToken('MultiReporter.children'); diff --git a/modules/@angular/benchpress/src/reporter/util.ts b/modules/@angular/benchpress/src/reporter/util.ts index ff879621ea..db177a0d27 100644 --- a/modules/@angular/benchpress/src/reporter/util.ts +++ b/modules/@angular/benchpress/src/reporter/util.ts @@ -18,10 +18,10 @@ export function sortedProps(obj: {[key: string]: any}) { } export function formatStats(validSamples: MeasureValues[], metricName: string): string { - var samples = validSamples.map(measureValues => measureValues.values[metricName]); - var mean = Statistic.calculateMean(samples); - var cv = Statistic.calculateCoefficientOfVariation(samples, mean); - var formattedMean = formatNum(mean); + const samples = validSamples.map(measureValues => measureValues.values[metricName]); + const mean = Statistic.calculateMean(samples); + const cv = Statistic.calculateCoefficientOfVariation(samples, mean); + const formattedMean = formatNum(mean); // Note: Don't use the unicode character for +- as it might cause // hickups for consoles... return isNaN(cv) ? formattedMean : `${formattedMean}+-${Math.floor(cv)}%`; diff --git a/modules/@angular/benchpress/src/runner.ts b/modules/@angular/benchpress/src/runner.ts index f684cb12a5..6624590af2 100644 --- a/modules/@angular/benchpress/src/runner.ts +++ b/modules/@angular/benchpress/src/runner.ts @@ -45,7 +45,7 @@ export class Runner { providers?: Provider[], userMetrics?: {[key: string]: string} }): Promise { - var sampleProviders: Provider[] = [ + const sampleProviders: Provider[] = [ _DEFAULT_PROVIDERS, this._defaultProviders, {provide: Options.SAMPLE_ID, useValue: id}, {provide: Options.EXECUTE, useValue: execute} ]; @@ -62,33 +62,33 @@ export class Runner { sampleProviders.push(providers); } - var inj = ReflectiveInjector.resolveAndCreate(sampleProviders); - var adapter: WebDriverAdapter = inj.get(WebDriverAdapter); + const inj = ReflectiveInjector.resolveAndCreate(sampleProviders); + const adapter: WebDriverAdapter = inj.get(WebDriverAdapter); return Promise .all([adapter.capabilities(), adapter.executeScript('return window.navigator.userAgent;')]) .then((args) => { - var capabilities = args[0]; - var userAgent = args[1]; + const capabilities = args[0]; + const userAgent = args[1]; // This might still create instances twice. We are creating a new injector with all the // providers. // Only WebDriverAdapter is reused. // TODO vsavkin consider changing it when toAsyncFactory is added back or when child // injectors are handled better. - var injector = ReflectiveInjector.resolveAndCreate([ + const injector = ReflectiveInjector.resolveAndCreate([ sampleProviders, {provide: Options.CAPABILITIES, useValue: capabilities}, {provide: Options.USER_AGENT, useValue: userAgent}, {provide: WebDriverAdapter, useValue: adapter} ]); - var sampler = injector.get(Sampler); + const sampler = injector.get(Sampler); return sampler.sample(); }); } } -var _DEFAULT_PROVIDERS = [ +const _DEFAULT_PROVIDERS = [ Options.DEFAULT_PROVIDERS, Sampler.PROVIDERS, ConsoleReporter.PROVIDERS, diff --git a/modules/@angular/benchpress/src/sampler.ts b/modules/@angular/benchpress/src/sampler.ts index f080827e68..7e43f8d420 100644 --- a/modules/@angular/benchpress/src/sampler.ts +++ b/modules/@angular/benchpress/src/sampler.ts @@ -49,7 +49,7 @@ export class Sampler { } private _iterate(lastState: SampleState): Promise { - var resultPromise: Promise; + let resultPromise: Promise; if (this._prepare !== Options.NO_PREPARE) { resultPromise = this._driver.waitFor(this._prepare); } else { @@ -64,10 +64,10 @@ export class Sampler { } private _report(state: SampleState, metricValues: {[key: string]: any}): Promise { - var measureValues = new MeasureValues(state.completeSample.length, this._now(), metricValues); - var completeSample = state.completeSample.concat([measureValues]); - var validSample = this._validator.validate(completeSample); - var resultPromise = this._reporter.reportMeasureValues(measureValues); + const measureValues = new MeasureValues(state.completeSample.length, this._now(), metricValues); + const completeSample = state.completeSample.concat([measureValues]); + const validSample = this._validator.validate(completeSample); + let resultPromise = this._reporter.reportMeasureValues(measureValues); if (isPresent(validSample)) { resultPromise = resultPromise.then((_) => this._reporter.reportSample(completeSample, validSample)); diff --git a/modules/@angular/benchpress/src/statistic.ts b/modules/@angular/benchpress/src/statistic.ts index db1553ebbc..a82836b3a7 100644 --- a/modules/@angular/benchpress/src/statistic.ts +++ b/modules/@angular/benchpress/src/statistic.ts @@ -12,14 +12,14 @@ export class Statistic { } static calculateMean(samples: number[]) { - var total = 0; + let total = 0; // TODO: use reduce samples.forEach(x => total += x); return total / samples.length; } static calculateStandardDeviation(samples: number[], mean: number) { - var deviation = 0; + let deviation = 0; // TODO: use reduce samples.forEach(x => deviation += Math.pow(x - mean, 2)); deviation = deviation / (samples.length); @@ -30,9 +30,9 @@ export class Statistic { static calculateRegressionSlope( xValues: number[], xMean: number, yValues: number[], yMean: number) { // See http://en.wikipedia.org/wiki/Simple_linear_regression - var dividendSum = 0; - var divisorSum = 0; - for (var i = 0; i < xValues.length; i++) { + let dividendSum = 0; + let divisorSum = 0; + for (let i = 0; i < xValues.length; i++) { dividendSum += (xValues[i] - xMean) * (yValues[i] - yMean); divisorSum += Math.pow(xValues[i] - xMean, 2); } diff --git a/modules/@angular/benchpress/src/web_driver_extension.ts b/modules/@angular/benchpress/src/web_driver_extension.ts index 83e605c7f7..4979f1e773 100644 --- a/modules/@angular/benchpress/src/web_driver_extension.ts +++ b/modules/@angular/benchpress/src/web_driver_extension.ts @@ -34,7 +34,7 @@ export type PerfLogEvent = { */ export abstract class WebDriverExtension { static provideFirstSupported(childTokens: any[]): any[] { - var res = [ + const res = [ { provide: _CHILDREN, useFactory: (injector: Injector) => childTokens.map(token => injector.get(token)), @@ -43,7 +43,7 @@ export abstract class WebDriverExtension { { provide: WebDriverExtension, useFactory: (children: WebDriverExtension[], capabilities: {[key: string]: any}) => { - var delegate: WebDriverExtension; + let delegate: WebDriverExtension; children.forEach(extension => { if (extension.supports(capabilities)) { delegate = extension; @@ -101,4 +101,4 @@ export class PerfLogFeatures { } } -var _CHILDREN = new OpaqueToken('WebDriverExtension.children'); +const _CHILDREN = new OpaqueToken('WebDriverExtension.children'); diff --git a/modules/@angular/benchpress/src/webdriver/chrome_driver_extension.ts b/modules/@angular/benchpress/src/webdriver/chrome_driver_extension.ts index e89d4264e3..aa7cd0c955 100644 --- a/modules/@angular/benchpress/src/webdriver/chrome_driver_extension.ts +++ b/modules/@angular/benchpress/src/webdriver/chrome_driver_extension.ts @@ -34,7 +34,7 @@ export class ChromeDriverExtension extends WebDriverExtension { if (!userAgent) { return -1; } - var v = userAgent.split(/Chrom(e|ium)\//g)[2]; + let v = userAgent.split(/Chrom(e|ium)\//g)[2]; if (!v) { return -1; } @@ -52,7 +52,7 @@ export class ChromeDriverExtension extends WebDriverExtension { } timeEnd(name: string, restartName: string = null): Promise { - var script = `console.timeEnd('${name}');`; + let script = `console.timeEnd('${name}');`; if (restartName) { script += `console.time('${restartName}');`; } @@ -67,9 +67,9 @@ export class ChromeDriverExtension extends WebDriverExtension { return this._driver.executeScript('1+1') .then((_) => this._driver.logs('performance')) .then((entries) => { - var events: PerfLogEvent[] = []; + const events: PerfLogEvent[] = []; entries.forEach(entry => { - var message = JSON.parse(entry['message'])['message']; + const message = JSON.parse(entry['message'])['message']; if (message['method'] === 'Tracing.dataCollected') { events.push(message['params']); } @@ -95,8 +95,8 @@ export class ChromeDriverExtension extends WebDriverExtension { } private _convertEvent(event: {[key: string]: any}, categories: string[]) { - var name = event['name']; - var args = event['args']; + const name = event['name']; + const args = event['args']; if (this._isEvent(categories, name, ['blink.console'])) { return normalizeEvent(event, {'name': name}); } else if (this._isEvent( @@ -109,7 +109,7 @@ export class ChromeDriverExtension extends WebDriverExtension { // new surfaces framework (not broadly enabled yet) // 3rd choice: BenchmarkInstrumentation::ImplThreadRenderingStats - fallback event that is // always available if something is rendered - var frameCount = event['args']['data']['frame_count']; + const frameCount = event['args']['data']['frame_count']; if (frameCount > 1) { throw new Error('multi-frame render stats not supported'); } @@ -122,14 +122,14 @@ export class ChromeDriverExtension extends WebDriverExtension { categories, name, ['disabled-by-default-devtools.timeline'], 'CompositeLayers')) { return normalizeEvent(event, {'name': 'render'}); } else if (this._isEvent(categories, name, ['devtools.timeline', 'v8'], 'MajorGC')) { - var normArgs = { + const normArgs = { 'majorGc': true, 'usedHeapSize': args['usedHeapSizeAfter'] !== undefined ? args['usedHeapSizeAfter'] : args['usedHeapSizeBefore'] }; return normalizeEvent(event, {'name': 'gc', 'args': normArgs}); } else if (this._isEvent(categories, name, ['devtools.timeline', 'v8'], 'MinorGC')) { - var normArgs = { + const normArgs = { 'majorGc': false, 'usedHeapSize': args['usedHeapSizeAfter'] !== undefined ? args['usedHeapSizeAfter'] : args['usedHeapSizeBefore'] @@ -151,11 +151,11 @@ export class ChromeDriverExtension extends WebDriverExtension { this._isEvent(categories, name, ['devtools.timeline'], 'Paint')) { return normalizeEvent(event, {'name': 'render'}); } else if (this._isEvent(categories, name, ['devtools.timeline'], 'ResourceReceivedData')) { - let normArgs = {'encodedDataLength': args['data']['encodedDataLength']}; + const normArgs = {'encodedDataLength': args['data']['encodedDataLength']}; return normalizeEvent(event, {'name': 'receivedData', 'args': normArgs}); } else if (this._isEvent(categories, name, ['devtools.timeline'], 'ResourceSendRequest')) { - let data = args['data']; - let normArgs = {'url': data['url'], 'method': data['requestMethod']}; + const data = args['data']; + const normArgs = {'url': data['url'], 'method': data['requestMethod']}; return normalizeEvent(event, {'name': 'sendRequest', 'args': normArgs}); } else if (this._isEvent(categories, name, ['blink.user_timing'], 'navigationStart')) { return normalizeEvent(event, {'name': 'navigationStart'}); @@ -168,7 +168,7 @@ export class ChromeDriverExtension extends WebDriverExtension { private _isEvent( eventCategories: string[], eventName: string, expectedCategories: string[], expectedName: string = null): boolean { - var hasCategories = expectedCategories.reduce( + const hasCategories = expectedCategories.reduce( (value, cat) => value && eventCategories.indexOf(cat) !== -1, true); return !expectedName ? hasCategories : hasCategories && eventName === expectedName; } @@ -183,7 +183,7 @@ export class ChromeDriverExtension extends WebDriverExtension { } function normalizeEvent(chromeEvent: {[key: string]: any}, data: PerfLogEvent): PerfLogEvent { - var ph = chromeEvent['ph'].toUpperCase(); + let ph = chromeEvent['ph'].toUpperCase(); if (ph === 'S') { ph = 'B'; } else if (ph === 'F') { @@ -192,16 +192,16 @@ function normalizeEvent(chromeEvent: {[key: string]: any}, data: PerfLogEvent): // mark events from navigation timing ph = 'I'; } - var result: {[key: string]: any} = + const result: {[key: string]: any} = {'pid': chromeEvent['pid'], 'ph': ph, 'cat': 'timeline', 'ts': chromeEvent['ts'] / 1000}; if (ph === 'X') { - var dur = chromeEvent['dur']; + let dur = chromeEvent['dur']; if (dur === undefined) { dur = chromeEvent['tdur']; } result['dur'] = !dur ? 0.0 : dur / 1000; } - for (let prop in data) { + for (const prop in data) { result[prop] = data[prop]; } return result; diff --git a/modules/@angular/benchpress/src/webdriver/firefox_driver_extension.ts b/modules/@angular/benchpress/src/webdriver/firefox_driver_extension.ts index 46ee36a87d..e59c751edc 100644 --- a/modules/@angular/benchpress/src/webdriver/firefox_driver_extension.ts +++ b/modules/@angular/benchpress/src/webdriver/firefox_driver_extension.ts @@ -34,7 +34,7 @@ export class FirefoxDriverExtension extends WebDriverExtension { } timeEnd(name: string, restartName: string = null): Promise { - var script = 'window.markEnd("' + name + '");'; + let script = 'window.markEnd("' + name + '");'; if (isPresent(restartName)) { script += 'window.markStart("' + restartName + '");'; } diff --git a/modules/@angular/benchpress/src/webdriver/ios_driver_extension.ts b/modules/@angular/benchpress/src/webdriver/ios_driver_extension.ts index 0cc82d811e..5f55bc1111 100644 --- a/modules/@angular/benchpress/src/webdriver/ios_driver_extension.ts +++ b/modules/@angular/benchpress/src/webdriver/ios_driver_extension.ts @@ -25,7 +25,7 @@ export class IOsDriverExtension extends WebDriverExtension { } timeEnd(name: string, restartName: string = null): Promise { - var script = `console.timeEnd('${name}');`; + let script = `console.timeEnd('${name}');`; if (isPresent(restartName)) { script += `console.time('${restartName}');`; } @@ -39,9 +39,9 @@ export class IOsDriverExtension extends WebDriverExtension { return this._driver.executeScript('1+1') .then((_) => this._driver.logs('performance')) .then((entries) => { - var records: any[] = []; + const records: any[] = []; entries.forEach(entry => { - var message = JSON.parse(entry['message'])['message']; + const message = JSON.parse(entry['message'])['message']; if (message['method'] === 'Timeline.eventRecorded') { records.push(message['params']['record']); } @@ -56,11 +56,11 @@ export class IOsDriverExtension extends WebDriverExtension { events = []; } records.forEach((record) => { - var endEvent: PerfLogEvent = null; - var type = record['type']; - var data = record['data']; - var startTime = record['startTime']; - var endTime = record['endTime']; + let endEvent: PerfLogEvent = null; + const type = record['type']; + const data = record['data']; + const startTime = record['startTime']; + const endTime = record['endTime']; if (type === 'FunctionCall' && (data == null || data['scriptName'] !== 'InjectedScript')) { events.push(createStartEvent('script', startTime)); @@ -95,7 +95,7 @@ export class IOsDriverExtension extends WebDriverExtension { function createEvent( ph: 'X' | 'B' | 'E' | 'B' | 'E', name: string, time: number, args: any = null) { - var result: PerfLogEvent = { + const result: PerfLogEvent = { 'cat': 'timeline', 'name': name, 'ts': time, diff --git a/modules/@angular/benchpress/test/firefox_extension/conf.ts b/modules/@angular/benchpress/test/firefox_extension/conf.ts index 8ceeeead85..4be1898f2b 100644 --- a/modules/@angular/benchpress/test/firefox_extension/conf.ts +++ b/modules/@angular/benchpress/test/firefox_extension/conf.ts @@ -8,7 +8,7 @@ require('core-js'); require('reflect-metadata'); -var testHelper = require('../../src/firefox_extension/lib/test_helper.js'); +const testHelper = require('../../src/firefox_extension/lib/test_helper.js'); exports.config = { specs: ['spec.js', 'sample_benchmark.js'], diff --git a/modules/@angular/benchpress/test/firefox_extension/parser_util_spec.ts b/modules/@angular/benchpress/test/firefox_extension/parser_util_spec.ts index df59089955..171ad16d2b 100644 --- a/modules/@angular/benchpress/test/firefox_extension/parser_util_spec.ts +++ b/modules/@angular/benchpress/test/firefox_extension/parser_util_spec.ts @@ -10,10 +10,10 @@ import {convertPerfProfileToEvents} from '../../src/firefox_extension/lib/parser function assertEventsEqual(actualEvents: any[], expectedEvents: any[]) { expect(actualEvents.length == expectedEvents.length); - for (var i = 0; i < actualEvents.length; ++i) { - var actualEvent = actualEvents[i]; - var expectedEvent = expectedEvents[i]; - for (var key in actualEvent) { + for (let i = 0; i < actualEvents.length; ++i) { + const actualEvent = actualEvents[i]; + const expectedEvent = expectedEvents[i]; + for (const key in actualEvent) { expect(actualEvent[key]).toEqual(expectedEvent[key]); } } @@ -22,17 +22,17 @@ function assertEventsEqual(actualEvents: any[], expectedEvents: any[]) { export function main() { describe('convertPerfProfileToEvents', function() { it('should convert single instantaneous event', function() { - var profileData = { + const profileData = { threads: [ {samples: [{time: 1, frames: [{location: 'FirefoxDriver.prototype.executeScript'}]}]} ] }; - var perfEvents = convertPerfProfileToEvents(profileData); + const perfEvents = convertPerfProfileToEvents(profileData); assertEventsEqual(perfEvents, [{ph: 'X', ts: 1, name: 'script'}]); }); it('should convert single non-instantaneous event', function() { - var profileData = { + const profileData = { threads: [{ samples: [ {time: 1, frames: [{location: 'FirefoxDriver.prototype.executeScript'}]}, @@ -41,13 +41,13 @@ export function main() { ] }] }; - var perfEvents = convertPerfProfileToEvents(profileData); + const perfEvents = convertPerfProfileToEvents(profileData); assertEventsEqual( perfEvents, [{ph: 'B', ts: 1, name: 'script'}, {ph: 'E', ts: 100, name: 'script'}]); }); it('should convert multiple instantaneous events', function() { - var profileData = { + const profileData = { threads: [{ samples: [ {time: 1, frames: [{location: 'FirefoxDriver.prototype.executeScript'}]}, @@ -55,13 +55,13 @@ export function main() { ] }] }; - var perfEvents = convertPerfProfileToEvents(profileData); + const perfEvents = convertPerfProfileToEvents(profileData); assertEventsEqual( perfEvents, [{ph: 'X', ts: 1, name: 'script'}, {ph: 'X', ts: 2, name: 'render'}]); }); it('should convert multiple mixed events', function() { - var profileData = { + const profileData = { threads: [{ samples: [ {time: 1, frames: [{location: 'FirefoxDriver.prototype.executeScript'}]}, @@ -71,7 +71,7 @@ export function main() { ] }] }; - var perfEvents = convertPerfProfileToEvents(profileData); + const perfEvents = convertPerfProfileToEvents(profileData); assertEventsEqual(perfEvents, [ {ph: 'X', ts: 1, name: 'script'}, {ph: 'X', ts: 2, name: 'render'}, {ph: 'B', ts: 5, name: 'script'}, {ph: 'E', ts: 10, name: 'script'} @@ -79,13 +79,13 @@ export function main() { }); it('should add args to gc events', function() { - var profileData = {threads: [{samples: [{time: 1, frames: [{location: 'forceGC'}]}]}]}; - var perfEvents = convertPerfProfileToEvents(profileData); + const profileData = {threads: [{samples: [{time: 1, frames: [{location: 'forceGC'}]}]}]}; + const perfEvents = convertPerfProfileToEvents(profileData); assertEventsEqual(perfEvents, [{ph: 'X', ts: 1, name: 'gc', args: {usedHeapSize: 0}}]); }); it('should skip unknown events', function() { - var profileData = { + const profileData = { threads: [{ samples: [ {time: 1, frames: [{location: 'FirefoxDriver.prototype.executeScript'}]}, @@ -93,7 +93,7 @@ export function main() { ] }] }; - var perfEvents = convertPerfProfileToEvents(profileData); + const perfEvents = convertPerfProfileToEvents(profileData); assertEventsEqual(perfEvents, [{ph: 'X', ts: 1, name: 'script'}]); }); }); diff --git a/modules/@angular/benchpress/test/firefox_extension/sample_benchmark.ts b/modules/@angular/benchpress/test/firefox_extension/sample_benchmark.ts index cbaac9cb95..914d6a98a6 100644 --- a/modules/@angular/benchpress/test/firefox_extension/sample_benchmark.ts +++ b/modules/@angular/benchpress/test/firefox_extension/sample_benchmark.ts @@ -8,8 +8,8 @@ import {$, browser} from 'protractor'; -var benchpress = require('../../index.js'); -var runner = new benchpress.Runner([ +const benchpress = require('../../index.js'); +const runner = new benchpress.Runner([ // use protractor as Webdriver client benchpress.SeleniumWebDriverAdapter.PROTRACTOR_PROVIDERS, // use RegressionSlopeValidator to validate samples diff --git a/modules/@angular/benchpress/test/firefox_extension/spec.ts b/modules/@angular/benchpress/test/firefox_extension/spec.ts index ecc8fb9dca..bb81aeb29b 100644 --- a/modules/@angular/benchpress/test/firefox_extension/spec.ts +++ b/modules/@angular/benchpress/test/firefox_extension/spec.ts @@ -8,9 +8,9 @@ import {browser} from 'protractor'; -var assertEventsContainsName = function(events: any[], eventName: string) { - var found = false; - for (var i = 0; i < events.length; ++i) { +const assertEventsContainsName = function(events: any[], eventName: string) { + let found = false; + for (let i = 0; i < events.length; ++i) { if (events[i].name == eventName) { found = true; break; @@ -20,7 +20,7 @@ var assertEventsContainsName = function(events: any[], eventName: string) { }; describe('firefox extension', function() { - var TEST_URL = 'http://localhost:8001/playground/src/hello_world/index.html'; + const TEST_URL = 'http://localhost:8001/playground/src/hello_world/index.html'; it('should measure performance', function() { browser.sleep(3000); // wait for extension to load diff --git a/modules/@angular/benchpress/test/metric/multi_metric_spec.ts b/modules/@angular/benchpress/test/metric/multi_metric_spec.ts index 9ee463253f..e845dd9c9c 100644 --- a/modules/@angular/benchpress/test/metric/multi_metric_spec.ts +++ b/modules/@angular/benchpress/test/metric/multi_metric_spec.ts @@ -11,12 +11,12 @@ import {Metric, MultiMetric, ReflectiveInjector} from '../../index'; export function main() { function createMetric(ids: any[]) { - var m = ReflectiveInjector - .resolveAndCreate([ - ids.map(id => ({provide: id, useValue: new MockMetric(id)})), - MultiMetric.provideWith(ids) - ]) - .get(MultiMetric); + const m = ReflectiveInjector + .resolveAndCreate([ + ids.map(id => ({provide: id, useValue: new MockMetric(id)})), + MultiMetric.provideWith(ids) + ]) + .get(MultiMetric); return Promise.resolve(m); } @@ -56,13 +56,13 @@ class MockMetric extends Metric { beginMeasure(): Promise { return Promise.resolve(`${this._id}_beginMeasure`); } endMeasure(restart: boolean): Promise<{[key: string]: any}> { - var result: {[key: string]: any} = {}; + const result: {[key: string]: any} = {}; result[this._id] = {'restart': restart}; return Promise.resolve(result); } describe(): {[key: string]: string} { - var result: {[key: string]: string} = {}; + const result: {[key: string]: string} = {}; result[this._id] = 'describe'; return result; } diff --git a/modules/@angular/benchpress/test/metric/perflog_metric_spec.ts b/modules/@angular/benchpress/test/metric/perflog_metric_spec.ts index bf933e1ad8..a160e0885e 100644 --- a/modules/@angular/benchpress/test/metric/perflog_metric_spec.ts +++ b/modules/@angular/benchpress/test/metric/perflog_metric_spec.ts @@ -14,8 +14,8 @@ import {isPresent} from '../../src/facade/lang'; import {TraceEventFactory} from '../trace_event_factory'; export function main() { - var commandLog: any[]; - var eventFactory = new TraceEventFactory('timeline', 'pid0'); + let commandLog: any[]; + const eventFactory = new TraceEventFactory('timeline', 'pid0'); function createMetric( perfLogs: PerfLogEvent[], perfLogFeatures: PerfLogFeatures, @@ -34,7 +34,7 @@ export function main() { if (!microMetrics) { microMetrics = {}; } - var providers: Provider[] = [ + const providers: Provider[] = [ Options.DEFAULT_PROVIDERS, PerflogMetric.PROVIDERS, {provide: Options.MICRO_METRICS, useValue: microMetrics}, { provide: PerflogMetric.SET_TIMEOUT, @@ -66,7 +66,7 @@ export function main() { describe('perflog metric', () => { function sortedKeys(stringMap: {[key: string]: any}) { - var res: string[] = []; + const res: string[] = []; res.push(...Object.keys(stringMap)); res.sort(); return res; @@ -102,15 +102,15 @@ export function main() { }); it('should describe itself based on micro metrics', () => { - var description = + const description = createMetric([[]], null, {microMetrics: {'myMicroMetric': 'someDesc'}}).describe(); expect(description['myMicroMetric']).toEqual('someDesc'); }); it('should describe itself if frame capture is requested and available', () => { - var description = createMetric([[]], new PerfLogFeatures({frameCapture: true}), { - captureFrames: true - }).describe(); + const description = createMetric([[]], new PerfLogFeatures({frameCapture: true}), { + captureFrames: true + }).describe(); expect(description['frameTime.mean']).not.toContain('WARNING'); expect(description['frameTime.best']).not.toContain('WARNING'); expect(description['frameTime.worst']).not.toContain('WARNING'); @@ -118,9 +118,9 @@ export function main() { }); it('should describe itself if frame capture is requested and not available', () => { - var description = createMetric([[]], new PerfLogFeatures({frameCapture: false}), { - captureFrames: true - }).describe(); + const description = createMetric([[]], new PerfLogFeatures({frameCapture: false}), { + captureFrames: true + }).describe(); expect(description['frameTime.mean']).toContain('WARNING'); expect(description['frameTime.best']).toContain('WARNING'); expect(description['frameTime.worst']).toContain('WARNING'); @@ -131,7 +131,7 @@ export function main() { it('should not force gc and mark the timeline', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var metric = createMetric([[]], null); + const metric = createMetric([[]], null); metric.beginMeasure().then((_) => { expect(commandLog).toEqual([['timeBegin', 'benchpress0']]); @@ -141,7 +141,7 @@ export function main() { it('should force gc and mark the timeline', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var metric = createMetric([[]], null, {forceGc: true}); + const metric = createMetric([[]], null, {forceGc: true}); metric.beginMeasure().then((_) => { expect(commandLog).toEqual([['gc'], ['timeBegin', 'benchpress0']]); @@ -155,11 +155,11 @@ export function main() { it('should mark and aggregate events in between the marks', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var events = [[ + const events = [[ eventFactory.markStart('benchpress0', 0), eventFactory.start('script', 4), eventFactory.end('script', 6), eventFactory.markEnd('benchpress0', 10) ]]; - var metric = createMetric(events, null); + const metric = createMetric(events, null); metric.beginMeasure().then((_) => metric.endMeasure(false)).then((data) => { expect(commandLog).toEqual([ ['timeBegin', 'benchpress0'], ['timeEnd', 'benchpress0', null], 'readPerfLog' @@ -172,13 +172,13 @@ export function main() { it('should mark and aggregate events since navigationStart', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var events = [[ + const events = [[ eventFactory.markStart('benchpress0', 0), eventFactory.start('script', 4), eventFactory.end('script', 6), eventFactory.instant('navigationStart', 7), eventFactory.start('script', 8), eventFactory.end('script', 9), eventFactory.markEnd('benchpress0', 10) ]]; - var metric = createMetric(events, null); + const metric = createMetric(events, null); metric.beginMeasure().then((_) => metric.endMeasure(false)).then((data) => { expect(data['scriptTime']).toBe(1); @@ -187,7 +187,7 @@ export function main() { })); it('should restart timing', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var events = [ + const events = [ [ eventFactory.markStart('benchpress0', 0), eventFactory.markEnd('benchpress0', 1), @@ -195,7 +195,7 @@ export function main() { ], [eventFactory.markEnd('benchpress1', 3)] ]; - var metric = createMetric(events, null); + const metric = createMetric(events, null); metric.beginMeasure() .then((_) => metric.endMeasure(true)) .then((_) => metric.endMeasure(true)) @@ -211,7 +211,7 @@ export function main() { it('should loop and aggregate until the end mark is present', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var events = [ + const events = [ [eventFactory.markStart('benchpress0', 0), eventFactory.start('script', 1)], [eventFactory.end('script', 2)], [ @@ -219,7 +219,7 @@ export function main() { eventFactory.markEnd('benchpress0', 10) ] ]; - var metric = createMetric(events, null); + const metric = createMetric(events, null); metric.beginMeasure().then((_) => metric.endMeasure(false)).then((data) => { expect(commandLog).toEqual([ ['timeBegin', 'benchpress0'], ['timeEnd', 'benchpress0', null], 'readPerfLog', @@ -233,7 +233,7 @@ export function main() { it('should store events after the end mark for the next call', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var events = [ + const events = [ [ eventFactory.markStart('benchpress0', 0), eventFactory.markEnd('benchpress0', 1), eventFactory.markStart('benchpress1', 1), eventFactory.start('script', 1), @@ -244,7 +244,7 @@ export function main() { eventFactory.markEnd('benchpress1', 6) ] ]; - var metric = createMetric(events, null); + const metric = createMetric(events, null); metric.beginMeasure() .then((_) => metric.endMeasure(true)) .then((data) => { @@ -263,7 +263,7 @@ export function main() { })); describe('with forced gc', () => { - var events: PerfLogEvent[][]; + let events: PerfLogEvent[][]; beforeEach(() => { events = [[ eventFactory.markStart('benchpress0', 0), eventFactory.start('script', 4), @@ -276,7 +276,7 @@ export function main() { }); it('should measure forced gc', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var metric = createMetric(events, null, {forceGc: true}); + const metric = createMetric(events, null, {forceGc: true}); metric.beginMeasure().then((_) => metric.endMeasure(false)).then((data) => { expect(commandLog).toEqual([ ['gc'], ['timeBegin', 'benchpress0'], ['timeEnd', 'benchpress0', 'benchpress1'], @@ -291,7 +291,7 @@ export function main() { it('should restart after the forced gc if needed', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var metric = createMetric(events, null, {forceGc: true}); + const metric = createMetric(events, null, {forceGc: true}); metric.beginMeasure().then((_) => metric.endMeasure(true)).then((data) => { expect(commandLog[5]).toEqual(['timeEnd', 'benchpress1', 'benchpress2']); @@ -313,7 +313,7 @@ export function main() { } = {}) { events.unshift(eventFactory.markStart('benchpress0', 0)); events.push(eventFactory.markEnd('benchpress0', 10)); - var metric = createMetric([events], null, { + const metric = createMetric([events], null, { microMetrics: microMetrics, captureFrames: captureFrames, receivedData: receivedData, @@ -502,8 +502,8 @@ export function main() { it('should ignore events from different processed as the start mark', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var otherProcessEventFactory = new TraceEventFactory('timeline', 'pid1'); - var metric = createMetric( + const otherProcessEventFactory = new TraceEventFactory('timeline', 'pid1'); + const metric = createMetric( [[ eventFactory.markStart('benchpress0', 0), eventFactory.start('script', 0, null), eventFactory.end('script', 5, null), @@ -685,7 +685,7 @@ class MockDriverExtension extends WebDriverExtension { readPerfLog(): Promise { this._commandLog.push('readPerfLog'); if (this._perfLogs.length > 0) { - var next = this._perfLogs[0]; + const next = this._perfLogs[0]; this._perfLogs.shift(); return Promise.resolve(next); } else { diff --git a/modules/@angular/benchpress/test/metric/user_metric_spec.ts b/modules/@angular/benchpress/test/metric/user_metric_spec.ts index 22ebb45276..c064c9d9f7 100644 --- a/modules/@angular/benchpress/test/metric/user_metric_spec.ts +++ b/modules/@angular/benchpress/test/metric/user_metric_spec.ts @@ -12,7 +12,7 @@ import {AsyncTestCompleter, describe, expect, inject, it} from '@angular/core/te import {Options, PerfLogEvent, PerfLogFeatures, UserMetric, WebDriverAdapter} from '../../index'; export function main() { - var wdAdapter: MockDriverAdapter; + let wdAdapter: MockDriverAdapter; function createMetric( perfLogs: PerfLogEvent[], perfLogFeatures: PerfLogFeatures, @@ -25,7 +25,7 @@ export function main() { userMetrics = {}; } wdAdapter = new MockDriverAdapter(); - var providers: Provider[] = [ + const providers: Provider[] = [ Options.DEFAULT_PROVIDERS, UserMetric.PROVIDERS, {provide: Options.USER_METRICS, useValue: userMetrics}, {provide: WebDriverAdapter, useValue: wdAdapter} @@ -45,7 +45,7 @@ export function main() { describe('endMeasure', () => { it('should stop measuring when all properties have numeric values', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - let metric = createMetric( + const metric = createMetric( [[]], new PerfLogFeatures(), {userMetrics: {'loadTime': 'time to load', 'content': 'time to see content'}}); metric.beginMeasure() @@ -71,7 +71,7 @@ class MockDriverAdapter extends WebDriverAdapter { executeScript(script: string): any { // Just handles `return window.propName` ignores `delete window.propName`. if (script.indexOf('return window.') == 0) { - let metricName = script.substring('return window.'.length); + const metricName = script.substring('return window.'.length); return Promise.resolve(this.data[metricName]); } else if (script.indexOf('delete window.') == 0) { return Promise.resolve(null); diff --git a/modules/@angular/benchpress/test/reporter/console_reporter_spec.ts b/modules/@angular/benchpress/test/reporter/console_reporter_spec.ts index 28d962809f..da334fcc23 100644 --- a/modules/@angular/benchpress/test/reporter/console_reporter_spec.ts +++ b/modules/@angular/benchpress/test/reporter/console_reporter_spec.ts @@ -14,8 +14,8 @@ import {isBlank, isPresent} from '../../src/facade/lang'; export function main() { describe('console reporter', () => { - var reporter: ConsoleReporter; - var log: string[]; + let reporter: ConsoleReporter; + let log: string[]; function createReporter( {columnWidth = null, sampleId = null, descriptions = null, metrics = null}: { @@ -31,7 +31,7 @@ export function main() { if (sampleId == null) { sampleId = 'null'; } - var providers: Provider[] = [ + const providers: Provider[] = [ ConsoleReporter.PROVIDERS, { provide: SampleDescription, useValue: new SampleDescription(sampleId, descriptions, metrics) diff --git a/modules/@angular/benchpress/test/reporter/json_file_reporter_spec.ts b/modules/@angular/benchpress/test/reporter/json_file_reporter_spec.ts index 6d2c9d9cde..c99d3a34a7 100644 --- a/modules/@angular/benchpress/test/reporter/json_file_reporter_spec.ts +++ b/modules/@angular/benchpress/test/reporter/json_file_reporter_spec.ts @@ -13,7 +13,7 @@ import {isPresent} from '../../src/facade/lang'; export function main() { describe('file reporter', () => { - var loggedFile: any; + let loggedFile: any; function createReporter({sampleId, descriptions, metrics, path}: { sampleId: string, @@ -21,7 +21,7 @@ export function main() { metrics: {[key: string]: string}, path: string }) { - var providers = [ + const providers = [ JsonFileReporter.PROVIDERS, { provide: SampleDescription, useValue: new SampleDescription(sampleId, descriptions, metrics) @@ -49,9 +49,9 @@ export function main() { .reportSample( [mv(0, 0, {'a': 3, 'b': 6})], [mv(0, 0, {'a': 3, 'b': 6}), mv(1, 1, {'a': 5, 'b': 9})]); - var regExp = /somePath\/someId_\d+\.json/; + const regExp = /somePath\/someId_\d+\.json/; expect(isPresent(loggedFile['filename'].match(regExp))).toBe(true); - var parsedContent = JSON.parse(loggedFile['content']); + const parsedContent = JSON.parse(loggedFile['content']); expect(parsedContent).toEqual({ 'description': { 'id': 'someId', diff --git a/modules/@angular/benchpress/test/reporter/multi_reporter_spec.ts b/modules/@angular/benchpress/test/reporter/multi_reporter_spec.ts index f52588d808..61fdef5719 100644 --- a/modules/@angular/benchpress/test/reporter/multi_reporter_spec.ts +++ b/modules/@angular/benchpress/test/reporter/multi_reporter_spec.ts @@ -12,12 +12,12 @@ import {MeasureValues, MultiReporter, ReflectiveInjector, Reporter} from '../../ export function main() { function createReporters(ids: any[]) { - var r = ReflectiveInjector - .resolveAndCreate([ - ids.map(id => ({provide: id, useValue: new MockReporter(id)})), - MultiReporter.provideWith(ids) - ]) - .get(MultiReporter); + const r = ReflectiveInjector + .resolveAndCreate([ + ids.map(id => ({provide: id, useValue: new MockReporter(id)})), + MultiReporter.provideWith(ids) + ]) + .get(MultiReporter); return Promise.resolve(r); } @@ -25,7 +25,7 @@ export function main() { it('should reportMeasureValues to all', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var mv = new MeasureValues(0, new Date(), {}); + const mv = new MeasureValues(0, new Date(), {}); createReporters(['m1', 'm2']).then((r) => r.reportMeasureValues(mv)).then((values) => { expect(values).toEqual([{'id': 'm1', 'values': mv}, {'id': 'm2', 'values': mv}]); @@ -34,9 +34,9 @@ export function main() { })); it('should reportSample to call', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var completeSample = + const completeSample = [new MeasureValues(0, new Date(), {}), new MeasureValues(1, new Date(), {})]; - var validSample = [completeSample[1]]; + const validSample = [completeSample[1]]; createReporters(['m1', 'm2']) .then((r) => r.reportSample(completeSample, validSample)) diff --git a/modules/@angular/benchpress/test/runner_spec.ts b/modules/@angular/benchpress/test/runner_spec.ts index d5399a247e..d5a82eaea6 100644 --- a/modules/@angular/benchpress/test/runner_spec.ts +++ b/modules/@angular/benchpress/test/runner_spec.ts @@ -12,8 +12,8 @@ import {Injector, Metric, Options, ReflectiveInjector, Runner, SampleDescription export function main() { describe('runner', () => { - var injector: ReflectiveInjector; - var runner: Runner; + let injector: ReflectiveInjector; + let runner: Runner; function createRunner(defaultProviders: any[] = null): Runner { if (!defaultProviders) { @@ -76,7 +76,7 @@ export function main() { it('should provide Options.EXECUTE', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var execute = () => {}; + const execute = () => {}; createRunner().sample({id: 'someId', execute: execute}).then((_) => { expect(injector.get(Options.EXECUTE)).toEqual(execute); async.done(); @@ -85,7 +85,7 @@ export function main() { it('should provide Options.PREPARE', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var prepare = () => {}; + const prepare = () => {}; createRunner().sample({id: 'someId', prepare: prepare}).then((_) => { expect(injector.get(Options.PREPARE)).toEqual(prepare); async.done(); diff --git a/modules/@angular/benchpress/test/sampler_spec.ts b/modules/@angular/benchpress/test/sampler_spec.ts index f93bc35f4c..7a87d8687e 100644 --- a/modules/@angular/benchpress/test/sampler_spec.ts +++ b/modules/@angular/benchpress/test/sampler_spec.ts @@ -12,10 +12,10 @@ import {MeasureValues, Metric, Options, ReflectiveInjector, Reporter, Sampler, V import {isBlank, isPresent} from '../src/facade/lang'; export function main() { - var EMPTY_EXECUTE = () => {}; + const EMPTY_EXECUTE = () => {}; describe('sampler', () => { - var sampler: Sampler; + let sampler: Sampler; function createSampler({driver, metric, reporter, validator, prepare, execute}: { driver?: any, @@ -25,7 +25,7 @@ export function main() { prepare?: any, execute?: any } = {}) { - var time = 1000; + let time = 1000; if (!metric) { metric = new MockMetric([]); } @@ -35,7 +35,7 @@ export function main() { if (isBlank(driver)) { driver = new MockDriverAdapter([]); } - var providers = [ + const providers = [ Options.DEFAULT_PROVIDERS, Sampler.PROVIDERS, {provide: Metric, useValue: metric}, {provide: Reporter, useValue: reporter}, {provide: WebDriverAdapter, useValue: driver}, {provide: Options.EXECUTE, useValue: execute}, {provide: Validator, useValue: validator}, @@ -50,10 +50,10 @@ export function main() { it('should call the prepare and execute callbacks using WebDriverAdapter.waitFor', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var log: any[] = []; - var count = 0; - var driver = new MockDriverAdapter([], (callback: Function) => { - var result = callback(); + const log: any[] = []; + let count = 0; + const driver = new MockDriverAdapter([], (callback: Function) => { + const result = callback(); log.push(result); return Promise.resolve(result); }); @@ -73,8 +73,8 @@ export function main() { it('should call prepare, beginMeasure, execute, endMeasure for every iteration', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var workCount = 0; - var log: any[] = []; + let workCount = 0; + const log: any[] = []; createSampler({ metric: createCountingMetric(log), validator: createCountingValidator(2), @@ -98,8 +98,8 @@ export function main() { it('should call execute, endMeasure for every iteration if there is no prepare callback', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var log: any[] = []; - var workCount = 0; + const log: any[] = []; + let workCount = 0; createSampler({ metric: createCountingMetric(log), validator: createCountingValidator(2), @@ -120,14 +120,14 @@ export function main() { it('should only collect metrics for execute and ignore metrics from prepare', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var scriptTime = 0; - var iterationCount = 1; + let scriptTime = 0; + let iterationCount = 1; createSampler({ validator: createCountingValidator(2), metric: new MockMetric( [], () => { - var result = Promise.resolve({'script': scriptTime}); + const result = Promise.resolve({'script': scriptTime}); scriptTime = 0; return result; }), @@ -147,8 +147,8 @@ export function main() { it('should call the validator for every execution and store the valid sample', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var log: any[] = []; - var validSample = [mv(null, null, {})]; + const log: any[] = []; + const validSample = [mv(null, null, {})]; createSampler({ metric: createCountingMetric(), @@ -174,8 +174,8 @@ export function main() { it('should report the metric values', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var log: any[] = []; - var validSample = [mv(null, null, {})]; + const log: any[] = []; + const validSample = [mv(null, null, {})]; createSampler({ validator: createCountingValidator(2, validSample), metric: createCountingMetric(), @@ -220,7 +220,7 @@ function createCountingValidator( } function createCountingMetric(log: any[] = []) { - var scriptTime = 0; + let scriptTime = 0; return new MockMetric(log, () => ({'script': scriptTime++})); } @@ -239,7 +239,8 @@ class MockDriverAdapter extends WebDriverAdapter { class MockValidator extends Validator { constructor(private _log: any[] = [], private _validate: Function = null) { super(); } validate(completeSample: MeasureValues[]): MeasureValues[] { - var stableSample = isPresent(this._validate) ? this._validate(completeSample) : completeSample; + const stableSample = + isPresent(this._validate) ? this._validate(completeSample) : completeSample; this._log.push(['validate', completeSample, stableSample]); return stableSample; } @@ -252,7 +253,7 @@ class MockMetric extends Metric { return Promise.resolve(null); } endMeasure(restart: boolean) { - var measureValues = isPresent(this._endMeasure) ? this._endMeasure() : {}; + const measureValues = isPresent(this._endMeasure) ? this._endMeasure() : {}; this._log.push(['endMeasure', restart, measureValues]); return Promise.resolve(measureValues); } diff --git a/modules/@angular/benchpress/test/trace_event_factory.ts b/modules/@angular/benchpress/test/trace_event_factory.ts index 55da9f8c15..f6ba2441fe 100644 --- a/modules/@angular/benchpress/test/trace_event_factory.ts +++ b/modules/@angular/benchpress/test/trace_event_factory.ts @@ -13,7 +13,7 @@ export class TraceEventFactory { constructor(private _cat: string, private _pid: string) {} create(ph: any, name: string, time: number, args: any = null) { - var res: + const res: PerfLogEvent = {'name': name, 'cat': this._cat, 'ph': ph, 'ts': time, 'pid': this._pid}; if (isPresent(args)) { res['args'] = args; @@ -34,7 +34,7 @@ export class TraceEventFactory { } complete(name: string, time: number, duration: number, args: any = null) { - var res = this.create('X', name, time, args); + const res = this.create('X', name, time, args); res['dur'] = duration; return res; } diff --git a/modules/@angular/benchpress/test/validator/regression_slope_validator_spec.ts b/modules/@angular/benchpress/test/validator/regression_slope_validator_spec.ts index 671916c9de..47741c9889 100644 --- a/modules/@angular/benchpress/test/validator/regression_slope_validator_spec.ts +++ b/modules/@angular/benchpress/test/validator/regression_slope_validator_spec.ts @@ -12,7 +12,7 @@ import {MeasureValues, ReflectiveInjector, RegressionSlopeValidator} from '../.. export function main() { describe('regression slope validator', () => { - var validator: RegressionSlopeValidator; + let validator: RegressionSlopeValidator; function createValidator({size, metric}: {size: number, metric: string}) { validator = ReflectiveInjector @@ -42,14 +42,14 @@ export function main() { it('should return the last sampleSize runs when the regression slope is ==0', () => { createValidator({size: 2, metric: 'script'}); - var sample = [mv(0, 0, {'script': 1}), mv(1, 1, {'script': 1}), mv(2, 2, {'script': 1})]; + const sample = [mv(0, 0, {'script': 1}), mv(1, 1, {'script': 1}), mv(2, 2, {'script': 1})]; expect(validator.validate(sample.slice(0, 2))).toEqual(sample.slice(0, 2)); expect(validator.validate(sample)).toEqual(sample.slice(1, 3)); }); it('should return the last sampleSize runs when the regression slope is >0', () => { createValidator({size: 2, metric: 'script'}); - var sample = [mv(0, 0, {'script': 1}), mv(1, 1, {'script': 2}), mv(2, 2, {'script': 3})]; + const sample = [mv(0, 0, {'script': 1}), mv(1, 1, {'script': 2}), mv(2, 2, {'script': 3})]; expect(validator.validate(sample.slice(0, 2))).toEqual(sample.slice(0, 2)); expect(validator.validate(sample)).toEqual(sample.slice(1, 3)); }); diff --git a/modules/@angular/benchpress/test/validator/size_validator_spec.ts b/modules/@angular/benchpress/test/validator/size_validator_spec.ts index d23206504c..b5b43ef37f 100644 --- a/modules/@angular/benchpress/test/validator/size_validator_spec.ts +++ b/modules/@angular/benchpress/test/validator/size_validator_spec.ts @@ -12,7 +12,7 @@ import {MeasureValues, ReflectiveInjector, SizeValidator} from '../../index'; export function main() { describe('size validator', () => { - var validator: SizeValidator; + let validator: SizeValidator; function createValidator(size: number) { validator = @@ -35,7 +35,7 @@ export function main() { it('should return the last sampleSize runs when it has at least the given size', () => { createValidator(2); - var sample = [mv(0, 0, {'a': 1}), mv(1, 1, {'b': 2}), mv(2, 2, {'c': 3})]; + const sample = [mv(0, 0, {'a': 1}), mv(1, 1, {'b': 2}), mv(2, 2, {'c': 3})]; expect(validator.validate(sample.slice(0, 2))).toEqual(sample.slice(0, 2)); expect(validator.validate(sample)).toEqual(sample.slice(1, 3)); }); diff --git a/modules/@angular/benchpress/test/webdriver/chrome_driver_extension_spec.ts b/modules/@angular/benchpress/test/webdriver/chrome_driver_extension_spec.ts index 08223d2352..4d379ea44b 100644 --- a/modules/@angular/benchpress/test/webdriver/chrome_driver_extension_spec.ts +++ b/modules/@angular/benchpress/test/webdriver/chrome_driver_extension_spec.ts @@ -14,23 +14,23 @@ import {TraceEventFactory} from '../trace_event_factory'; export function main() { describe('chrome driver extension', () => { - var CHROME45_USER_AGENT = + const CHROME45_USER_AGENT = '"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2499.0 Safari/537.36"'; - var log: any[]; - var extension: ChromeDriverExtension; + let log: any[]; + let extension: ChromeDriverExtension; - var blinkEvents = new TraceEventFactory('blink.console', 'pid0'); - var v8Events = new TraceEventFactory('v8', 'pid0'); - var v8EventsOtherProcess = new TraceEventFactory('v8', 'pid1'); - var chromeTimelineEvents = + const blinkEvents = new TraceEventFactory('blink.console', 'pid0'); + const v8Events = new TraceEventFactory('v8', 'pid0'); + const v8EventsOtherProcess = new TraceEventFactory('v8', 'pid1'); + const chromeTimelineEvents = new TraceEventFactory('disabled-by-default-devtools.timeline', 'pid0'); - var chrome45TimelineEvents = new TraceEventFactory('devtools.timeline', 'pid0'); - var chromeTimelineV8Events = new TraceEventFactory('devtools.timeline,v8', 'pid0'); - var chromeBlinkTimelineEvents = new TraceEventFactory('blink,devtools.timeline', 'pid0'); - var chromeBlinkUserTimingEvents = new TraceEventFactory('blink.user_timing', 'pid0'); - var benchmarkEvents = new TraceEventFactory('benchmark', 'pid0'); - var normEvents = new TraceEventFactory('timeline', 'pid0'); + const chrome45TimelineEvents = new TraceEventFactory('devtools.timeline', 'pid0'); + const chromeTimelineV8Events = new TraceEventFactory('devtools.timeline,v8', 'pid0'); + const chromeBlinkTimelineEvents = new TraceEventFactory('blink,devtools.timeline', 'pid0'); + const chromeBlinkUserTimingEvents = new TraceEventFactory('blink.user_timing', 'pid0'); + const benchmarkEvents = new TraceEventFactory('benchmark', 'pid0'); + const normEvents = new TraceEventFactory('timeline', 'pid0'); function createExtension( perfRecords: any[] = null, userAgent: string = null, @@ -101,7 +101,7 @@ export function main() { it('should normalize "tdur" to "dur"', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var event: any = chromeTimelineV8Events.create('X', 'FunctionCall', 1100, null); + const event: any = chromeTimelineV8Events.create('X', 'FunctionCall', 1100, null); event['tdur'] = 5500; createExtension([event]).readPerfLog().then((events) => { expect(events).toEqual([ diff --git a/modules/@angular/benchpress/test/webdriver/ios_driver_extension_spec.ts b/modules/@angular/benchpress/test/webdriver/ios_driver_extension_spec.ts index f71cd5d0ff..cccdfa7997 100644 --- a/modules/@angular/benchpress/test/webdriver/ios_driver_extension_spec.ts +++ b/modules/@angular/benchpress/test/webdriver/ios_driver_extension_spec.ts @@ -13,10 +13,10 @@ import {TraceEventFactory} from '../trace_event_factory'; export function main() { describe('ios driver extension', () => { - var log: any[]; - var extension: IOsDriverExtension; + let log: any[]; + let extension: IOsDriverExtension; - var normEvents = new TraceEventFactory('timeline', 'pid0'); + const normEvents = new TraceEventFactory('timeline', 'pid0'); function createExtension(perfRecords: any[] = null): WebDriverExtension { if (!perfRecords) { diff --git a/modules/@angular/common/src/directives/ng_for.ts b/modules/@angular/common/src/directives/ng_for.ts index 1a186907ed..a48cb83c9c 100644 --- a/modules/@angular/common/src/directives/ng_for.ts +++ b/modules/@angular/common/src/directives/ng_for.ts @@ -150,13 +150,13 @@ export class NgFor implements DoCheck, OnChanges { } for (let i = 0, ilen = this._viewContainer.length; i < ilen; i++) { - let viewRef = >this._viewContainer.get(i); + const viewRef = >this._viewContainer.get(i); viewRef.context.index = i; viewRef.context.count = ilen; } changes.forEachIdentityChange((record: any) => { - let viewRef = >this._viewContainer.get(record.currentIndex); + const viewRef = >this._viewContainer.get(record.currentIndex); viewRef.context.$implicit = record.item; }); } diff --git a/modules/@angular/common/src/directives/ng_switch.ts b/modules/@angular/common/src/directives/ng_switch.ts index 033e5a8d62..1e7f10d8ff 100644 --- a/modules/@angular/common/src/directives/ng_switch.ts +++ b/modules/@angular/common/src/directives/ng_switch.ts @@ -118,7 +118,7 @@ export class NgSwitch { private _updateDefaultCases(useDefault: boolean) { if (this._defaultViews && useDefault !== this._defaultUsed) { this._defaultUsed = useDefault; - for (var i = 0; i < this._defaultViews.length; i++) { + for (let i = 0; i < this._defaultViews.length; i++) { const defaultView = this._defaultViews[i]; defaultView.enforceState(useDefault); } diff --git a/modules/@angular/common/src/location/hash_location_strategy.ts b/modules/@angular/common/src/location/hash_location_strategy.ts index 5dd2834c49..767789ea02 100644 --- a/modules/@angular/common/src/location/hash_location_strategy.ts +++ b/modules/@angular/common/src/location/hash_location_strategy.ts @@ -64,19 +64,19 @@ export class HashLocationStrategy extends LocationStrategy { path(includeHash: boolean = false): string { // the hash value is always prefixed with a `#` // and if it is empty then it will stay empty - var path = this._platformLocation.hash; + let path = this._platformLocation.hash; if (!isPresent(path)) path = '#'; return path.length > 0 ? path.substring(1) : path; } prepareExternalUrl(internal: string): string { - var url = Location.joinWithSlash(this._baseHref, internal); + const url = Location.joinWithSlash(this._baseHref, internal); return url.length > 0 ? ('#' + url) : url; } pushState(state: any, title: string, path: string, queryParams: string) { - var url = this.prepareExternalUrl(path + Location.normalizeQueryParams(queryParams)); + let url = this.prepareExternalUrl(path + Location.normalizeQueryParams(queryParams)); if (url.length == 0) { url = this._platformLocation.pathname; } @@ -84,7 +84,7 @@ export class HashLocationStrategy extends LocationStrategy { } replaceState(state: any, title: string, path: string, queryParams: string) { - var url = this.prepareExternalUrl(path + Location.normalizeQueryParams(queryParams)); + let url = this.prepareExternalUrl(path + Location.normalizeQueryParams(queryParams)); if (url.length == 0) { url = this._platformLocation.pathname; } diff --git a/modules/@angular/common/src/location/location.ts b/modules/@angular/common/src/location/location.ts index dab13b0087..d6372d1131 100644 --- a/modules/@angular/common/src/location/location.ts +++ b/modules/@angular/common/src/location/location.ts @@ -156,7 +156,7 @@ export class Location { if (end.length == 0) { return start; } - var slashes = 0; + let slashes = 0; if (start.endsWith('/')) { slashes++; } diff --git a/modules/@angular/common/src/location/path_location_strategy.ts b/modules/@angular/common/src/location/path_location_strategy.ts index 4560eb111d..0065e49e1d 100644 --- a/modules/@angular/common/src/location/path_location_strategy.ts +++ b/modules/@angular/common/src/location/path_location_strategy.ts @@ -79,12 +79,12 @@ export class PathLocationStrategy extends LocationStrategy { } pushState(state: any, title: string, url: string, queryParams: string) { - var externalUrl = this.prepareExternalUrl(url + Location.normalizeQueryParams(queryParams)); + const externalUrl = this.prepareExternalUrl(url + Location.normalizeQueryParams(queryParams)); this._platformLocation.pushState(state, title, externalUrl); } replaceState(state: any, title: string, url: string, queryParams: string) { - var externalUrl = this.prepareExternalUrl(url + Location.normalizeQueryParams(queryParams)); + const externalUrl = this.prepareExternalUrl(url + Location.normalizeQueryParams(queryParams)); this._platformLocation.replaceState(state, title, externalUrl); } diff --git a/modules/@angular/common/src/pipes/number_pipe.ts b/modules/@angular/common/src/pipes/number_pipe.ts index 3966bec0cb..386e69825b 100644 --- a/modules/@angular/common/src/pipes/number_pipe.ts +++ b/modules/@angular/common/src/pipes/number_pipe.ts @@ -37,7 +37,7 @@ function formatNumber( } if (digits) { - let parts = digits.match(_NUMBER_FORMAT_REGEXP); + const parts = digits.match(_NUMBER_FORMAT_REGEXP); if (parts === null) { throw new Error(`${digits} is not a valid digit info for number pipes`); } diff --git a/modules/@angular/common/test/directives/ng_class_spec.ts b/modules/@angular/common/test/directives/ng_class_spec.ts index 355c51430e..1d47db0d49 100644 --- a/modules/@angular/common/test/directives/ng_class_spec.ts +++ b/modules/@angular/common/test/directives/ng_class_spec.ts @@ -65,7 +65,7 @@ export function main() { it('should add and remove classes based on changes to the expression object', async(() => { fixture = createTestComponent('
'); - let objExpr = getComponent().objExpr; + const objExpr = getComponent().objExpr; detectChangesAndExpectClassName('foo'); @@ -134,7 +134,7 @@ export function main() { it('should add and remove classes based on changes to the expression', async(() => { fixture = createTestComponent('
'); - let arrExpr = getComponent().arrExpr; + const arrExpr = getComponent().arrExpr; detectChangesAndExpectClassName('foo'); arrExpr.push('bar'); @@ -259,7 +259,7 @@ export function main() { it('should co-operate with the class attribute', async(() => { fixture = createTestComponent('
'); - let objExpr = getComponent().objExpr; + const objExpr = getComponent().objExpr; objExpr['bar'] = true; detectChangesAndExpectClassName('init foo bar'); @@ -273,7 +273,7 @@ export function main() { it('should co-operate with the interpolated class attribute', async(() => { fixture = createTestComponent(`
`); - let objExpr = getComponent().objExpr; + const objExpr = getComponent().objExpr; objExpr['bar'] = true; detectChangesAndExpectClassName(`init foo bar`); @@ -288,7 +288,7 @@ export function main() { it('should co-operate with the class attribute and binding to it', async(() => { fixture = createTestComponent(`
`); - let objExpr = getComponent().objExpr; + const objExpr = getComponent().objExpr; objExpr['bar'] = true; detectChangesAndExpectClassName(`init foo bar`); @@ -304,7 +304,7 @@ export function main() { const template = '
'; fixture = createTestComponent(template); - let objExpr = getComponent().objExpr; + const objExpr = getComponent().objExpr; detectChangesAndExpectClassName('init foo baz'); @@ -322,7 +322,7 @@ export function main() { async(() => { const template = '
'; fixture = createTestComponent(template); - let cmp = getComponent(); + const cmp = getComponent(); detectChangesAndExpectClassName('init foo'); diff --git a/modules/@angular/common/test/pipes/async_pipe_spec.ts b/modules/@angular/common/test/pipes/async_pipe_spec.ts index 4f4f0309f6..61ea0d5b9b 100644 --- a/modules/@angular/common/test/pipes/async_pipe_spec.ts +++ b/modules/@angular/common/test/pipes/async_pipe_spec.ts @@ -19,10 +19,10 @@ export function main() { describe('AsyncPipe', () => { describe('Observable', () => { - var emitter: EventEmitter; - var pipe: AsyncPipe; - var ref: any; - var message = {}; + let emitter: EventEmitter; + let pipe: AsyncPipe; + let ref: any; + const message = {}; beforeEach(() => { emitter = new EventEmitter(); @@ -62,7 +62,7 @@ export function main() { inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { pipe.transform(emitter); - var newEmitter = new EventEmitter(); + const newEmitter = new EventEmitter(); expect(pipe.transform(newEmitter)).toBe(null); emitter.emit(message); @@ -104,14 +104,14 @@ export function main() { }); describe('Promise', () => { - var message = new Object(); - var pipe: AsyncPipe; - var resolve: (result: any) => void; - var reject: (error: any) => void; - var promise: Promise; - var ref: SpyChangeDetectorRef; + const message = new Object(); + let pipe: AsyncPipe; + let resolve: (result: any) => void; + let reject: (error: any) => void; + let promise: Promise; + let ref: SpyChangeDetectorRef; // adds longer timers for passing tests in IE - var timer = (getDOM() && browserDetection.isIE) ? 50 : 10; + const timer = (getDOM() && browserDetection.isIE) ? 50 : 10; beforeEach(() => { promise = new Promise((res, rej) => { @@ -154,7 +154,7 @@ export function main() { inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { pipe.transform(promise); - var promise = new Promise(() => {}); + promise = new Promise(() => {}); expect(pipe.transform(promise)).toBe(null); // this should not affect the pipe, so it should return WrappedValue @@ -168,7 +168,7 @@ export function main() { it('should request a change detection check upon receiving a new value', inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { - var markForCheck = ref.spy('markForCheck'); + const markForCheck = ref.spy('markForCheck'); pipe.transform(promise); resolve(message); @@ -202,14 +202,14 @@ export function main() { describe('null', () => { it('should return null when given null', () => { - var pipe = new AsyncPipe(null); + const pipe = new AsyncPipe(null); expect(pipe.transform(null)).toEqual(null); }); }); describe('other types', () => { it('should throw when given an invalid object', () => { - var pipe = new AsyncPipe(null); + const pipe = new AsyncPipe(null); expect(() => pipe.transform('some bogus object')).toThrowError(); }); }); diff --git a/modules/@angular/common/test/pipes/date_pipe_spec.ts b/modules/@angular/common/test/pipes/date_pipe_spec.ts index afda87cd82..a0eb9d9c43 100644 --- a/modules/@angular/common/test/pipes/date_pipe_spec.ts +++ b/modules/@angular/common/test/pipes/date_pipe_spec.ts @@ -62,7 +62,7 @@ export function main() { describe('transform', () => { it('should format each component correctly', () => { - let dateFixtures: any = { + const dateFixtures: any = { 'y': '2015', 'yy': '15', 'M': '6', @@ -75,7 +75,7 @@ export function main() { 'EEEE': 'Monday' }; - let isoStringWithoutTimeFixtures: any = { + const isoStringWithoutTimeFixtures: any = { 'y': '2015', 'yy': '15', 'M': '1', @@ -128,7 +128,7 @@ export function main() { }); it('should format common multi component patterns', () => { - let dateFixtures: any = { + const dateFixtures: any = { 'EEE, M/d/y': 'Mon, 6/15/2015', 'EEE, M/d': 'Mon, 6/15', 'MMM d': 'Jun 15', @@ -157,7 +157,7 @@ export function main() { }); it('should format with pattern aliases', () => { - let dateFixtures: any = { + const dateFixtures: any = { 'MM/dd/yyyy': '06/15/2015', 'fullDate': 'Monday, June 15, 2015', 'longDate': 'June 15, 2015', diff --git a/modules/@angular/common/test/pipes/i18n_plural_pipe_spec.ts b/modules/@angular/common/test/pipes/i18n_plural_pipe_spec.ts index f042f777bf..c0aa60a936 100644 --- a/modules/@angular/common/test/pipes/i18n_plural_pipe_spec.ts +++ b/modules/@angular/common/test/pipes/i18n_plural_pipe_spec.ts @@ -12,10 +12,10 @@ import {beforeEach, describe, expect, it} from '@angular/core/testing/testing_in export function main() { describe('I18nPluralPipe', () => { - var localization: NgLocalization; - var pipe: I18nPluralPipe; + let localization: NgLocalization; + let pipe: I18nPluralPipe; - var mapping = { + const mapping = { '=0': 'No messages.', '=1': 'One message.', 'many': 'Many messages.', @@ -32,27 +32,27 @@ export function main() { describe('transform', () => { it('should return 0 text if value is 0', () => { - var val = pipe.transform(0, mapping); + const val = pipe.transform(0, mapping); expect(val).toEqual('No messages.'); }); it('should return 1 text if value is 1', () => { - var val = pipe.transform(1, mapping); + const val = pipe.transform(1, mapping); expect(val).toEqual('One message.'); }); it('should return category messages', () => { - var val = pipe.transform(4, mapping); + const val = pipe.transform(4, mapping); expect(val).toEqual('Many messages.'); }); it('should interpolate the value into the text where indicated', () => { - var val = pipe.transform(6, mapping); + const val = pipe.transform(6, mapping); expect(val).toEqual('There are 6 messages, that is 6.'); }); it('should use "" if value is undefined', () => { - var val = pipe.transform(void(0), mapping); + const val = pipe.transform(void(0), mapping); expect(val).toEqual(''); }); diff --git a/modules/@angular/common/test/pipes/json_pipe_spec.ts b/modules/@angular/common/test/pipes/json_pipe_spec.ts index ea0e4f7ec7..5c2f338ba7 100644 --- a/modules/@angular/common/test/pipes/json_pipe_spec.ts +++ b/modules/@angular/common/test/pipes/json_pipe_spec.ts @@ -13,10 +13,10 @@ import {expect} from '@angular/platform-browser/testing/matchers'; export function main() { describe('JsonPipe', () => { - var regNewLine = '\n'; - var inceptionObj: any; - var inceptionObjString: string; - var pipe: JsonPipe; + const regNewLine = '\n'; + let inceptionObj: any; + let inceptionObjString: string; + let pipe: JsonPipe; function normalize(obj: string): string { return obj.replace(regNewLine, ''); } @@ -39,14 +39,14 @@ export function main() { () => { expect(pipe.transform(inceptionObj)).toEqual(inceptionObjString); }); it('should return JSON-formatted string even when normalized', () => { - var dream1 = normalize(pipe.transform(inceptionObj)); - var dream2 = normalize(inceptionObjString); + const dream1 = normalize(pipe.transform(inceptionObj)); + const dream2 = normalize(inceptionObjString); expect(dream1).toEqual(dream2); }); it('should return JSON-formatted string similar to Json.stringify', () => { - var dream1 = normalize(pipe.transform(inceptionObj)); - var dream2 = normalize(JSON.stringify(inceptionObj, null, 2)); + const dream1 = normalize(pipe.transform(inceptionObj)); + const dream2 = normalize(JSON.stringify(inceptionObj, null, 2)); expect(dream1).toEqual(dream2); }); }); @@ -63,8 +63,8 @@ export function main() { }); it('should work with mutable objects', async(() => { - let fixture = TestBed.createComponent(TestComp); - let mutable: number[] = [1]; + const fixture = TestBed.createComponent(TestComp); + const mutable: number[] = [1]; fixture.componentInstance.data = mutable; fixture.detectChanges(); expect(fixture.nativeElement).toHaveText('[\n 1\n]'); diff --git a/modules/@angular/common/test/pipes/lowercase_pipe_spec.ts b/modules/@angular/common/test/pipes/lowercase_pipe_spec.ts index c508525e3f..e31e7fc5d5 100644 --- a/modules/@angular/common/test/pipes/lowercase_pipe_spec.ts +++ b/modules/@angular/common/test/pipes/lowercase_pipe_spec.ts @@ -11,9 +11,9 @@ import {beforeEach, describe, expect, it} from '@angular/core/testing/testing_in export function main() { describe('LowerCasePipe', () => { - var upper: string; - var lower: string; - var pipe: LowerCasePipe; + let upper: string; + let lower: string; + let pipe: LowerCasePipe; beforeEach(() => { lower = 'something'; @@ -23,14 +23,14 @@ export function main() { describe('transform', () => { it('should return lowercase', () => { - var val = pipe.transform(upper); + const val = pipe.transform(upper); expect(val).toEqual(lower); }); it('should lowercase when there is a new value', () => { - var val = pipe.transform(upper); + const val = pipe.transform(upper); expect(val).toEqual(lower); - var val2 = pipe.transform('WAT'); + const val2 = pipe.transform('WAT'); expect(val2).toEqual('wat'); }); diff --git a/modules/@angular/common/test/pipes/number_pipe_spec.ts b/modules/@angular/common/test/pipes/number_pipe_spec.ts index 29c8e80206..e0e1c012e1 100644 --- a/modules/@angular/common/test/pipes/number_pipe_spec.ts +++ b/modules/@angular/common/test/pipes/number_pipe_spec.ts @@ -13,7 +13,7 @@ import {browserDetection} from '@angular/platform-browser/testing/browser_util'; export function main() { describe('Number pipes', () => { describe('DecimalPipe', () => { - var pipe: DecimalPipe; + let pipe: DecimalPipe; beforeEach(() => { pipe = new DecimalPipe('en-US'); }); @@ -44,7 +44,7 @@ export function main() { }); describe('PercentPipe', () => { - var pipe: PercentPipe; + let pipe: PercentPipe; beforeEach(() => { pipe = new PercentPipe('en-US'); }); @@ -60,7 +60,7 @@ export function main() { }); describe('CurrencyPipe', () => { - var pipe: CurrencyPipe; + let pipe: CurrencyPipe; beforeEach(() => { pipe = new CurrencyPipe('en-US'); }); diff --git a/modules/@angular/common/test/pipes/slice_pipe_spec.ts b/modules/@angular/common/test/pipes/slice_pipe_spec.ts index c3cbdea10e..d535dd0463 100644 --- a/modules/@angular/common/test/pipes/slice_pipe_spec.ts +++ b/modules/@angular/common/test/pipes/slice_pipe_spec.ts @@ -13,9 +13,9 @@ import {expect} from '@angular/platform-browser/testing/matchers'; export function main() { describe('SlicePipe', () => { - var list: number[]; - var str: string; - var pipe: SlicePipe; + let list: number[]; + let str: string; + let pipe: SlicePipe; beforeEach(() => { list = [1, 2, 3, 4, 5]; @@ -93,8 +93,8 @@ export function main() { }); it('should work with mutable arrays', async(() => { - let fixture = TestBed.createComponent(TestComp); - let mutable: number[] = [1, 2]; + const fixture = TestBed.createComponent(TestComp); + const mutable: number[] = [1, 2]; fixture.componentInstance.data = mutable; fixture.detectChanges(); expect(fixture.nativeElement).toHaveText('2'); diff --git a/modules/@angular/common/test/pipes/uppercase_pipe_spec.ts b/modules/@angular/common/test/pipes/uppercase_pipe_spec.ts index c4e391c78d..244751bbeb 100644 --- a/modules/@angular/common/test/pipes/uppercase_pipe_spec.ts +++ b/modules/@angular/common/test/pipes/uppercase_pipe_spec.ts @@ -11,9 +11,9 @@ import {beforeEach, describe, expect, it} from '@angular/core/testing/testing_in export function main() { describe('UpperCasePipe', () => { - var upper: string; - var lower: string; - var pipe: UpperCasePipe; + let upper: string; + let lower: string; + let pipe: UpperCasePipe; beforeEach(() => { lower = 'something'; @@ -24,14 +24,14 @@ export function main() { describe('transform', () => { it('should return uppercase', () => { - var val = pipe.transform(lower); + const val = pipe.transform(lower); expect(val).toEqual(upper); }); it('should uppercase when there is a new value', () => { - var val = pipe.transform(lower); + const val = pipe.transform(lower); expect(val).toEqual(upper); - var val2 = pipe.transform('wat'); + const val2 = pipe.transform('wat'); expect(val2).toEqual('WAT'); }); diff --git a/modules/@angular/common/testing/location_mock.ts b/modules/@angular/common/testing/location_mock.ts index 5b4d0c9590..9afc3cce80 100644 --- a/modules/@angular/common/testing/location_mock.ts +++ b/modules/@angular/common/testing/location_mock.ts @@ -34,8 +34,8 @@ export class SpyLocation implements Location { path(): string { return this._history[this._historyIndex].path; } isCurrentPathEqualTo(path: string, query: string = ''): boolean { - var givenPath = path.endsWith('/') ? path.substring(0, path.length - 1) : path; - var currPath = + const givenPath = path.endsWith('/') ? path.substring(0, path.length - 1) : path; + const currPath = this.path().endsWith('/') ? this.path().substring(0, this.path().length - 1) : this.path(); return currPath == givenPath + (query.length > 0 ? ('?' + query) : ''); @@ -66,12 +66,12 @@ export class SpyLocation implements Location { this._history.push(new LocationState(path, query)); this._historyIndex = this._history.length - 1; - var locationState = this._history[this._historyIndex - 1]; + const locationState = this._history[this._historyIndex - 1]; if (locationState.path == path && locationState.query == query) { return; } - var url = path + (query.length > 0 ? ('?' + query) : ''); + const url = path + (query.length > 0 ? ('?' + query) : ''); this.urlChanges.push(url); this._subject.emit({'url': url, 'pop': false}); } @@ -79,7 +79,7 @@ export class SpyLocation implements Location { replaceState(path: string, query: string = '') { path = this.prepareExternalUrl(path); - var history = this._history[this._historyIndex]; + const history = this._history[this._historyIndex]; if (history.path == path && history.query == query) { return; } @@ -87,7 +87,7 @@ export class SpyLocation implements Location { history.path = path; history.query = query; - var url = path + (query.length > 0 ? ('?' + query) : ''); + const url = path + (query.length > 0 ? ('?' + query) : ''); this.urlChanges.push('replace: ' + url); } diff --git a/modules/@angular/common/testing/mock_location_strategy.ts b/modules/@angular/common/testing/mock_location_strategy.ts index fd923818f0..170d888727 100644 --- a/modules/@angular/common/testing/mock_location_strategy.ts +++ b/modules/@angular/common/testing/mock_location_strategy.ts @@ -44,20 +44,20 @@ export class MockLocationStrategy extends LocationStrategy { pushState(ctx: any, title: string, path: string, query: string): void { this.internalTitle = title; - var url = path + (query.length > 0 ? ('?' + query) : ''); + const url = path + (query.length > 0 ? ('?' + query) : ''); this.internalPath = url; - var externalUrl = this.prepareExternalUrl(url); + const externalUrl = this.prepareExternalUrl(url); this.urlChanges.push(externalUrl); } replaceState(ctx: any, title: string, path: string, query: string): void { this.internalTitle = title; - var url = path + (query.length > 0 ? ('?' + query) : ''); + const url = path + (query.length > 0 ? ('?' + query) : ''); this.internalPath = url; - var externalUrl = this.prepareExternalUrl(url); + const externalUrl = this.prepareExternalUrl(url); this.urlChanges.push('replace: ' + externalUrl); } @@ -68,7 +68,7 @@ export class MockLocationStrategy extends LocationStrategy { back(): void { if (this.urlChanges.length > 0) { this.urlChanges.pop(); - var nextUrl = this.urlChanges.length > 0 ? this.urlChanges[this.urlChanges.length - 1] : ''; + const nextUrl = this.urlChanges.length > 0 ? this.urlChanges[this.urlChanges.length - 1] : ''; this.simulatePopState(nextUrl); } } diff --git a/modules/@angular/compiler-cli/integrationtest/test/animate_spec.ts b/modules/@angular/compiler-cli/integrationtest/test/animate_spec.ts index 5c06381f71..95a2c004a0 100644 --- a/modules/@angular/compiler-cli/integrationtest/test/animate_spec.ts +++ b/modules/@angular/compiler-cli/integrationtest/test/animate_spec.ts @@ -19,9 +19,9 @@ describe('template codegen output', () => { it('should apply the animate states to the element', (done) => { const compFixture = createComponent(AnimateCmp); - var debugElement = compFixture.debugElement; + const debugElement = compFixture.debugElement; - var targetDebugElement = findTargetElement(debugElement); + const targetDebugElement = findTargetElement(debugElement); compFixture.componentInstance.setAsOpen(); compFixture.detectChanges(); @@ -45,9 +45,9 @@ describe('template codegen output', () => { it('should apply the default animate state to the element', (done) => { const compFixture = createComponent(AnimateCmp); - var debugElement = compFixture.debugElement; + const debugElement = compFixture.debugElement; - var targetDebugElement = findTargetElement(debugElement); + const targetDebugElement = findTargetElement(debugElement); compFixture.componentInstance.setAsSomethingElse(); compFixture.detectChanges(); diff --git a/modules/@angular/compiler-cli/integrationtest/test/entry_components_spec.ts b/modules/@angular/compiler-cli/integrationtest/test/entry_components_spec.ts index 13f7b71e32..44ecb67b3e 100644 --- a/modules/@angular/compiler-cli/integrationtest/test/entry_components_spec.ts +++ b/modules/@angular/compiler-cli/integrationtest/test/entry_components_spec.ts @@ -15,8 +15,8 @@ import {createComponent} from './util'; describe('content projection', () => { it('should support entryComponents in components', () => { - var compFixture = createComponent(CompWithEntryComponents); - var cf = compFixture.componentInstance.cfr.resolveComponentFactory(BasicComp); + const compFixture = createComponent(CompWithEntryComponents); + const cf = compFixture.componentInstance.cfr.resolveComponentFactory(BasicComp); expect(cf.componentType).toBe(BasicComp); }); diff --git a/modules/@angular/compiler-cli/integrationtest/test/projection_spec.ts b/modules/@angular/compiler-cli/integrationtest/test/projection_spec.ts index 4d150a56fa..58c2af408b 100644 --- a/modules/@angular/compiler-cli/integrationtest/test/projection_spec.ts +++ b/modules/@angular/compiler-cli/integrationtest/test/projection_spec.ts @@ -13,10 +13,10 @@ import {createComponent} from './util'; describe('content projection', () => { it('should support basic content projection', () => { - var mainCompFixture = createComponent(ProjectingComp); + const mainCompFixture = createComponent(ProjectingComp); - var debugElement = mainCompFixture.debugElement; - var compWithProjection = debugElement.query(By.directive(CompWithNgContent)); + const debugElement = mainCompFixture.debugElement; + const compWithProjection = debugElement.query(By.directive(CompWithNgContent)); expect(compWithProjection.children.length).toBe(1); expect(compWithProjection.children[0].attributes['greeting']).toEqual('Hello world!'); }); diff --git a/modules/@angular/compiler-cli/integrationtest/test/query_spec.ts b/modules/@angular/compiler-cli/integrationtest/test/query_spec.ts index 30adb61f93..20b0c471ea 100644 --- a/modules/@angular/compiler-cli/integrationtest/test/query_spec.ts +++ b/modules/@angular/compiler-cli/integrationtest/test/query_spec.ts @@ -14,18 +14,18 @@ import {createComponent} from './util'; describe('child queries', () => { it('should support compiling child queries', () => { - var childQueryCompFixture = createComponent(CompWithChildQuery); - var debugElement = childQueryCompFixture.debugElement; - var compWithChildren = debugElement.query(By.directive(CompWithChildQuery)); + const childQueryCompFixture = createComponent(CompWithChildQuery); + const debugElement = childQueryCompFixture.debugElement; + const compWithChildren = debugElement.query(By.directive(CompWithChildQuery)); expect(childQueryCompFixture.componentInstance.child).toBeDefined(); expect(childQueryCompFixture.componentInstance.child instanceof CompForChildQuery).toBe(true); }); it('should support compiling children queries', () => { - var childQueryCompFixture = createComponent(CompWithChildQuery); - var debugElement = childQueryCompFixture.debugElement; - var compWithChildren = debugElement.query(By.directive(CompWithChildQuery)); + const childQueryCompFixture = createComponent(CompWithChildQuery); + const debugElement = childQueryCompFixture.debugElement; + const compWithChildren = debugElement.query(By.directive(CompWithChildQuery)); childQueryCompFixture.detectChanges(); diff --git a/modules/@angular/compiler-cli/src/extractor.ts b/modules/@angular/compiler-cli/src/extractor.ts index 8d9d5bfac5..52977b538a 100644 --- a/modules/@angular/compiler-cli/src/extractor.ts +++ b/modules/@angular/compiler-cli/src/extractor.ts @@ -91,7 +91,7 @@ export class Extractor { elementSchemaRegistry, normalizer, staticReflector); // TODO(vicb): implicit tags & attributes - let messageBundle = new compiler.MessageBundle(htmlParser, [], {}); + const messageBundle = new compiler.MessageBundle(htmlParser, [], {}); return new Extractor( options, program, compilerHost, staticReflector, messageBundle, reflectorHost, resolver); diff --git a/modules/@angular/compiler-cli/src/path_mapped_reflector_host.ts b/modules/@angular/compiler-cli/src/path_mapped_reflector_host.ts index 13423ef142..77e658a0d0 100644 --- a/modules/@angular/compiler-cli/src/path_mapped_reflector_host.ts +++ b/modules/@angular/compiler-cli/src/path_mapped_reflector_host.ts @@ -34,7 +34,7 @@ export class PathMappedReflectorHost extends ReflectorHost { getCanonicalFileName(fileName: string): string { if (!fileName) return fileName; // NB: the rootDirs should have been sorted longest-first - for (let dir of this.options.rootDirs || []) { + for (const dir of this.options.rootDirs || []) { if (fileName.indexOf(dir) === 0) { fileName = fileName.substring(dir.length); } @@ -86,7 +86,7 @@ export class PathMappedReflectorHost extends ReflectorHost { return resolved && resolved.replace(EXT, '') === importedFile.replace(EXT, ''); }; - let importModuleName = importedFile.replace(EXT, ''); + const importModuleName = importedFile.replace(EXT, ''); const parts = importModuleName.split(path.sep).filter(p => !!p); let foundRelativeImport: string; for (let index = parts.length - 1; index >= 0; index--) { diff --git a/modules/@angular/compiler-cli/src/reflector_host.ts b/modules/@angular/compiler-cli/src/reflector_host.ts index b7d701b6fc..0ed108cd43 100644 --- a/modules/@angular/compiler-cli/src/reflector_host.ts +++ b/modules/@angular/compiler-cli/src/reflector_host.ts @@ -40,7 +40,7 @@ export class ReflectorHost implements StaticReflectorHost, ImportGenerator { this.genDir = path.normalize(path.join(this.options.genDir, '.')).replace(/\\/g, '/'); this.context = context || new NodeReflectorHostContext(compilerHost); - var genPath: string = path.relative(this.basePath, this.genDir); + const genPath: string = path.relative(this.basePath, this.genDir); this.isGenDirChildOfRootDir = genPath === '' || !genPath.startsWith('..'); } @@ -67,13 +67,13 @@ export class ReflectorHost implements StaticReflectorHost, ImportGenerator { }; protected normalizeAssetUrl(url: string): string { - let assetUrl = AssetUrl.parse(url); + const assetUrl = AssetUrl.parse(url); const path = assetUrl ? `${assetUrl.packageName}/${assetUrl.modulePath}` : null; return this.getCanonicalFileName(path); } protected resolveAssetUrl(url: string, containingFile: string): string { - let assetUrl = this.normalizeAssetUrl(url); + const assetUrl = this.normalizeAssetUrl(url); if (assetUrl) { return this.getCanonicalFileName(this.resolve(assetUrl, containingFile)); } @@ -110,7 +110,7 @@ export class ReflectorHost implements StaticReflectorHost, ImportGenerator { // drop extension importedFile = importedFile.replace(EXT, ''); - var nodeModulesIndex = importedFile.indexOf(NODE_MODULES); + const nodeModulesIndex = importedFile.indexOf(NODE_MODULES); const importModule = nodeModulesIndex === -1 ? null : importedFile.substring(nodeModulesIndex + NODE_MODULES.length); @@ -141,7 +141,7 @@ export class ReflectorHost implements StaticReflectorHost, ImportGenerator { } private dotRelative(from: string, to: string): string { - var rPath: string = path.relative(from, to).replace(/\\/g, '/'); + const rPath: string = path.relative(from, to).replace(/\\/g, '/'); return rPath.startsWith('.') ? rPath : './' + rPath; } @@ -149,7 +149,7 @@ export class ReflectorHost implements StaticReflectorHost, ImportGenerator { * Moves the path into `genDir` folder while preserving the `node_modules` directory. */ private rewriteGenDirPath(filepath: string) { - var nodeModulesIndex = filepath.indexOf(NODE_MODULES); + const nodeModulesIndex = filepath.indexOf(NODE_MODULES); if (nodeModulesIndex !== -1) { // If we are in node_modulse, transplant them into `genDir`. return path.join(this.genDir, filepath.substring(nodeModulesIndex)); @@ -172,7 +172,7 @@ export class ReflectorHost implements StaticReflectorHost, ImportGenerator { } try { - let assetUrl = this.normalizeAssetUrl(module); + const assetUrl = this.normalizeAssetUrl(module); if (assetUrl) { module = assetUrl; } @@ -288,7 +288,7 @@ export class ReflectorHost implements StaticReflectorHost, ImportGenerator { } return resolvedModulePath; }; - let metadata = this.getResolverMetadata(filePath); + const metadata = this.getResolverMetadata(filePath); if (metadata) { // If we have metadata for the symbol, this is the original exporting location. if (metadata.metadata[symbolName]) { diff --git a/modules/@angular/compiler-cli/src/static_reflector.ts b/modules/@angular/compiler-cli/src/static_reflector.ts index 80b9affa9e..fe800b4485 100644 --- a/modules/@angular/compiler-cli/src/static_reflector.ts +++ b/modules/@angular/compiler-cli/src/static_reflector.ts @@ -88,7 +88,7 @@ export class StaticReflector implements ReflectorReader { public annotations(type: StaticSymbol): any[] { let annotations = this.annotationCache.get(type); if (!annotations) { - let classMetadata = this.getTypeMetadata(type); + const classMetadata = this.getTypeMetadata(type); if (classMetadata['decorators']) { annotations = this.simplify(type, classMetadata['decorators']); } else { @@ -102,11 +102,11 @@ export class StaticReflector implements ReflectorReader { public propMetadata(type: StaticSymbol): {[key: string]: any} { let propMetadata = this.propertyCache.get(type); if (!propMetadata) { - let classMetadata = this.getTypeMetadata(type); - let members = classMetadata ? classMetadata['members'] : {}; + const classMetadata = this.getTypeMetadata(type); + const members = classMetadata ? classMetadata['members'] : {}; propMetadata = mapStringMap(members, (propData, propName) => { - let prop = (propData) - .find(a => a['__symbolic'] == 'property' || a['__symbolic'] == 'method'); + const prop = (propData) + .find(a => a['__symbolic'] == 'property' || a['__symbolic'] == 'method'); if (prop && prop['decorators']) { return this.simplify(type, prop['decorators']); } else { @@ -125,21 +125,21 @@ export class StaticReflector implements ReflectorReader { try { let parameters = this.parameterCache.get(type); if (!parameters) { - let classMetadata = this.getTypeMetadata(type); - let members = classMetadata ? classMetadata['members'] : null; - let ctorData = members ? members['__ctor__'] : null; + const classMetadata = this.getTypeMetadata(type); + const members = classMetadata ? classMetadata['members'] : null; + const ctorData = members ? members['__ctor__'] : null; if (ctorData) { - let ctor = (ctorData).find(a => a['__symbolic'] == 'constructor'); - let parameterTypes = this.simplify(type, ctor['parameters'] || []); - let parameterDecorators = this.simplify(type, ctor['parameterDecorators'] || []); + const ctor = (ctorData).find(a => a['__symbolic'] == 'constructor'); + const parameterTypes = this.simplify(type, ctor['parameters'] || []); + const parameterDecorators = this.simplify(type, ctor['parameterDecorators'] || []); parameters = []; parameterTypes.forEach((paramType, index) => { - let nestedResult: any[] = []; + const nestedResult: any[] = []; if (paramType) { nestedResult.push(paramType); } - let decorators = parameterDecorators ? parameterDecorators[index] : null; + const decorators = parameterDecorators ? parameterDecorators[index] : null; if (decorators) { nestedResult.push(...decorators); } @@ -273,7 +273,7 @@ export class StaticReflector implements ReflectorReader { function simplifyCall(expression: any) { let callContext: {[name: string]: string}|undefined = undefined; if (expression['__symbolic'] == 'call') { - let target = expression['expression']; + const target = expression['expression']; let functionSymbol: StaticSymbol; let targetFunction: any; if (target) { @@ -316,7 +316,7 @@ export class StaticReflector implements ReflectorReader { for (let i = 0; i < parameters.length; i++) { functionScope.define(parameters[i], args[i]); } - let oldScope = scope; + const oldScope = scope; let result: any; try { scope = functionScope.done(); @@ -347,19 +347,19 @@ export class StaticReflector implements ReflectorReader { return expression; } if (expression instanceof Array) { - let result: any[] = []; - for (let item of (expression)) { + const result: any[] = []; + for (const item of (expression)) { // Check for a spread expression if (item && item.__symbolic === 'spread') { - let spreadArray = simplify(item.expression); + const spreadArray = simplify(item.expression); if (Array.isArray(spreadArray)) { - for (let spreadItem of spreadArray) { + for (const spreadItem of spreadArray) { result.push(spreadItem); } continue; } } - let value = simplify(item); + const value = simplify(item); if (shouldIgnore(value)) { continue; } @@ -466,8 +466,8 @@ export class StaticReflector implements ReflectorReader { return null; case 'reference': if (!expression.module) { - let name: string = expression['name']; - let localValue = scope.resolve(name); + const name: string = expression['name']; + const localValue = scope.resolve(name); if (localValue != BindingScope.missing) { return localValue; } @@ -614,7 +614,7 @@ function mapStringMap(input: {[key: string]: any}, transform: (value: any, key: if (!input) return {}; const result: {[key: string]: any} = {}; Object.keys(input).forEach((key) => { - let value = transform(input[key], key); + const value = transform(input[key], key); if (!shouldIgnore(value)) { result[key] = value; } diff --git a/modules/@angular/compiler-cli/test/mocks.ts b/modules/@angular/compiler-cli/test/mocks.ts index 86adb1f830..7573f7fce5 100644 --- a/modules/@angular/compiler-cli/test/mocks.ts +++ b/modules/@angular/compiler-cli/test/mocks.ts @@ -21,7 +21,7 @@ export class MockContext implements ReflectorHostContext { directoryExists(path: string): boolean { return typeof this.getEntry(path) === 'object'; } readFile(fileName: string): string|undefined { - let data = this.getEntry(fileName); + const data = this.getEntry(fileName); if (typeof data === 'string') { return data; } @@ -29,9 +29,9 @@ export class MockContext implements ReflectorHostContext { } writeFile(fileName: string, data: string): void { - let parts = fileName.split('/'); - let name = parts.pop(); - let entry = this.getEntry(parts); + const parts = fileName.split('/'); + const name = parts.pop(); + const entry = this.getEntry(parts); if (entry && typeof entry !== 'string') { entry[name] = data; } @@ -48,11 +48,11 @@ export class MockContext implements ReflectorHostContext { parts = normalize(parts); let current = this.files; while (parts.length) { - let part = parts.shift(); + const part = parts.shift(); if (typeof current === 'string') { return undefined; } - let next = (current)[part]; + const next = (current)[part]; if (next === undefined) { return undefined; } @@ -72,9 +72,9 @@ export class MockContext implements ReflectorHostContext { } function normalize(parts: string[]): string[] { - let result: string[] = []; + const result: string[] = []; while (parts.length) { - let part = parts.shift(); + const part = parts.shift(); switch (part) { case '.': break; @@ -102,7 +102,7 @@ export class MockCompilerHost implements ts.CompilerHost { getSourceFile( fileName: string, languageVersion: ts.ScriptTarget, onError?: (message: string) => void): ts.SourceFile { - let sourceText = this.context.readFile(fileName); + const sourceText = this.context.readFile(fileName); if (sourceText) { return ts.createSourceFile(fileName, sourceText, languageVersion); } else { diff --git a/modules/@angular/compiler-cli/test/reflector_host_spec.ts b/modules/@angular/compiler-cli/test/reflector_host_spec.ts index a0dc2c3e8d..d47b89d05f 100644 --- a/modules/@angular/compiler-cli/test/reflector_host_spec.ts +++ b/modules/@angular/compiler-cli/test/reflector_host_spec.ts @@ -14,11 +14,11 @@ import {ReflectorHost} from '../src/reflector_host'; import {Directory, Entry, MockCompilerHost, MockContext} from './mocks'; describe('reflector_host', () => { - var context: MockContext; - var host: ts.CompilerHost; - var program: ts.Program; - var reflectorNestedGenDir: ReflectorHost; - var reflectorSiblingGenDir: ReflectorHost; + let context: MockContext; + let host: ts.CompilerHost; + let program: ts.Program; + let reflectorNestedGenDir: ReflectorHost; + let reflectorSiblingGenDir: ReflectorHost; beforeEach(() => { context = new MockContext('/tmp/src', clone(FILES)); @@ -29,7 +29,7 @@ describe('reflector_host', () => { }, host); // Force a typecheck - let errors = program.getSemanticDiagnostics(); + const errors = program.getSemanticDiagnostics(); if (errors && errors.length) { throw new Error('Expected no errors'); } @@ -122,7 +122,7 @@ describe('reflector_host', () => { }); it('should provide the import locations for angular', () => { - let {coreDecorators, diDecorators, diMetadata, animationMetadata, provider} = + const {coreDecorators, diDecorators, diMetadata, animationMetadata, provider} = reflectorNestedGenDir.angularImportLocations(); expect(coreDecorators).toEqual('@angular/core/src/metadata'); expect(diDecorators).toEqual('@angular/core/src/di/metadata'); @@ -163,8 +163,8 @@ describe('reflector_host', () => { it('should be produce the same symbol if asked twice', () => { - let foo1 = reflectorNestedGenDir.getStaticSymbol('main.ts', 'foo'); - let foo2 = reflectorNestedGenDir.getStaticSymbol('main.ts', 'foo'); + const foo1 = reflectorNestedGenDir.getStaticSymbol('main.ts', 'foo'); + const foo2 = reflectorNestedGenDir.getStaticSymbol('main.ts', 'foo'); expect(foo1).toBe(foo2); }); @@ -320,8 +320,8 @@ function clone(entry: Entry): Entry { if (typeof entry === 'string') { return entry; } else { - let result: Directory = {}; - for (let name in entry) { + const result: Directory = {}; + for (const name in entry) { result[name] = clone(entry[name]); } return result; diff --git a/modules/@angular/compiler-cli/test/static_reflector_spec.ts b/modules/@angular/compiler-cli/test/static_reflector_spec.ts index 036f3a112d..6909d8404d 100644 --- a/modules/@angular/compiler-cli/test/static_reflector_spec.ts +++ b/modules/@angular/compiler-cli/test/static_reflector_spec.ts @@ -17,7 +17,7 @@ import * as ts from 'typescript'; const TS_EXT = /(^.|(?!\.d)..)\.ts$/; describe('StaticReflector', () => { - let noContext = new StaticSymbol('', ''); + const noContext = new StaticSymbol('', ''); let host: StaticReflectorHost; let reflector: StaticReflector; @@ -31,36 +31,37 @@ describe('StaticReflector', () => { } it('should get annotations for NgFor', () => { - let NgFor = host.findDeclaration('angular2/src/common/directives/ng_for', 'NgFor'); - let annotations = reflector.annotations(NgFor); + const NgFor = host.findDeclaration('angular2/src/common/directives/ng_for', 'NgFor'); + const annotations = reflector.annotations(NgFor); expect(annotations.length).toEqual(1); - let annotation = annotations[0]; + const annotation = annotations[0]; expect(annotation.selector).toEqual('[ngFor][ngForOf]'); expect(annotation.inputs).toEqual(['ngForTrackBy', 'ngForOf', 'ngForTemplate']); }); it('should get constructor for NgFor', () => { - let NgFor = host.findDeclaration('angular2/src/common/directives/ng_for', 'NgFor'); - let ViewContainerRef = + const NgFor = host.findDeclaration('angular2/src/common/directives/ng_for', 'NgFor'); + const ViewContainerRef = host.findDeclaration('angular2/src/core/linker/view_container_ref', 'ViewContainerRef'); - let TemplateRef = host.findDeclaration('angular2/src/core/linker/template_ref', 'TemplateRef'); - let IterableDiffers = host.findDeclaration( + const TemplateRef = + host.findDeclaration('angular2/src/core/linker/template_ref', 'TemplateRef'); + const IterableDiffers = host.findDeclaration( 'angular2/src/core/change_detection/differs/iterable_differs', 'IterableDiffers'); - let ChangeDetectorRef = host.findDeclaration( + const ChangeDetectorRef = host.findDeclaration( 'angular2/src/core/change_detection/change_detector_ref', 'ChangeDetectorRef'); - let parameters = reflector.parameters(NgFor); + const parameters = reflector.parameters(NgFor); expect(parameters).toEqual([ [ViewContainerRef], [TemplateRef], [IterableDiffers], [ChangeDetectorRef] ]); }); it('should get annotations for HeroDetailComponent', () => { - let HeroDetailComponent = + const HeroDetailComponent = host.findDeclaration('src/app/hero-detail.component', 'HeroDetailComponent'); - let annotations = reflector.annotations(HeroDetailComponent); + const annotations = reflector.annotations(HeroDetailComponent); expect(annotations.length).toEqual(1); - let annotation = annotations[0]; + const annotation = annotations[0]; expect(annotation.selector).toEqual('my-hero-detail'); expect(annotation.animations).toEqual([trigger('myAnimation', [ state('state1', style({'background': 'white'})), @@ -73,40 +74,40 @@ describe('StaticReflector', () => { }); it('should throw and exception for unsupported metadata versions', () => { - let e = host.findDeclaration('src/version-error', 'e'); + const e = host.findDeclaration('src/version-error', 'e'); expect(() => reflector.annotations(e)) .toThrow(new Error( 'Metadata version mismatch for module /tmp/src/version-error.d.ts, found version 100, expected 1')); }); it('should get and empty annotation list for an unknown class', () => { - let UnknownClass = host.findDeclaration('src/app/app.component', 'UnknownClass'); - let annotations = reflector.annotations(UnknownClass); + const UnknownClass = host.findDeclaration('src/app/app.component', 'UnknownClass'); + const annotations = reflector.annotations(UnknownClass); expect(annotations).toEqual([]); }); it('should get propMetadata for HeroDetailComponent', () => { - let HeroDetailComponent = + const HeroDetailComponent = host.findDeclaration('src/app/hero-detail.component', 'HeroDetailComponent'); - let props = reflector.propMetadata(HeroDetailComponent); + const props = reflector.propMetadata(HeroDetailComponent); expect(props['hero']).toBeTruthy(); expect(props['onMouseOver']).toEqual([new HostListener('mouseover', ['$event'])]); }); it('should get an empty object from propMetadata for an unknown class', () => { - let UnknownClass = host.findDeclaration('src/app/app.component', 'UnknownClass'); - let properties = reflector.propMetadata(UnknownClass); + const UnknownClass = host.findDeclaration('src/app/app.component', 'UnknownClass'); + const properties = reflector.propMetadata(UnknownClass); expect(properties).toEqual({}); }); it('should get empty parameters list for an unknown class ', () => { - let UnknownClass = host.findDeclaration('src/app/app.component', 'UnknownClass'); - let parameters = reflector.parameters(UnknownClass); + const UnknownClass = host.findDeclaration('src/app/app.component', 'UnknownClass'); + const parameters = reflector.parameters(UnknownClass); expect(parameters).toEqual([]); }); it('should provide context for errors reported by the collector', () => { - let SomeClass = host.findDeclaration('src/error-reporting', 'SomeClass'); + const SomeClass = host.findDeclaration('src/error-reporting', 'SomeClass'); expect(() => reflector.annotations(SomeClass)) .toThrow(new Error( 'Error encountered resolving symbol values statically. A reasonable error message (position 13:34 in the original .ts file), resolving symbol ErrorSym in /tmp/src/error-references.d.ts, resolving symbol Link2 in /tmp/src/error-references.d.ts, resolving symbol Link1 in /tmp/src/error-references.d.ts, resolving symbol SomeClass in /tmp/src/error-reporting.d.ts, resolving symbol SomeClass in /tmp/src/error-reporting.d.ts')); @@ -128,7 +129,7 @@ describe('StaticReflector', () => { }); it('should simplify an object to a copy of the object', () => { - let expr = {a: 1, b: 2, c: 3}; + const expr = {a: 1, b: 2, c: 3}; expect(simplify(noContext, expr)).toEqual(expr); }); @@ -292,7 +293,7 @@ describe('StaticReflector', () => { }); it('should simplify an object index', () => { - let expr = {__symbolic: 'select', expression: {a: 1, b: 2, c: 3}, member: 'b'}; + const expr = {__symbolic: 'select', expression: {a: 1, b: 2, c: 3}, member: 'b'}; expect(simplify(noContext, expr)).toBe(2); }); @@ -373,7 +374,7 @@ describe('StaticReflector', () => { }); it('should be able to get metadata from a ts file', () => { - let metadata = reflector.getModuleMetadata('/tmp/src/custom-decorator-reference.ts'); + const metadata = reflector.getModuleMetadata('/tmp/src/custom-decorator-reference.ts'); expect(metadata).toEqual({ __symbolic: 'module', version: 1, @@ -404,7 +405,7 @@ describe('StaticReflector', () => { }); it('should be able to get metadata for a class containing a custom decorator', () => { - let props = reflector.propMetadata( + const props = reflector.propMetadata( host.getStaticSymbol('/tmp/src/custom-decorator-reference.ts', 'Foo')); expect(props).toEqual({foo: []}); }); @@ -477,8 +478,8 @@ class MockReflectorHost implements StaticReflectorHost { getCanonicalFileName(fileName: string): string { return fileName; } getStaticSymbol(declarationFile: string, name: string, members?: string[]): StaticSymbol { - var cacheKey = `${declarationFile}:${name}${members?'.'+members.join('.'):''}`; - var result = this.staticTypeCache.get(cacheKey); + const cacheKey = `${declarationFile}:${name}${members?'.'+members.join('.'):''}`; + let result = this.staticTypeCache.get(cacheKey); if (!result) { result = new StaticSymbol(declarationFile, name, members); this.staticTypeCache.set(cacheKey, result); @@ -491,7 +492,7 @@ class MockReflectorHost implements StaticReflectorHost { function splitPath(path: string): string[] { return path.split(/\/|\\/g); } function resolvePath(pathParts: string[]): string { - let result: string[] = []; + const result: string[] = []; pathParts.forEach((part, index) => { switch (part) { case '': @@ -510,9 +511,9 @@ class MockReflectorHost implements StaticReflectorHost { function pathTo(from: string, to: string): string { let result = to; if (to.startsWith('.')) { - let fromParts = splitPath(from); + const fromParts = splitPath(from); fromParts.pop(); // remove the file name. - let toParts = splitPath(to); + const toParts = splitPath(to); result = resolvePath(fromParts.concat(toParts)); } return result; @@ -530,7 +531,7 @@ class MockReflectorHost implements StaticReflectorHost { } getMetadataFor(moduleId: string): any { - let data: {[key: string]: any} = { + const data: {[key: string]: any} = { '/tmp/angular2/src/common/forms-deprecated/directives.d.ts': [{ '__symbolic': 'module', 'version': 1, @@ -1072,11 +1073,11 @@ class MockReflectorHost implements StaticReflectorHost { if (data[moduleId] && moduleId.match(TS_EXT)) { - let text = data[moduleId]; + const text = data[moduleId]; if (typeof text === 'string') { - let sf = ts.createSourceFile( + const sf = ts.createSourceFile( moduleId, data[moduleId], ts.ScriptTarget.ES5, /* setParentNodes */ true); - let diagnostics: ts.Diagnostic[] = (sf).parseDiagnostics; + const diagnostics: ts.Diagnostic[] = (sf).parseDiagnostics; if (diagnostics && diagnostics.length) { throw Error(`Error encountered during parse of file ${moduleId}`); } diff --git a/modules/@angular/compiler/src/animation/animation_compiler.ts b/modules/@angular/compiler/src/animation/animation_compiler.ts index 633aa47a1e..c68ac228e8 100644 --- a/modules/@angular/compiler/src/animation/animation_compiler.ts +++ b/modules/@angular/compiler/src/animation/animation_compiler.ts @@ -29,19 +29,19 @@ export class AnimationCompiler { } } -var _ANIMATION_FACTORY_ELEMENT_VAR = o.variable('element'); -var _ANIMATION_DEFAULT_STATE_VAR = o.variable('defaultStateStyles'); -var _ANIMATION_FACTORY_VIEW_VAR = o.variable('view'); -var _ANIMATION_FACTORY_VIEW_CONTEXT = _ANIMATION_FACTORY_VIEW_VAR.prop('animationContext'); -var _ANIMATION_FACTORY_RENDERER_VAR = _ANIMATION_FACTORY_VIEW_VAR.prop('renderer'); -var _ANIMATION_CURRENT_STATE_VAR = o.variable('currentState'); -var _ANIMATION_NEXT_STATE_VAR = o.variable('nextState'); -var _ANIMATION_PLAYER_VAR = o.variable('player'); -var _ANIMATION_TIME_VAR = o.variable('totalTime'); -var _ANIMATION_START_STATE_STYLES_VAR = o.variable('startStateStyles'); -var _ANIMATION_END_STATE_STYLES_VAR = o.variable('endStateStyles'); -var _ANIMATION_COLLECTED_STYLES = o.variable('collectedStyles'); -var EMPTY_MAP = o.literalMap([]); +const _ANIMATION_FACTORY_ELEMENT_VAR = o.variable('element'); +const _ANIMATION_DEFAULT_STATE_VAR = o.variable('defaultStateStyles'); +const _ANIMATION_FACTORY_VIEW_VAR = o.variable('view'); +const _ANIMATION_FACTORY_VIEW_CONTEXT = _ANIMATION_FACTORY_VIEW_VAR.prop('animationContext'); +const _ANIMATION_FACTORY_RENDERER_VAR = _ANIMATION_FACTORY_VIEW_VAR.prop('renderer'); +const _ANIMATION_CURRENT_STATE_VAR = o.variable('currentState'); +const _ANIMATION_NEXT_STATE_VAR = o.variable('nextState'); +const _ANIMATION_PLAYER_VAR = o.variable('player'); +const _ANIMATION_TIME_VAR = o.variable('totalTime'); +const _ANIMATION_START_STATE_STYLES_VAR = o.variable('startStateStyles'); +const _ANIMATION_END_STATE_STYLES_VAR = o.variable('endStateStyles'); +const _ANIMATION_COLLECTED_STYLES = o.variable('collectedStyles'); +const EMPTY_MAP = o.literalMap([]); class _AnimationBuilder implements AnimationAstVisitor { private _fnVarName: string; @@ -55,7 +55,7 @@ class _AnimationBuilder implements AnimationAstVisitor { } visitAnimationStyles(ast: AnimationStylesAst, context: _AnimationBuilderContext): o.Expression { - var stylesArr: any[] = []; + const stylesArr: any[] = []; if (context.isExpectingFirstStyleStep) { stylesArr.push(_ANIMATION_START_STATE_STYLES_VAR); context.isExpectingFirstStyleStep = false; @@ -86,8 +86,8 @@ class _AnimationBuilder implements AnimationAstVisitor { return this._visitEndStateAnimation(ast, context); } - var startingStylesExpr = ast.startingStyles.visit(this, context); - var keyframeExpressions = + const startingStylesExpr = ast.startingStyles.visit(this, context); + const keyframeExpressions = ast.keyframes.map(keyframeEntry => keyframeEntry.visit(this, context)); return this._callAnimateMethod( ast, startingStylesExpr, o.literalArr(keyframeExpressions), context); @@ -95,9 +95,9 @@ class _AnimationBuilder implements AnimationAstVisitor { /** @internal */ _visitEndStateAnimation(ast: AnimationStepAst, context: _AnimationBuilderContext): o.Expression { - var startingStylesExpr = ast.startingStyles.visit(this, context); - var keyframeExpressions = ast.keyframes.map(keyframe => keyframe.visit(this, context)); - var keyframesExpr = + const startingStylesExpr = ast.startingStyles.visit(this, context); + const keyframeExpressions = ast.keyframes.map(keyframe => keyframe.visit(this, context)); + const keyframesExpr = o.importExpr(resolveIdentifier(Identifiers.balanceAnimationKeyframes)).callFn([ _ANIMATION_COLLECTED_STYLES, _ANIMATION_END_STATE_STYLES_VAR, o.literalArr(keyframeExpressions) @@ -119,14 +119,14 @@ class _AnimationBuilder implements AnimationAstVisitor { visitAnimationSequence(ast: AnimationSequenceAst, context: _AnimationBuilderContext): o.Expression { - var playerExprs = ast.steps.map(step => step.visit(this, context)); + const playerExprs = ast.steps.map(step => step.visit(this, context)); return o.importExpr(resolveIdentifier(Identifiers.AnimationSequencePlayer)).instantiate([ o.literalArr(playerExprs) ]); } visitAnimationGroup(ast: AnimationGroupAst, context: _AnimationBuilderContext): o.Expression { - var playerExprs = ast.steps.map(step => step.visit(this, context)); + const playerExprs = ast.steps.map(step => step.visit(this, context)); return o.importExpr(resolveIdentifier(Identifiers.AnimationGroupPlayer)).instantiate([ o.literalArr(playerExprs) ]); @@ -134,7 +134,7 @@ class _AnimationBuilder implements AnimationAstVisitor { visitAnimationStateDeclaration( ast: AnimationStateDeclarationAst, context: _AnimationBuilderContext): void { - var flatStyles: {[key: string]: string | number} = {}; + const flatStyles: {[key: string]: string | number} = {}; _getStylesArray(ast).forEach( entry => { Object.keys(entry).forEach(key => { flatStyles[key] = entry[key]; }); }); context.stateMap.registerState(ast.stateName, flatStyles); @@ -142,8 +142,8 @@ class _AnimationBuilder implements AnimationAstVisitor { visitAnimationStateTransition( ast: AnimationStateTransitionAst, context: _AnimationBuilderContext): any { - var steps = ast.animation.steps; - var lastStep = steps[steps.length - 1]; + const steps = ast.animation.steps; + const lastStep = steps[steps.length - 1]; if (_isEndStateAnimateStep(lastStep)) { context.endStateAnimateStep = lastStep; } @@ -151,7 +151,7 @@ class _AnimationBuilder implements AnimationAstVisitor { context.totalTransitionTime = 0; context.isExpectingFirstStyleStep = true; - var stateChangePreconditions: o.Expression[] = []; + const stateChangePreconditions: o.Expression[] = []; ast.stateChanges.forEach(stateChange => { stateChangePreconditions.push( @@ -167,14 +167,14 @@ class _AnimationBuilder implements AnimationAstVisitor { } }); - var animationPlayerExpr = ast.animation.visit(this, context); + const animationPlayerExpr = ast.animation.visit(this, context); - var reducedStateChangesPrecondition = stateChangePreconditions.reduce((a, b) => a.or(b)); - var precondition = + const reducedStateChangesPrecondition = stateChangePreconditions.reduce((a, b) => a.or(b)); + const precondition = _ANIMATION_PLAYER_VAR.equals(o.NULL_EXPR).and(reducedStateChangesPrecondition); - var animationStmt = _ANIMATION_PLAYER_VAR.set(animationPlayerExpr).toStmt(); - var totalTimeStmt = _ANIMATION_TIME_VAR.set(o.literal(context.totalTransitionTime)).toStmt(); + const animationStmt = _ANIMATION_PLAYER_VAR.set(animationPlayerExpr).toStmt(); + const totalTimeStmt = _ANIMATION_TIME_VAR.set(o.literal(context.totalTransitionTime)).toStmt(); return new o.IfStmt(precondition, [animationStmt, totalTimeStmt]); } @@ -186,7 +186,7 @@ class _AnimationBuilder implements AnimationAstVisitor { // this should always be defined even if the user overrides it context.stateMap.registerState(DEFAULT_STATE, {}); - var statements: o.Statement[] = []; + const statements: o.Statement[] = []; statements.push(_ANIMATION_FACTORY_VIEW_CONTEXT .callMethod( 'cancelActiveAnimation', @@ -221,7 +221,7 @@ class _AnimationBuilder implements AnimationAstVisitor { _ANIMATION_END_STATE_STYLES_VAR.equals(o.NULL_EXPR), [_ANIMATION_END_STATE_STYLES_VAR.set(_ANIMATION_DEFAULT_STATE_VAR).toStmt()])); - var RENDER_STYLES_FN = o.importExpr(resolveIdentifier(Identifiers.renderStyles)); + const RENDER_STYLES_FN = o.importExpr(resolveIdentifier(Identifiers.renderStyles)); // before we start any animation we want to clear out the starting // styles from the element's style property (since they were placed @@ -297,16 +297,16 @@ class _AnimationBuilder implements AnimationAstVisitor { } build(ast: AnimationAst): AnimationEntryCompileResult { - var context = new _AnimationBuilderContext(); - var fnStatement = ast.visit(this, context).toDeclStmt(this._fnVarName); - var fnVariable = o.variable(this._fnVarName); + const context = new _AnimationBuilderContext(); + const fnStatement = ast.visit(this, context).toDeclStmt(this._fnVarName); + const fnVariable = o.variable(this._fnVarName); - var lookupMap: any[] = []; + const lookupMap: any[] = []; Object.keys(context.stateMap.states).forEach(stateName => { const value = context.stateMap.states[stateName]; - var variableValue = EMPTY_MAP; + let variableValue = EMPTY_MAP; if (isPresent(value)) { - let styleMap: any[] = []; + const styleMap: any[] = []; Object.keys(value).forEach(key => { styleMap.push([key, o.literal(value[key])]); }); variableValue = o.literalMap(styleMap); } @@ -331,7 +331,7 @@ class _AnimationBuilderStateMap { private _states: {[key: string]: {[prop: string]: string | number}} = {}; get states() { return this._states; } registerState(name: string, value: {[prop: string]: string | number} = null): void { - var existingEntry = this._states[name]; + const existingEntry = this._states[name]; if (!existingEntry) { this._states[name] = value; } @@ -339,7 +339,7 @@ class _AnimationBuilderStateMap { } function _compareToAnimationStateExpr(value: o.Expression, animationState: string): o.Expression { - var emptyStateLiteral = o.literal(EMPTY_STATE); + const emptyStateLiteral = o.literal(EMPTY_STATE); switch (animationState) { case EMPTY_STATE: return value.equals(emptyStateLiteral); @@ -356,8 +356,8 @@ function _isEndStateAnimateStep(step: AnimationAst): boolean { // the final animation step is characterized by having only TWO // keyframe values and it must have zero styles for both keyframes if (step instanceof AnimationStepAst && step.duration > 0 && step.keyframes.length == 2) { - var styles1 = _getStylesArray(step.keyframes[0])[0]; - var styles2 = _getStylesArray(step.keyframes[1])[0]; + const styles1 = _getStylesArray(step.keyframes[0])[0]; + const styles2 = _getStylesArray(step.keyframes[1])[0]; return Object.keys(styles1).length === 0 && Object.keys(styles2).length === 0; } return false; diff --git a/modules/@angular/compiler/src/animation/animation_parser.ts b/modules/@angular/compiler/src/animation/animation_parser.ts index 35bf2eee6e..1dfc36cda9 100644 --- a/modules/@angular/compiler/src/animation/animation_parser.ts +++ b/modules/@angular/compiler/src/animation/animation_parser.ts @@ -72,11 +72,11 @@ export class AnimationParser { } parseEntry(entry: CompileAnimationEntryMetadata): AnimationEntryParseResult { - var errors: AnimationParseError[] = []; - var stateStyles: {[key: string]: AnimationStylesAst} = {}; - var transitions: CompileAnimationStateTransitionMetadata[] = []; + const errors: AnimationParseError[] = []; + const stateStyles: {[key: string]: AnimationStylesAst} = {}; + const transitions: CompileAnimationStateTransitionMetadata[] = []; - var stateDeclarationAsts: AnimationStateDeclarationAst[] = []; + const stateDeclarationAsts: AnimationStateDeclarationAst[] = []; entry.definitions.forEach(def => { if (def instanceof CompileAnimationStateDeclarationMetadata) { _parseAnimationDeclarationStates(def, this._schema, errors).forEach(ast => { @@ -88,10 +88,10 @@ export class AnimationParser { } }); - var stateTransitionAsts = transitions.map( + const stateTransitionAsts = transitions.map( transDef => _parseAnimationStateTransition(transDef, stateStyles, this._schema, errors)); - var ast = new AnimationEntryAst(entry.name, stateDeclarationAsts, stateTransitionAsts); + const ast = new AnimationEntryAst(entry.name, stateDeclarationAsts, stateTransitionAsts); return new AnimationEntryParseResult(ast, errors); } } @@ -99,9 +99,9 @@ export class AnimationParser { function _parseAnimationDeclarationStates( stateMetadata: CompileAnimationStateDeclarationMetadata, schema: ElementSchemaRegistry, errors: AnimationParseError[]): AnimationStateDeclarationAst[] { - var normalizedStyles = _normalizeStyleMetadata(stateMetadata.styles, {}, schema, errors, false); - var defStyles = new AnimationStylesAst(normalizedStyles); - var states = stateMetadata.stateNameExpr.split(/\s*,\s*/); + const normalizedStyles = _normalizeStyleMetadata(stateMetadata.styles, {}, schema, errors, false); + const defStyles = new AnimationStylesAst(normalizedStyles); + const states = stateMetadata.stateNameExpr.split(/\s*,\s*/); return states.map(state => new AnimationStateDeclarationAst(state, defStyles)); } @@ -109,19 +109,19 @@ function _parseAnimationStateTransition( transitionStateMetadata: CompileAnimationStateTransitionMetadata, stateStyles: {[key: string]: AnimationStylesAst}, schema: ElementSchemaRegistry, errors: AnimationParseError[]): AnimationStateTransitionAst { - var styles = new StylesCollection(); - var transitionExprs: AnimationStateTransitionExpression[] = []; - var transitionStates = transitionStateMetadata.stateChangeExpr.split(/\s*,\s*/); + const styles = new StylesCollection(); + const transitionExprs: AnimationStateTransitionExpression[] = []; + const transitionStates = transitionStateMetadata.stateChangeExpr.split(/\s*,\s*/); transitionStates.forEach( expr => { transitionExprs.push(..._parseAnimationTransitionExpr(expr, errors)); }); - var entry = _normalizeAnimationEntry(transitionStateMetadata.steps); - var animation = _normalizeStyleSteps(entry, stateStyles, schema, errors); - var animationAst = _parseTransitionAnimation(animation, 0, styles, stateStyles, errors); + const entry = _normalizeAnimationEntry(transitionStateMetadata.steps); + const animation = _normalizeStyleSteps(entry, stateStyles, schema, errors); + const animationAst = _parseTransitionAnimation(animation, 0, styles, stateStyles, errors); if (errors.length == 0) { _fillAnimationAstStartingKeyframes(animationAst, styles, errors); } - var stepsAst: AnimationWithStepsAst = (animationAst instanceof AnimationWithStepsAst) ? + const stepsAst: AnimationWithStepsAst = (animationAst instanceof AnimationWithStepsAst) ? animationAst : new AnimationSequenceAst([animationAst]); @@ -143,22 +143,22 @@ function _parseAnimationAlias(alias: string, errors: AnimationParseError[]): str function _parseAnimationTransitionExpr( eventStr: string, errors: AnimationParseError[]): AnimationStateTransitionExpression[] { - var expressions: AnimationStateTransitionExpression[] = []; + const expressions: AnimationStateTransitionExpression[] = []; if (eventStr[0] == ':') { eventStr = _parseAnimationAlias(eventStr, errors); } - var match = eventStr.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/); + const match = eventStr.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/); if (!isPresent(match) || match.length < 4) { errors.push(new AnimationParseError(`the provided ${eventStr} is not of a supported format`)); return expressions; } - var fromState = match[1]; - var separator = match[2]; - var toState = match[3]; + const fromState = match[1]; + const separator = match[2]; + const toState = match[3]; expressions.push(new AnimationStateTransitionExpression(fromState, toState)); - var isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE; + const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE; if (separator[0] == '<' && !isFullAnyStateExpr) { expressions.push(new AnimationStateTransitionExpression(toState, fromState)); } @@ -174,7 +174,7 @@ function _normalizeStyleMetadata( entry: CompileAnimationStyleMetadata, stateStyles: {[key: string]: AnimationStylesAst}, schema: ElementSchemaRegistry, errors: AnimationParseError[], permitStateReferences: boolean): {[key: string]: string | number}[] { - var normalizedStyles: {[key: string]: string | number}[] = []; + const normalizedStyles: {[key: string]: string | number}[] = []; entry.styles.forEach(styleEntry => { if (typeof styleEntry === 'string') { if (permitStateReferences) { @@ -184,13 +184,13 @@ function _normalizeStyleMetadata( `State based animations cannot contain references to other states`)); } } else { - var stylesObj = styleEntry; - var normalizedStylesObj: Styles = {}; + const stylesObj = styleEntry; + const normalizedStylesObj: Styles = {}; Object.keys(stylesObj).forEach(propName => { - var normalizedProp = schema.normalizeAnimationStyleProperty(propName); - var normalizedOutput = + const normalizedProp = schema.normalizeAnimationStyleProperty(propName); + const normalizedOutput = schema.normalizeAnimationStyleValue(normalizedProp, propName, stylesObj[propName]); - var normalizationError = normalizedOutput['error']; + const normalizationError = normalizedOutput['error']; if (normalizationError) { errors.push(new AnimationParseError(normalizationError)); } @@ -205,7 +205,7 @@ function _normalizeStyleMetadata( function _normalizeStyleSteps( entry: CompileAnimationMetadata, stateStyles: {[key: string]: AnimationStylesAst}, schema: ElementSchemaRegistry, errors: AnimationParseError[]): CompileAnimationMetadata { - var steps = _normalizeStyleStepEntry(entry, stateStyles, schema, errors); + const steps = _normalizeStyleStepEntry(entry, stateStyles, schema, errors); return (entry instanceof CompileAnimationGroupMetadata) ? new CompileAnimationGroupMetadata(steps) : new CompileAnimationSequenceMetadata(steps); @@ -214,8 +214,8 @@ function _normalizeStyleSteps( function _mergeAnimationStyles( stylesList: any[], newItem: {[key: string]: string | number} | string) { if (typeof newItem === 'object' && newItem !== null && stylesList.length > 0) { - var lastIndex = stylesList.length - 1; - var lastItem = stylesList[lastIndex]; + const lastIndex = stylesList.length - 1; + const lastItem = stylesList[lastIndex]; if (typeof lastItem === 'object' && lastItem !== null) { stylesList[lastIndex] = StringMapWrapper.merge( <{[key: string]: string | number}>lastItem, <{[key: string]: string | number}>newItem); @@ -228,15 +228,15 @@ function _mergeAnimationStyles( function _normalizeStyleStepEntry( entry: CompileAnimationMetadata, stateStyles: {[key: string]: AnimationStylesAst}, schema: ElementSchemaRegistry, errors: AnimationParseError[]): CompileAnimationMetadata[] { - var steps: CompileAnimationMetadata[]; + let steps: CompileAnimationMetadata[]; if (entry instanceof CompileAnimationWithStepsMetadata) { steps = entry.steps; } else { return [entry]; } - var newSteps: CompileAnimationMetadata[] = []; - var combinedStyles: Styles[]; + const newSteps: CompileAnimationMetadata[] = []; + let combinedStyles: Styles[]; steps.forEach(step => { if (step instanceof CompileAnimationStyleMetadata) { // this occurs when a style step is followed by a previous style step @@ -262,7 +262,7 @@ function _normalizeStyleStepEntry( if (step instanceof CompileAnimationAnimateMetadata) { // we do not recurse into CompileAnimationAnimateMetadata since // those style steps are not going to be squashed - var animateStyleValue = (step).styles; + const animateStyleValue = (step).styles; if (animateStyleValue instanceof CompileAnimationStyleMetadata) { animateStyleValue.styles = _normalizeStyleMetadata(animateStyleValue, stateStyles, schema, errors, true); @@ -272,7 +272,7 @@ function _normalizeStyleStepEntry( }); } } else if (step instanceof CompileAnimationWithStepsMetadata) { - let innerSteps = _normalizeStyleStepEntry(step, stateStyles, schema, errors); + const innerSteps = _normalizeStyleStepEntry(step, stateStyles, schema, errors); step = step instanceof CompileAnimationGroupMetadata ? new CompileAnimationGroupMetadata(innerSteps) : new CompileAnimationSequenceMetadata(innerSteps); @@ -294,12 +294,12 @@ function _normalizeStyleStepEntry( function _resolveStylesFromState( stateName: string, stateStyles: {[key: string]: AnimationStylesAst}, errors: AnimationParseError[]) { - var styles: Styles[] = []; + const styles: Styles[] = []; if (stateName[0] != ':') { errors.push(new AnimationParseError(`Animation states via styles must be prefixed with a ":"`)); } else { - var normalizedStateName = stateName.substring(1); - var value = stateStyles[normalizedStateName]; + const normalizedStateName = stateName.substring(1); + const value = stateStyles[normalizedStateName]; if (!isPresent(value)) { errors.push(new AnimationParseError( `Unable to apply styles due to missing a state: "${normalizedStateName}"`)); @@ -322,8 +322,8 @@ function _parseAnimationKeyframes( keyframeSequence: CompileAnimationKeyframesSequenceMetadata, currentTime: number, collectedStyles: StylesCollection, stateStyles: {[key: string]: AnimationStylesAst}, errors: AnimationParseError[]): AnimationKeyframeAst[] { - var totalEntries = keyframeSequence.steps.length; - var totalOffsets = 0; + const totalEntries = keyframeSequence.steps.length; + let totalOffsets = 0; keyframeSequence.steps.forEach(step => totalOffsets += (isPresent(step.offset) ? 1 : 0)); if (totalOffsets > 0 && totalOffsets < totalEntries) { @@ -332,15 +332,15 @@ function _parseAnimationKeyframes( totalOffsets = totalEntries; } - var limit = totalEntries - 1; - var margin = totalOffsets == 0 ? (1 / limit) : 0; - var rawKeyframes: any[] /** TODO #9100 */ = []; - var index = 0; - var doSortKeyframes = false; - var lastOffset = 0; + let limit = totalEntries - 1; + const margin = totalOffsets == 0 ? (1 / limit) : 0; + const rawKeyframes: any[] /** TODO #9100 */ = []; + let index = 0; + let doSortKeyframes = false; + let lastOffset = 0; keyframeSequence.steps.forEach(styleMetadata => { - var offset = styleMetadata.offset; - var keyframeStyles: Styles = {}; + let offset = styleMetadata.offset; + const keyframeStyles: Styles = {}; styleMetadata.styles.forEach(entry => { Object.keys(entry).forEach(prop => { if (prop != 'offset') { @@ -364,23 +364,23 @@ function _parseAnimationKeyframes( rawKeyframes.sort((a, b) => a[0] <= b[0] ? -1 : 1); } - var firstKeyframe = rawKeyframes[0]; + let firstKeyframe = rawKeyframes[0]; if (firstKeyframe[0] != _INITIAL_KEYFRAME) { rawKeyframes.splice(0, 0, firstKeyframe = [_INITIAL_KEYFRAME, {}]); } - var firstKeyframeStyles = firstKeyframe[1]; + const firstKeyframeStyles = firstKeyframe[1]; limit = rawKeyframes.length - 1; - var lastKeyframe = rawKeyframes[limit]; + let lastKeyframe = rawKeyframes[limit]; if (lastKeyframe[0] != _TERMINAL_KEYFRAME) { rawKeyframes.push(lastKeyframe = [_TERMINAL_KEYFRAME, {}]); limit++; } - var lastKeyframeStyles = lastKeyframe[1]; + const lastKeyframeStyles = lastKeyframe[1]; for (let i = 1; i <= limit; i++) { - let entry = rawKeyframes[i]; - let styles = entry[1]; + const entry = rawKeyframes[i]; + const styles = entry[1]; Object.keys(styles).forEach(prop => { if (!isPresent(firstKeyframeStyles[prop])) { @@ -390,8 +390,8 @@ function _parseAnimationKeyframes( } for (let i = limit - 1; i >= 0; i--) { - let entry = rawKeyframes[i]; - let styles = entry[1]; + const entry = rawKeyframes[i]; + const styles = entry[1]; Object.keys(styles).forEach(prop => { if (!isPresent(lastKeyframeStyles[prop])) { @@ -407,21 +407,21 @@ function _parseAnimationKeyframes( function _parseTransitionAnimation( entry: CompileAnimationMetadata, currentTime: number, collectedStyles: StylesCollection, stateStyles: {[key: string]: AnimationStylesAst}, errors: AnimationParseError[]): AnimationAst { - var ast: any /** TODO #9100 */; - var playTime = 0; - var startingTime = currentTime; + let ast: any /** TODO #9100 */; + let playTime = 0; + const startingTime = currentTime; if (entry instanceof CompileAnimationWithStepsMetadata) { - var maxDuration = 0; - var steps: any[] /** TODO #9100 */ = []; - var isGroup = entry instanceof CompileAnimationGroupMetadata; - var previousStyles: any /** TODO #9100 */; + let maxDuration = 0; + const steps: any[] /** TODO #9100 */ = []; + const isGroup = entry instanceof CompileAnimationGroupMetadata; + let previousStyles: any /** TODO #9100 */; entry.steps.forEach(entry => { // these will get picked up by the next step... - var time = isGroup ? startingTime : currentTime; + const time = isGroup ? startingTime : currentTime; if (entry instanceof CompileAnimationStyleMetadata) { entry.styles.forEach(stylesEntry => { // by this point we know that we only have stringmap values - var map = stylesEntry as Styles; + const map = stylesEntry as Styles; Object.keys(map).forEach( prop => { collectedStyles.insertAtTime(prop, time, map[prop]); }); }); @@ -429,26 +429,26 @@ function _parseTransitionAnimation( return; } - var innerAst = _parseTransitionAnimation(entry, time, collectedStyles, stateStyles, errors); + const innerAst = _parseTransitionAnimation(entry, time, collectedStyles, stateStyles, errors); if (isPresent(previousStyles)) { if (entry instanceof CompileAnimationWithStepsMetadata) { - let startingStyles = new AnimationStylesAst(previousStyles); + const startingStyles = new AnimationStylesAst(previousStyles); steps.push(new AnimationStepAst(startingStyles, [], 0, 0, '')); } else { - var innerStep = innerAst; + const innerStep = innerAst; innerStep.startingStyles.styles.push(...previousStyles); } previousStyles = null; } - var astDuration = innerAst.playTime; + const astDuration = innerAst.playTime; currentTime += astDuration; playTime += astDuration; maxDuration = Math.max(astDuration, maxDuration); steps.push(innerAst); }); if (isPresent(previousStyles)) { - let startingStyles = new AnimationStylesAst(previousStyles); + const startingStyles = new AnimationStylesAst(previousStyles); steps.push(new AnimationStepAst(startingStyles, [], 0, 0, '')); } if (isGroup) { @@ -459,18 +459,18 @@ function _parseTransitionAnimation( ast = new AnimationSequenceAst(steps); } } else if (entry instanceof CompileAnimationAnimateMetadata) { - var timings = _parseTimeExpression(entry.timings, errors); - var styles = entry.styles; + const timings = _parseTimeExpression(entry.timings, errors); + const styles = entry.styles; - var keyframes: any /** TODO #9100 */; + let keyframes: any /** TODO #9100 */; if (styles instanceof CompileAnimationKeyframesSequenceMetadata) { keyframes = _parseAnimationKeyframes(styles, currentTime, collectedStyles, stateStyles, errors); } else { - let styleData = styles; - let offset = _TERMINAL_KEYFRAME; - let styleAst = new AnimationStylesAst(styleData.styles as Styles[]); - var keyframe = new AnimationKeyframeAst(offset, styleAst); + const styleData = styles; + const offset = _TERMINAL_KEYFRAME; + const styleAst = new AnimationStylesAst(styleData.styles as Styles[]); + const keyframe = new AnimationKeyframeAst(offset, styleAst); keyframes = [keyframe]; } @@ -499,10 +499,10 @@ function _fillAnimationAstStartingKeyframes( ast: AnimationAst, collectedStyles: StylesCollection, errors: AnimationParseError[]): void { // steps that only contain style will not be filled if ((ast instanceof AnimationStepAst) && ast.keyframes.length > 0) { - var keyframes = ast.keyframes; + const keyframes = ast.keyframes; if (keyframes.length == 1) { - var endKeyframe = keyframes[0]; - var startKeyframe = _createStartKeyframeFromEndKeyframe( + const endKeyframe = keyframes[0]; + const startKeyframe = _createStartKeyframeFromEndKeyframe( endKeyframe, ast.startTime, ast.playTime, collectedStyles, errors); ast.keyframes = [startKeyframe, endKeyframe]; } @@ -513,10 +513,10 @@ function _fillAnimationAstStartingKeyframes( function _parseTimeExpression( exp: string | number, errors: AnimationParseError[]): _AnimationTimings { - var regex = /^([\.\d]+)(m?s)(?:\s+([\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?/i; - var duration: number; - var delay: number = 0; - var easing: string = null; + const regex = /^([\.\d]+)(m?s)(?:\s+([\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?/i; + let duration: number; + let delay: number = 0; + let easing: string = null; if (typeof exp === 'string') { const matches = exp.match(regex); if (matches === null) { @@ -524,24 +524,24 @@ function _parseTimeExpression( return new _AnimationTimings(0, 0, null); } - var durationMatch = parseFloat(matches[1]); - var durationUnit = matches[2]; + let durationMatch = parseFloat(matches[1]); + const durationUnit = matches[2]; if (durationUnit == 's') { durationMatch *= _ONE_SECOND; } duration = Math.floor(durationMatch); - var delayMatch = matches[3]; - var delayUnit = matches[4]; + const delayMatch = matches[3]; + const delayUnit = matches[4]; if (isPresent(delayMatch)) { - var delayVal: number = parseFloat(delayMatch); + let delayVal: number = parseFloat(delayMatch); if (isPresent(delayUnit) && delayUnit == 's') { delayVal *= _ONE_SECOND; } delay = Math.floor(delayVal); } - var easingVal = matches[5]; + const easingVal = matches[5]; if (!isBlank(easingVal)) { easing = easingVal; } @@ -555,15 +555,15 @@ function _parseTimeExpression( function _createStartKeyframeFromEndKeyframe( endKeyframe: AnimationKeyframeAst, startTime: number, duration: number, collectedStyles: StylesCollection, errors: AnimationParseError[]): AnimationKeyframeAst { - var values: Styles = {}; - var endTime = startTime + duration; + const values: Styles = {}; + const endTime = startTime + duration; endKeyframe.styles.styles.forEach((styleData: Styles) => { Object.keys(styleData).forEach(prop => { const val = styleData[prop]; if (prop == 'offset') return; - var resultIndex = collectedStyles.indexOfAtOrBeforeTime(prop, startTime); - var resultEntry: any /** TODO #9100 */, nextEntry: any /** TODO #9100 */, + const resultIndex = collectedStyles.indexOfAtOrBeforeTime(prop, startTime); + let resultEntry: any /** TODO #9100 */, nextEntry: any /** TODO #9100 */, value: any /** TODO #9100 */; if (isPresent(resultIndex)) { resultEntry = collectedStyles.getByIndex(prop, resultIndex); diff --git a/modules/@angular/compiler/src/animation/styles_collection.ts b/modules/@angular/compiler/src/animation/styles_collection.ts index 2d9e96430c..aaec776001 100644 --- a/modules/@angular/compiler/src/animation/styles_collection.ts +++ b/modules/@angular/compiler/src/animation/styles_collection.ts @@ -20,16 +20,16 @@ export class StylesCollection { styles: {[key: string]: StylesCollectionEntry[]} = {}; insertAtTime(property: string, time: number, value: string|number) { - var tuple = new StylesCollectionEntry(time, value); - var entries = this.styles[property]; + const tuple = new StylesCollectionEntry(time, value); + let entries = this.styles[property]; if (!isPresent(entries)) { entries = this.styles[property] = []; } // insert this at the right stop in the array // this way we can keep it sorted - var insertionIndex = 0; - for (var i = entries.length - 1; i >= 0; i--) { + let insertionIndex = 0; + for (let i = entries.length - 1; i >= 0; i--) { if (entries[i].time <= time) { insertionIndex = i + 1; break; @@ -40,7 +40,7 @@ export class StylesCollection { } getByIndex(property: string, index: number): StylesCollectionEntry { - var items = this.styles[property]; + const items = this.styles[property]; if (isPresent(items)) { return index >= items.length ? null : items[index]; } @@ -48,9 +48,9 @@ export class StylesCollection { } indexOfAtOrBeforeTime(property: string, time: number): number { - var entries = this.styles[property]; + const entries = this.styles[property]; if (isPresent(entries)) { - for (var i = entries.length - 1; i >= 0; i--) { + for (let i = entries.length - 1; i >= 0; i--) { if (entries[i].time <= time) return i; } } diff --git a/modules/@angular/compiler/src/assertions.ts b/modules/@angular/compiler/src/assertions.ts index 474c15ddcd..31d246e68b 100644 --- a/modules/@angular/compiler/src/assertions.ts +++ b/modules/@angular/compiler/src/assertions.ts @@ -17,7 +17,7 @@ export function assertArrayOfStrings(identifier: string, value: any) { if (!Array.isArray(value)) { throw new Error(`Expected '${identifier}' to be an array of strings.`); } - for (var i = 0; i < value.length; i += 1) { + for (let i = 0; i < value.length; i += 1) { if (typeof value[i] !== 'string') { throw new Error(`Expected '${identifier}' to be an array of strings.`); } diff --git a/modules/@angular/compiler/src/compile_metadata.ts b/modules/@angular/compiler/src/compile_metadata.ts index ca51676bdf..231ed42d71 100644 --- a/modules/@angular/compiler/src/compile_metadata.ts +++ b/modules/@angular/compiler/src/compile_metadata.ts @@ -376,9 +376,9 @@ export class CompileDirectiveMetadata implements CompileMetadataWithIdentifier { entryComponents?: CompileIdentifierMetadata[], template?: CompileTemplateMetadata } = {}): CompileDirectiveMetadata { - var hostListeners: {[key: string]: string} = {}; - var hostProperties: {[key: string]: string} = {}; - var hostAttributes: {[key: string]: string} = {}; + const hostListeners: {[key: string]: string} = {}; + const hostProperties: {[key: string]: string} = {}; + const hostAttributes: {[key: string]: string} = {}; if (isPresent(host)) { Object.keys(host).forEach(key => { const value = host[key]; @@ -392,21 +392,21 @@ export class CompileDirectiveMetadata implements CompileMetadataWithIdentifier { } }); } - var inputsMap: {[key: string]: string} = {}; + const inputsMap: {[key: string]: string} = {}; if (isPresent(inputs)) { inputs.forEach((bindConfig: string) => { // canonical syntax: `dirProp: elProp` // if there is no `:`, use dirProp = elProp - var parts = splitAtColon(bindConfig, [bindConfig, bindConfig]); + const parts = splitAtColon(bindConfig, [bindConfig, bindConfig]); inputsMap[parts[0]] = parts[1]; }); } - var outputsMap: {[key: string]: string} = {}; + const outputsMap: {[key: string]: string} = {}; if (isPresent(outputs)) { outputs.forEach((bindConfig: string) => { // canonical syntax: `dirProp: elProp` // if there is no `:`, use dirProp = elProp - var parts = splitAtColon(bindConfig, [bindConfig, bindConfig]); + const parts = splitAtColon(bindConfig, [bindConfig, bindConfig]); outputsMap[parts[0]] = parts[1]; }); } @@ -516,7 +516,7 @@ export class CompileDirectiveMetadata implements CompileMetadataWithIdentifier { */ export function createHostComponentMeta(compMeta: CompileDirectiveMetadata): CompileDirectiveMetadata { - var template = CssSelector.parse(compMeta.selector)[0].getMatchingElementTemplate(); + const template = CssSelector.parse(compMeta.selector)[0].getMatchingElementTemplate(); return CompileDirectiveMetadata.create({ type: new CompileTypeMetadata({ reference: Object, diff --git a/modules/@angular/compiler/src/compiler.ts b/modules/@angular/compiler/src/compiler.ts index 3a82d5923b..c8eb889324 100644 --- a/modules/@angular/compiler/src/compiler.ts +++ b/modules/@angular/compiler/src/compiler.ts @@ -142,7 +142,7 @@ function _mergeOptions(optionsArr: CompilerOptions[]): CompilerOptions { } function _lastDefined(args: T[]): T { - for (var i = args.length - 1; i >= 0; i--) { + for (let i = args.length - 1; i >= 0; i--) { if (args[i] !== undefined) { return args[i]; } @@ -151,7 +151,7 @@ function _lastDefined(args: T[]): T { } function _mergeArrays(parts: any[][]): any[] { - let result: any[] = []; + const result: any[] = []; parts.forEach((part) => part && result.push(...part)); return result; } diff --git a/modules/@angular/compiler/src/compiler_util/binding_util.ts b/modules/@angular/compiler/src/compiler_util/binding_util.ts index 205fea6e74..9e2941d550 100644 --- a/modules/@angular/compiler/src/compiler_util/binding_util.ts +++ b/modules/@angular/compiler/src/compiler_util/binding_util.ts @@ -30,7 +30,7 @@ export function createCheckBindingField(builder: ClassBuilder): CheckBindingFiel export function createCheckBindingStmt( evalResult: ConvertPropertyBindingResult, fieldExpr: o.ReadPropExpr, throwOnChangeVar: o.Expression, actions: o.Statement[]): o.Statement[] { - var condition: o.Expression = o.importExpr(resolveIdentifier(Identifiers.checkBinding)).callFn([ + let condition: o.Expression = o.importExpr(resolveIdentifier(Identifiers.checkBinding)).callFn([ throwOnChangeVar, fieldExpr, evalResult.currValExpr ]); if (evalResult.forceUpdate) { diff --git a/modules/@angular/compiler/src/compiler_util/expression_converter.ts b/modules/@angular/compiler/src/compiler_util/expression_converter.ts index fd9dfc0206..5669bd8d0b 100644 --- a/modules/@angular/compiler/src/compiler_util/expression_converter.ts +++ b/modules/@angular/compiler/src/compiler_util/expression_converter.ts @@ -58,7 +58,7 @@ export function convertPropertyBinding( } if (visitor.needsValueUnwrapper) { - var initValueUnwrapperStmt = VAL_UNWRAPPER_VAR.callMethod('reset', []).toStmt(); + const initValueUnwrapperStmt = VAL_UNWRAPPER_VAR.callMethod('reset', []).toStmt(); stmts.push(initValueUnwrapperStmt); } stmts.push(currValExpr.set(outputExpr).toDeclStmt(null, [o.StmtModifier.Final])); @@ -86,14 +86,14 @@ export function convertActionBinding( } const visitor = new _AstToIrVisitor(builder, nameResolver, implicitReceiver, null, bindingId, true); - let actionStmts: o.Statement[] = []; + const actionStmts: o.Statement[] = []; flattenStatements(action.visit(visitor, _Mode.Statement), actionStmts); prependTemporaryDecls(visitor.temporaryCount, bindingId, actionStmts); - var lastIndex = actionStmts.length - 1; - var preventDefaultVar: o.ReadVarExpr = null; + const lastIndex = actionStmts.length - 1; + let preventDefaultVar: o.ReadVarExpr = null; if (lastIndex >= 0) { - var lastStatement = actionStmts[lastIndex]; - var returnExpr = convertStmtIntoExpression(lastStatement); + const lastStatement = actionStmts[lastIndex]; + const returnExpr = convertStmtIntoExpression(lastStatement); if (returnExpr) { // Note: We need to cast the result of the method call to dynamic, // as it might be a void method! @@ -112,7 +112,7 @@ export function convertActionBinding( */ export function createSharedBindingVariablesIfNeeded(stmts: o.Statement[]): o.Statement[] { const unwrapperStmts: o.Statement[] = []; - var readVars = o.findReadVarNames(stmts); + const readVars = o.findReadVarNames(stmts); if (readVars.has(VAL_UNWRAPPER_VAR.name)) { unwrapperStmts.push( VAL_UNWRAPPER_VAR @@ -175,7 +175,7 @@ class _AstToIrVisitor implements cdAst.AstVisitor { private bindingId: string, private isAction: boolean) {} visitBinary(ast: cdAst.Binary, mode: _Mode): any { - var op: o.BinaryOperator; + let op: o.BinaryOperator; switch (ast.operation) { case '+': op = o.BinaryOperator.Plus; @@ -303,7 +303,7 @@ class _AstToIrVisitor implements cdAst.AstVisitor { } visitLiteralMap(ast: cdAst.LiteralMap, mode: _Mode): any { - let parts: any[] = []; + const parts: any[] = []; for (let i = 0; i < ast.keys.length; i++) { parts.push([ast.keys[i], this.visit(ast.values[i], _Mode.Expression)]); } @@ -330,9 +330,9 @@ class _AstToIrVisitor implements cdAst.AstVisitor { } else { const args = this.visitAll(ast.args, _Mode.Expression); let result: any = null; - let receiver = this.visit(ast.receiver, _Mode.Expression); + const receiver = this.visit(ast.receiver, _Mode.Expression); if (receiver === this._implicitReceiver) { - var varExpr = this._getLocal(ast.name); + const varExpr = this._getLocal(ast.name); if (isPresent(varExpr)) { result = varExpr.callFn(args); } @@ -354,7 +354,7 @@ class _AstToIrVisitor implements cdAst.AstVisitor { return this.convertSafeAccess(ast, leftMostSafe, mode); } else { let result: any = null; - var receiver = this.visit(ast.receiver, _Mode.Expression); + const receiver = this.visit(ast.receiver, _Mode.Expression); if (receiver === this._implicitReceiver) { result = this._getLocal(ast.name); } @@ -366,9 +366,9 @@ class _AstToIrVisitor implements cdAst.AstVisitor { } visitPropertyWrite(ast: cdAst.PropertyWrite, mode: _Mode): any { - let receiver: o.Expression = this.visit(ast.receiver, _Mode.Expression); + const receiver: o.Expression = this.visit(ast.receiver, _Mode.Expression); if (receiver === this._implicitReceiver) { - var varExpr = this._getLocal(ast.name); + const varExpr = this._getLocal(ast.name); if (isPresent(varExpr)) { throw new Error('Cannot assign to a reference or variable!'); } @@ -580,11 +580,11 @@ function createCachedLiteralArray(builder: ClassBuilder, values: o.Expression[]) if (values.length === 0) { return o.importExpr(resolveIdentifier(Identifiers.EMPTY_ARRAY)); } - var proxyExpr = o.THIS_EXPR.prop(`_arr_${builder.fields.length}`); - var proxyParams: o.FnParam[] = []; - var proxyReturnEntries: o.Expression[] = []; - for (var i = 0; i < values.length; i++) { - var paramName = `p${i}`; + const proxyExpr = o.THIS_EXPR.prop(`_arr_${builder.fields.length}`); + const proxyParams: o.FnParam[] = []; + const proxyReturnEntries: o.Expression[] = []; + for (let i = 0; i < values.length; i++) { + const paramName = `p${i}`; proxyParams.push(new o.FnParam(paramName)); proxyReturnEntries.push(o.variable(paramName)); } @@ -605,7 +605,7 @@ function createCachedLiteralMap( const proxyParams: o.FnParam[] = []; const proxyReturnEntries: [string, o.Expression][] = []; const values: o.Expression[] = []; - for (var i = 0; i < entries.length; i++) { + for (let i = 0; i < entries.length; i++) { const paramName = `p${i}`; proxyParams.push(new o.FnParam(paramName)); proxyReturnEntries.push([entries[i][0], o.variable(paramName)]); diff --git a/modules/@angular/compiler/src/compiler_util/identifier_util.ts b/modules/@angular/compiler/src/compiler_util/identifier_util.ts index cc4df049ea..0ffe186272 100644 --- a/modules/@angular/compiler/src/compiler_util/identifier_util.ts +++ b/modules/@angular/compiler/src/compiler_util/identifier_util.ts @@ -40,7 +40,7 @@ export function createPureProxy( fn: o.Expression, argCount: number, pureProxyProp: o.ReadPropExpr, builder: {fields: o.ClassField[], ctorStmts: {push: (stmt: o.Statement) => void}}) { builder.fields.push(new o.ClassField(pureProxyProp.name, null)); - var pureProxyId = + const pureProxyId = argCount < Identifiers.pureProxies.length ? Identifiers.pureProxies[argCount] : null; if (!pureProxyId) { throw new Error(`Unsupported number of argument for pure functions: ${argCount}`); diff --git a/modules/@angular/compiler/src/compiler_util/render_util.ts b/modules/@angular/compiler/src/compiler_util/render_util.ts index 184922e31a..2835dfe8df 100644 --- a/modules/@angular/compiler/src/compiler_util/render_util.ts +++ b/modules/@angular/compiler/src/compiler_util/render_util.ts @@ -53,7 +53,7 @@ export function writeToRenderer( .toStmt()); break; case PropertyBindingType.Style: - var strValue: o.Expression = renderValue.callMethod('toString', []); + let strValue: o.Expression = renderValue.callMethod('toString', []); if (isPresent(boundProp.unit)) { strValue = strValue.plus(o.literal(boundProp.unit)); } @@ -84,8 +84,8 @@ function sanitizedValue( if (!securityContextExpression) { throw new Error(`internal error, no SecurityContext given ${boundProp.name}`); } - let ctx = view.prop('viewUtils').prop('sanitizer'); - let args = [securityContextExpression, renderValue]; + const ctx = view.prop('viewUtils').prop('sanitizer'); + const args = [securityContextExpression, renderValue]; return ctx.callMethod('sanitize', args); } diff --git a/modules/@angular/compiler/src/css_parser/css_ast.ts b/modules/@angular/compiler/src/css_parser/css_ast.ts index adbd5acf66..f673bd8b43 100644 --- a/modules/@angular/compiler/src/css_parser/css_ast.ts +++ b/modules/@angular/compiler/src/css_parser/css_ast.ts @@ -96,7 +96,7 @@ export class CssBlockDefinitionRuleAst extends CssBlockRuleAst { location: ParseSourceSpan, public strValue: string, type: BlockType, public query: CssAtRulePredicateAst, block: CssBlockAst) { super(location, type, block); - var firstCssToken: CssToken = query.tokens[0]; + const firstCssToken: CssToken = query.tokens[0]; this.name = new CssToken( firstCssToken.index, firstCssToken.column, firstCssToken.line, CssTokenType.Identifier, this.strValue); @@ -238,9 +238,9 @@ export class CssUnknownTokenListAst extends CssRuleAst { } export function mergeTokens(tokens: CssToken[], separator: string = ''): CssToken { - var mainToken = tokens[0]; - var str = mainToken.strValue; - for (var i = 1; i < tokens.length; i++) { + const mainToken = tokens[0]; + let str = mainToken.strValue; + for (let i = 1; i < tokens.length; i++) { str += separator + tokens[i].strValue; } diff --git a/modules/@angular/compiler/src/css_parser/css_lexer.ts b/modules/@angular/compiler/src/css_parser/css_lexer.ts index 5dfc96c1c4..9664b3d561 100644 --- a/modules/@angular/compiler/src/css_parser/css_lexer.ts +++ b/modules/@angular/compiler/src/css_parser/css_lexer.ts @@ -54,18 +54,18 @@ export function generateErrorMessage( export function findProblemCode( input: string, errorValue: string, index: number, column: number): string { - var endOfProblemLine = index; - var current = charCode(input, index); + let endOfProblemLine = index; + let current = charCode(input, index); while (current > 0 && !isNewline(current)) { current = charCode(input, ++endOfProblemLine); } - var choppedString = input.substring(0, endOfProblemLine); - var pointerPadding = ''; - for (var i = 0; i < column; i++) { + const choppedString = input.substring(0, endOfProblemLine); + let pointerPadding = ''; + for (let i = 0; i < column; i++) { pointerPadding += ' '; } - var pointerString = ''; - for (var i = 0; i < errorValue.length; i++) { + let pointerString = ''; + for (let i = 0; i < errorValue.length; i++) { pointerString += '^'; } return choppedString + '\n' + pointerPadding + pointerString + '\n'; @@ -185,16 +185,16 @@ export class CssScanner { } consume(type: CssTokenType, value: string = null): LexedCssResult { - var mode = this._currentMode; + const mode = this._currentMode; this.setMode(_trackWhitespace(mode) ? CssLexerMode.ALL_TRACK_WS : CssLexerMode.ALL); - var previousIndex = this.index; - var previousLine = this.line; - var previousColumn = this.column; + const previousIndex = this.index; + const previousLine = this.line; + const previousColumn = this.column; - var next: CssToken; - var output = this.scan(); + let next: CssToken; + const output = this.scan(); if (isPresent(output)) { // just incase the inner scan method returned an error if (isPresent(output.error)) { @@ -209,7 +209,7 @@ export class CssScanner { next = new CssToken(this.index, this.column, this.line, CssTokenType.EOF, 'end of file'); } - var isMatchingType: boolean = false; + let isMatchingType: boolean = false; if (type == CssTokenType.IdentifierOrNumber) { // TODO (matsko): implement array traversal for lookup here isMatchingType = next.type == CssTokenType.Number || next.type == CssTokenType.Identifier; @@ -221,9 +221,9 @@ export class CssScanner { // mode so that the parser can recover... this.setMode(mode); - var error: CssScannerError = null; + let error: CssScannerError = null; if (!isMatchingType || (isPresent(value) && value != next.strValue)) { - var errorMessage = + let errorMessage = CssTokenType[next.type] + ' does not match expected ' + CssTokenType[type] + ' value'; if (isPresent(value)) { @@ -241,15 +241,15 @@ export class CssScanner { scan(): LexedCssResult { - var trackWS = _trackWhitespace(this._currentMode); + const trackWS = _trackWhitespace(this._currentMode); if (this.index == 0 && !trackWS) { // first scan this.consumeWhitespace(); } - var token = this._scan(); + const token = this._scan(); if (token == null) return null; - var error = this._currentError; + const error = this._currentError; this._currentError = null; if (!trackWS) { @@ -260,14 +260,14 @@ export class CssScanner { /** @internal */ _scan(): CssToken { - var peek = this.peek; - var peekPeek = this.peekPeek; + let peek = this.peek; + let peekPeek = this.peekPeek; if (peek == chars.$EOF) return null; if (isCommentStart(peek, peekPeek)) { // even if comments are not tracked we still lex the // comment so we can move the pointer forward - var commentToken = this.scanComment(); + const commentToken = this.scanComment(); if (this._trackComments) { return commentToken; } @@ -290,9 +290,9 @@ export class CssScanner { return this.scanCssValueFunction(); } - var isModifier = peek == chars.$PLUS || peek == chars.$MINUS; - var digitA = isModifier ? false : chars.isDigit(peek); - var digitB = chars.isDigit(peekPeek); + const isModifier = peek == chars.$PLUS || peek == chars.$MINUS; + const digitA = isModifier ? false : chars.isDigit(peek); + const digitB = chars.isDigit(peekPeek); if (digitA || (isModifier && (peekPeek == chars.$PERIOD || digitB)) || (peek == chars.$PERIOD && digitB)) { return this.scanNumber(); @@ -319,9 +319,9 @@ export class CssScanner { return null; } - var start = this.index; - var startingColumn = this.column; - var startingLine = this.line; + const start = this.index; + const startingColumn = this.column; + const startingLine = this.line; this.advance(); // / this.advance(); // * @@ -336,18 +336,18 @@ export class CssScanner { this.advance(); // * this.advance(); // / - var str = this.input.substring(start, this.index); + const str = this.input.substring(start, this.index); return new CssToken(start, startingColumn, startingLine, CssTokenType.Comment, str); } scanWhitespace(): CssToken { - var start = this.index; - var startingColumn = this.column; - var startingLine = this.line; + const start = this.index; + const startingColumn = this.column; + const startingLine = this.line; while (chars.isWhitespace(this.peek) && this.peek != chars.$EOF) { this.advance(); } - var str = this.input.substring(start, this.index); + const str = this.input.substring(start, this.index); return new CssToken(start, startingColumn, startingLine, CssTokenType.Whitespace, str); } @@ -357,11 +357,11 @@ export class CssScanner { return null; } - var target = this.peek; - var start = this.index; - var startingColumn = this.column; - var startingLine = this.line; - var previous = target; + const target = this.peek; + const start = this.index; + const startingColumn = this.column; + const startingLine = this.line; + let previous = target; this.advance(); while (!isCharMatch(target, previous, this.peek)) { @@ -377,17 +377,17 @@ export class CssScanner { } this.advance(); - var str = this.input.substring(start, this.index); + const str = this.input.substring(start, this.index); return new CssToken(start, startingColumn, startingLine, CssTokenType.String, str); } scanNumber(): CssToken { - var start = this.index; - var startingColumn = this.column; + const start = this.index; + const startingColumn = this.column; if (this.peek == chars.$PLUS || this.peek == chars.$MINUS) { this.advance(); } - var periodUsed = false; + let periodUsed = false; while (chars.isDigit(this.peek) || this.peek == chars.$PERIOD) { if (this.peek == chars.$PERIOD) { if (periodUsed) { @@ -397,7 +397,7 @@ export class CssScanner { } this.advance(); } - var strValue = this.input.substring(start, this.index); + const strValue = this.input.substring(start, this.index); return new CssToken(start, startingColumn, this.line, CssTokenType.Number, strValue); } @@ -407,19 +407,19 @@ export class CssScanner { return null; } - var start = this.index; - var startingColumn = this.column; + const start = this.index; + const startingColumn = this.column; while (isIdentifierPart(this.peek)) { this.advance(); } - var strValue = this.input.substring(start, this.index); + const strValue = this.input.substring(start, this.index); return new CssToken(start, startingColumn, this.line, CssTokenType.Identifier, strValue); } scanCssValueFunction(): CssToken { - var start = this.index; - var startingColumn = this.column; - var parenBalance = 1; + const start = this.index; + const startingColumn = this.column; + let parenBalance = 1; while (this.peek != chars.$EOF && parenBalance > 0) { this.advance(); if (this.peek == chars.$LPAREN) { @@ -428,20 +428,20 @@ export class CssScanner { parenBalance--; } } - var strValue = this.input.substring(start, this.index); + const strValue = this.input.substring(start, this.index); return new CssToken(start, startingColumn, this.line, CssTokenType.Identifier, strValue); } scanCharacter(): CssToken { - var start = this.index; - var startingColumn = this.column; + const start = this.index; + const startingColumn = this.column; if (this.assertCondition( isValidCssCharacter(this.peek, this._currentMode), charStr(this.peek) + ' is not a valid CSS character')) { return null; } - var c = this.input.substring(start, start + 1); + const c = this.input.substring(start, start + 1); this.advance(); return new CssToken(start, startingColumn, this.line, CssTokenType.Character, c); @@ -452,12 +452,12 @@ export class CssScanner { return null; } - var start = this.index; - var startingColumn = this.column; + const start = this.index; + const startingColumn = this.column; this.advance(); if (isIdentifierStart(this.peek, this.peekPeek)) { - var ident = this.scanIdentifier(); - var strValue = '@' + ident.strValue; + const ident = this.scanIdentifier(); + const strValue = '@' + ident.strValue; return new CssToken(start, startingColumn, this.line, CssTokenType.AtKeyword, strValue); } else { return this.scanCharacter(); @@ -473,12 +473,12 @@ export class CssScanner { } error(message: string, errorTokenValue: string = null, doNotAdvance: boolean = false): CssToken { - var index: number = this.index; - var column: number = this.column; - var line: number = this.line; + const index: number = this.index; + const column: number = this.column; + const line: number = this.line; errorTokenValue = errorTokenValue || String.fromCharCode(this.peek); - var invalidToken = new CssToken(index, column, line, CssTokenType.Invalid, errorTokenValue); - var errorMessage = + const invalidToken = new CssToken(index, column, line, CssTokenType.Invalid, errorTokenValue); + const errorMessage = generateErrorMessage(this.input, message, errorTokenValue, index, line, column); if (!doNotAdvance) { this.advance(); @@ -501,7 +501,7 @@ function isCommentEnd(code: number, next: number): boolean { } function isStringStart(code: number, next: number): boolean { - var target = code; + let target = code; if (target == chars.$BACKSLASH) { target = next; } @@ -509,7 +509,7 @@ function isStringStart(code: number, next: number): boolean { } function isIdentifierStart(code: number, next: number): boolean { - var target = code; + let target = code; if (target == chars.$MINUS) { target = next; } diff --git a/modules/@angular/compiler/src/css_parser/css_parser.ts b/modules/@angular/compiler/src/css_parser/css_parser.ts index 9841a6e05c..c412933841 100644 --- a/modules/@angular/compiler/src/css_parser/css_parser.ts +++ b/modules/@angular/compiler/src/css_parser/css_parser.ts @@ -93,16 +93,16 @@ export class CssParser { * @param url the name of the CSS file containing the CSS source code */ parse(css: string, url: string): ParsedCssResult { - var lexer = new CssLexer(); + const lexer = new CssLexer(); this._file = new ParseSourceFile(css, url); this._scanner = lexer.scan(css, false); - var ast = this._parseStyleSheet(EOF_DELIM_FLAG); + const ast = this._parseStyleSheet(EOF_DELIM_FLAG); - var errors = this._errors; + const errors = this._errors; this._errors = []; - var result = new ParsedCssResult(errors, ast); + const result = new ParsedCssResult(errors, ast); this._file = null; this._scanner = null; return result; @@ -110,15 +110,15 @@ export class CssParser { /** @internal */ _parseStyleSheet(delimiters: number): CssStyleSheetAst { - var results: CssRuleAst[] = []; + const results: CssRuleAst[] = []; this._scanner.consumeEmptyStatements(); while (this._scanner.peek != chars.$EOF) { this._scanner.setMode(CssLexerMode.BLOCK); results.push(this._parseRule(delimiters)); } - var span: ParseSourceSpan = null; + let span: ParseSourceSpan = null; if (results.length > 0) { - var firstRule = results[0]; + const firstRule = results[0]; // we collect the last token like so incase there was an // EOF token that was emitted sometime during the lexing span = this._generateSourceSpan(firstRule, this._lastToken); @@ -136,11 +136,11 @@ export class CssParser { /** @internal */ _generateSourceSpan(start: CssToken|CssAst, end: CssToken|CssAst = null): ParseSourceSpan { - var startLoc: ParseLocation; + let startLoc: ParseLocation; if (start instanceof CssAst) { startLoc = start.location.start; } else { - var token = start; + let token = start; if (!isPresent(token)) { // the data here is invalid, however, if and when this does // occur, any other errors associated with this will be collected @@ -153,9 +153,9 @@ export class CssParser { end = this._lastToken; } - var endLine: number; - var endColumn: number; - var endIndex: number; + let endLine: number; + let endColumn: number; + let endIndex: number; if (end instanceof CssAst) { endLine = end.location.end.line; endColumn = end.location.end.col; @@ -166,7 +166,7 @@ export class CssParser { endIndex = end.index; } - var endLoc = new ParseLocation(this._file, endIndex, endLine, endColumn); + const endLoc = new ParseLocation(this._file, endIndex, endLine, endColumn); return new ParseSourceSpan(startLoc, endLoc); } @@ -224,21 +224,21 @@ export class CssParser { const start = this._getScannerIndex(); this._scanner.setMode(CssLexerMode.BLOCK); - var token = this._scan(); - var startToken = token; + const token = this._scan(); + const startToken = token; this._assertCondition( token.type == CssTokenType.AtKeyword, `The CSS Rule ${token.strValue} is not a valid [@] rule.`, token); - var block: CssBlockAst; - var type = this._resolveBlockType(token); - var span: ParseSourceSpan; - var tokens: CssToken[]; - var endToken: CssToken; - var end: number; - var strValue: string; - var query: CssAtRulePredicateAst; + let block: CssBlockAst; + const type = this._resolveBlockType(token); + let span: ParseSourceSpan; + let tokens: CssToken[]; + let endToken: CssToken; + let end: number; + let strValue: string; + let query: CssAtRulePredicateAst; switch (type) { case BlockType.Charset: case BlockType.Namespace: @@ -324,23 +324,23 @@ export class CssParser { /** @internal */ _parseSelectorRule(delimiters: number): CssRuleAst { const start = this._getScannerIndex(); - var selectors = this._parseSelectors(delimiters); - var block = this._parseStyleBlock(delimiters); - var ruleAst: CssRuleAst; - var span: ParseSourceSpan; - var startSelector = selectors[0]; + const selectors = this._parseSelectors(delimiters); + const block = this._parseStyleBlock(delimiters); + let ruleAst: CssRuleAst; + let span: ParseSourceSpan; + const startSelector = selectors[0]; if (isPresent(block)) { span = this._generateSourceSpan(startSelector, block); ruleAst = new CssSelectorRuleAst(span, selectors, block); } else { - var name = this._extractSourceContent(start, this._getScannerIndex() - 1); - var innerTokens: CssToken[] = []; + const name = this._extractSourceContent(start, this._getScannerIndex() - 1); + const innerTokens: CssToken[] = []; selectors.forEach((selector: CssSelectorAst) => { selector.selectorParts.forEach((part: CssSimpleSelectorAst) => { part.tokens.forEach((token: CssToken) => { innerTokens.push(token); }); }); }); - var endToken = innerTokens[innerTokens.length - 1]; + const endToken = innerTokens[innerTokens.length - 1]; span = this._generateSourceSpan(startSelector, endToken); ruleAst = new CssUnknownTokenListAst(span, name, innerTokens); } @@ -353,8 +353,8 @@ export class CssParser { _parseSelectors(delimiters: number): CssSelectorAst[] { delimiters |= LBRACE_DELIM_FLAG | SEMICOLON_DELIM_FLAG; - var selectors: CssSelectorAst[] = []; - var isParsingSelectors = true; + const selectors: CssSelectorAst[] = []; + let isParsingSelectors = true; while (isParsingSelectors) { selectors.push(this._parseSelector(delimiters)); @@ -374,9 +374,9 @@ export class CssParser { /** @internal */ _scan(): CssToken { - var output = this._scanner.scan(); - var token = output.token; - var error = output.error; + const output = this._scanner.scan(); + const token = output.token; + const error = output.error; if (isPresent(error)) { this._error(error.rawMessage, token); } @@ -389,9 +389,9 @@ export class CssParser { /** @internal */ _consume(type: CssTokenType, value: string = null): CssToken { - var output = this._scanner.consume(type, value); - var token = output.token; - var error = output.error; + const output = this._scanner.consume(type, value); + const token = output.token; + const error = output.error; if (isPresent(error)) { this._error(error.rawMessage, token); } @@ -404,23 +404,23 @@ export class CssParser { delimiters |= RBRACE_DELIM_FLAG; this._scanner.setMode(CssLexerMode.KEYFRAME_BLOCK); - var startToken = this._consume(CssTokenType.Character, '{'); + const startToken = this._consume(CssTokenType.Character, '{'); - var definitions: CssKeyframeDefinitionAst[] = []; + const definitions: CssKeyframeDefinitionAst[] = []; while (!characterContainsDelimiter(this._scanner.peek, delimiters)) { definitions.push(this._parseKeyframeDefinition(delimiters)); } - var endToken = this._consume(CssTokenType.Character, '}'); + const endToken = this._consume(CssTokenType.Character, '}'); - var span = this._generateSourceSpan(startToken, endToken); + const span = this._generateSourceSpan(startToken, endToken); return new CssBlockAst(span, definitions); } /** @internal */ _parseKeyframeDefinition(delimiters: number): CssKeyframeDefinitionAst { const start = this._getScannerIndex(); - var stepTokens: CssToken[] = []; + const stepTokens: CssToken[] = []; delimiters |= LBRACE_DELIM_FLAG; while (!characterContainsDelimiter(this._scanner.peek, delimiters)) { stepTokens.push(this._parseKeyframeLabel(delimiters | COMMA_DELIM_FLAG)); @@ -428,9 +428,9 @@ export class CssParser { this._consume(CssTokenType.Character, ','); } } - var stylesBlock = this._parseStyleBlock(delimiters | RBRACE_DELIM_FLAG); - var span = this._generateSourceSpan(stepTokens[0], stylesBlock); - var ast = new CssKeyframeDefinitionAst(span, stepTokens, stylesBlock); + const stylesBlock = this._parseStyleBlock(delimiters | RBRACE_DELIM_FLAG); + const span = this._generateSourceSpan(stepTokens[0], stylesBlock); + const ast = new CssKeyframeDefinitionAst(span, stepTokens, stylesBlock); this._scanner.setMode(CssLexerMode.BLOCK); return ast; @@ -449,34 +449,34 @@ export class CssParser { delimiters &= ~COMMA_DELIM_FLAG; // we keep the original value since we may use it to recurse when :not, :host are used - var startingDelims = delimiters; + const startingDelims = delimiters; - var startToken = this._consume(CssTokenType.Character, ':'); - var tokens = [startToken]; + const startToken = this._consume(CssTokenType.Character, ':'); + const tokens = [startToken]; if (this._scanner.peek == chars.$COLON) { // ::something tokens.push(this._consume(CssTokenType.Character, ':')); } - var innerSelectors: CssSelectorAst[] = []; + const innerSelectors: CssSelectorAst[] = []; this._scanner.setMode(CssLexerMode.PSEUDO_SELECTOR); // host, host-context, lang, not, nth-child are all identifiers - var pseudoSelectorToken = this._consume(CssTokenType.Identifier); - var pseudoSelectorName = pseudoSelectorToken.strValue; + const pseudoSelectorToken = this._consume(CssTokenType.Identifier); + const pseudoSelectorName = pseudoSelectorToken.strValue; tokens.push(pseudoSelectorToken); // host(), lang(), nth-child(), etc... if (this._scanner.peek == chars.$LPAREN) { this._scanner.setMode(CssLexerMode.PSEUDO_SELECTOR_WITH_ARGUMENTS); - var openParenToken = this._consume(CssTokenType.Character, '('); + const openParenToken = this._consume(CssTokenType.Character, '('); tokens.push(openParenToken); // :host(innerSelector(s)), :not(selector), etc... if (_pseudoSelectorSupportsInnerSelectors(pseudoSelectorName)) { - var innerDelims = startingDelims | LPAREN_DELIM_FLAG | RPAREN_DELIM_FLAG; + let innerDelims = startingDelims | LPAREN_DELIM_FLAG | RPAREN_DELIM_FLAG; if (pseudoSelectorName == 'not') { // the inner selector inside of :not(...) can only be one // CSS selector (no commas allowed) ... This is according @@ -491,23 +491,23 @@ export class CssParser { } else { // this branch is for things like "en-us, 2k + 1, etc..." // which all end up in pseudoSelectors like :lang, :nth-child, etc.. - var innerValueDelims = delimiters | LBRACE_DELIM_FLAG | COLON_DELIM_FLAG | + const innerValueDelims = delimiters | LBRACE_DELIM_FLAG | COLON_DELIM_FLAG | RPAREN_DELIM_FLAG | LPAREN_DELIM_FLAG; while (!characterContainsDelimiter(this._scanner.peek, innerValueDelims)) { - var token = this._scan(); + const token = this._scan(); tokens.push(token); } } - var closeParenToken = this._consume(CssTokenType.Character, ')'); + const closeParenToken = this._consume(CssTokenType.Character, ')'); tokens.push(closeParenToken); } const end = this._getScannerIndex() - 1; - var strValue = this._extractSourceContent(start, end); + const strValue = this._extractSourceContent(start, end); - var endToken = tokens[tokens.length - 1]; - var span = this._generateSourceSpan(startToken, endToken); + const endToken = tokens[tokens.length - 1]; + const span = this._generateSourceSpan(startToken, endToken); return new CssPseudoSelectorAst(span, strValue, pseudoSelectorName, tokens, innerSelectors); } @@ -518,21 +518,21 @@ export class CssParser { delimiters |= COMMA_DELIM_FLAG; this._scanner.setMode(CssLexerMode.SELECTOR); - var selectorCssTokens: CssToken[] = []; - var pseudoSelectors: CssPseudoSelectorAst[] = []; + const selectorCssTokens: CssToken[] = []; + const pseudoSelectors: CssPseudoSelectorAst[] = []; - var previousToken: CssToken; + let previousToken: CssToken; - var selectorPartDelimiters = delimiters | SPACE_DELIM_FLAG; - var loopOverSelector = !characterContainsDelimiter(this._scanner.peek, selectorPartDelimiters); + const selectorPartDelimiters = delimiters | SPACE_DELIM_FLAG; + let loopOverSelector = !characterContainsDelimiter(this._scanner.peek, selectorPartDelimiters); - var hasAttributeError = false; + let hasAttributeError = false; while (loopOverSelector) { - var peek = this._scanner.peek; + const peek = this._scanner.peek; switch (peek) { case chars.$COLON: - var innerPseudo = this._parsePseudoSelector(delimiters); + let innerPseudo = this._parsePseudoSelector(delimiters); pseudoSelectors.push(innerPseudo); this._scanner.setMode(CssLexerMode.SELECTOR); break; @@ -561,7 +561,7 @@ export class CssParser { continue; } - var token = this._scan(); + let token = this._scan(); previousToken = token; selectorCssTokens.push(token); break; @@ -578,18 +578,18 @@ export class CssParser { previousToken); } - var end = this._getScannerIndex() - 1; + let end = this._getScannerIndex() - 1; // this happens if the selector is not directly followed by // a comma or curly brace without a space in between + let operator: CssToken = null; + let operatorScanCount = 0; + let lastOperatorToken: CssToken = null; if (!characterContainsDelimiter(this._scanner.peek, delimiters)) { - var operator: CssToken = null; - var operatorScanCount = 0; - var lastOperatorToken: CssToken = null; while (operator == null && !characterContainsDelimiter(this._scanner.peek, delimiters) && isSelectorOperatorCharacter(this._scanner.peek)) { - var token = this._scan(); - var tokenOperator = token.strValue; + let token = this._scan(); + const tokenOperator = token.strValue; operatorScanCount++; lastOperatorToken = token; if (tokenOperator != SPACE_OPERATOR) { @@ -607,7 +607,7 @@ export class CssParser { lastOperatorToken.index, lastOperatorToken.column, lastOperatorToken.line, CssTokenType.Identifier, DEEP_OPERATOR_STR); } else { - let text = SLASH_CHARACTER + deepToken.strValue + deepSlash.strValue; + const text = SLASH_CHARACTER + deepToken.strValue + deepSlash.strValue; this._error( generateErrorMessage( this._getSourceContent(), `${text} is an invalid CSS operator`, text, index, @@ -643,7 +643,7 @@ export class CssParser { this._scanner.consumeWhitespace(); - var strValue = this._extractSourceContent(start, end); + const strValue = this._extractSourceContent(start, end); // if we do come across one or more spaces inside of // the operators loop then an empty space is still a @@ -654,8 +654,8 @@ export class CssParser { // please note that `endToken` is reassigned multiple times below // so please do not optimize the if statements into if/elseif - var startTokenOrAst: CssToken|CssAst = null; - var endTokenOrAst: CssToken|CssAst = null; + let startTokenOrAst: CssToken|CssAst = null; + let endTokenOrAst: CssToken|CssAst = null; if (selectorCssTokens.length > 0) { startTokenOrAst = startTokenOrAst || selectorCssTokens[0]; endTokenOrAst = selectorCssTokens[selectorCssTokens.length - 1]; @@ -669,7 +669,7 @@ export class CssParser { endTokenOrAst = operator; } - var span = this._generateSourceSpan(startTokenOrAst, endTokenOrAst); + const span = this._generateSourceSpan(startTokenOrAst, endTokenOrAst); return new CssSimpleSelectorAst(span, selectorCssTokens, strValue, pseudoSelectors, operator); } @@ -678,15 +678,15 @@ export class CssParser { delimiters |= COMMA_DELIM_FLAG; this._scanner.setMode(CssLexerMode.SELECTOR); - var simpleSelectors: CssSimpleSelectorAst[] = []; + const simpleSelectors: CssSimpleSelectorAst[] = []; while (!characterContainsDelimiter(this._scanner.peek, delimiters)) { simpleSelectors.push(this._parseSimpleSelector(delimiters)); this._scanner.consumeWhitespace(); } - var firstSelector = simpleSelectors[0]; - var lastSelector = simpleSelectors[simpleSelectors.length - 1]; - var span = this._generateSourceSpan(firstSelector, lastSelector); + const firstSelector = simpleSelectors[0]; + const lastSelector = simpleSelectors[simpleSelectors.length - 1]; + const span = this._generateSourceSpan(firstSelector, lastSelector); return new CssSelectorAst(span, simpleSelectors); } @@ -697,11 +697,11 @@ export class CssParser { this._scanner.setMode(CssLexerMode.STYLE_VALUE); const start = this._getScannerIndex(); - var tokens: CssToken[] = []; - var wsStr = ''; - var previous: CssToken; + const tokens: CssToken[] = []; + let wsStr = ''; + let previous: CssToken; while (!characterContainsDelimiter(this._scanner.peek, delimiters)) { - var token: CssToken; + let token: CssToken; if (isPresent(previous) && previous.type == CssTokenType.Identifier && this._scanner.peek == chars.$LPAREN) { token = this._consume(CssTokenType.Character, '('); @@ -731,7 +731,7 @@ export class CssParser { const end = this._getScannerIndex() - 1; this._scanner.consumeWhitespace(); - var code = this._scanner.peek; + const code = this._scanner.peek; if (code == chars.$SEMICOLON) { this._consume(CssTokenType.Character, ';'); } else if (code != chars.$RBRACE) { @@ -742,18 +742,18 @@ export class CssParser { previous); } - var strValue = this._extractSourceContent(start, end); - var startToken = tokens[0]; - var endToken = tokens[tokens.length - 1]; - var span = this._generateSourceSpan(startToken, endToken); + const strValue = this._extractSourceContent(start, end); + const startToken = tokens[0]; + const endToken = tokens[tokens.length - 1]; + const span = this._generateSourceSpan(startToken, endToken); return new CssStyleValueAst(span, tokens, strValue); } /** @internal */ _collectUntilDelim(delimiters: number, assertType: CssTokenType = null): CssToken[] { - var tokens: CssToken[] = []; + const tokens: CssToken[] = []; while (!characterContainsDelimiter(this._scanner.peek, delimiters)) { - var val = isPresent(assertType) ? this._consume(assertType) : this._scan(); + const val = isPresent(assertType) ? this._consume(assertType) : this._scan(); tokens.push(val); } return tokens; @@ -765,20 +765,20 @@ export class CssParser { this._scanner.setMode(CssLexerMode.BLOCK); - var startToken = this._consume(CssTokenType.Character, '{'); + const startToken = this._consume(CssTokenType.Character, '{'); this._scanner.consumeEmptyStatements(); - var results: CssRuleAst[] = []; + const results: CssRuleAst[] = []; while (!characterContainsDelimiter(this._scanner.peek, delimiters)) { results.push(this._parseRule(delimiters)); } - var endToken = this._consume(CssTokenType.Character, '}'); + const endToken = this._consume(CssTokenType.Character, '}'); this._scanner.setMode(CssLexerMode.BLOCK); this._scanner.consumeEmptyStatements(); - var span = this._generateSourceSpan(startToken, endToken); + const span = this._generateSourceSpan(startToken, endToken); return new CssBlockAst(span, results); } @@ -788,12 +788,12 @@ export class CssParser { this._scanner.setMode(CssLexerMode.STYLE_BLOCK); - var startToken = this._consume(CssTokenType.Character, '{'); + const startToken = this._consume(CssTokenType.Character, '{'); if (startToken.numValue != chars.$LBRACE) { return null; } - var definitions: CssDefinitionAst[] = []; + const definitions: CssDefinitionAst[] = []; this._scanner.consumeEmptyStatements(); while (!characterContainsDelimiter(this._scanner.peek, delimiters)) { @@ -801,12 +801,12 @@ export class CssParser { this._scanner.consumeEmptyStatements(); } - var endToken = this._consume(CssTokenType.Character, '}'); + const endToken = this._consume(CssTokenType.Character, '}'); this._scanner.setMode(CssLexerMode.STYLE_BLOCK); this._scanner.consumeEmptyStatements(); - var span = this._generateSourceSpan(startToken, endToken); + const span = this._generateSourceSpan(startToken, endToken); return new CssStylesBlockAst(span, definitions); } @@ -814,10 +814,10 @@ export class CssParser { _parseDefinition(delimiters: number): CssDefinitionAst { this._scanner.setMode(CssLexerMode.STYLE_BLOCK); - var prop = this._consume(CssTokenType.Identifier); - var parseValue: boolean = false; - var value: CssStyleValueAst = null; - var endToken: CssToken|CssStyleValueAst = prop; + let prop = this._consume(CssTokenType.Identifier); + let parseValue: boolean = false; + let value: CssStyleValueAst = null; + let endToken: CssToken|CssStyleValueAst = prop; // the colon value separates the prop from the style. // there are a few cases as to what could happen if it @@ -830,13 +830,13 @@ export class CssParser { break; default: - var propStr = [prop.strValue]; + let propStr = [prop.strValue]; if (this._scanner.peek != chars.$COLON) { // this will throw the error - var nextValue = this._consume(CssTokenType.Character, ':'); + const nextValue = this._consume(CssTokenType.Character, ':'); propStr.push(nextValue.strValue); - var remainingTokens = this._collectUntilDelim( + const remainingTokens = this._collectUntilDelim( delimiters | COLON_DELIM_FLAG | SEMICOLON_DELIM_FLAG, CssTokenType.Identifier); if (remainingTokens.length > 0) { remainingTokens.forEach((token) => { propStr.push(token.strValue); }); @@ -865,7 +865,7 @@ export class CssParser { prop); } - var span = this._generateSourceSpan(prop, endToken); + const span = this._generateSourceSpan(prop, endToken); return new CssDefinitionAst(span, prop, value); } @@ -880,8 +880,8 @@ export class CssParser { /** @internal */ _error(message: string, problemToken: CssToken) { - var length = problemToken.strValue.length; - var error = CssParseError.create( + const length = problemToken.strValue.length; + const error = CssParseError.create( this._file, 0, problemToken.line, problemToken.column, length, message); this._errors.push(error); } @@ -891,9 +891,9 @@ export class CssParseError extends ParseError { static create( file: ParseSourceFile, offset: number, line: number, col: number, length: number, errMsg: string): CssParseError { - var start = new ParseLocation(file, offset, line, col); - var end = new ParseLocation(file, offset, line, col + length); - var span = new ParseSourceSpan(start, end); + const start = new ParseLocation(file, offset, line, col); + const end = new ParseLocation(file, offset, line, col + length); + const span = new ParseSourceSpan(start, end); return new CssParseError(span, 'CSS Parse Error: ' + errMsg); } diff --git a/modules/@angular/compiler/src/directive_normalizer.ts b/modules/@angular/compiler/src/directive_normalizer.ts index 382844b1c8..5e3a407271 100644 --- a/modules/@angular/compiler/src/directive_normalizer.ts +++ b/modules/@angular/compiler/src/directive_normalizer.ts @@ -52,7 +52,7 @@ export class DirectiveNormalizer { } private _fetch(url: string): Promise { - var result = this._resourceLoaderCache.get(url); + let result = this._resourceLoaderCache.get(url); if (!result) { result = this._resourceLoader.get(url); this._resourceLoaderCache.set(url, result); @@ -91,7 +91,7 @@ export class DirectiveNormalizer { normalizeTemplateAsync(prenomData: PrenormalizedTemplateMetadata): Promise { - let templateUrl = this._urlResolver.resolve(prenomData.moduleUrl, prenomData.templateUrl); + const templateUrl = this._urlResolver.resolve(prenomData.moduleUrl, prenomData.templateUrl); return this._fetch(templateUrl) .then((value) => this.normalizeLoadedTemplate(prenomData, value, templateUrl)); } @@ -164,7 +164,7 @@ export class DirectiveNormalizer { return Promise .all(styleUrls.filter((styleUrl) => !loadedStylesheets.has(styleUrl)) .map(styleUrl => this._fetch(styleUrl).then((loadedStyle) => { - var stylesheet = this.normalizeStylesheet( + const stylesheet = this.normalizeStylesheet( new CompileStylesheetMetadata({styles: [loadedStyle], moduleUrl: styleUrl})); loadedStylesheets.set(styleUrl, stylesheet); return this._loadMissingExternalStylesheets( @@ -174,11 +174,11 @@ export class DirectiveNormalizer { } normalizeStylesheet(stylesheet: CompileStylesheetMetadata): CompileStylesheetMetadata { - var allStyleUrls = stylesheet.styleUrls.filter(isStyleUrlResolvable) - .map(url => this._urlResolver.resolve(stylesheet.moduleUrl, url)); + const allStyleUrls = stylesheet.styleUrls.filter(isStyleUrlResolvable) + .map(url => this._urlResolver.resolve(stylesheet.moduleUrl, url)); - var allStyles = stylesheet.styles.map(style => { - var styleWithImports = extractStyleUrls(this._urlResolver, stylesheet.moduleUrl, style); + const allStyles = stylesheet.styles.map(style => { + const styleWithImports = extractStyleUrls(this._urlResolver, stylesheet.moduleUrl, style); allStyleUrls.push(...styleWithImports.styleUrls); return styleWithImports.style; }); @@ -195,7 +195,7 @@ class TemplatePreparseVisitor implements html.Visitor { ngNonBindableStackCount: number = 0; visitElement(ast: html.Element, context: any): any { - var preparsedElement = preparseElement(ast); + const preparsedElement = preparseElement(ast); switch (preparsedElement.type) { case PreparsedElementType.NG_CONTENT: if (this.ngNonBindableStackCount === 0) { @@ -203,7 +203,7 @@ class TemplatePreparseVisitor implements html.Visitor { } break; case PreparsedElementType.STYLE: - var textContent = ''; + let textContent = ''; ast.children.forEach(child => { if (child instanceof html.Text) { textContent += child.value; diff --git a/modules/@angular/compiler/src/directive_resolver.ts b/modules/@angular/compiler/src/directive_resolver.ts index d50f5fdd6e..f3ba7b07b9 100644 --- a/modules/@angular/compiler/src/directive_resolver.ts +++ b/modules/@angular/compiler/src/directive_resolver.ts @@ -121,7 +121,7 @@ export class DirectiveResolver { mergedInputs.unshift(...directive.inputs); } - let mergedOutputs: string[] = outputs; + const mergedOutputs: string[] = outputs; if (directive.outputs) { const outputNames: string[] = diff --git a/modules/@angular/compiler/src/directive_wrapper_compiler.ts b/modules/@angular/compiler/src/directive_wrapper_compiler.ts index 24ec49439e..514fcc5ea1 100644 --- a/modules/@angular/compiler/src/directive_wrapper_compiler.ts +++ b/modules/@angular/compiler/src/directive_wrapper_compiler.ts @@ -207,7 +207,7 @@ function addNgDoCheckMethod(builder: DirectiveWrapperBuilder) { function addCheckInputMethod(input: string, builder: DirectiveWrapperBuilder) { const field = createCheckBindingField(builder); - var onChangeStatements: o.Statement[] = [ + const onChangeStatements: o.Statement[] = [ o.THIS_EXPR.prop(CHANGED_FIELD_NAME).set(o.literal(true)).toStmt(), o.THIS_EXPR.prop(CONTEXT_FIELD_NAME).prop(input).set(CURR_VALUE_VAR).toStmt(), ]; @@ -219,7 +219,7 @@ function addCheckInputMethod(input: string, builder: DirectiveWrapperBuilder) { .toStmt()); } - var methodBody: o.Statement[] = createCheckBindingStmt( + const methodBody: o.Statement[] = createCheckBindingStmt( {currValExpr: CURR_VALUE_VAR, forceUpdate: FORCE_UPDATE_VAR, stmts: []}, field.expression, THROW_ON_CHANGE_VAR, onChangeStatements); builder.methods.push(new o.ClassMethod( @@ -430,7 +430,7 @@ export class DirectiveWrapperExpressions { dirMeta: CompileDirectiveSummary, hostProps: BoundElementPropertyAst[], usedEvents: string[], dirWrapper: o.Expression, view: o.Expression, eventListener: o.Expression): o.Statement[] { let needsSubscribe = false; - let eventFlags: o.Expression[] = []; + const eventFlags: o.Expression[] = []; Object.keys(dirMeta.outputs).forEach((propName) => { const eventName = dirMeta.outputs[propName]; const eventUsed = usedEvents.indexOf(eventName) > -1; diff --git a/modules/@angular/compiler/src/expression_parser/ast.ts b/modules/@angular/compiler/src/expression_parser/ast.ts index 0d1112880e..23437ca195 100644 --- a/modules/@angular/compiler/src/expression_parser/ast.ts +++ b/modules/@angular/compiler/src/expression_parser/ast.ts @@ -376,8 +376,8 @@ export class AstTransformer implements AstVisitor { } visitAll(asts: any[]): any[] { - var res = new Array(asts.length); - for (var i = 0; i < asts.length; ++i) { + const res = new Array(asts.length); + for (let i = 0; i < asts.length; ++i) { res[i] = asts[i].visit(this); } return res; diff --git a/modules/@angular/compiler/src/expression_parser/lexer.ts b/modules/@angular/compiler/src/expression_parser/lexer.ts index 7694f4a239..15566e4a65 100644 --- a/modules/@angular/compiler/src/expression_parser/lexer.ts +++ b/modules/@angular/compiler/src/expression_parser/lexer.ts @@ -137,7 +137,8 @@ class _Scanner { } scanToken(): Token { - var input = this.input, length = this.length, peek = this.peek, index = this.index; + const input = this.input, length = this.length; + let peek = this.peek, index = this.index; // Skip whitespace. while (peek <= chars.$SPACE) { @@ -160,7 +161,7 @@ class _Scanner { if (isIdentifierStart(peek)) return this.scanIdentifier(); if (chars.isDigit(peek)) return this.scanNumber(index); - var start: number = index; + const start: number = index; switch (peek) { case chars.$PERIOD: this.advance(); @@ -235,7 +236,7 @@ class _Scanner { start: number, one: string, twoCode: number, two: string, threeCode?: number, three?: string): Token { this.advance(); - var str: string = one; + let str: string = one; if (this.peek == twoCode) { this.advance(); str += two; @@ -248,16 +249,16 @@ class _Scanner { } scanIdentifier(): Token { - var start: number = this.index; + const start: number = this.index; this.advance(); while (isIdentifierPart(this.peek)) this.advance(); - var str: string = this.input.substring(start, this.index); + const str: string = this.input.substring(start, this.index); return KEYWORDS.indexOf(str) > -1 ? newKeywordToken(start, str) : newIdentifierToken(start, str); } scanNumber(start: number): Token { - var simple: boolean = (this.index === start); + let simple: boolean = (this.index === start); this.advance(); // Skip initial digit. while (true) { if (chars.isDigit(this.peek)) { @@ -286,7 +287,7 @@ class _Scanner { let buffer: string = ''; let marker: number = this.index; - let input: string = this.input; + const input: string = this.input; while (this.peek != quote) { if (this.peek == chars.$BACKSLASH) { @@ -337,7 +338,7 @@ function isIdentifierStart(code: number): boolean { export function isIdentifier(input: string): boolean { if (input.length == 0) return false; - var scanner = new _Scanner(input); + const scanner = new _Scanner(input); if (!isIdentifierStart(scanner.peek)) return false; scanner.advance(); while (scanner.peek !== chars.$EOF) { diff --git a/modules/@angular/compiler/src/expression_parser/parser.ts b/modules/@angular/compiler/src/expression_parser/parser.ts index 137f755e39..423e0e7a7b 100644 --- a/modules/@angular/compiler/src/expression_parser/parser.ts +++ b/modules/@angular/compiler/src/expression_parser/parser.ts @@ -53,7 +53,7 @@ export class Parser { parseBinding( input: string, location: any, interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource { - var ast = this._parseBindingAst(input, location, interpolationConfig); + const ast = this._parseBindingAst(input, location, interpolationConfig); return new ASTWithSource(ast, input, location, this.errors); } @@ -77,7 +77,7 @@ export class Parser { input: string, location: string, interpolationConfig: InterpolationConfig): AST { // Quotes expressions use 3rd-party expression language. We don't want to use // our lexer or parser for that, so we check for that ahead of time. - var quote = this._parseQuote(input, location); + const quote = this._parseQuote(input, location); if (isPresent(quote)) { return quote; @@ -94,11 +94,11 @@ export class Parser { private _parseQuote(input: string, location: any): AST { if (isBlank(input)) return null; - var prefixSeparatorIndex = input.indexOf(':'); + const prefixSeparatorIndex = input.indexOf(':'); if (prefixSeparatorIndex == -1) return null; - var prefix = input.substring(0, prefixSeparatorIndex).trim(); + const prefix = input.substring(0, prefixSeparatorIndex).trim(); if (!isIdentifier(prefix)) return null; - var uninterpretedExpression = input.substring(prefixSeparatorIndex + 1); + const uninterpretedExpression = input.substring(prefixSeparatorIndex + 1); return new Quote(new ParseSpan(0, input.length), prefix, uninterpretedExpression, location); } @@ -120,10 +120,10 @@ export class Parser { parseInterpolation( input: string, location: any, interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource { - let split = this.splitInterpolation(input, location, interpolationConfig); + const split = this.splitInterpolation(input, location, interpolationConfig); if (split == null) return null; - let expressions: AST[] = []; + const expressions: AST[] = []; for (let i = 0; i < split.expressions.length; ++i) { const expressionText = split.expressions[i]; @@ -155,7 +155,7 @@ export class Parser { const offsets: number[] = []; let offset = 0; for (let i = 0; i < parts.length; i++) { - var part: string = parts[i]; + const part: string = parts[i]; if (i % 2 === 0) { // fixed string strings.push(part); @@ -189,7 +189,7 @@ export class Parser { } private _commentStart(input: string): number { - var outerQuote: number = null; + let outerQuote: number = null; for (let i = 0; i < input.length - 1; i++) { const char = input.charCodeAt(i); const nextChar = input.charCodeAt(i + 1); @@ -207,8 +207,8 @@ export class Parser { private _checkNoInterpolation( input: string, location: any, interpolationConfig: InterpolationConfig): void { - var regexp = _createInterpolateRegExp(interpolationConfig); - var parts = input.split(regexp); + const regexp = _createInterpolateRegExp(interpolationConfig); + const parts = input.split(regexp); if (parts.length > 1) { this._reportError( `Got interpolation (${interpolationConfig.start}${interpolationConfig.end}) where expression was expected`, @@ -220,8 +220,8 @@ export class Parser { private _findInterpolationErrorColumn( parts: string[], partInErrIdx: number, interpolationConfig: InterpolationConfig): number { - var errLocation = ''; - for (var j = 0; j < partInErrIdx; j++) { + let errLocation = ''; + for (let j = 0; j < partInErrIdx; j++) { errLocation += j % 2 === 0 ? parts[j] : `${interpolationConfig.start}${parts[j]}${interpolationConfig.end}`; @@ -244,7 +244,7 @@ export class _ParseAST { private offset: number) {} peek(offset: number): Token { - var i = this.index + offset; + const i = this.index + offset; return i < this.tokens.length ? this.tokens[i] : EOF; } @@ -290,7 +290,7 @@ export class _ParseAST { } expectIdentifierOrKeyword(): string { - var n = this.next; + const n = this.next; if (!n.isIdentifier() && !n.isKeyword()) { this.error(`Unexpected token ${n}, expected identifier or keyword`); return ''; @@ -300,7 +300,7 @@ export class _ParseAST { } expectIdentifierOrKeywordOrString(): string { - var n = this.next; + const n = this.next; if (!n.isIdentifier() && !n.isKeyword() && !n.isString()) { this.error(`Unexpected token ${n}, expected identifier, keyword, or string`); return ''; @@ -310,10 +310,10 @@ export class _ParseAST { } parseChain(): AST { - var exprs: AST[] = []; + const exprs: AST[] = []; const start = this.inputIndex; while (this.index < this.tokens.length) { - var expr = this.parsePipe(); + const expr = this.parsePipe(); exprs.push(expr); if (this.optionalCharacter(chars.$SEMICOLON)) { @@ -332,15 +332,15 @@ export class _ParseAST { } parsePipe(): AST { - var result = this.parseExpression(); + let result = this.parseExpression(); if (this.optionalOperator('|')) { if (this.parseAction) { this.error('Cannot have a pipe in an action expression'); } do { - var name = this.expectIdentifierOrKeyword(); - var args: AST[] = []; + const name = this.expectIdentifierOrKeyword(); + const args: AST[] = []; while (this.optionalCharacter(chars.$COLON)) { args.push(this.parseExpression()); } @@ -361,8 +361,8 @@ export class _ParseAST { const yes = this.parsePipe(); let no: AST; if (!this.optionalCharacter(chars.$COLON)) { - var end = this.inputIndex; - var expression = this.input.substring(start, end); + const end = this.inputIndex; + const expression = this.input.substring(start, end); this.error(`Conditional expression ${expression} requires all 3 expressions`); no = new EmptyExpr(this.span(start)); } else { @@ -398,7 +398,7 @@ export class _ParseAST { // '==','!=','===','!==' let result = this.parseRelational(); while (this.next.type == TokenType.Operator) { - let operator = this.next.strValue; + const operator = this.next.strValue; switch (operator) { case '==': case '===': @@ -418,7 +418,7 @@ export class _ParseAST { // '<', '>', '<=', '>=' let result = this.parseAdditive(); while (this.next.type == TokenType.Operator) { - let operator = this.next.strValue; + const operator = this.next.strValue; switch (operator) { case '<': case '>': @@ -591,7 +591,7 @@ export class _ParseAST { } parseExpressionList(terminator: number): AST[] { - let result: AST[] = []; + const result: AST[] = []; if (!this.next.isCharacter(terminator)) { do { result.push(this.parsePipe()); @@ -601,14 +601,14 @@ export class _ParseAST { } parseLiteralMap(): LiteralMap { - let keys: string[] = []; - let values: AST[] = []; + const keys: string[] = []; + const values: AST[] = []; const start = this.inputIndex; this.expectCharacter(chars.$LBRACE); if (!this.optionalCharacter(chars.$RBRACE)) { this.rbracesExpected++; do { - var key = this.expectIdentifierOrKeywordOrString(); + const key = this.expectIdentifierOrKeywordOrString(); keys.push(key); this.expectCharacter(chars.$COLON); values.push(this.parsePipe()); @@ -628,7 +628,7 @@ export class _ParseAST { const args = this.parseCallArguments(); this.expectCharacter(chars.$RPAREN); this.rparensExpected--; - let span = this.span(start); + const span = this.span(start); return isSafe ? new SafeMethodCall(span, receiver, id, args) : new MethodCall(span, receiver, id, args); @@ -647,7 +647,7 @@ export class _ParseAST { return new EmptyExpr(this.span(start)); } - let value = this.parseConditional(); + const value = this.parseConditional(); return new PropertyWrite(this.span(start), receiver, id, value); } else { return new PropertyRead(this.span(start), receiver, id); @@ -658,7 +658,7 @@ export class _ParseAST { parseCallArguments(): BindingPipe[] { if (this.next.isCharacter(chars.$RPAREN)) return []; - var positionals: AST[] = []; + const positionals: AST[] = []; do { positionals.push(this.parsePipe()); } while (this.optionalCharacter(chars.$COMMA)); @@ -683,16 +683,16 @@ export class _ParseAST { } parseTemplateBindings(): TemplateBindingParseResult { - let bindings: TemplateBinding[] = []; + const bindings: TemplateBinding[] = []; let prefix: string = null; - let warnings: string[] = []; + const warnings: string[] = []; while (this.index < this.tokens.length) { const start = this.inputIndex; const keyIsVar: boolean = this.peekKeywordLet(); if (keyIsVar) { this.advance(); } - var key = this.expectTemplateBindingKey(); + let key = this.expectTemplateBindingKey(); if (!keyIsVar) { if (prefix == null) { prefix = key; @@ -701,8 +701,8 @@ export class _ParseAST { } } this.optionalCharacter(chars.$COLON); - var name: string = null; - var expression: ASTWithSource = null; + let name: string = null; + let expression: ASTWithSource = null; if (keyIsVar) { if (this.optionalOperator('=')) { name = this.expectTemplateBindingKey(); @@ -765,7 +765,7 @@ export class _ParseAST { class SimpleExpressionChecker implements AstVisitor { static check(ast: AST): string[] { - var s = new SimpleExpressionChecker(); + const s = new SimpleExpressionChecker(); ast.visit(s); return s.errors; } diff --git a/modules/@angular/compiler/src/i18n/digest.ts b/modules/@angular/compiler/src/i18n/digest.ts index 7159df5bb1..549357d584 100644 --- a/modules/@angular/compiler/src/i18n/digest.ts +++ b/modules/@angular/compiler/src/i18n/digest.ts @@ -27,7 +27,8 @@ class _SerializerVisitor implements i18n.Visitor { } visitIcu(icu: i18n.Icu, context: any): any { - let strCases = Object.keys(icu.cases).map((k: string) => `${k} {${icu.cases[k].visit(this)}}`); + const strCases = + Object.keys(icu.cases).map((k: string) => `${k} {${icu.cases[k].visit(this)}}`); return `{${icu.expression}, ${icu.type}, ${strCases.join(', ')}}`; } diff --git a/modules/@angular/compiler/src/i18n/serializers/serializer.ts b/modules/@angular/compiler/src/i18n/serializers/serializer.ts index 3c5f94d042..b1a15fa619 100644 --- a/modules/@angular/compiler/src/i18n/serializers/serializer.ts +++ b/modules/@angular/compiler/src/i18n/serializers/serializer.ts @@ -19,7 +19,7 @@ export interface Serializer { // Generate a map of placeholder to content indexed by message ids export function extractPlaceholders(messageBundle: MessageBundle) { const messageMap = messageBundle.getMessageMap(); - let placeholders: {[id: string]: {[name: string]: string}} = {}; + const placeholders: {[id: string]: {[name: string]: string}} = {}; Object.keys(messageMap).forEach(msgId => { placeholders[msgId] = messageMap[msgId].placeholders; @@ -31,7 +31,7 @@ export function extractPlaceholders(messageBundle: MessageBundle) { // Generate a map of placeholder to message ids indexed by message ids export function extractPlaceholderToIds(messageBundle: MessageBundle) { const messageMap = messageBundle.getMessageMap(); - let placeholderToIds: {[id: string]: {[name: string]: string}} = {}; + const placeholderToIds: {[id: string]: {[name: string]: string}} = {}; Object.keys(messageMap).forEach(msgId => { placeholderToIds[msgId] = messageMap[msgId].placeholderToMsgIds; diff --git a/modules/@angular/compiler/src/i18n/serializers/xliff.ts b/modules/@angular/compiler/src/i18n/serializers/xliff.ts index 2600af3f7f..7d70ab6c98 100644 --- a/modules/@angular/compiler/src/i18n/serializers/xliff.ts +++ b/modules/@angular/compiler/src/i18n/serializers/xliff.ts @@ -41,7 +41,7 @@ export class Xliff implements Serializer { Object.keys(messageMap).forEach((id) => { const message = messageMap[id]; - let transUnit = new xml.Tag(_UNIT_TAG, {id: id, datatype: 'html'}); + const transUnit = new xml.Tag(_UNIT_TAG, {id: id, datatype: 'html'}); transUnit.children.push( new xml.CR(8), new xml.Tag(_SOURCE_TAG, {}, visitor.serialize(message.nodes)), new xml.CR(8), new xml.Tag(_TARGET_TAG)); @@ -93,7 +93,7 @@ export class Xliff implements Serializer { // Convert the string messages to html ast // TODO(vicb): map error message back to the original message in xtb - let messageMap: {[id: string]: ml.Node[]} = {}; + const messageMap: {[id: string]: ml.Node[]} = {}; const parseErrors: ParseError[] = []; Object.keys(messages).forEach((id) => { diff --git a/modules/@angular/compiler/src/i18n/serializers/xmb.ts b/modules/@angular/compiler/src/i18n/serializers/xmb.ts index d582ef569b..1860071c3d 100644 --- a/modules/@angular/compiler/src/i18n/serializers/xmb.ts +++ b/modules/@angular/compiler/src/i18n/serializers/xmb.ts @@ -42,11 +42,11 @@ const _DOCTYPE = ` export class Xmb implements Serializer { write(messageMap: {[k: string]: i18n.Message}): string { const visitor = new _Visitor(); - let rootNode = new xml.Tag(_MESSAGES_TAG); + const rootNode = new xml.Tag(_MESSAGES_TAG); Object.keys(messageMap).forEach((id) => { const message = messageMap[id]; - let attrs: {[k: string]: string} = {id}; + const attrs: {[k: string]: string} = {id}; if (message.description) { attrs['desc'] = message.description; diff --git a/modules/@angular/compiler/src/i18n/serializers/xtb.ts b/modules/@angular/compiler/src/i18n/serializers/xtb.ts index 612c0bd1e8..201b89cf7c 100644 --- a/modules/@angular/compiler/src/i18n/serializers/xtb.ts +++ b/modules/@angular/compiler/src/i18n/serializers/xtb.ts @@ -43,7 +43,7 @@ export class Xtb implements Serializer { // Convert the string messages to html ast // TODO(vicb): map error message back to the original message in xtb - let messageMap: {[id: string]: ml.Node[]} = {}; + const messageMap: {[id: string]: ml.Node[]} = {}; const parseErrors: ParseError[] = []; Object.keys(messages).forEach((id) => { diff --git a/modules/@angular/compiler/src/identifiers.ts b/modules/@angular/compiler/src/identifiers.ts index 655b6da340..ab9fd5889a 100644 --- a/modules/@angular/compiler/src/identifiers.ts +++ b/modules/@angular/compiler/src/identifiers.ts @@ -11,11 +11,11 @@ import {ANALYZE_FOR_ENTRY_COMPONENTS, AnimationTransitionEvent, ChangeDetectionS import {CompileIdentifierMetadata, CompileTokenMetadata} from './compile_metadata'; import {AnimationGroupPlayer, AnimationKeyframe, AnimationSequencePlayer, AnimationStyles, AnimationTransition, AppView, ChangeDetectorStatus, CodegenComponentFactoryResolver, ComponentRef_, DebugAppView, DebugContext, NgModuleInjector, NoOpAnimationPlayer, StaticNodeDebugInfo, TemplateRef_, UNINITIALIZED, ValueUnwrapper, ViewContainer, ViewType, balanceAnimationKeyframes, clearStyles, collectAndResolveStyles, devModeEqual, prepareFinalAnimationStyles, reflector, registerModuleFactory, renderStyles, view_utils} from './private_import_core'; -var APP_VIEW_MODULE_URL = assetUrl('core', 'linker/view'); -var VIEW_UTILS_MODULE_URL = assetUrl('core', 'linker/view_utils'); -var CD_MODULE_URL = assetUrl('core', 'change_detection/change_detection'); +const APP_VIEW_MODULE_URL = assetUrl('core', 'linker/view'); +const VIEW_UTILS_MODULE_URL = assetUrl('core', 'linker/view_utils'); +const CD_MODULE_URL = assetUrl('core', 'change_detection/change_detection'); -var ANIMATION_STYLE_UTIL_ASSET_URL = assetUrl('core', 'animation/animation_style_util'); +const ANIMATION_STYLE_UTIL_ASSET_URL = assetUrl('core', 'animation/animation_style_util'); export interface IdentifierSpec { name: string; diff --git a/modules/@angular/compiler/src/metadata_resolver.ts b/modules/@angular/compiler/src/metadata_resolver.ts index 20793d2dd8..d144161233 100644 --- a/modules/@angular/compiler/src/metadata_resolver.ts +++ b/modules/@angular/compiler/src/metadata_resolver.ts @@ -603,9 +603,9 @@ export class CompileMetadataResolver { private _getDependenciesMetadata(typeOrFunc: Type|Function, dependencies: any[]): cpl.CompileDiDependencyMetadata[] { let hasUnknownDeps = false; - let params = dependencies || this._reflector.parameters(typeOrFunc) || []; + const params = dependencies || this._reflector.parameters(typeOrFunc) || []; - let dependenciesMetadata: cpl.CompileDiDependencyMetadata[] = params.map((param) => { + const dependenciesMetadata: cpl.CompileDiDependencyMetadata[] = params.map((param) => { let isAttribute = false; let isHost = false; let isSelf = false; @@ -651,7 +651,7 @@ export class CompileMetadataResolver { }); if (hasUnknownDeps) { - let depsTokens = + const depsTokens = dependenciesMetadata.map((dep) => dep ? stringify(dep.token) : '?').join(', '); throw new Error( `Can't resolve all parameters for ${stringify(typeOrFunc)}: (${depsTokens}).`); @@ -690,7 +690,7 @@ export class CompileMetadataResolver { if (Array.isArray(provider)) { compileProvider = this._getProvidersMetadata(provider, targetEntryComponents, debugInfo); } else if (provider instanceof cpl.ProviderMeta) { - let tokenMeta = this._getTokenMetadata(provider.token); + const tokenMeta = this._getTokenMetadata(provider.token); if (tokenMeta.reference === resolveIdentifierToken(Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS).reference) { targetEntryComponents.push(...this._getEntryComponentsFromProvider(provider)); @@ -792,7 +792,7 @@ export class CompileMetadataResolver { private _getQueryMetadata(q: Query, propertyName: string, typeOrFunc: Type|Function): cpl.CompileQueryMetadata { - var selectors: cpl.CompileTokenMetadata[]; + let selectors: cpl.CompileTokenMetadata[]; if (typeof q.selector === 'string') { selectors = this._queryVarBindings(q.selector).map(varName => this._getTokenMetadata(varName)); diff --git a/modules/@angular/compiler/src/ml_parser/ast.ts b/modules/@angular/compiler/src/ml_parser/ast.ts index d15e1fa042..4be0c1f849 100644 --- a/modules/@angular/compiler/src/ml_parser/ast.ts +++ b/modules/@angular/compiler/src/ml_parser/ast.ts @@ -67,9 +67,9 @@ export interface Visitor { } export function visitAll(visitor: Visitor, nodes: Node[], context: any = null): any[] { - let result: any[] = []; + const result: any[] = []; - let visit = visitor.visit ? + const visit = visitor.visit ? (ast: Node) => visitor.visit(ast, context) || ast.visit(visitor, context) : (ast: Node) => ast.visit(visitor, context); nodes.forEach(ast => { diff --git a/modules/@angular/compiler/src/ml_parser/icu_ast_expander.ts b/modules/@angular/compiler/src/ml_parser/icu_ast_expander.ts index 9826152631..7c5882ffb8 100644 --- a/modules/@angular/compiler/src/ml_parser/icu_ast_expander.ts +++ b/modules/@angular/compiler/src/ml_parser/icu_ast_expander.ts @@ -102,7 +102,7 @@ function _expandPluralForm(ast: html.Expansion, errors: ParseError[]): html.Elem } function _expandDefaultForm(ast: html.Expansion, errors: ParseError[]): html.Element { - let children = ast.cases.map(c => { + const children = ast.cases.map(c => { const expansionResult = expandNodes(c.expression); errors.push(...expansionResult.errors); diff --git a/modules/@angular/compiler/src/ml_parser/lexer.ts b/modules/@angular/compiler/src/ml_parser/lexer.ts index 338c712e3b..25fac48554 100644 --- a/modules/@angular/compiler/src/ml_parser/lexer.ts +++ b/modules/@angular/compiler/src/ml_parser/lexer.ts @@ -321,23 +321,23 @@ class _Tokenizer { const start = this._getLocation(); this._advance(); if (this._attemptCharCode(chars.$HASH)) { - let isHex = this._attemptCharCode(chars.$x) || this._attemptCharCode(chars.$X); - let numberStart = this._getLocation().offset; + const isHex = this._attemptCharCode(chars.$x) || this._attemptCharCode(chars.$X); + const numberStart = this._getLocation().offset; this._attemptCharCodeUntilFn(isDigitEntityEnd); if (this._peek != chars.$SEMICOLON) { throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan()); } this._advance(); - let strNum = this._input.substring(numberStart, this._index - 1); + const strNum = this._input.substring(numberStart, this._index - 1); try { - let charCode = parseInt(strNum, isHex ? 16 : 10); + const charCode = parseInt(strNum, isHex ? 16 : 10); return String.fromCharCode(charCode); } catch (e) { - let entity = this._input.substring(start.offset + 1, this._index - 1); + const entity = this._input.substring(start.offset + 1, this._index - 1); throw this._createError(_unknownEntityErrorMsg(entity), this._getSpan(start)); } } else { - let startPosition = this._savePosition(); + const startPosition = this._savePosition(); this._attemptCharCodeUntilFn(isNamedEntityEnd); if (this._peek != chars.$SEMICOLON) { this._restorePosition(startPosition); @@ -420,7 +420,7 @@ class _Tokenizer { } private _consumeTagOpen(start: ParseLocation) { - let savedPos = this._savePosition(); + const savedPos = this._savePosition(); let tagName: string; let lowercaseTagName: string; try { @@ -490,18 +490,18 @@ class _Tokenizer { private _consumeAttributeValue() { this._beginToken(TokenType.ATTR_VALUE); - var value: string; + let value: string; if (this._peek === chars.$SQ || this._peek === chars.$DQ) { - var quoteChar = this._peek; + const quoteChar = this._peek; this._advance(); - var parts: string[] = []; + const parts: string[] = []; while (this._peek !== quoteChar) { parts.push(this._readChar(true)); } value = parts.join(''); this._advance(); } else { - var valueStart = this._index; + const valueStart = this._index; this._requireCharCodeUntilFn(isNameEnd, 1); value = this._input.substring(valueStart, this._index); } @@ -519,7 +519,7 @@ class _Tokenizer { private _consumeTagClose(start: ParseLocation) { this._beginToken(TokenType.TAG_CLOSE, start); this._attemptCharCodeUntilFn(isNotWhitespace); - let prefixAndName = this._consumePrefixAndName(); + const prefixAndName = this._consumePrefixAndName(); this._attemptCharCodeUntilFn(isNotWhitespace); this._requireCharCode(chars.$GT); this._endToken(prefixAndName); @@ -539,7 +539,7 @@ class _Tokenizer { this._attemptCharCodeUntilFn(isNotWhitespace); this._beginToken(TokenType.RAW_TEXT, this._getLocation()); - let type = this._readUntil(chars.$COMMA); + const type = this._readUntil(chars.$COMMA); this._endToken([type], this._getLocation()); this._requireCharCode(chars.$COMMA); this._attemptCharCodeUntilFn(isNotWhitespace); @@ -623,7 +623,7 @@ class _Tokenizer { } private _readUntil(char: number): string { - let start = this._index; + const start = this._index; this._attemptUntilChar(char); return this._input.substring(start, this._index); } @@ -633,7 +633,7 @@ class _Tokenizer { this._index = position[1]; this._column = position[2]; this._line = position[3]; - let nbTokens = position[4]; + const nbTokens = position[4]; if (nbTokens < this.tokens.length) { // remove any extra tokens this.tokens = this.tokens.slice(0, nbTokens); @@ -696,10 +696,10 @@ function toUpperCaseCharCode(code: number): number { } function mergeTextTokens(srcTokens: Token[]): Token[] { - let dstTokens: Token[] = []; + const dstTokens: Token[] = []; let lastDstToken: Token; for (let i = 0; i < srcTokens.length; i++) { - let token = srcTokens[i]; + const token = srcTokens[i]; if (lastDstToken && lastDstToken.type == TokenType.TEXT && token.type == TokenType.TEXT) { lastDstToken.parts[0] += token.parts[0]; lastDstToken.sourceSpan.end = token.sourceSpan.end; diff --git a/modules/@angular/compiler/src/ml_parser/parser.ts b/modules/@angular/compiler/src/ml_parser/parser.ts index 3ce5d41e5f..0658ca35ef 100644 --- a/modules/@angular/compiler/src/ml_parser/parser.ts +++ b/modules/@angular/compiler/src/ml_parser/parser.ts @@ -121,7 +121,7 @@ class _TreeBuilder { // read = while (this._peek.type === lex.TokenType.EXPANSION_CASE_VALUE) { - let expCase = this._parseExpansionCase(); + const expCase = this._parseExpansionCase(); if (!expCase) return; // error cases.push(expCase); } diff --git a/modules/@angular/compiler/src/ng_module_compiler.ts b/modules/@angular/compiler/src/ng_module_compiler.ts index 2a8d39e6c7..87daf06481 100644 --- a/modules/@angular/compiler/src/ng_module_compiler.ts +++ b/modules/@angular/compiler/src/ng_module_compiler.ts @@ -35,32 +35,32 @@ export class NgModuleCompileResult { export class NgModuleCompiler { compile(ngModuleMeta: CompileNgModuleMetadata, extraProviders: CompileProviderMetadata[]): NgModuleCompileResult { - var sourceFileName = isPresent(ngModuleMeta.type.moduleUrl) ? + const sourceFileName = isPresent(ngModuleMeta.type.moduleUrl) ? `in NgModule ${ngModuleMeta.type.name} in ${ngModuleMeta.type.moduleUrl}` : `in NgModule ${ngModuleMeta.type.name}`; - var sourceFile = new ParseSourceFile('', sourceFileName); - var sourceSpan = new ParseSourceSpan( + const sourceFile = new ParseSourceFile('', sourceFileName); + const sourceSpan = new ParseSourceSpan( new ParseLocation(sourceFile, null, null, null), new ParseLocation(sourceFile, null, null, null)); - var deps: ComponentFactoryDependency[] = []; - var bootstrapComponentFactories: CompileIdentifierMetadata[] = []; - var entryComponentFactories = + const deps: ComponentFactoryDependency[] = []; + const bootstrapComponentFactories: CompileIdentifierMetadata[] = []; + const entryComponentFactories = ngModuleMeta.transitiveModule.entryComponents.map((entryComponent) => { - var id = new CompileIdentifierMetadata({name: entryComponent.name}); + const id = new CompileIdentifierMetadata({name: entryComponent.name}); if (ngModuleMeta.bootstrapComponents.indexOf(entryComponent) > -1) { bootstrapComponentFactories.push(id); } deps.push(new ComponentFactoryDependency(entryComponent, id)); return id; }); - var builder = new _InjectorBuilder( + const builder = new _InjectorBuilder( ngModuleMeta, entryComponentFactories, bootstrapComponentFactories, sourceSpan); - var providerParser = new NgModuleProviderAnalyzer(ngModuleMeta, extraProviders, sourceSpan); + const providerParser = new NgModuleProviderAnalyzer(ngModuleMeta, extraProviders, sourceSpan); providerParser.parse().forEach((provider) => builder.addProvider(provider)); - var injectorClass = builder.build(); - var ngModuleFactoryVar = `${ngModuleMeta.type.name}NgFactory`; - var ngModuleFactoryStmt = + const injectorClass = builder.build(); + const ngModuleFactoryVar = `${ngModuleMeta.type.name}NgFactory`; + const ngModuleFactoryStmt = o.variable(ngModuleFactoryVar) .set(o.importExpr(resolveIdentifier(Identifiers.NgModuleFactory)) .instantiate( @@ -70,9 +70,9 @@ export class NgModuleCompiler { [o.importType(ngModuleMeta.type)], [o.TypeModifier.Const]))) .toDeclStmt(null, [o.StmtModifier.Final]); - let stmts: o.Statement[] = [injectorClass, ngModuleFactoryStmt]; + const stmts: o.Statement[] = [injectorClass, ngModuleFactoryStmt]; if (ngModuleMeta.id) { - let registerFactoryStmt = + const registerFactoryStmt = o.importExpr(resolveIdentifier(Identifiers.RegisterModuleFactoryFn)) .callFn([o.literal(ngModuleMeta.id), o.variable(ngModuleFactoryVar)]) .toStmt(); @@ -100,10 +100,10 @@ class _InjectorBuilder implements ClassBuilder { private _sourceSpan: ParseSourceSpan) {} addProvider(resolvedProvider: ProviderAst) { - var providerValueExpressions = + const providerValueExpressions = resolvedProvider.providers.map((provider) => this._getProviderValue(provider)); - var propName = `_${resolvedProvider.token.name}_${this._instances.size}`; - var instance = this._createProviderProperty( + const propName = `_${resolvedProvider.token.name}_${this._instances.size}`; + const instance = this._createProviderProperty( propName, resolvedProvider, providerValueExpressions, resolvedProvider.multiProvider, resolvedProvider.eager); if (resolvedProvider.lifecycleHooks.indexOf(LifecycleHooks.OnDestroy) !== -1) { @@ -114,18 +114,17 @@ class _InjectorBuilder implements ClassBuilder { } build(): o.ClassStmt { - let getMethodStmts: o.Statement[] = this._tokens.map((token) => { - var providerExpr = this._instances.get(token.reference); + const getMethodStmts: o.Statement[] = this._tokens.map((token) => { + const providerExpr = this._instances.get(token.reference); return new o.IfStmt( InjectMethodVars.token.identical(createDiTokenExpression(token)), [new o.ReturnStatement(providerExpr)]); }); - var methods = [ + const methods = [ new o.ClassMethod( - 'createInternal', [], this._createStmts.concat( - new o.ReturnStatement(this._instances.get(this._ngModuleMeta.type.reference)) - ), o.importType(this._ngModuleMeta.type) - ), + 'createInternal', [], this._createStmts.concat(new o.ReturnStatement( + this._instances.get(this._ngModuleMeta.type.reference))), + o.importType(this._ngModuleMeta.type)), new o.ClassMethod( 'getInternal', [ @@ -134,19 +133,17 @@ class _InjectorBuilder implements ClassBuilder { ], getMethodStmts.concat([new o.ReturnStatement(InjectMethodVars.notFoundResult)]), o.DYNAMIC_TYPE), - new o.ClassMethod( - 'destroyInternal', [], this._destroyStmts - ), + new o.ClassMethod('destroyInternal', [], this._destroyStmts), ]; - var parentArgs = [ + const parentArgs = [ o.variable(InjectorProps.parent.name), o.literalArr( this._entryComponentFactories.map((componentFactory) => o.importExpr(componentFactory))), o.literalArr(this._bootstrapComponentFactories.map( (componentFactory) => o.importExpr(componentFactory))) ]; - var injClassName = `${this._ngModuleMeta.type.name}Injector`; + const injClassName = `${this._ngModuleMeta.type.name}Injector`; return createClassStmt({ name: injClassName, ctorParams: [new o.FnParam( @@ -159,16 +156,16 @@ class _InjectorBuilder implements ClassBuilder { } private _getProviderValue(provider: CompileProviderMetadata): o.Expression { - var result: o.Expression; + let result: o.Expression; if (isPresent(provider.useExisting)) { result = this._getDependency(new CompileDiDependencyMetadata({token: provider.useExisting})); } else if (isPresent(provider.useFactory)) { - var deps = provider.deps || provider.useFactory.diDeps; - var depsExpr = deps.map((dep) => this._getDependency(dep)); + const deps = provider.deps || provider.useFactory.diDeps; + const depsExpr = deps.map((dep) => this._getDependency(dep)); result = o.importExpr(provider.useFactory).callFn(depsExpr); } else if (isPresent(provider.useClass)) { - var deps = provider.deps || provider.useClass.diDeps; - var depsExpr = deps.map((dep) => this._getDependency(dep)); + const deps = provider.deps || provider.useClass.diDeps; + const depsExpr = deps.map((dep) => this._getDependency(dep)); result = o.importExpr(provider.useClass).instantiate(depsExpr, o.importType(provider.useClass)); } else { @@ -181,8 +178,8 @@ class _InjectorBuilder implements ClassBuilder { private _createProviderProperty( propName: string, provider: ProviderAst, providerValueExpressions: o.Expression[], isMulti: boolean, isEager: boolean): o.Expression { - var resolvedProviderValueExpr: o.Expression; - var type: o.Type; + let resolvedProviderValueExpr: o.Expression; + let type: o.Type; if (isMulti) { resolvedProviderValueExpr = o.literalArr(providerValueExpressions); type = new o.ArrayType(o.DYNAMIC_TYPE); @@ -197,10 +194,10 @@ class _InjectorBuilder implements ClassBuilder { this.fields.push(new o.ClassField(propName, type)); this._createStmts.push(o.THIS_EXPR.prop(propName).set(resolvedProviderValueExpr).toStmt()); } else { - var internalField = `_${propName}`; + const internalField = `_${propName}`; this.fields.push(new o.ClassField(internalField, type)); // Note: Equals is important for JS so that it also checks the undefined case! - var getterStmts = [ + const getterStmts = [ new o.IfStmt( o.THIS_EXPR.prop(internalField).isBlank(), [o.THIS_EXPR.prop(internalField).set(resolvedProviderValueExpr).toStmt()]), @@ -212,7 +209,7 @@ class _InjectorBuilder implements ClassBuilder { } private _getDependency(dep: CompileDiDependencyMetadata): o.Expression { - var result: o.Expression = null; + let result: o.Expression = null; if (dep.isValue) { result = o.literal(dep.value); } @@ -228,7 +225,7 @@ class _InjectorBuilder implements ClassBuilder { } } if (!result) { - var args = [createDiTokenExpression(dep.token)]; + const args = [createDiTokenExpression(dep.token)]; if (dep.isOptional) { args.push(o.NULL_EXPR); } diff --git a/modules/@angular/compiler/src/output/abstract_emitter.ts b/modules/@angular/compiler/src/output/abstract_emitter.ts index 60588b466b..99b205313c 100644 --- a/modules/@angular/compiler/src/output/abstract_emitter.ts +++ b/modules/@angular/compiler/src/output/abstract_emitter.ts @@ -78,7 +78,7 @@ export class EmitterVisitorContext { } toSource(): any { - var lines = this._lines; + let lines = this._lines; if (lines[lines.length - 1].parts.length === 0) { lines = lines.slice(0, lines.length - 1); } @@ -118,7 +118,7 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex ctx.print(`if (`); stmt.condition.visitExpression(this, ctx); ctx.print(`) {`); - var hasElseCase = isPresent(stmt.falseCase) && stmt.falseCase.length > 0; + const hasElseCase = isPresent(stmt.falseCase) && stmt.falseCase.length > 0; if (stmt.trueCase.length <= 1 && !hasElseCase) { ctx.print(` `); this.visitAllStatements(stmt.trueCase, ctx); @@ -149,13 +149,13 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex return null; } visitCommentStmt(stmt: o.CommentStmt, ctx: EmitterVisitorContext): any { - var lines = stmt.comment.split('\n'); + const lines = stmt.comment.split('\n'); lines.forEach((line) => { ctx.println(`// ${line}`); }); return null; } abstract visitDeclareVarStmt(stmt: o.DeclareVarStmt, ctx: EmitterVisitorContext): any; visitWriteVarExpr(expr: o.WriteVarExpr, ctx: EmitterVisitorContext): any { - var lineWasEmpty = ctx.lineIsEmpty(); + const lineWasEmpty = ctx.lineIsEmpty(); if (!lineWasEmpty) { ctx.print('('); } @@ -167,7 +167,7 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex return null; } visitWriteKeyExpr(expr: o.WriteKeyExpr, ctx: EmitterVisitorContext): any { - var lineWasEmpty = ctx.lineIsEmpty(); + const lineWasEmpty = ctx.lineIsEmpty(); if (!lineWasEmpty) { ctx.print('('); } @@ -182,7 +182,7 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex return null; } visitWritePropExpr(expr: o.WritePropExpr, ctx: EmitterVisitorContext): any { - var lineWasEmpty = ctx.lineIsEmpty(); + const lineWasEmpty = ctx.lineIsEmpty(); if (!lineWasEmpty) { ctx.print('('); } @@ -196,7 +196,7 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex } visitInvokeMethodExpr(expr: o.InvokeMethodExpr, ctx: EmitterVisitorContext): any { expr.receiver.visitExpression(this, ctx); - var name = expr.name; + let name = expr.name; if (isPresent(expr.builtin)) { name = this.getBuiltinMethodName(expr.builtin); if (isBlank(name)) { @@ -220,7 +220,7 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex return null; } visitReadVarExpr(ast: o.ReadVarExpr, ctx: EmitterVisitorContext): any { - var varName = ast.name; + let varName = ast.name; if (isPresent(ast.builtin)) { switch (ast.builtin) { case o.BuiltinVar.Super: @@ -282,7 +282,7 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex abstract visitDeclareFunctionStmt(stmt: o.DeclareFunctionStmt, context: any): any; visitBinaryOperatorExpr(ast: o.BinaryOperatorExpr, ctx: EmitterVisitorContext): any { - var opStr: string; + let opStr: string; switch (ast.operator) { case o.BinaryOperator.Equals: opStr = '=='; @@ -354,7 +354,7 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex return null; } visitLiteralArrayExpr(ast: o.LiteralArrayExpr, ctx: EmitterVisitorContext): any { - var useNewLine = ast.entries.length > 1; + const useNewLine = ast.entries.length > 1; ctx.print(`[`, useNewLine); ctx.incIndent(); this.visitAllExpressions(ast.entries, ctx, ',', useNewLine); @@ -363,7 +363,7 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex return null; } visitLiteralMapExpr(ast: o.LiteralMapExpr, ctx: EmitterVisitorContext): any { - var useNewLine = ast.entries.length > 1; + const useNewLine = ast.entries.length > 1; ctx.print(`{`, useNewLine); ctx.incIndent(); this.visitAllObjects(entry => { @@ -385,7 +385,7 @@ export abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.Ex visitAllObjects( handler: (t: T) => void, expressions: T[], ctx: EmitterVisitorContext, separator: string, newLine: boolean = false): void { - for (var i = 0; i < expressions.length; i++) { + for (let i = 0; i < expressions.length; i++) { if (i > 0) { ctx.print(separator, newLine); } @@ -406,7 +406,7 @@ export function escapeIdentifier( if (isBlank(input)) { return null; } - var body = input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE, (...match: string[]) => { + const body = input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE, (...match: string[]) => { if (match[0] == '$') { return escapeDollar ? '\\$' : '$'; } else if (match[0] == '\n') { @@ -417,13 +417,13 @@ export function escapeIdentifier( return `\\${match[0]}`; } }); - let requiresQuotes = alwaysQuote || !_LEGAL_IDENTIFIER_RE.test(body); + const requiresQuotes = alwaysQuote || !_LEGAL_IDENTIFIER_RE.test(body); return requiresQuotes ? `'${body}'` : body; } function _createIndent(count: number): string { - var res = ''; - for (var i = 0; i < count; i++) { + let res = ''; + for (let i = 0; i < count; i++) { res += ' '; } return res; diff --git a/modules/@angular/compiler/src/output/abstract_js_emitter.ts b/modules/@angular/compiler/src/output/abstract_js_emitter.ts index 4a54c07b3b..fc506767e8 100644 --- a/modules/@angular/compiler/src/output/abstract_js_emitter.ts +++ b/modules/@angular/compiler/src/output/abstract_js_emitter.ts @@ -92,7 +92,7 @@ export abstract class AbstractJsEmitterVisitor extends AbstractEmitterVisitor { return null; } visitInvokeFunctionExpr(expr: o.InvokeFunctionExpr, ctx: EmitterVisitorContext): string { - var fnExpr = expr.fn; + const fnExpr = expr.fn; if (fnExpr instanceof o.ReadVarExpr && fnExpr.builtin === o.BuiltinVar.Super) { ctx.currentClass.parent.visitExpression(this, ctx); ctx.print(`.call(this`); @@ -133,7 +133,7 @@ export abstract class AbstractJsEmitterVisitor extends AbstractEmitterVisitor { ctx.decIndent(); ctx.println(`} catch (${CATCH_ERROR_VAR.name}) {`); ctx.incIndent(); - var catchStmts = + const catchStmts = [CATCH_STACK_VAR.set(CATCH_ERROR_VAR.prop('stack')).toDeclStmt(null, [ o.StmtModifier.Final ])].concat(stmt.catchStmts); @@ -148,7 +148,7 @@ export abstract class AbstractJsEmitterVisitor extends AbstractEmitterVisitor { } getBuiltinMethodName(method: o.BuiltinMethod): string { - var name: string; + let name: string; switch (method) { case o.BuiltinMethod.ConcatArray: name = 'concat'; diff --git a/modules/@angular/compiler/src/output/js_emitter.ts b/modules/@angular/compiler/src/output/js_emitter.ts index 6697d24209..75dcfa582a 100644 --- a/modules/@angular/compiler/src/output/js_emitter.ts +++ b/modules/@angular/compiler/src/output/js_emitter.ts @@ -17,10 +17,10 @@ import {ImportGenerator} from './path_util'; export class JavaScriptEmitter implements OutputEmitter { constructor(private _importGenerator: ImportGenerator) {} emitStatements(moduleUrl: string, stmts: o.Statement[], exportedVars: string[]): string { - var converter = new JsEmitterVisitor(moduleUrl); - var ctx = EmitterVisitorContext.createRoot(exportedVars); + const converter = new JsEmitterVisitor(moduleUrl); + const ctx = EmitterVisitorContext.createRoot(exportedVars); converter.visitAllStatements(stmts, ctx); - var srcParts: string[] = []; + const srcParts: string[] = []; converter.importsWithPrefixes.forEach((prefix, importedModuleUrl) => { // Note: can't write the real word for import as it screws up system.js auto detection... srcParts.push( @@ -42,7 +42,7 @@ class JsEmitterVisitor extends AbstractJsEmitterVisitor { throw new Error(`Internal error: unknown identifier ${ast.value}`); } if (isPresent(ast.value.moduleUrl) && ast.value.moduleUrl != this._moduleUrl) { - var prefix = this.importsWithPrefixes.get(ast.value.moduleUrl); + let prefix = this.importsWithPrefixes.get(ast.value.moduleUrl); if (isBlank(prefix)) { prefix = `import${this.importsWithPrefixes.size}`; this.importsWithPrefixes.set(ast.value.moduleUrl, prefix); diff --git a/modules/@angular/compiler/src/output/output_ast.ts b/modules/@angular/compiler/src/output/output_ast.ts index 9b2dd5bb79..6043c36ff1 100644 --- a/modules/@angular/compiler/src/output/output_ast.ts +++ b/modules/@angular/compiler/src/output/output_ast.ts @@ -626,7 +626,7 @@ export class ExpressionTransformer implements StatementVisitor, ExpressionVisito expr.value.visitExpression(this, context)); } visitInvokeMethodExpr(ast: InvokeMethodExpr, context: any): any { - var method = ast.builtin || ast.name; + const method = ast.builtin || ast.name; return new InvokeMethodExpr( ast.receiver.visitExpression(this, context), method, this.visitAllExpressions(ast.args, context), ast.type); @@ -841,7 +841,7 @@ export class RecursiveExpressionVisitor implements StatementVisitor, ExpressionV export function replaceVarInExpression( varName: string, newValue: Expression, expression: Expression): Expression { - var transformer = new _ReplaceVariableTransformer(varName, newValue); + const transformer = new _ReplaceVariableTransformer(varName, newValue); return expression.visitExpression(transformer, null); } @@ -853,7 +853,7 @@ class _ReplaceVariableTransformer extends ExpressionTransformer { } export function findReadVarNames(stmts: Statement[]): Set { - var finder = new _VariableFinder(); + const finder = new _VariableFinder(); finder.visitAllStatements(stmts, null); return finder.varNames; } diff --git a/modules/@angular/compiler/src/output/output_interpreter.ts b/modules/@angular/compiler/src/output/output_interpreter.ts index 431546f2f5..9efafdc3c7 100644 --- a/modules/@angular/compiler/src/output/output_interpreter.ts +++ b/modules/@angular/compiler/src/output/output_interpreter.ts @@ -13,21 +13,21 @@ import * as o from './output_ast'; import {debugOutputAstAsTypeScript} from './ts_emitter'; export function interpretStatements(statements: o.Statement[], resultVar: string): any { - var stmtsWithReturn = statements.concat([new o.ReturnStatement(o.variable(resultVar))]); - var ctx = new _ExecutionContext(null, null, null, new Map()); - var visitor = new StatementInterpreter(); - var result = visitor.visitAllStatements(stmtsWithReturn, ctx); + const stmtsWithReturn = statements.concat([new o.ReturnStatement(o.variable(resultVar))]); + const ctx = new _ExecutionContext(null, null, null, new Map()); + const visitor = new StatementInterpreter(); + const result = visitor.visitAllStatements(stmtsWithReturn, ctx); return isPresent(result) ? result.value : null; } function _executeFunctionStatements( varNames: string[], varValues: any[], statements: o.Statement[], ctx: _ExecutionContext, visitor: StatementInterpreter): any { - var childCtx = ctx.createChildWihtLocalVars(); - for (var i = 0; i < varNames.length; i++) { + const childCtx = ctx.createChildWihtLocalVars(); + for (let i = 0; i < varNames.length; i++) { childCtx.vars.set(varNames[i], varValues[i]); } - var result = visitor.visitAllStatements(statements, childCtx); + const result = visitor.visitAllStatements(statements, childCtx); return isPresent(result) ? result.value : null; } @@ -47,14 +47,14 @@ class ReturnValue { function createDynamicClass( _classStmt: o.ClassStmt, _ctx: _ExecutionContext, _visitor: StatementInterpreter): Function { - let propertyDescriptors: {[key: string]: any} = {}; + const propertyDescriptors: {[key: string]: any} = {}; _classStmt.getters.forEach((getter: o.ClassGetter) => { // Note: use `function` instead of arrow function to capture `this` propertyDescriptors[getter.name] = { configurable: false, get: function() { - let instanceCtx = new _ExecutionContext(_ctx, this, _classStmt.name, _ctx.vars); + const instanceCtx = new _ExecutionContext(_ctx, this, _classStmt.name, _ctx.vars); return _executeFunctionStatements([], [], getter.body, instanceCtx, _visitor); } }; @@ -66,21 +66,21 @@ function createDynamicClass( writable: false, configurable: false, value: function(...args: any[]) { - let instanceCtx = new _ExecutionContext(_ctx, this, _classStmt.name, _ctx.vars); + const instanceCtx = new _ExecutionContext(_ctx, this, _classStmt.name, _ctx.vars); return _executeFunctionStatements(paramNames, args, method.body, instanceCtx, _visitor); } }; }); - var ctorParamNames = _classStmt.constructorMethod.params.map(param => param.name); + const ctorParamNames = _classStmt.constructorMethod.params.map(param => param.name); // Note: use `function` instead of arrow function to capture `this` - var ctor = function(...args: any[]) { - let instanceCtx = new _ExecutionContext(_ctx, this, _classStmt.name, _ctx.vars); + const ctor = function(...args: any[]) { + const instanceCtx = new _ExecutionContext(_ctx, this, _classStmt.name, _ctx.vars); _classStmt.fields.forEach((field) => { this[field.name] = undefined; }); _executeFunctionStatements( ctorParamNames, args, _classStmt.constructorMethod.body, instanceCtx, _visitor); }; - var superClass = _classStmt.parent ? _classStmt.parent.visitExpression(_visitor, _ctx) : Object; + const superClass = _classStmt.parent ? _classStmt.parent.visitExpression(_visitor, _ctx) : Object; ctor.prototype = Object.create(superClass.prototype, propertyDescriptors); return ctor; } @@ -93,8 +93,8 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { return null; } visitWriteVarExpr(expr: o.WriteVarExpr, ctx: _ExecutionContext): any { - var value = expr.value.visitExpression(this, ctx); - var currCtx = ctx; + const value = expr.value.visitExpression(this, ctx); + let currCtx = ctx; while (currCtx != null) { if (currCtx.vars.has(expr.name)) { currCtx.vars.set(expr.name, value); @@ -105,7 +105,7 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { throw new Error(`Not declared variable ${expr.name}`); } visitReadVarExpr(ast: o.ReadVarExpr, ctx: _ExecutionContext): any { - var varName = ast.name; + let varName = ast.name; if (isPresent(ast.builtin)) { switch (ast.builtin) { case o.BuiltinVar.Super: @@ -122,7 +122,7 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { throw new Error(`Unknown builtin variable ${ast.builtin}`); } } - var currCtx = ctx; + let currCtx = ctx; while (currCtx != null) { if (currCtx.vars.has(varName)) { return currCtx.vars.get(varName); @@ -132,23 +132,23 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { throw new Error(`Not declared variable ${varName}`); } visitWriteKeyExpr(expr: o.WriteKeyExpr, ctx: _ExecutionContext): any { - var receiver = expr.receiver.visitExpression(this, ctx); - var index = expr.index.visitExpression(this, ctx); - var value = expr.value.visitExpression(this, ctx); + const receiver = expr.receiver.visitExpression(this, ctx); + const index = expr.index.visitExpression(this, ctx); + const value = expr.value.visitExpression(this, ctx); receiver[index] = value; return value; } visitWritePropExpr(expr: o.WritePropExpr, ctx: _ExecutionContext): any { - var receiver = expr.receiver.visitExpression(this, ctx); - var value = expr.value.visitExpression(this, ctx); + const receiver = expr.receiver.visitExpression(this, ctx); + const value = expr.value.visitExpression(this, ctx); receiver[expr.name] = value; return value; } visitInvokeMethodExpr(expr: o.InvokeMethodExpr, ctx: _ExecutionContext): any { - var receiver = expr.receiver.visitExpression(this, ctx); - var args = this.visitAllExpressions(expr.args, ctx); - var result: any; + const receiver = expr.receiver.visitExpression(this, ctx); + const args = this.visitAllExpressions(expr.args, ctx); + let result: any; if (isPresent(expr.builtin)) { switch (expr.builtin) { case o.BuiltinMethod.ConcatArray: @@ -169,13 +169,13 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { return result; } visitInvokeFunctionExpr(stmt: o.InvokeFunctionExpr, ctx: _ExecutionContext): any { - var args = this.visitAllExpressions(stmt.args, ctx); - var fnExpr = stmt.fn; + const args = this.visitAllExpressions(stmt.args, ctx); + const fnExpr = stmt.fn; if (fnExpr instanceof o.ReadVarExpr && fnExpr.builtin === o.BuiltinVar.Super) { ctx.instance.constructor.prototype.constructor.apply(ctx.instance, args); return null; } else { - var fn = stmt.fn.visitExpression(this, ctx); + const fn = stmt.fn.visitExpression(this, ctx); return fn.apply(null, args); } } @@ -183,7 +183,7 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { return new ReturnValue(stmt.value.visitExpression(this, ctx)); } visitDeclareClassStmt(stmt: o.ClassStmt, ctx: _ExecutionContext): any { - var clazz = createDynamicClass(stmt, ctx, this); + const clazz = createDynamicClass(stmt, ctx, this); ctx.vars.set(stmt.name, clazz); return null; } @@ -191,7 +191,7 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { return stmt.expr.visitExpression(this, ctx); } visitIfStmt(stmt: o.IfStmt, ctx: _ExecutionContext): any { - var condition = stmt.condition.visitExpression(this, ctx); + const condition = stmt.condition.visitExpression(this, ctx); if (condition) { return this.visitAllStatements(stmt.trueCase, ctx); } else if (isPresent(stmt.falseCase)) { @@ -203,7 +203,7 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { try { return this.visitAllStatements(stmt.bodyStmts, ctx); } catch (e) { - var childCtx = ctx.createChildWihtLocalVars(); + const childCtx = ctx.createChildWihtLocalVars(); childCtx.vars.set(CATCH_ERROR_VAR, e); childCtx.vars.set(CATCH_STACK_VAR, e.stack); return this.visitAllStatements(stmt.catchStmts, childCtx); @@ -214,8 +214,8 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { } visitCommentStmt(stmt: o.CommentStmt, context?: any): any { return null; } visitInstantiateExpr(ast: o.InstantiateExpr, ctx: _ExecutionContext): any { - var args = this.visitAllExpressions(ast.args, ctx); - var clazz = ast.classExpr.visitExpression(this, ctx); + const args = this.visitAllExpressions(ast.args, ctx); + const clazz = ast.classExpr.visitExpression(this, ctx); return new clazz(...args); } visitLiteralExpr(ast: o.LiteralExpr, ctx: _ExecutionContext): any { return ast.value; } @@ -237,17 +237,17 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { return ast.value.visitExpression(this, ctx); } visitFunctionExpr(ast: o.FunctionExpr, ctx: _ExecutionContext): any { - var paramNames = ast.params.map((param) => param.name); + const paramNames = ast.params.map((param) => param.name); return _declareFn(paramNames, ast.statements, ctx, this); } visitDeclareFunctionStmt(stmt: o.DeclareFunctionStmt, ctx: _ExecutionContext): any { - var paramNames = stmt.params.map((param) => param.name); + const paramNames = stmt.params.map((param) => param.name); ctx.vars.set(stmt.name, _declareFn(paramNames, stmt.statements, ctx, this)); return null; } visitBinaryOperatorExpr(ast: o.BinaryOperatorExpr, ctx: _ExecutionContext): any { - var lhs = () => ast.lhs.visitExpression(this, ctx); - var rhs = () => ast.rhs.visitExpression(this, ctx); + const lhs = () => ast.lhs.visitExpression(this, ctx); + const rhs = () => ast.rhs.visitExpression(this, ctx); switch (ast.operator) { case o.BinaryOperator.Equals: @@ -285,21 +285,21 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { } } visitReadPropExpr(ast: o.ReadPropExpr, ctx: _ExecutionContext): any { - var result: any; - var receiver = ast.receiver.visitExpression(this, ctx); + let result: any; + const receiver = ast.receiver.visitExpression(this, ctx); result = receiver[ast.name]; return result; } visitReadKeyExpr(ast: o.ReadKeyExpr, ctx: _ExecutionContext): any { - var receiver = ast.receiver.visitExpression(this, ctx); - var prop = ast.index.visitExpression(this, ctx); + const receiver = ast.receiver.visitExpression(this, ctx); + const prop = ast.index.visitExpression(this, ctx); return receiver[prop]; } visitLiteralArrayExpr(ast: o.LiteralArrayExpr, ctx: _ExecutionContext): any { return this.visitAllExpressions(ast.entries, ctx); } visitLiteralMapExpr(ast: o.LiteralMapExpr, ctx: _ExecutionContext): any { - var result = {}; + const result = {}; ast.entries.forEach( (entry) => (result as any)[entry[0]] = (entry[1]).visitExpression(this, ctx)); @@ -311,9 +311,9 @@ class StatementInterpreter implements o.StatementVisitor, o.ExpressionVisitor { } visitAllStatements(statements: o.Statement[], ctx: _ExecutionContext): ReturnValue { - for (var i = 0; i < statements.length; i++) { - var stmt = statements[i]; - var val = stmt.visitStatement(this, ctx); + for (let i = 0; i < statements.length; i++) { + const stmt = statements[i]; + const val = stmt.visitStatement(this, ctx); if (val instanceof ReturnValue) { return val; } @@ -328,5 +328,5 @@ function _declareFn( return (...args: any[]) => _executeFunctionStatements(varNames, args, statements, ctx, visitor); } -var CATCH_ERROR_VAR = 'error'; -var CATCH_STACK_VAR = 'stack'; +const CATCH_ERROR_VAR = 'error'; +const CATCH_STACK_VAR = 'stack'; diff --git a/modules/@angular/compiler/src/output/output_jit.ts b/modules/@angular/compiler/src/output/output_jit.ts index 9954b4b8db..5ce2d41f65 100644 --- a/modules/@angular/compiler/src/output/output_jit.ts +++ b/modules/@angular/compiler/src/output/output_jit.ts @@ -28,8 +28,8 @@ function evalExpression( export function jitStatements( sourceUrl: string, statements: o.Statement[], resultVar: string): any { - var converter = new JitEmitterVisitor(); - var ctx = EmitterVisitorContext.createRoot([resultVar]); + const converter = new JitEmitterVisitor(); + const ctx = EmitterVisitorContext.createRoot([resultVar]); converter.visitAllStatements(statements, ctx); return evalExpression(sourceUrl, resultVar, ctx.toSource(), converter.getArgs()); } @@ -39,20 +39,20 @@ class JitEmitterVisitor extends AbstractJsEmitterVisitor { private _evalArgValues: any[] = []; getArgs(): {[key: string]: any} { - var result: {[key: string]: any} = {}; - for (var i = 0; i < this._evalArgNames.length; i++) { + const result: {[key: string]: any} = {}; + for (let i = 0; i < this._evalArgNames.length; i++) { result[this._evalArgNames[i]] = this._evalArgValues[i]; } return result; } visitExternalExpr(ast: o.ExternalExpr, ctx: EmitterVisitorContext): any { - var value = ast.value.reference; - var id = this._evalArgValues.indexOf(value); + const value = ast.value.reference; + let id = this._evalArgValues.indexOf(value); if (id === -1) { id = this._evalArgValues.length; this._evalArgValues.push(value); - var name = isPresent(ast.value.name) ? sanitizeIdentifier(ast.value.name) : 'val'; + const name = isPresent(ast.value.name) ? sanitizeIdentifier(ast.value.name) : 'val'; this._evalArgNames.push(sanitizeIdentifier(`jit_${name}${id}`)); } ctx.print(this._evalArgNames[id]); diff --git a/modules/@angular/compiler/src/output/path_util.ts b/modules/@angular/compiler/src/output/path_util.ts index aebfb7bbab..9f1c30efd3 100644 --- a/modules/@angular/compiler/src/output/path_util.ts +++ b/modules/@angular/compiler/src/output/path_util.ts @@ -7,7 +7,7 @@ */ // asset:// -var _ASSET_URL_RE = /asset:([^\/]+)\/([^\/]+)\/(.+)/; +const _ASSET_URL_RE = /asset:([^\/]+)\/([^\/]+)\/(.+)/; /** * Interface that defines how import statements should be generated. diff --git a/modules/@angular/compiler/src/output/ts_emitter.ts b/modules/@angular/compiler/src/output/ts_emitter.ts index 49c502d320..30ab03e794 100644 --- a/modules/@angular/compiler/src/output/ts_emitter.ts +++ b/modules/@angular/compiler/src/output/ts_emitter.ts @@ -39,10 +39,10 @@ export function debugOutputAstAsTypeScript(ast: o.Statement | o.Expression | o.T export class TypeScriptEmitter implements OutputEmitter { constructor(private _importGenerator: ImportGenerator) {} emitStatements(moduleUrl: string, stmts: o.Statement[], exportedVars: string[]): string { - var converter = new _TsEmitterVisitor(moduleUrl); - var ctx = EmitterVisitorContext.createRoot(exportedVars); + const converter = new _TsEmitterVisitor(moduleUrl); + const ctx = EmitterVisitorContext.createRoot(exportedVars); converter.visitAllStatements(stmts, ctx); - var srcParts: string[] = []; + const srcParts: string[] = []; converter.importsWithPrefixes.forEach((prefix, importedModuleUrl) => { // Note: can't write the real word for import as it screws up system.js auto detection... srcParts.push( @@ -233,7 +233,7 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor ctx.decIndent(); ctx.println(`} catch (${CATCH_ERROR_VAR.name}) {`); ctx.incIndent(); - var catchStmts = + const catchStmts = [CATCH_STACK_VAR.set(CATCH_ERROR_VAR.prop('stack')).toDeclStmt(null, [ o.StmtModifier.Final ])].concat(stmt.catchStmts); @@ -244,7 +244,7 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor } visitBuiltintType(type: o.BuiltinType, ctx: EmitterVisitorContext): any { - var typeStr: string; + let typeStr: string; switch (type.name) { case o.BuiltinTypeName.Bool: typeStr = 'boolean'; @@ -290,7 +290,7 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor } getBuiltinMethodName(method: o.BuiltinMethod): string { - var name: string; + let name: string; switch (method) { case o.BuiltinMethod.ConcatArray: name = 'concat'; @@ -321,7 +321,7 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor throw new Error(`Internal error: unknown identifier ${value}`); } if (isPresent(value.moduleUrl) && value.moduleUrl != this._moduleUrl) { - var prefix = this.importsWithPrefixes.get(value.moduleUrl); + let prefix = this.importsWithPrefixes.get(value.moduleUrl); if (isBlank(prefix)) { prefix = `import${this.importsWithPrefixes.size}`; this.importsWithPrefixes.set(value.moduleUrl, prefix); diff --git a/modules/@angular/compiler/src/parse_util.ts b/modules/@angular/compiler/src/parse_util.ts index eebcc0ecaa..50f01e5de8 100644 --- a/modules/@angular/compiler/src/parse_util.ts +++ b/modules/@angular/compiler/src/parse_util.ts @@ -41,17 +41,17 @@ export class ParseError { public level: ParseErrorLevel = ParseErrorLevel.FATAL) {} toString(): string { - var source = this.span.start.file.content; - var ctxStart = this.span.start.offset; - var contextStr = ''; - var details = ''; + const source = this.span.start.file.content; + let ctxStart = this.span.start.offset; + let contextStr = ''; + let details = ''; if (isPresent(ctxStart)) { if (ctxStart > source.length - 1) { ctxStart = source.length - 1; } - var ctxEnd = ctxStart; - var ctxLen = 0; - var ctxLines = 0; + let ctxEnd = ctxStart; + let ctxLen = 0; + let ctxLines = 0; while (ctxLen < 100 && ctxStart > 0) { ctxStart--; @@ -75,7 +75,7 @@ export class ParseError { } } - let context = source.substring(ctxStart, this.span.start.offset) + '[ERROR ->]' + + const context = source.substring(ctxStart, this.span.start.offset) + '[ERROR ->]' + source.substring(this.span.start.offset, ctxEnd + 1); contextStr = ` ("${context}")`; } diff --git a/modules/@angular/compiler/src/pipe_resolver.ts b/modules/@angular/compiler/src/pipe_resolver.ts index 4b681c27ea..47a2d860b1 100644 --- a/modules/@angular/compiler/src/pipe_resolver.ts +++ b/modules/@angular/compiler/src/pipe_resolver.ts @@ -35,9 +35,9 @@ export class PipeResolver { * Return {@link Pipe} for a given `Type`. */ resolve(type: Type, throwIfNotFound = true): Pipe { - var metas = this._reflector.annotations(resolveForwardRef(type)); + const metas = this._reflector.annotations(resolveForwardRef(type)); if (isPresent(metas)) { - var annotation = metas.find(_isPipeMetadata); + const annotation = metas.find(_isPipeMetadata); if (isPresent(annotation)) { return annotation; } diff --git a/modules/@angular/compiler/src/provider_analyzer.ts b/modules/@angular/compiler/src/provider_analyzer.ts index f95019581d..258118d29e 100644 --- a/modules/@angular/compiler/src/provider_analyzer.ts +++ b/modules/@angular/compiler/src/provider_analyzer.ts @@ -54,11 +54,11 @@ export class ProviderElementContext { refs: ReferenceAst[], private _sourceSpan: ParseSourceSpan) { this._attrs = {}; attrs.forEach((attrAst) => this._attrs[attrAst.name] = attrAst.value); - var directivesMeta = _directiveAsts.map(directiveAst => directiveAst.directive); + const directivesMeta = _directiveAsts.map(directiveAst => directiveAst.directive); this._allProviders = _resolveProvidersFromDirectives(directivesMeta, _sourceSpan, viewContext.errors); this._contentQueries = _getContentQueries(directivesMeta); - var queriedTokens = new Map(); + const queriedTokens = new Map(); Array.from(this._allProviders.values()).forEach((provider) => { this._addQueryReadsTo(provider.token, queriedTokens); }); @@ -91,8 +91,8 @@ export class ProviderElementContext { } get transformedDirectiveAsts(): DirectiveAst[] { - var sortedProviderTypes = this.transformProviders.map(provider => provider.token.identifier); - var sortedDirectives = this._directiveAsts.slice(); + const sortedProviderTypes = this.transformProviders.map(provider => provider.token.identifier); + const sortedDirectives = this._directiveAsts.slice(); sortedDirectives.sort( (dir1, dir2) => sortedProviderTypes.indexOf(dir1.directive.type) - sortedProviderTypes.indexOf(dir2.directive.type)); @@ -111,10 +111,10 @@ export class ProviderElementContext { } private _getQueriesFor(token: CompileTokenMetadata): CompileQueryMetadata[] { - var result: CompileQueryMetadata[] = []; - var currentEl: ProviderElementContext = this; - var distance = 0; - var queries: CompileQueryMetadata[]; + const result: CompileQueryMetadata[] = []; + let currentEl: ProviderElementContext = this; + let distance = 0; + let queries: CompileQueryMetadata[]; while (currentEl !== null) { queries = currentEl._contentQueries.get(token.reference); if (isPresent(queries)) { @@ -136,7 +136,7 @@ export class ProviderElementContext { private _getOrCreateLocalProvider( requestingProviderType: ProviderAstType, token: CompileTokenMetadata, eager: boolean): ProviderAst { - var resolvedProvider = this._allProviders.get(token.reference); + const resolvedProvider = this._allProviders.get(token.reference); if (!resolvedProvider || ((requestingProviderType === ProviderAstType.Directive || requestingProviderType === ProviderAstType.PublicService) && resolvedProvider.providerType === ProviderAstType.PrivateService) || @@ -145,7 +145,7 @@ export class ProviderElementContext { resolvedProvider.providerType === ProviderAstType.Builtin)) { return null; } - var transformedProviderAst = this._transformedProviders.get(token.reference); + let transformedProviderAst = this._transformedProviders.get(token.reference); if (isPresent(transformedProviderAst)) { return transformedProviderAst; } @@ -155,12 +155,12 @@ export class ProviderElementContext { return null; } this._seenProviders.set(token.reference, true); - var transformedProviders = resolvedProvider.providers.map((provider) => { - var transformedUseValue = provider.useValue; - var transformedUseExisting = provider.useExisting; - var transformedDeps: CompileDiDependencyMetadata[]; + const transformedProviders = resolvedProvider.providers.map((provider) => { + let transformedUseValue = provider.useValue; + let transformedUseExisting = provider.useExisting; + let transformedDeps: CompileDiDependencyMetadata[]; if (isPresent(provider.useExisting)) { - var existingDiDep = this._getDependency( + const existingDiDep = this._getDependency( resolvedProvider.providerType, new CompileDiDependencyMetadata({token: provider.useExisting}), eager); if (isPresent(existingDiDep.token)) { @@ -170,11 +170,11 @@ export class ProviderElementContext { transformedUseValue = existingDiDep.value; } } else if (isPresent(provider.useFactory)) { - var deps = provider.deps || provider.useFactory.diDeps; + const deps = provider.deps || provider.useFactory.diDeps; transformedDeps = deps.map((dep) => this._getDependency(resolvedProvider.providerType, dep, eager)); } else if (isPresent(provider.useClass)) { - var deps = provider.deps || provider.useClass.diDeps; + const deps = provider.deps || provider.useClass.diDeps; transformedDeps = deps.map((dep) => this._getDependency(resolvedProvider.providerType, dep, eager)); } @@ -194,7 +194,7 @@ export class ProviderElementContext { requestingProviderType: ProviderAstType, dep: CompileDiDependencyMetadata, eager: boolean = null): CompileDiDependencyMetadata { if (dep.isAttribute) { - var attrValue = this._attrs[dep.token.value]; + const attrValue = this._attrs[dep.token.value]; return new CompileDiDependencyMetadata( {isValue: true, value: attrValue == null ? null : attrValue}); } @@ -230,9 +230,9 @@ export class ProviderElementContext { private _getDependency( requestingProviderType: ProviderAstType, dep: CompileDiDependencyMetadata, eager: boolean = null): CompileDiDependencyMetadata { - var currElement: ProviderElementContext = this; - var currEager: boolean = eager; - var result: CompileDiDependencyMetadata = null; + let currElement: ProviderElementContext = this; + let currEager: boolean = eager; + let result: CompileDiDependencyMetadata = null; if (!dep.isSkipSelf) { result = this._getLocalDependency(requestingProviderType, dep, eager); } @@ -243,7 +243,7 @@ export class ProviderElementContext { } else { // check parent elements while (!result && isPresent(currElement._parent)) { - var prevElement = currElement; + const prevElement = currElement; currElement = currElement._parent; if (prevElement._isViewRoot) { currEager = false; @@ -308,11 +308,11 @@ export class NgModuleProviderAnalyzer { } private _getOrCreateLocalProvider(token: CompileTokenMetadata, eager: boolean): ProviderAst { - var resolvedProvider = this._allProviders.get(token.reference); + const resolvedProvider = this._allProviders.get(token.reference); if (!resolvedProvider) { return null; } - var transformedProviderAst = this._transformedProviders.get(token.reference); + let transformedProviderAst = this._transformedProviders.get(token.reference); if (isPresent(transformedProviderAst)) { return transformedProviderAst; } @@ -322,12 +322,12 @@ export class NgModuleProviderAnalyzer { return null; } this._seenProviders.set(token.reference, true); - var transformedProviders = resolvedProvider.providers.map((provider) => { - var transformedUseValue = provider.useValue; - var transformedUseExisting = provider.useExisting; - var transformedDeps: CompileDiDependencyMetadata[]; + const transformedProviders = resolvedProvider.providers.map((provider) => { + let transformedUseValue = provider.useValue; + let transformedUseExisting = provider.useExisting; + let transformedDeps: CompileDiDependencyMetadata[]; if (isPresent(provider.useExisting)) { - var existingDiDep = this._getDependency( + const existingDiDep = this._getDependency( new CompileDiDependencyMetadata({token: provider.useExisting}), eager, resolvedProvider.sourceSpan); if (isPresent(existingDiDep.token)) { @@ -337,11 +337,11 @@ export class NgModuleProviderAnalyzer { transformedUseValue = existingDiDep.value; } } else if (isPresent(provider.useFactory)) { - var deps = provider.deps || provider.useFactory.diDeps; + const deps = provider.deps || provider.useFactory.diDeps; transformedDeps = deps.map((dep) => this._getDependency(dep, eager, resolvedProvider.sourceSpan)); } else if (isPresent(provider.useClass)) { - var deps = provider.deps || provider.useClass.diDeps; + const deps = provider.deps || provider.useClass.diDeps; transformedDeps = deps.map((dep) => this._getDependency(dep, eager, resolvedProvider.sourceSpan)); } @@ -360,7 +360,7 @@ export class NgModuleProviderAnalyzer { private _getDependency( dep: CompileDiDependencyMetadata, eager: boolean = null, requestorSourceSpan: ParseSourceSpan): CompileDiDependencyMetadata { - var foundLocal = false; + let foundLocal = false; if (!dep.isSkipSelf && isPresent(dep.token)) { // access the injector if (dep.token.reference === resolveIdentifierToken(Identifiers.Injector).reference || @@ -372,7 +372,7 @@ export class NgModuleProviderAnalyzer { foundLocal = true; } } - var result: CompileDiDependencyMetadata = dep; + let result: CompileDiDependencyMetadata = dep; if (dep.isSelf && !foundLocal) { if (dep.isOptional) { result = new CompileDiDependencyMetadata({isValue: true, value: null}); @@ -442,9 +442,9 @@ function _normalizeProviders( function _resolveProvidersFromDirectives( directives: CompileDirectiveSummary[], sourceSpan: ParseSourceSpan, targetErrors: ParseError[]): Map { - var providersByToken = new Map(); + const providersByToken = new Map(); directives.forEach((directive) => { - var dirProvider = new CompileProviderMetadata( + const dirProvider = new CompileProviderMetadata( {token: new CompileTokenMetadata({identifier: directive.type}), useClass: directive.type}); _resolveProviders( [dirProvider], @@ -453,7 +453,7 @@ function _resolveProvidersFromDirectives( }); // Note: directives need to be able to overwrite providers of a component! - var directivesWithComponentFirst = + const directivesWithComponentFirst = directives.filter(dir => dir.isComponent).concat(directives.filter(dir => !dir.isComponent)); directivesWithComponentFirst.forEach((directive) => { _resolveProviders( @@ -471,7 +471,7 @@ function _resolveProviders( sourceSpan: ParseSourceSpan, targetErrors: ParseError[], targetProvidersByToken: Map) { providers.forEach((provider) => { - var resolvedProvider = targetProvidersByToken.get(provider.token.reference); + let resolvedProvider = targetProvidersByToken.get(provider.token.reference); if (isPresent(resolvedProvider) && resolvedProvider.multiProvider !== provider.multi) { targetErrors.push(new ProviderError( `Mixing multi and non multi provider is not possible for token ${resolvedProvider.token.name}`, @@ -497,7 +497,7 @@ function _resolveProviders( function _getViewQueries(component: CompileDirectiveMetadata): Map { - var viewQueries = new Map(); + const viewQueries = new Map(); if (isPresent(component.viewQueries)) { component.viewQueries.forEach((query) => _addQueryToTokenMap(viewQueries, query)); } @@ -506,7 +506,7 @@ function _getViewQueries(component: CompileDirectiveMetadata): Map { - var contentQueries = new Map(); + const contentQueries = new Map(); directives.forEach(directive => { if (isPresent(directive.queries)) { directive.queries.forEach((query) => _addQueryToTokenMap(contentQueries, query)); @@ -517,7 +517,7 @@ function _getContentQueries(directives: CompileDirectiveSummary[]): function _addQueryToTokenMap(map: Map, query: CompileQueryMetadata) { query.selectors.forEach((token: CompileTokenMetadata) => { - var entry = map.get(token.reference); + let entry = map.get(token.reference); if (!entry) { entry = []; map.set(token.reference, entry); diff --git a/modules/@angular/compiler/src/runtime_compiler.ts b/modules/@angular/compiler/src/runtime_compiler.ts index e619b53f79..64dccf3e6e 100644 --- a/modules/@angular/compiler/src/runtime_compiler.ts +++ b/modules/@angular/compiler/src/runtime_compiler.ts @@ -100,7 +100,7 @@ export class RuntimeCompiler implements Compiler { } private _loadModules(mainModule: any, isSync: boolean): Promise { - var loadingPromises: Promise[] = []; + const loadingPromises: Promise[] = []; const {ngModule, loading} = this._metadataResolver.loadNgModuleMetadata(mainModule, isSync); loadingPromises.push(loading); // Note: the loadingPromise for a module only includes the loading of the exported directives @@ -122,7 +122,7 @@ export class RuntimeCompiler implements Compiler { // Always provide a bound Compiler const extraProviders = [this._metadataResolver.getProviderMetadata(new ProviderMeta( Compiler, {useFactory: () => new ModuleBoundCompiler(this, moduleMeta.type.reference)}))]; - var compileResult = this._ngModuleCompiler.compile(moduleMeta, extraProviders); + const compileResult = this._ngModuleCompiler.compile(moduleMeta, extraProviders); compileResult.dependencies.forEach((dep) => { dep.placeholder.reference = this._assertComponentKnown(dep.comp.reference, true).proxyComponentFactory; @@ -192,7 +192,7 @@ export class RuntimeCompiler implements Compiler { this._compiledNgModuleCache.delete(type); this._metadataResolver.clearCacheFor(type); this._compiledHostTemplateCache.delete(type); - var compiledTemplate = this._compiledTemplateCache.get(type); + const compiledTemplate = this._compiledTemplateCache.get(type); if (compiledTemplate) { this._compiledTemplateCache.delete(type); } @@ -211,11 +211,11 @@ export class RuntimeCompiler implements Compiler { throw new Error( `Component ${stringify(compType)} is not part of any NgModule or the module has not been imported into your module.`); } - var compiledTemplate = this._compiledHostTemplateCache.get(compType); + let compiledTemplate = this._compiledHostTemplateCache.get(compType); if (!compiledTemplate) { - var compMeta = this._metadataResolver.getDirectiveMetadata(compType); + const compMeta = this._metadataResolver.getDirectiveMetadata(compType); assertComponent(compMeta); - var hostMeta = createHostComponentMeta(compMeta); + const hostMeta = createHostComponentMeta(compMeta); compiledTemplate = new CompiledTemplate( true, compMeta.selector, compMeta.type, hostMeta, ngModule, [compMeta.type]); this._compiledHostTemplateCache.set(compType, compiledTemplate); @@ -225,7 +225,7 @@ export class RuntimeCompiler implements Compiler { private _createCompiledTemplate( compMeta: CompileDirectiveMetadata, ngModule: CompileNgModuleMetadata): CompiledTemplate { - var compiledTemplate = this._compiledTemplateCache.get(compMeta.type.reference); + let compiledTemplate = this._compiledTemplateCache.get(compMeta.type.reference); if (!compiledTemplate) { assertComponent(compMeta); compiledTemplate = new CompiledTemplate( @@ -297,17 +297,17 @@ export class RuntimeCompiler implements Compiler { compileResult.dependencies.forEach((dep) => { let depTemplate: CompiledTemplate; if (dep instanceof ViewClassDependency) { - let vfd = dep; + const vfd = dep; depTemplate = this._assertComponentKnown(vfd.comp.reference, false); vfd.placeholder.reference = depTemplate.proxyViewClass; vfd.placeholder.name = `View_${vfd.comp.name}`; } else if (dep instanceof ComponentFactoryDependency) { - let cfd = dep; + const cfd = dep; depTemplate = this._assertComponentKnown(cfd.comp.reference, true); cfd.placeholder.reference = depTemplate.proxyComponentFactory; cfd.placeholder.name = `compFactory_${cfd.comp.name}`; } else if (dep instanceof DirectiveWrapperDependency) { - let dwd = dep; + const dwd = dep; dwd.placeholder.reference = this._assertDirectiveWrapper(dwd.dir.reference); } }); @@ -328,8 +328,8 @@ export class RuntimeCompiler implements Compiler { private _resolveStylesCompileResult( result: CompiledStylesheet, externalStylesheetsByModuleUrl: Map) { result.dependencies.forEach((dep, i) => { - var nestedCompileResult = externalStylesheetsByModuleUrl.get(dep.moduleUrl); - var nestedStylesArr = this._resolveAndEvalStylesCompileResult( + const nestedCompileResult = externalStylesheetsByModuleUrl.get(dep.moduleUrl); + const nestedStylesArr = this._resolveAndEvalStylesCompileResult( nestedCompileResult, externalStylesheetsByModuleUrl); dep.valuePlaceholder.reference = nestedStylesArr; dep.valuePlaceholder.name = `importedStyles${i}`; diff --git a/modules/@angular/compiler/src/schema/dom_element_schema_registry.ts b/modules/@angular/compiler/src/schema/dom_element_schema_registry.ts index 369311d07c..b077fa999c 100644 --- a/modules/@angular/compiler/src/schema/dom_element_schema_registry.ts +++ b/modules/@angular/compiler/src/schema/dom_element_schema_registry.ts @@ -245,7 +245,7 @@ export class DomElementSchemaRegistry extends ElementSchemaRegistry { constructor() { super(); SCHEMA.forEach(encodedType => { - let type: {[property: string]: string} = {}; + const type: {[property: string]: string} = {}; const [strType, strProperties] = encodedType.split('|'); const properties = strProperties.split(','); const [typeNames, superName] = strType.split('^'); @@ -383,15 +383,15 @@ export class DomElementSchemaRegistry extends ElementSchemaRegistry { normalizeAnimationStyleValue(camelCaseProp: string, userProvidedProp: string, val: string|number): {error: string, value: string} { - var unit: string = ''; - var strVal = val.toString().trim(); - var errorMsg: string = null; + let unit: string = ''; + const strVal = val.toString().trim(); + let errorMsg: string = null; if (_isPixelDimensionStyle(camelCaseProp) && val !== 0 && val !== '0') { if (typeof val === 'number') { unit = 'px'; } else { - let valAndSuffixMatch = val.match(/^[+-]?[\d\.]+([a-z]*)$/); + const valAndSuffixMatch = val.match(/^[+-]?[\d\.]+([a-z]*)$/); if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) { errorMsg = `Please provide a CSS unit value for ${userProvidedProp}:${val}`; } diff --git a/modules/@angular/compiler/src/schema/dom_security_schema.ts b/modules/@angular/compiler/src/schema/dom_security_schema.ts index 5aba4ac5c9..81c3ed888c 100644 --- a/modules/@angular/compiler/src/schema/dom_security_schema.ts +++ b/modules/@angular/compiler/src/schema/dom_security_schema.ts @@ -23,7 +23,7 @@ import {SecurityContext} from '@angular/core'; export const SECURITY_SCHEMA: {[k: string]: SecurityContext} = {}; function registerContext(ctx: SecurityContext, specs: string[]) { - for (let spec of specs) SECURITY_SCHEMA[spec.toLowerCase()] = ctx; + for (const spec of specs) SECURITY_SCHEMA[spec.toLowerCase()] = ctx; } // Case is insignificant below, all element and attribute names are lower-cased for lookup. diff --git a/modules/@angular/compiler/src/selector.ts b/modules/@angular/compiler/src/selector.ts index b38ebde40f..e15bf4a7aa 100644 --- a/modules/@angular/compiler/src/selector.ts +++ b/modules/@angular/compiler/src/selector.ts @@ -202,7 +202,7 @@ export class SelectorMatcher { } this._addTerminal(terminalValuesMap, value, selectable); } else { - let partialMap = matcher._attrValuePartialMap; + const partialMap = matcher._attrValuePartialMap; let partialValuesMap = partialMap.get(name); if (!partialValuesMap) { partialValuesMap = new Map(); diff --git a/modules/@angular/compiler/src/shadow_css.ts b/modules/@angular/compiler/src/shadow_css.ts index f9eb0444a9..47376477ef 100644 --- a/modules/@angular/compiler/src/shadow_css.ts +++ b/modules/@angular/compiler/src/shadow_css.ts @@ -287,7 +287,7 @@ export class ShadowCss { const parts = m[2].split(','); const r: string[] = []; for (let i = 0; i < parts.length; i++) { - let p = parts[i].trim(); + const p = parts[i].trim(); if (!p) break; r.push(partReplacer(_polyfillHostNoCombinator, p, m[3])); } diff --git a/modules/@angular/compiler/src/style_url_resolver.ts b/modules/@angular/compiler/src/style_url_resolver.ts index b9050080b4..e105ccee5b 100644 --- a/modules/@angular/compiler/src/style_url_resolver.ts +++ b/modules/@angular/compiler/src/style_url_resolver.ts @@ -29,8 +29,8 @@ export function isStyleUrlResolvable(url: string): boolean { */ export function extractStyleUrls( resolver: UrlResolver, baseUrl: string, cssText: string): StyleWithImports { - var foundUrls: string[] = []; - var modifiedCssText = cssText.replace(_cssImportRe, function(...m: string[]) { + const foundUrls: string[] = []; + const modifiedCssText = cssText.replace(_cssImportRe, function(...m: string[]) { const url = m[1] || m[2]; if (!isStyleUrlResolvable(url)) { // Do not attempt to resolve non-package absolute URLs with URI scheme @@ -42,5 +42,5 @@ export function extractStyleUrls( return new StyleWithImports(modifiedCssText, foundUrls); } -var _cssImportRe = /@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g; -var _urlWithSchemaRe = /^([^:/?#]+):/; +const _cssImportRe = /@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g; +const _urlWithSchemaRe = /^([^:/?#]+):/; diff --git a/modules/@angular/compiler/src/template_parser/binding_parser.ts b/modules/@angular/compiler/src/template_parser/binding_parser.ts index d5c34b60c5..410317ae8b 100644 --- a/modules/@angular/compiler/src/template_parser/binding_parser.ts +++ b/modules/@angular/compiler/src/template_parser/binding_parser.ts @@ -251,7 +251,7 @@ export class BindingParser { let securityContexts: SecurityContext[]; if (parts.length === 1) { - var partValue = parts[0]; + const partValue = parts[0]; boundPropertyName = this._schemaRegistry.getMappedPropName(partValue); securityContexts = calcPossibleSecurityContexts( this._schemaRegistry, elementSelector, boundPropertyName, false); diff --git a/modules/@angular/compiler/src/template_parser/template_parser.ts b/modules/@angular/compiler/src/template_parser/template_parser.ts index 4a7cbc1bf0..0559748b34 100644 --- a/modules/@angular/compiler/src/template_parser/template_parser.ts +++ b/modules/@angular/compiler/src/template_parser/template_parser.ts @@ -122,8 +122,8 @@ export class TemplateParser { htmlAstWithErrors: ParseTreeResult, component: CompileDirectiveMetadata, template: string, directives: CompileDirectiveSummary[], pipes: CompilePipeSummary[], schemas: SchemaMetadata[], templateUrl: string): TemplateParseResult { - var result: TemplateAst[]; - var errors = htmlAstWithErrors.errors; + let result: TemplateAst[]; + const errors = htmlAstWithErrors.errors; if (htmlAstWithErrors.rootNodes.length > 0) { const uniqDirectives = removeSummaryDuplicates(directives); const uniqPipes = removeSummaryDuplicates(pipes); @@ -819,9 +819,9 @@ function createElementCssSelector(elementName: string, matchableAttrs: string[][ cssSelector.setElement(elNameNoNs); for (let i = 0; i < matchableAttrs.length; i++) { - let attrName = matchableAttrs[i][0]; - let attrNameNoNs = splitNsName(attrName)[1]; - let attrValue = matchableAttrs[i][1]; + const attrName = matchableAttrs[i][0]; + const attrNameNoNs = splitNsName(attrName)[1]; + const attrValue = matchableAttrs[i][1]; cssSelector.addAttribute(attrNameNoNs, attrValue); if (attrName.toLowerCase() == CLASS_ATTR) { diff --git a/modules/@angular/compiler/src/template_parser/template_preparser.ts b/modules/@angular/compiler/src/template_parser/template_preparser.ts index 5f164e970f..0c9abc26dc 100644 --- a/modules/@angular/compiler/src/template_parser/template_preparser.ts +++ b/modules/@angular/compiler/src/template_parser/template_preparser.ts @@ -21,13 +21,13 @@ const NG_NON_BINDABLE_ATTR = 'ngNonBindable'; const NG_PROJECT_AS = 'ngProjectAs'; export function preparseElement(ast: html.Element): PreparsedElement { - var selectAttr: string = null; - var hrefAttr: string = null; - var relAttr: string = null; - var nonBindable = false; - var projectAs: string = null; + let selectAttr: string = null; + let hrefAttr: string = null; + let relAttr: string = null; + let nonBindable = false; + let projectAs: string = null; ast.attrs.forEach(attr => { - let lcAttrName = attr.name.toLowerCase(); + const lcAttrName = attr.name.toLowerCase(); if (lcAttrName == NG_CONTENT_SELECT_ATTR) { selectAttr = attr.value; } else if (lcAttrName == LINK_STYLE_HREF_ATTR) { @@ -43,8 +43,8 @@ export function preparseElement(ast: html.Element): PreparsedElement { } }); selectAttr = normalizeNgContentSelect(selectAttr); - var nodeName = ast.name.toLowerCase(); - var type = PreparsedElementType.OTHER; + const nodeName = ast.name.toLowerCase(); + let type = PreparsedElementType.OTHER; if (splitNsName(nodeName)[1] == NG_CONTENT_ELEMENT) { type = PreparsedElementType.NG_CONTENT; } else if (nodeName == STYLE_ELEMENT) { diff --git a/modules/@angular/compiler/src/url_resolver.ts b/modules/@angular/compiler/src/url_resolver.ts index fc86383f07..84058063be 100644 --- a/modules/@angular/compiler/src/url_resolver.ts +++ b/modules/@angular/compiler/src/url_resolver.ts @@ -61,17 +61,17 @@ export class UrlResolver { * returned as is (ignoring the `baseUrl`) */ resolve(baseUrl: string, url: string): string { - var resolvedUrl = url; + let resolvedUrl = url; if (isPresent(baseUrl) && baseUrl.length > 0) { resolvedUrl = _resolveUrl(baseUrl, resolvedUrl); } - var resolvedParts = _split(resolvedUrl); - var prefix = this._packagePrefix; + const resolvedParts = _split(resolvedUrl); + let prefix = this._packagePrefix; if (isPresent(prefix) && isPresent(resolvedParts) && resolvedParts[_ComponentIndex.Scheme] == 'package') { - var path = resolvedParts[_ComponentIndex.Path]; + let path = resolvedParts[_ComponentIndex.Path]; if (this._packagePrefix === _ASSET_SCHEME) { - var pathSegements = path.split(/\//); + const pathSegements = path.split(/\//); resolvedUrl = `asset:${pathSegements[0]}/lib/${pathSegements.slice(1).join('/')}`; } else { prefix = prefix.replace(/\/+$/, ''); @@ -87,7 +87,7 @@ export class UrlResolver { * Extract the scheme of a URL. */ export function getUrlScheme(url: string): string { - var match = _split(url); + const match = _split(url); return (match && match[_ComponentIndex.Scheme]) || ''; } @@ -114,7 +114,7 @@ export function getUrlScheme(url: string): string { function _buildFromEncodedParts( opt_scheme?: string, opt_userInfo?: string, opt_domain?: string, opt_port?: string, opt_path?: string, opt_queryData?: string, opt_fragment?: string): string { - var out: string[] = []; + const out: string[] = []; if (isPresent(opt_scheme)) { out.push(opt_scheme + ':'); @@ -211,7 +211,7 @@ function _buildFromEncodedParts( * @type {!RegExp} * @internal */ -var _splitRe = new RegExp( +const _splitRe = new RegExp( '^' + '(?:' + '([^:/?#.]+)' + // scheme - ignore special characters @@ -273,14 +273,14 @@ function _split(uri: string): Array { function _removeDotSegments(path: string): string { if (path == '/') return '/'; - var leadingSlash = path[0] == '/' ? '/' : ''; - var trailingSlash = path[path.length - 1] === '/' ? '/' : ''; - var segments = path.split('/'); + const leadingSlash = path[0] == '/' ? '/' : ''; + const trailingSlash = path[path.length - 1] === '/' ? '/' : ''; + const segments = path.split('/'); - var out: string[] = []; - var up = 0; - for (var pos = 0; pos < segments.length; pos++) { - var segment = segments[pos]; + const out: string[] = []; + let up = 0; + for (let pos = 0; pos < segments.length; pos++) { + const segment = segments[pos]; switch (segment) { case '': case '.': @@ -313,7 +313,7 @@ function _removeDotSegments(path: string): string { * and then joins all the parts. */ function _joinAndCanonicalizePath(parts: any[]): string { - var path = parts[_ComponentIndex.Path]; + let path = parts[_ComponentIndex.Path]; path = isBlank(path) ? '' : _removeDotSegments(path); parts[_ComponentIndex.Path] = path; @@ -329,8 +329,8 @@ function _joinAndCanonicalizePath(parts: any[]): string { * @param to The URL to resolve. */ function _resolveUrl(base: string, url: string): string { - var parts = _split(encodeURI(url)); - var baseParts = _split(base); + const parts = _split(encodeURI(url)); + const baseParts = _split(base); if (isPresent(parts[_ComponentIndex.Scheme])) { return _joinAndCanonicalizePath(parts); @@ -338,7 +338,7 @@ function _resolveUrl(base: string, url: string): string { parts[_ComponentIndex.Scheme] = baseParts[_ComponentIndex.Scheme]; } - for (var i = _ComponentIndex.Scheme; i <= _ComponentIndex.Port; i++) { + for (let i = _ComponentIndex.Scheme; i <= _ComponentIndex.Port; i++) { if (isBlank(parts[i])) { parts[i] = baseParts[i]; } @@ -348,9 +348,9 @@ function _resolveUrl(base: string, url: string): string { return _joinAndCanonicalizePath(parts); } - var path = baseParts[_ComponentIndex.Path]; + let path = baseParts[_ComponentIndex.Path]; if (isBlank(path)) path = '/'; - var index = path.lastIndexOf('/'); + const index = path.lastIndexOf('/'); path = path.substring(0, index + 1) + parts[_ComponentIndex.Path]; parts[_ComponentIndex.Path] = path; return _joinAndCanonicalizePath(parts); diff --git a/modules/@angular/compiler/src/util.ts b/modules/@angular/compiler/src/util.ts index cc3d63eb62..48fa10fb18 100644 --- a/modules/@angular/compiler/src/util.ts +++ b/modules/@angular/compiler/src/util.ts @@ -67,7 +67,7 @@ export class ValueTransformer implements ValueVisitor { return arr.map(value => visitValue(value, this, context)); } visitStringMap(map: {[key: string]: any}, context: any): any { - var result: {[key: string]: any} = {}; + const result: {[key: string]: any} = {}; Object.keys(map).forEach(key => { result[key] = visitValue(map[key], this, context); }); return result; } diff --git a/modules/@angular/compiler/src/view_compiler/compile_element.ts b/modules/@angular/compiler/src/view_compiler/compile_element.ts index d0ba770711..df1d4371df 100644 --- a/modules/@angular/compiler/src/view_compiler/compile_element.ts +++ b/modules/@angular/compiler/src/view_compiler/compile_element.ts @@ -81,13 +81,13 @@ export class CompileElement extends CompileNode { } private _createViewContainer() { - var fieldName = `_vc_${this.nodeIndex}`; - var parentNodeIndex = this.isRootElement() ? null : this.parent.nodeIndex; + const fieldName = `_vc_${this.nodeIndex}`; + const parentNodeIndex = this.isRootElement() ? null : this.parent.nodeIndex; // private is fine here as no child view will reference a ViewContainer this.view.fields.push(new o.ClassField( fieldName, o.importType(resolveIdentifier(Identifiers.ViewContainer)), [o.StmtModifier.Private])); - var statement = + const statement = o.THIS_EXPR.prop(fieldName) .set(o.importExpr(resolveIdentifier(Identifiers.ViewContainer)).instantiate([ o.literal(this.nodeIndex), o.literal(parentNodeIndex), o.THIS_EXPR, this.renderNode @@ -101,22 +101,22 @@ export class CompileElement extends CompileNode { } private _createComponentFactoryResolver() { - let entryComponents = + const entryComponents = this.component.entryComponents.map((entryComponent: CompileIdentifierMetadata) => { - var id = new CompileIdentifierMetadata({name: entryComponent.name}); + const id = new CompileIdentifierMetadata({name: entryComponent.name}); this._targetDependencies.push(new ComponentFactoryDependency(entryComponent, id)); return id; }); if (!entryComponents || entryComponents.length === 0) { return; } - var createComponentFactoryResolverExpr = + const createComponentFactoryResolverExpr = o.importExpr(resolveIdentifier(Identifiers.CodegenComponentFactoryResolver)).instantiate([ o.literalArr(entryComponents.map((entryComponent) => o.importExpr(entryComponent))), injectFromViewParentInjector( this.view, resolveIdentifierToken(Identifiers.ComponentFactoryResolver), false) ]); - var provider = new CompileProviderMetadata({ + const provider = new CompileProviderMetadata({ token: resolveIdentifierToken(Identifiers.ComponentFactoryResolver), useValue: createComponentFactoryResolverExpr }); @@ -132,7 +132,7 @@ export class CompileElement extends CompileNode { this.compViewExpr = compViewExpr; this.contentNodesByNgContentIndex = new Array(this.component.template.ngContentSelectors.length); - for (var i = 0; i < this.contentNodesByNgContentIndex.length; i++) { + for (let i = 0; i < this.contentNodesByNgContentIndex.length; i++) { this.contentNodesByNgContentIndex[i] = []; } } @@ -140,11 +140,11 @@ export class CompileElement extends CompileNode { setEmbeddedView(embeddedView: CompileView) { this.embeddedView = embeddedView; if (isPresent(embeddedView)) { - var createTemplateRefExpr = + const createTemplateRefExpr = o.importExpr(resolveIdentifier(Identifiers.TemplateRef_)).instantiate([ o.THIS_EXPR, o.literal(this.nodeIndex), this.renderNode ]); - var provider = new CompileProviderMetadata({ + const provider = new CompileProviderMetadata({ token: resolveIdentifierToken(Identifiers.TemplateRef), useValue: createTemplateRefExpr }); @@ -199,8 +199,8 @@ export class CompileElement extends CompileNode { return convertValueToOutputAst(provider.useValue); } }); - var propName = `_${resolvedProvider.token.name}_${this.nodeIndex}_${this.instances.size}`; - var instance = createProviderProperty( + const propName = `_${resolvedProvider.token.name}_${this.nodeIndex}_${this.instances.size}`; + const instance = createProviderProperty( propName, resolvedProvider, providerValueExpressions, resolvedProvider.multiProvider, resolvedProvider.eager, this); if (isDirectiveWrapper) { @@ -212,38 +212,38 @@ export class CompileElement extends CompileNode { } }); - for (var i = 0; i < this._directives.length; i++) { - var directive = this._directives[i]; - var directiveInstance = this.instances.get(identifierToken(directive.type).reference); + for (let i = 0; i < this._directives.length; i++) { + const directive = this._directives[i]; + const directiveInstance = this.instances.get(identifierToken(directive.type).reference); directive.queries.forEach((queryMeta) => { this._addQuery(queryMeta, directiveInstance); }); } - var queriesWithReads: _QueryWithRead[] = []; + const queriesWithReads: _QueryWithRead[] = []; Array.from(this._resolvedProviders.values()).forEach((resolvedProvider) => { - var queriesForProvider = this._getQueriesFor(resolvedProvider.token); + const queriesForProvider = this._getQueriesFor(resolvedProvider.token); queriesWithReads.push( ...queriesForProvider.map(query => new _QueryWithRead(query, resolvedProvider.token))); }); Object.keys(this.referenceTokens).forEach(varName => { - var token = this.referenceTokens[varName]; - var varValue: o.Expression; + const token = this.referenceTokens[varName]; + let varValue: o.Expression; if (token) { varValue = this.instances.get(token.reference); } else { varValue = this.renderNode; } this.view.locals.set(varName, varValue); - var varToken = new CompileTokenMetadata({value: varName}); + const varToken = new CompileTokenMetadata({value: varName}); queriesWithReads.push( ...this._getQueriesFor(varToken).map(query => new _QueryWithRead(query, varToken))); }); queriesWithReads.forEach((queryWithRead) => { - var value: o.Expression; + let value: o.Expression; if (isPresent(queryWithRead.read.identifier)) { // query for an identifier value = this.instances.get(queryWithRead.read.reference); } else { // query for a reference - var token = this.referenceTokens[queryWithRead.read.value]; + const token = this.referenceTokens[queryWithRead.read.value]; if (isPresent(token)) { value = this.instances.get(token.reference); } else { @@ -261,12 +261,12 @@ export class CompileElement extends CompileNode { // Note: afterChildren is called after recursing into children. // This is good so that an injector match in an element that is closer to a requesting element // matches first. - var providerExpr = this.instances.get(resolvedProvider.token.reference); + const providerExpr = this.instances.get(resolvedProvider.token.reference); // Note: view providers are only visible on the injector of that element. // This is not fully correct as the rules during codegen don't allow a directive // to get hold of a view provdier on the same element. We still do this semantic // as it simplifies our model to having only one runtime injector per element. - var providerChildNodeCount = + const providerChildNodeCount = resolvedProvider.providerType === ProviderAstType.PrivateService ? 0 : childNodeCount; this.view.injectorGetMethod.addStmt(createInjectInternalCondition( this.nodeIndex, providerChildNodeCount, resolvedProvider, providerExpr)); @@ -295,10 +295,10 @@ export class CompileElement extends CompileNode { } private _getQueriesFor(token: CompileTokenMetadata): CompileQuery[] { - var result: CompileQuery[] = []; - var currentEl: CompileElement = this; - var distance = 0; - var queries: CompileQuery[]; + const result: CompileQuery[] = []; + let currentEl: CompileElement = this; + let distance = 0; + let queries: CompileQuery[]; while (!currentEl.isNull()) { queries = currentEl._queries.get(token.reference); if (isPresent(queries)) { @@ -318,16 +318,17 @@ export class CompileElement extends CompileNode { private _addQuery(queryMeta: CompileQueryMetadata, directiveInstance: o.Expression): CompileQuery { - var propName = `_query_${queryMeta.selectors[0].name}_${this.nodeIndex}_${this._queryCount++}`; - var queryList = createQueryList(queryMeta, directiveInstance, propName, this.view); - var query = new CompileQuery(queryMeta, queryList, directiveInstance, this.view); + const propName = + `_query_${queryMeta.selectors[0].name}_${this.nodeIndex}_${this._queryCount++}`; + const queryList = createQueryList(queryMeta, directiveInstance, propName, this.view); + const query = new CompileQuery(queryMeta, queryList, directiveInstance, this.view); addQueryToTokenMap(this._queries, query); return query; } private _getLocalDependency( requestingProviderType: ProviderAstType, dep: CompileDiDependencyMetadata): o.Expression { - var result: o.Expression = null; + let result: o.Expression = null; if (isPresent(dep.token)) { // access builtins with special visibility if (!result) { @@ -342,7 +343,7 @@ export class CompileElement extends CompileNode { } // access regular providers on the element if (!result) { - let resolvedProvider = this._resolvedProviders.get(dep.token.reference); + const resolvedProvider = this._resolvedProviders.get(dep.token.reference); // don't allow directives / public services to access private services. // only components and private services can access private services. if (resolvedProvider && (requestingProviderType === ProviderAstType.Directive || @@ -358,8 +359,8 @@ export class CompileElement extends CompileNode { private _getDependency(requestingProviderType: ProviderAstType, dep: CompileDiDependencyMetadata): o.Expression { - var currElement: CompileElement = this; - var result: o.Expression = null; + let currElement: CompileElement = this; + let result: o.Expression = null; if (dep.isValue) { result = o.literal(dep.value); } @@ -386,7 +387,7 @@ export class CompileElement extends CompileNode { function createInjectInternalCondition( nodeIndex: number, childNodeCount: number, provider: ProviderAst, providerExpr: o.Expression): o.Statement { - var indexCondition: o.Expression; + let indexCondition: o.Expression; if (childNodeCount > 0) { indexCondition = o.literal(nodeIndex) .lowerEquals(InjectMethodVars.requestNodeIndex) @@ -403,9 +404,9 @@ function createInjectInternalCondition( function createProviderProperty( propName: string, provider: ProviderAst, providerValueExpressions: o.Expression[], isMulti: boolean, isEager: boolean, compileElement: CompileElement): o.Expression { - var view = compileElement.view; - var resolvedProviderValueExpr: o.Expression; - var type: o.Type; + const view = compileElement.view; + let resolvedProviderValueExpr: o.Expression; + let type: o.Type; if (isMulti) { resolvedProviderValueExpr = o.literalArr(providerValueExpressions); type = new o.ArrayType(o.DYNAMIC_TYPE); @@ -420,9 +421,9 @@ function createProviderProperty( view.fields.push(new o.ClassField(propName, type)); view.createMethod.addStmt(o.THIS_EXPR.prop(propName).set(resolvedProviderValueExpr).toStmt()); } else { - var internalField = `_${propName}`; + const internalField = `_${propName}`; view.fields.push(new o.ClassField(internalField, type)); - var getter = new CompileMethod(view); + const getter = new CompileMethod(view); getter.resetDebugInfo(compileElement.nodeIndex, compileElement.sourceAst); // Note: Equals is important for JS so that it also checks the undefined case! getter.addStmt(new o.IfStmt( diff --git a/modules/@angular/compiler/src/view_compiler/compile_method.ts b/modules/@angular/compiler/src/view_compiler/compile_method.ts index d4871cc87f..cafb869e77 100644 --- a/modules/@angular/compiler/src/view_compiler/compile_method.ts +++ b/modules/@angular/compiler/src/view_compiler/compile_method.ts @@ -16,7 +16,7 @@ class _DebugState { constructor(public nodeIndex: number, public sourceAst: TemplateAst) {} } -var NULL_DEBUG_STATE = new _DebugState(null, null); +const NULL_DEBUG_STATE = new _DebugState(null, null); export class CompileMethod { private _newState: _DebugState = NULL_DEBUG_STATE; @@ -33,7 +33,7 @@ export class CompileMethod { private _updateDebugContextIfNeeded() { if (this._newState.nodeIndex !== this._currState.nodeIndex || this._newState.sourceAst !== this._currState.sourceAst) { - var expr = this._updateDebugContext(this._newState); + const expr = this._updateDebugContext(this._newState); if (isPresent(expr)) { this._bodyStatements.push(expr.toStmt()); } @@ -43,7 +43,7 @@ export class CompileMethod { private _updateDebugContext(newState: _DebugState): o.Expression { this._currState = this._newState = newState; if (this._debugEnabled) { - var sourceLocation = + const sourceLocation = isPresent(newState.sourceAst) ? newState.sourceAst.sourceSpan.start : null; return o.THIS_EXPR.callMethod('debug', [ @@ -57,7 +57,7 @@ export class CompileMethod { } resetDebugInfoExpr(nodeIndex: number, templateAst: TemplateAst): o.Expression { - var res = this._updateDebugContext(new _DebugState(nodeIndex, templateAst)); + const res = this._updateDebugContext(new _DebugState(nodeIndex, templateAst)); return res || o.NULL_EXPR; } diff --git a/modules/@angular/compiler/src/view_compiler/compile_pipe.ts b/modules/@angular/compiler/src/view_compiler/compile_pipe.ts index f4697c3965..d570c7c32f 100644 --- a/modules/@angular/compiler/src/view_compiler/compile_pipe.ts +++ b/modules/@angular/compiler/src/view_compiler/compile_pipe.ts @@ -17,9 +17,9 @@ import {getPropertyInView, injectFromViewParentInjector} from './util'; export class CompilePipe { static call(view: CompileView, name: string, args: o.Expression[]): o.Expression { - var compView = view.componentView; - var meta = _findPipeMeta(compView, name); - var pipe: CompilePipe; + const compView = view.componentView; + const meta = _findPipeMeta(compView, name); + let pipe: CompilePipe; if (meta.pure) { // pure pipes live on the component view pipe = compView.purePipes.get(name); @@ -41,7 +41,7 @@ export class CompilePipe { constructor(public view: CompileView, public meta: CompilePipeSummary) { this.instance = o.THIS_EXPR.prop(`_pipe_${meta.name}_${view.pipeCount++}`); - var deps = this.meta.type.diDeps.map((diDep) => { + const deps = this.meta.type.diDeps.map((diDep) => { if (diDep.token.reference === resolveIdentifierToken(Identifiers.ChangeDetectorRef).reference) { return getPropertyInView(o.THIS_EXPR.prop('ref'), this.view, this.view.componentView); @@ -60,9 +60,10 @@ export class CompilePipe { private _call(callingView: CompileView, args: o.Expression[]): o.Expression { if (this.meta.pure) { // PurePipeProxies live on the view that called them. - var purePipeProxyInstance = + const purePipeProxyInstance = o.THIS_EXPR.prop(`${this.instance.name}_${this._purePipeProxyCount++}`); - var pipeInstanceSeenFromPureProxy = getPropertyInView(this.instance, callingView, this.view); + const pipeInstanceSeenFromPureProxy = + getPropertyInView(this.instance, callingView, this.view); createPureProxy( pipeInstanceSeenFromPureProxy.prop('transform') .callMethod(o.BuiltinMethod.Bind, [pipeInstanceSeenFromPureProxy]), @@ -78,9 +79,9 @@ export class CompilePipe { } function _findPipeMeta(view: CompileView, name: string): CompilePipeSummary { - var pipeMeta: CompilePipeSummary = null; - for (var i = view.pipeMetas.length - 1; i >= 0; i--) { - var localPipeMeta = view.pipeMetas[i]; + let pipeMeta: CompilePipeSummary = null; + for (let i = view.pipeMetas.length - 1; i >= 0; i--) { + const localPipeMeta = view.pipeMetas[i]; if (localPipeMeta.name == name) { pipeMeta = localPipeMeta; break; diff --git a/modules/@angular/compiler/src/view_compiler/compile_query.ts b/modules/@angular/compiler/src/view_compiler/compile_query.ts index 1be76ecf02..f73b7a1663 100644 --- a/modules/@angular/compiler/src/view_compiler/compile_query.ts +++ b/modules/@angular/compiler/src/view_compiler/compile_query.ts @@ -31,23 +31,23 @@ export class CompileQuery { } addValue(value: o.Expression, view: CompileView) { - var currentView = view; - var elPath: CompileElement[] = []; + let currentView = view; + const elPath: CompileElement[] = []; while (isPresent(currentView) && currentView !== this.view) { - var parentEl = currentView.declarationElement; + const parentEl = currentView.declarationElement; elPath.unshift(parentEl); currentView = parentEl.view; } - var queryListForDirtyExpr = getPropertyInView(this.queryList, view, this.view); + const queryListForDirtyExpr = getPropertyInView(this.queryList, view, this.view); - var viewValues = this._values; + let viewValues = this._values; elPath.forEach((el) => { - var last = + const last = viewValues.values.length > 0 ? viewValues.values[viewValues.values.length - 1] : null; if (last instanceof ViewQueryValues && last.view === el.embeddedView) { viewValues = last; } else { - var newViewValues = new ViewQueryValues(el.embeddedView, []); + const newViewValues = new ViewQueryValues(el.embeddedView, []); viewValues.values.push(newViewValues); viewValues = newViewValues; } @@ -65,10 +65,10 @@ export class CompileQuery { } afterChildren(targetStaticMethod: CompileMethod, targetDynamicMethod: CompileMethod) { - var values = createQueryValues(this._values); - var updateStmts = [this.queryList.callMethod('reset', [o.literalArr(values)]).toStmt()]; + const values = createQueryValues(this._values); + const updateStmts = [this.queryList.callMethod('reset', [o.literalArr(values)]).toStmt()]; if (isPresent(this.ownerDirectiveExpression)) { - var valueExpr = this.meta.first ? this.queryList.prop('first') : this.queryList; + const valueExpr = this.meta.first ? this.queryList.prop('first') : this.queryList; updateStmts.push( this.ownerDirectiveExpression.prop(this.meta.propertyName).set(valueExpr).toStmt()); } @@ -100,7 +100,7 @@ function createQueryValues(viewValues: ViewQueryValues): o.Expression[] { function mapNestedViews( viewContainer: o.Expression, view: CompileView, expressions: o.Expression[]): o.Expression { - var adjustedExpressions: o.Expression[] = expressions.map( + const adjustedExpressions: o.Expression[] = expressions.map( (expr) => o.replaceVarInExpression(o.THIS_EXPR.name, o.variable('nestedView'), expr)); return viewContainer.callMethod('mapNestedViews', [ o.variable(view.className), @@ -115,7 +115,7 @@ export function createQueryList( compileView: CompileView): o.Expression { compileView.fields.push(new o.ClassField( propertyName, o.importType(resolveIdentifier(Identifiers.QueryList), [o.DYNAMIC_TYPE]))); - var expr = o.THIS_EXPR.prop(propertyName); + const expr = o.THIS_EXPR.prop(propertyName); compileView.createMethod.addStmt( o.THIS_EXPR.prop(propertyName) .set(o.importExpr(resolveIdentifier(Identifiers.QueryList), [o.DYNAMIC_TYPE]) @@ -126,7 +126,7 @@ export function createQueryList( export function addQueryToTokenMap(map: Map, query: CompileQuery) { query.meta.selectors.forEach((selector) => { - var entry = map.get(selector.reference); + let entry = map.get(selector.reference); if (!entry) { entry = []; map.set(selector.reference, entry); diff --git a/modules/@angular/compiler/src/view_compiler/compile_view.ts b/modules/@angular/compiler/src/view_compiler/compile_view.ts index dc5bfe4a1e..68151dec1d 100644 --- a/modules/@angular/compiler/src/view_compiler/compile_view.ts +++ b/modules/@angular/compiler/src/view_compiler/compile_view.ts @@ -111,13 +111,13 @@ export class CompileView implements NameResolver { this.componentContext = getPropertyInView(o.THIS_EXPR.prop('context'), this, this.componentView); - var viewQueries = new Map(); + const viewQueries = new Map(); if (this.viewType === ViewType.COMPONENT) { - var directiveInstance = o.THIS_EXPR.prop('context'); + const directiveInstance = o.THIS_EXPR.prop('context'); this.component.viewQueries.forEach((queryMeta, queryIndex) => { - var propName = `_viewQuery_${queryMeta.selectors[0].name}_${queryIndex}`; - var queryList = createQueryList(queryMeta, directiveInstance, propName, this); - var query = new CompileQuery(queryMeta, queryList, directiveInstance, this); + const propName = `_viewQuery_${queryMeta.selectors[0].name}_${queryIndex}`; + const queryList = createQueryList(queryMeta, directiveInstance, propName, this); + const query = new CompileQuery(queryMeta, queryList, directiveInstance, this); addQueryToTokenMap(viewQueries, query); }); } @@ -138,8 +138,8 @@ export class CompileView implements NameResolver { if (name == EventHandlerVars.event.name) { return EventHandlerVars.event; } - var currView: CompileView = this; - var result = currView.locals.get(name); + let currView: CompileView = this; + let result = currView.locals.get(name); while (!result && isPresent(currView.declarationElement.view)) { currView = currView.declarationElement.view; result = currView.locals.get(name); diff --git a/modules/@angular/compiler/src/view_compiler/lifecycle_binder.ts b/modules/@angular/compiler/src/view_compiler/lifecycle_binder.ts index cd5947b334..bed932e11c 100644 --- a/modules/@angular/compiler/src/view_compiler/lifecycle_binder.ts +++ b/modules/@angular/compiler/src/view_compiler/lifecycle_binder.ts @@ -16,15 +16,15 @@ import {CompileElement} from './compile_element'; import {CompileView} from './compile_view'; import {DetectChangesVars} from './constants'; -var STATE_IS_NEVER_CHECKED = o.THIS_EXPR.prop('numberOfChecks').identical(new o.LiteralExpr(0)); -var NOT_THROW_ON_CHANGES = o.not(DetectChangesVars.throwOnChange); +const STATE_IS_NEVER_CHECKED = o.THIS_EXPR.prop('numberOfChecks').identical(new o.LiteralExpr(0)); +const NOT_THROW_ON_CHANGES = o.not(DetectChangesVars.throwOnChange); export function bindDirectiveAfterContentLifecycleCallbacks( directiveMeta: CompileDirectiveSummary, directiveInstance: o.Expression, compileElement: CompileElement) { - var view = compileElement.view; - var lifecycleHooks = directiveMeta.type.lifecycleHooks; - var afterContentLifecycleCallbacksMethod = view.afterContentLifecycleCallbacksMethod; + const view = compileElement.view; + const lifecycleHooks = directiveMeta.type.lifecycleHooks; + const afterContentLifecycleCallbacksMethod = view.afterContentLifecycleCallbacksMethod; afterContentLifecycleCallbacksMethod.resetDebugInfo( compileElement.nodeIndex, compileElement.sourceAst); if (lifecycleHooks.indexOf(LifecycleHooks.AfterContentInit) !== -1) { @@ -40,9 +40,9 @@ export function bindDirectiveAfterContentLifecycleCallbacks( export function bindDirectiveAfterViewLifecycleCallbacks( directiveMeta: CompileDirectiveSummary, directiveInstance: o.Expression, compileElement: CompileElement) { - var view = compileElement.view; - var lifecycleHooks = directiveMeta.type.lifecycleHooks; - var afterViewLifecycleCallbacksMethod = view.afterViewLifecycleCallbacksMethod; + const view = compileElement.view; + const lifecycleHooks = directiveMeta.type.lifecycleHooks; + const afterViewLifecycleCallbacksMethod = view.afterViewLifecycleCallbacksMethod; afterViewLifecycleCallbacksMethod.resetDebugInfo( compileElement.nodeIndex, compileElement.sourceAst); if (lifecycleHooks.indexOf(LifecycleHooks.AfterViewInit) !== -1) { @@ -67,7 +67,7 @@ export function bindDirectiveWrapperLifecycleCallbacks( export function bindInjectableDestroyLifecycleCallbacks( provider: ProviderAst, providerInstance: o.Expression, compileElement: CompileElement) { - var onDestroyMethod = compileElement.view.destroyMethod; + const onDestroyMethod = compileElement.view.destroyMethod; onDestroyMethod.resetDebugInfo(compileElement.nodeIndex, compileElement.sourceAst); if (provider.providerType !== ProviderAstType.Directive && provider.providerType !== ProviderAstType.Component && @@ -78,7 +78,7 @@ export function bindInjectableDestroyLifecycleCallbacks( export function bindPipeDestroyLifecycleCallbacks( pipeMeta: CompilePipeSummary, pipeInstance: o.Expression, view: CompileView) { - var onDestroyMethod = view.destroyMethod; + const onDestroyMethod = view.destroyMethod; if (pipeMeta.type.lifecycleHooks.indexOf(LifecycleHooks.OnDestroy) !== -1) { onDestroyMethod.addStmt(pipeInstance.callMethod('ngOnDestroy', []).toStmt()); } diff --git a/modules/@angular/compiler/src/view_compiler/property_binder.ts b/modules/@angular/compiler/src/view_compiler/property_binder.ts index df5e4a11f4..6bc6780620 100644 --- a/modules/@angular/compiler/src/view_compiler/property_binder.ts +++ b/modules/@angular/compiler/src/view_compiler/property_binder.ts @@ -139,7 +139,7 @@ export function bindDirectiveInputs( }); const isOnPushComp = directiveAst.directive.isComponent && !isDefaultChangeDetectionStrategy(directiveAst.directive.changeDetection); - let directiveDetectChangesExpr = DirectiveWrapperExpressions.ngDoCheck( + const directiveDetectChangesExpr = DirectiveWrapperExpressions.ngDoCheck( directiveWrapperInstance, o.THIS_EXPR, compileElement.renderNode, DetectChangesVars.throwOnChange); const directiveDetectChangesStmt = isOnPushComp ? diff --git a/modules/@angular/compiler/src/view_compiler/util.ts b/modules/@angular/compiler/src/view_compiler/util.ts index 7636d823b8..67834ac83f 100644 --- a/modules/@angular/compiler/src/view_compiler/util.ts +++ b/modules/@angular/compiler/src/view_compiler/util.ts @@ -21,8 +21,8 @@ export function getPropertyInView( if (callingView === definedView) { return property; } else { - var viewProp: o.Expression = o.THIS_EXPR; - var currView: CompileView = callingView; + let viewProp: o.Expression = o.THIS_EXPR; + let currView: CompileView = callingView; while (currView !== definedView && isPresent(currView.declarationElement.view)) { currView = currView.declarationElement.view; viewProp = viewProp.prop('parentView'); @@ -64,7 +64,7 @@ export function injectFromViewParentInjector( } else { viewExpr = o.THIS_EXPR.prop('parentView'); } - let args = [createDiTokenExpression(token), o.THIS_EXPR.prop('parentIndex')]; + const args = [createDiTokenExpression(token), o.THIS_EXPR.prop('parentIndex')]; if (optional) { args.push(o.NULL_EXPR); } diff --git a/modules/@angular/compiler/src/view_compiler/view_builder.ts b/modules/@angular/compiler/src/view_compiler/view_builder.ts index caf53a8358..ff99f047db 100644 --- a/modules/@angular/compiler/src/view_compiler/view_builder.ts +++ b/modules/@angular/compiler/src/view_compiler/view_builder.ts @@ -30,14 +30,14 @@ const CLASS_ATTR = 'class'; const STYLE_ATTR = 'style'; const NG_CONTAINER_TAG = 'ng-container'; -var parentRenderNodeVar = o.variable('parentRenderNode'); -var rootSelectorVar = o.variable('rootSelector'); +const parentRenderNodeVar = o.variable('parentRenderNode'); +const rootSelectorVar = o.variable('rootSelector'); export function buildView( view: CompileView, template: TemplateAst[], targetDependencies: Array): number { - var builderVisitor = new ViewBuilderVisitor(view, targetDependencies); + const builderVisitor = new ViewBuilderVisitor(view, targetDependencies); const parentEl = view.declarationElement.isNull() ? view.declarationElement : view.declarationElement.parent; templateVisitAll(builderVisitor, template, parentEl); @@ -68,10 +68,10 @@ class ViewBuilderVisitor implements TemplateAstVisitor { private _isRootNode(parent: CompileElement): boolean { return parent.view !== this.view; } private _addRootNodeAndProject(node: CompileNode) { - var projectedNode = _getOuterContainerOrSelf(node); - var parent = projectedNode.parent; - var ngContentIndex = (projectedNode.sourceAst).ngContentIndex; - var viewContainer = + const projectedNode = _getOuterContainerOrSelf(node); + const parent = projectedNode.parent; + const ngContentIndex = (projectedNode.sourceAst).ngContentIndex; + const viewContainer = (node instanceof CompileElement && node.hasViewContainer) ? node.viewContainer : null; if (this._isRootNode(parent)) { if (this.view.viewType !== ViewType.COMPONENT) { @@ -109,7 +109,7 @@ class ViewBuilderVisitor implements TemplateAstVisitor { const view = this.view; if (view.rootNodes.length === 0 || view.rootNodes[view.rootNodes.length - 1].type !== CompileViewRootNodeType.Node) { - var fieldName = `_el_${view.nodes.length}`; + const fieldName = `_el_${view.nodes.length}`; view.fields.push( new o.ClassField(fieldName, o.importType(view.genConfig.renderTypes.renderElement))); view.createMethod.addStmt(o.THIS_EXPR.prop(fieldName) @@ -129,12 +129,12 @@ class ViewBuilderVisitor implements TemplateAstVisitor { return this._visitText(ast, ast.value, parent); } private _visitText(ast: TemplateAst, value: string, parent: CompileElement): o.Expression { - var fieldName = `_text_${this.view.nodes.length}`; + const fieldName = `_text_${this.view.nodes.length}`; this.view.fields.push( new o.ClassField(fieldName, o.importType(this.view.genConfig.renderTypes.renderText))); - var renderNode = o.THIS_EXPR.prop(fieldName); - var compileNode = new CompileNode(parent, this.view, this.view.nodes.length, renderNode, ast); - var createRenderNode = + const renderNode = o.THIS_EXPR.prop(fieldName); + const compileNode = new CompileNode(parent, this.view, this.view.nodes.length, renderNode, ast); + const createRenderNode = o.THIS_EXPR.prop(fieldName) .set(ViewProperties.renderer.callMethod( 'createText', @@ -153,7 +153,7 @@ class ViewBuilderVisitor implements TemplateAstVisitor { // the projected nodes originate from a different view, so we don't // have debug information for them... this.view.createMethod.resetDebugInfo(null, ast); - var parentRenderNode = this._getParentRenderNode(parent); + const parentRenderNode = this._getParentRenderNode(parent); if (parentRenderNode !== o.NULL_EXPR) { this.view.createMethod.addStmt( o.THIS_EXPR.callMethod('projectNodes', [parentRenderNode, o.literal(ast.index)]) @@ -175,11 +175,11 @@ class ViewBuilderVisitor implements TemplateAstVisitor { } visitElement(ast: ElementAst, parent: CompileElement): any { - var nodeIndex = this.view.nodes.length; - var createRenderNodeExpr: o.Expression; - var debugContextExpr = this.view.createMethod.resetDebugInfoExpr(nodeIndex, ast); - var directives = ast.directives.map(directiveAst => directiveAst.directive); - var component = directives.find(directive => directive.isComponent); + const nodeIndex = this.view.nodes.length; + let createRenderNodeExpr: o.Expression; + const debugContextExpr = this.view.createMethod.resetDebugInfoExpr(nodeIndex, ast); + const directives = ast.directives.map(directiveAst => directiveAst.directive); + const component = directives.find(directive => directive.isComponent); if (ast.name === NG_CONTAINER_TAG) { createRenderNodeExpr = ViewProperties.renderer.callMethod( 'createTemplateAnchor', [this._getParentRenderNode(parent), debugContextExpr]); @@ -201,20 +201,20 @@ class ViewBuilderVisitor implements TemplateAstVisitor { ]); } } - var fieldName = `_el_${nodeIndex}`; + const fieldName = `_el_${nodeIndex}`; this.view.fields.push( new o.ClassField(fieldName, o.importType(this.view.genConfig.renderTypes.renderElement))); this.view.createMethod.addStmt(o.THIS_EXPR.prop(fieldName).set(createRenderNodeExpr).toStmt()); - var renderNode = o.THIS_EXPR.prop(fieldName); + const renderNode = o.THIS_EXPR.prop(fieldName); - var compileElement = new CompileElement( + const compileElement = new CompileElement( parent, this.view, nodeIndex, renderNode, ast, component, directives, ast.providers, ast.hasViewContainer, false, ast.references, this.targetDependencies); this.view.nodes.push(compileElement); - var compViewExpr: o.ReadPropExpr = null; + let compViewExpr: o.ReadPropExpr = null; if (isPresent(component)) { - let nestedComponentIdentifier = + const nestedComponentIdentifier = new CompileIdentifierMetadata({name: getViewClassName(component, 0)}); this.targetDependencies.push( new ViewClassDependency(component.type, nestedComponentIdentifier)); @@ -245,8 +245,8 @@ class ViewBuilderVisitor implements TemplateAstVisitor { } visitEmbeddedTemplate(ast: EmbeddedTemplateAst, parent: CompileElement): any { - var nodeIndex = this.view.nodes.length; - var fieldName = `_anchor_${nodeIndex}`; + const nodeIndex = this.view.nodes.length; + const fieldName = `_anchor_${nodeIndex}`; this.view.fields.push( new o.ClassField(fieldName, o.importType(this.view.genConfig.renderTypes.renderComment))); this.view.createMethod.addStmt( @@ -258,19 +258,19 @@ class ViewBuilderVisitor implements TemplateAstVisitor { this.view.createMethod.resetDebugInfoExpr(nodeIndex, ast) ])) .toStmt()); - var renderNode = o.THIS_EXPR.prop(fieldName); + const renderNode = o.THIS_EXPR.prop(fieldName); - var templateVariableBindings = ast.variables.map( + const templateVariableBindings = ast.variables.map( varAst => [varAst.value.length > 0 ? varAst.value : IMPLICIT_TEMPLATE_VAR, varAst.name]); - var directives = ast.directives.map(directiveAst => directiveAst.directive); - var compileElement = new CompileElement( + const directives = ast.directives.map(directiveAst => directiveAst.directive); + const compileElement = new CompileElement( parent, this.view, nodeIndex, renderNode, ast, null, directives, ast.providers, ast.hasViewContainer, true, ast.references, this.targetDependencies); this.view.nodes.push(compileElement); this.nestedViewCount++; - var embeddedView = new CompileView( + const embeddedView = new CompileView( this.view.component, this.view.genConfig, this.view.pipeMetas, o.NULL_EXPR, this.view.animations, this.view.viewIndex + this.nestedViewCount, compileElement, templateVariableBindings); @@ -355,7 +355,7 @@ function _mergeHtmlAndDirectiveAttrs( } function _readHtmlAttrs(attrs: AttrAst[]): {[key: string]: string} { - var htmlAttrs: {[key: string]: string} = {}; + const htmlAttrs: {[key: string]: string} = {}; attrs.forEach((ast) => { htmlAttrs[ast.name] = ast.value; }); return htmlAttrs; } @@ -369,7 +369,7 @@ function mergeAttributeValue(attrName: string, attrValue1: string, attrValue2: s } function createViewTopLevelStmts(view: CompileView, targetStatements: o.Statement[]) { - var nodeDebugInfosVar: o.Expression = o.NULL_EXPR; + let nodeDebugInfosVar: o.Expression = o.NULL_EXPR; if (view.genConfig.genDebugInfo) { nodeDebugInfosVar = o.variable( `nodeDebugInfos_${view.component.type.name}${view.viewIndex}`); // fix highlighting: ` @@ -384,7 +384,7 @@ function createViewTopLevelStmts(view: CompileView, targetStatements: o.Statemen } - var renderCompTypeVar: o.ReadVarExpr = + const renderCompTypeVar: o.ReadVarExpr = o.variable(`renderType_${view.component.type.name}`); // fix highlighting: ` if (view.viewIndex === 0) { let templateUrlInfo: string; @@ -407,15 +407,15 @@ function createViewTopLevelStmts(view: CompileView, targetStatements: o.Statemen .toDeclStmt(o.importType(resolveIdentifier(Identifiers.RenderComponentType)))); } - var viewClass = createViewClass(view, renderCompTypeVar, nodeDebugInfosVar); + const viewClass = createViewClass(view, renderCompTypeVar, nodeDebugInfosVar); targetStatements.push(viewClass); } function createStaticNodeDebugInfo(node: CompileNode): o.Expression { - var compileElement = node instanceof CompileElement ? node : null; - var providerTokens: o.Expression[] = []; - var componentToken: o.Expression = o.NULL_EXPR; - var varTokenEntries: any[] = []; + const compileElement = node instanceof CompileElement ? node : null; + let providerTokens: o.Expression[] = []; + let componentToken: o.Expression = o.NULL_EXPR; + const varTokenEntries: any[] = []; if (isPresent(compileElement)) { providerTokens = compileElement.getProviderTokens(); if (isPresent(compileElement.component)) { @@ -441,7 +441,7 @@ function createStaticNodeDebugInfo(node: CompileNode): o.Expression { function createViewClass( view: CompileView, renderCompTypeVar: o.ReadVarExpr, nodeDebugInfosVar: o.Expression): o.ClassStmt { - var viewConstructorArgs = [ + const viewConstructorArgs = [ new o.FnParam( ViewConstructorVars.viewUtils.name, o.importType(resolveIdentifier(Identifiers.ViewUtils))), new o.FnParam( @@ -450,7 +450,7 @@ function createViewClass( new o.FnParam(ViewConstructorVars.parentIndex.name, o.NUMBER_TYPE), new o.FnParam(ViewConstructorVars.parentElement.name, o.DYNAMIC_TYPE) ]; - var superConstructorArgs = [ + const superConstructorArgs = [ o.variable(view.className), renderCompTypeVar, ViewTypeEnum.fromValue(view.viewType), ViewConstructorVars.viewUtils, ViewConstructorVars.parentView, ViewConstructorVars.parentIndex, ViewConstructorVars.parentElement, @@ -464,7 +464,7 @@ function createViewClass( 'declaredViewContainer', o.importType(resolveIdentifier(Identifiers.ViewContainer)))); superConstructorArgs.push(o.variable('declaredViewContainer')); } - var viewMethods = [ + const viewMethods = [ new o.ClassMethod( 'createInternal', [new o.FnParam(rootSelectorVar.name, o.STRING_TYPE)], generateCreateMethod(view), @@ -488,9 +488,9 @@ function createViewClass( generateVisitRootNodesMethod(view), generateVisitProjectableNodesMethod(view), generateCreateEmbeddedViewsMethod(view) ].filter((method) => method.body.length > 0); - var superClass = view.genConfig.genDebugInfo ? Identifiers.DebugAppView : Identifiers.AppView; + const superClass = view.genConfig.genDebugInfo ? Identifiers.DebugAppView : Identifiers.AppView; - var viewClass = createClassStmt({ + const viewClass = createClassStmt({ name: view.className, parent: o.importExpr(resolveIdentifier(superClass), [getContextType(view)]), parentArgs: superConstructorArgs, @@ -512,8 +512,8 @@ function generateDestroyMethod(view: CompileView): o.Statement[] { } function generateCreateMethod(view: CompileView): o.Statement[] { - var parentRenderNodeExpr: o.Expression = o.NULL_EXPR; - var parentRenderNodeStmts: any[] = []; + let parentRenderNodeExpr: o.Expression = o.NULL_EXPR; + let parentRenderNodeStmts: any[] = []; if (view.viewType === ViewType.COMPONENT) { parentRenderNodeExpr = ViewProperties.renderer.callMethod('createViewRoot', [o.THIS_EXPR.prop('parentElement')]); @@ -522,7 +522,7 @@ function generateCreateMethod(view: CompileView): o.Statement[] { .toDeclStmt( o.importType(view.genConfig.renderTypes.renderNode), [o.StmtModifier.Final])]; } - var resultExpr: o.Expression; + let resultExpr: o.Expression; if (view.viewType === ViewType.HOST) { const hostEl = view.nodes[0]; resultExpr = @@ -532,7 +532,7 @@ function generateCreateMethod(view: CompileView): o.Statement[] { } else { resultExpr = o.NULL_EXPR; } - let allNodesExpr: o.Expression = + const allNodesExpr: o.Expression = ViewProperties.renderer.cast(o.DYNAMIC_TYPE) .prop('directRenderer') .conditional(o.NULL_EXPR, o.literalArr(view.nodes.map(node => node.renderNode))); @@ -552,7 +552,7 @@ function generateCreateMethod(view: CompileView): o.Statement[] { } function generateDetectChangesMethod(view: CompileView): o.Statement[] { - var stmts: any[] = []; + const stmts: any[] = []; if (view.animationBindingsMethod.isEmpty() && view.detectChangesInInputsMethod.isEmpty() && view.updateContentQueriesMethod.isEmpty() && view.afterContentLifecycleCallbacksMethod.isEmpty() && @@ -568,7 +568,7 @@ function generateDetectChangesMethod(view: CompileView): o.Statement[] { viewContainer.callMethod('detectChangesInNestedViews', [DetectChangesVars.throwOnChange]) .toStmt()); }); - var afterContentStmts = view.updateContentQueriesMethod.finish().concat( + const afterContentStmts = view.updateContentQueriesMethod.finish().concat( view.afterContentLifecycleCallbacksMethod.finish()); if (afterContentStmts.length > 0) { stmts.push(new o.IfStmt(o.not(DetectChangesVars.throwOnChange), afterContentStmts)); @@ -577,14 +577,14 @@ function generateDetectChangesMethod(view: CompileView): o.Statement[] { view.viewChildren.forEach((viewChild) => { stmts.push(viewChild.callMethod('detectChanges', [DetectChangesVars.throwOnChange]).toStmt()); }); - var afterViewStmts = + const afterViewStmts = view.updateViewQueriesMethod.finish().concat(view.afterViewLifecycleCallbacksMethod.finish()); if (afterViewStmts.length > 0) { stmts.push(new o.IfStmt(o.not(DetectChangesVars.throwOnChange), afterViewStmts)); } - var varStmts: any[] = []; - var readVars = o.findReadVarNames(stmts); + const varStmts: any[] = []; + const readVars = o.findReadVarNames(stmts); if (readVars.has(DetectChangesVars.changed.name)) { varStmts.push(DetectChangesVars.changed.set(o.literal(true)).toDeclStmt(o.BOOL_TYPE)); } @@ -613,7 +613,7 @@ function getContextType(view: CompileView): o.Type { } function getChangeDetectionMode(view: CompileView): ChangeDetectorStatus { - var mode: ChangeDetectorStatus; + let mode: ChangeDetectorStatus; if (view.viewType === ViewType.COMPONENT) { mode = isDefaultChangeDetectionStrategy(view.component.changeDetection) ? ChangeDetectorStatus.CheckAlways : diff --git a/modules/@angular/compiler/test/animation/animation_compiler_spec.ts b/modules/@angular/compiler/test/animation/animation_compiler_spec.ts index 4172d9917e..484a64d5f6 100644 --- a/modules/@angular/compiler/test/animation/animation_compiler_spec.ts +++ b/modules/@angular/compiler/test/animation/animation_compiler_spec.ts @@ -16,8 +16,8 @@ import {ElementSchemaRegistry} from '../../src/schema/element_schema_registry'; export function main() { describe('RuntimeAnimationCompiler', () => { - var resolver: CompileMetadataResolver; - var parser: AnimationParser; + let resolver: CompileMetadataResolver; + let parser: AnimationParser; beforeEach(inject( [CompileMetadataResolver, ElementSchemaRegistry], (res: CompileMetadataResolver, schema: ElementSchemaRegistry) => { @@ -27,19 +27,19 @@ export function main() { const compiler = new AnimationCompiler(); - var compileAnimations = + const compileAnimations = (component: CompileDirectiveMetadata): AnimationEntryCompileResult[] => { const parsedAnimations = parser.parseComponent(component); return compiler.compile(component.type.name, parsedAnimations); }; - var compileTriggers = (input: any[]) => { - var entries: CompileAnimationEntryMetadata[] = input.map(entry => { - var animationTriggerData = trigger(entry[0], entry[1]); + const compileTriggers = (input: any[]) => { + const entries: CompileAnimationEntryMetadata[] = input.map(entry => { + const animationTriggerData = trigger(entry[0], entry[1]); return resolver.getAnimationEntryMetadata(animationTriggerData); }); - var component = CompileDirectiveMetadata.create({ + const component = CompileDirectiveMetadata.create({ type: new CompileTypeMetadata({name: 'myCmp'}), template: new CompileTemplateMetadata({animations: entries}) }); @@ -47,18 +47,18 @@ export function main() { return compileAnimations(component); }; - var compileSequence = (seq: AnimationMetadata) => { + const compileSequence = (seq: AnimationMetadata) => { return compileTriggers([['myAnimation', [transition('state1 => state2', seq)]]]); }; it('should throw an exception containing all the inner animation parser errors', () => { - var animation = sequence([ + const animation = sequence([ style({'color': 'red'}), animate(1000, style({'font-size': '100px'})), style({'color': 'blue'}), animate(1000, style(':missing_state')), style({'color': 'gold'}), animate(1000, style('broken_state')) ]); - var capturedErrorMessage: string; + let capturedErrorMessage: string; try { compileSequence(animation); } catch (e) { diff --git a/modules/@angular/compiler/test/animation/animation_parser_spec.ts b/modules/@angular/compiler/test/animation/animation_parser_spec.ts index 9042c5ea88..df02546cec 100644 --- a/modules/@angular/compiler/test/animation/animation_parser_spec.ts +++ b/modules/@angular/compiler/test/animation/animation_parser_spec.ts @@ -18,20 +18,20 @@ import {FILL_STYLE_FLAG, flattenStyles} from '../private_import_core'; export function main() { describe('parseAnimationEntry', () => { - var combineStyles = (styles: AnimationStylesAst): {[key: string]: string | number} => { - var flatStyles: {[key: string]: string | number} = {}; + const combineStyles = (styles: AnimationStylesAst): {[key: string]: string | number} => { + const flatStyles: {[key: string]: string | number} = {}; styles.styles.forEach( entry => Object.keys(entry).forEach(prop => { flatStyles[prop] = entry[prop]; })); return flatStyles; }; - var collectKeyframeStyles = + const collectKeyframeStyles = (keyframe: AnimationKeyframeAst): {[key: string]: string | number} => combineStyles(keyframe.styles); - var collectStepStyles = (step: AnimationStepAst): {[key: string]: string | number}[] => { - var keyframes = step.keyframes; - var styles: {[key: string]: string | number}[] = []; + const collectStepStyles = (step: AnimationStepAst): {[key: string]: string | number}[] => { + const keyframes = step.keyframes; + const styles: {[key: string]: string | number}[] = []; if (step.startingStyles.styles.length > 0) { styles.push(combineStyles(step.startingStyles)); } @@ -39,8 +39,8 @@ export function main() { return styles; }; - var resolver: CompileMetadataResolver; - var schema: ElementSchemaRegistry; + let resolver: CompileMetadataResolver; + let schema: ElementSchemaRegistry; beforeEach(inject( [CompileMetadataResolver, ElementSchemaRegistry], (res: CompileMetadataResolver, sch: ElementSchemaRegistry) => { @@ -48,30 +48,30 @@ export function main() { schema = sch; })); - var parseAnimation = (data: AnimationMetadata[]) => { + const parseAnimation = (data: AnimationMetadata[]) => { const entry = trigger('myAnimation', [transition('state1 => state2', sequence(data))]); const compiledAnimationEntry = resolver.getAnimationEntryMetadata(entry); const parser = new AnimationParser(schema); return parser.parseEntry(compiledAnimationEntry); }; - var getAnimationAstFromEntryAst = + const getAnimationAstFromEntryAst = (ast: AnimationEntryAst) => { return ast.stateTransitions[0].animation; }; - var parseAnimationAst = (data: AnimationMetadata[]) => + const parseAnimationAst = (data: AnimationMetadata[]) => getAnimationAstFromEntryAst(parseAnimation(data).ast); - var parseAnimationAndGetErrors = (data: AnimationMetadata[]) => parseAnimation(data).errors; + const parseAnimationAndGetErrors = (data: AnimationMetadata[]) => parseAnimation(data).errors; it('should merge repeated style steps into a single style ast step entry', () => { - var ast = parseAnimationAst([ + const ast = parseAnimationAst([ style({'color': 'black'}), style({'background': 'red'}), style({'opacity': '0'}), animate(1000, style({'color': 'white', 'background': 'black', 'opacity': '1'})) ]); expect(ast.steps.length).toEqual(1); - var step = ast.steps[0]; + const step = ast.steps[0]; expect(step.startingStyles.styles[0]) .toEqual({'color': 'black', 'background': 'red', 'opacity': '0'}); @@ -83,22 +83,22 @@ export function main() { }); it('should animate only the styles requested within an animation step', () => { - var ast = parseAnimationAst([ + const ast = parseAnimationAst([ style({'color': 'black', 'background': 'blue'}), animate(1000, style({'background': 'orange'})) ]); expect(ast.steps.length).toEqual(1); - var animateStep = ast.steps[0]; - var fromKeyframe = animateStep.keyframes[0].styles.styles[0]; - var toKeyframe = animateStep.keyframes[1].styles.styles[0]; + const animateStep = ast.steps[0]; + const fromKeyframe = animateStep.keyframes[0].styles.styles[0]; + const toKeyframe = animateStep.keyframes[1].styles.styles[0]; expect(fromKeyframe).toEqual({'background': 'blue'}); expect(toKeyframe).toEqual({'background': 'orange'}); }); it('should populate the starting and duration times propertly', () => { - var ast = parseAnimationAst([ + const ast = parseAnimationAst([ style({'color': 'black', 'opacity': '1'}), animate(1000, style({'color': 'red'})), animate(4000, style({'color': 'yellow'})), @@ -110,46 +110,46 @@ export function main() { expect(ast.steps.length).toEqual(5); - var step1 = ast.steps[0]; + const step1 = ast.steps[0]; expect(step1.playTime).toEqual(1000); expect(step1.startTime).toEqual(0); - var step2 = ast.steps[1]; + const step2 = ast.steps[1]; expect(step2.playTime).toEqual(4000); expect(step2.startTime).toEqual(1000); - var seq = ast.steps[2]; + const seq = ast.steps[2]; expect(seq.playTime).toEqual(2000); expect(seq.startTime).toEqual(5000); - var step4 = seq.steps[0]; + const step4 = seq.steps[0]; expect(step4.playTime).toEqual(1000); expect(step4.startTime).toEqual(5000); - var step5 = seq.steps[1]; + const step5 = seq.steps[1]; expect(step5.playTime).toEqual(1000); expect(step5.startTime).toEqual(6000); - var grp = ast.steps[3]; + const grp = ast.steps[3]; expect(grp.playTime).toEqual(1000); expect(grp.startTime).toEqual(7000); - var step6 = grp.steps[0]; + const step6 = grp.steps[0]; expect(step6.playTime).toEqual(500); expect(step6.startTime).toEqual(7000); - var step7 = grp.steps[1]; + const step7 = grp.steps[1]; expect(step7.playTime).toEqual(1000); expect(step7.startTime).toEqual(7000); - var step8 = ast.steps[4]; + const step8 = ast.steps[4]; expect(step8.playTime).toEqual(300); expect(step8.startTime).toEqual(8000); }); it('should apply the correct animate() styles when parallel animations are active and use the same properties', () => { - var details = parseAnimation([ + const details = parseAnimation([ style({'opacity': '0', 'color': 'red'}), group([ sequence([ animate(2000, style({'color': 'black'})), @@ -162,47 +162,47 @@ export function main() { ]) ]); - var errors = details.errors; + const errors = details.errors; expect(errors.length).toEqual(0); - var ast = getAnimationAstFromEntryAst(details.ast); - var g1 = ast.steps[1]; + const ast = getAnimationAstFromEntryAst(details.ast); + const g1 = ast.steps[1]; - var sq1 = g1.steps[0]; - var sq2 = g1.steps[1]; + const sq1 = g1.steps[0]; + const sq2 = g1.steps[1]; - var sq1a1 = sq1.steps[0]; + const sq1a1 = sq1.steps[0]; expect(collectStepStyles(sq1a1)).toEqual([{'color': 'red'}, {'color': 'black'}]); - var sq1a2 = sq1.steps[1]; + const sq1a2 = sq1.steps[1]; expect(collectStepStyles(sq1a2)).toEqual([{'opacity': '0.8'}, {'opacity': '0.5'}]); - var sq2a1 = sq2.steps[0]; + const sq2a1 = sq2.steps[0]; expect(collectStepStyles(sq2a1)).toEqual([{'opacity': '0'}, {'opacity': '0.8'}]); - var sq2a2 = sq2.steps[1]; + const sq2a2 = sq2.steps[1]; expect(collectStepStyles(sq2a2)).toEqual([{'color': 'black'}, {'color': 'blue'}]); }); it('should throw errors when animations animate a CSS property at the same time', () => { - var animation1 = parseAnimation([ + const animation1 = parseAnimation([ style({'opacity': '0'}), group([animate(1000, style({'opacity': '1'})), animate(2000, style({'opacity': '0.5'}))]) ]); - var errors1 = animation1.errors; + const errors1 = animation1.errors; expect(errors1.length).toEqual(1); expect(errors1[0].msg) .toContainError( 'The animated CSS property "opacity" unexpectedly changes between steps "0ms" and "2000ms" at "1000ms"'); - var animation2 = parseAnimation([ + const animation2 = parseAnimation([ style({'color': 'red'}), group( [animate(5000, style({'color': 'blue'})), animate(2500, style({'color': 'black'}))]) ]); - var errors2 = animation2.errors; + const errors2 = animation2.errors; expect(errors2.length).toEqual(1); expect(errors2[0].msg) .toContainError( @@ -210,13 +210,13 @@ export function main() { }); it('should return an error when an animation style contains an invalid timing value', () => { - var errors = parseAnimationAndGetErrors( + const errors = parseAnimationAndGetErrors( [style({'opacity': '0'}), animate('one second', style({'opacity': '1'}))]); expect(errors[0].msg).toContainError(`The provided timing value "one second" is invalid.`); }); it('should collect and return any errors collected when parsing the metadata', () => { - var errors = parseAnimationAndGetErrors([ + const errors = parseAnimationAndGetErrors([ style({'opacity': '0'}), animate('one second', style({'opacity': '1'})), style({'opacity': '0'}), animate('one second', null), style({'background': 'red'}) ]); @@ -224,13 +224,13 @@ export function main() { }); it('should normalize a series of keyframe styles into a list of offset steps', () => { - var ast = + const ast = parseAnimationAst([animate(1000, keyframes([ style({'width': '0'}), style({'width': '25px'}), style({'width': '50px'}), style({'width': '75px'}) ]))]); - var step = ast.steps[0]; + const step = ast.steps[0]; expect(step.keyframes.length).toEqual(4); expect(step.keyframes[0].offset).toEqual(0); @@ -240,13 +240,13 @@ export function main() { }); it('should use an existing collection of offset steps if provided', () => { - var ast = parseAnimationAst([animate( + const ast = parseAnimationAst([animate( 1000, keyframes([ style({'height': '0', 'offset': 0}), style({'height': '25px', 'offset': 0.6}), style({'height': '50px', 'offset': 0.7}), style({'height': '75px', 'offset': 1}) ]))]); - var step = ast.steps[0]; + const step = ast.steps[0]; expect(step.keyframes.length).toEqual(4); expect(step.keyframes[0].offset).toEqual(0); @@ -256,14 +256,14 @@ export function main() { }); it('should sort the provided collection of steps that contain offsets', () => { - var ast = parseAnimationAst([animate( + const ast = parseAnimationAst([animate( 1000, keyframes([ style({'opacity': '0', 'offset': 0.9}), style({'opacity': '0.25', 'offset': 0}), style({'opacity': '0.50', 'offset': 1}), style({'opacity': '0.75', 'offset': 0.91}) ]))]); - var step = ast.steps[0]; + const step = ast.steps[0]; expect(step.keyframes.length).toEqual(4); expect(step.keyframes[0].offset).toEqual(0); @@ -280,44 +280,44 @@ export function main() { }); it('should throw an error if a partial amount of keyframes contain an offset', () => { - var errors = parseAnimationAndGetErrors( + const errors = parseAnimationAndGetErrors( [animate(1000, keyframes([ style({'z-index': 0, 'offset': 0}), style({'z-index': 1}), style({'z-index': 2, 'offset': 1}) ]))]); expect(errors.length).toEqual(1); - var error = errors[0]; + const error = errors[0]; expect(error.msg).toMatch(/Not all style\(\) entries contain an offset/); }); it('should use an existing style used earlier in the animation sequence if not defined in the first keyframe', () => { - var ast = parseAnimationAst([animate( + const ast = parseAnimationAst([animate( 1000, keyframes( [style({'color': 'red'}), style({'background': 'blue', 'color': 'white'})]))]); - var keyframesStep = ast.steps[0]; - var kf1 = keyframesStep.keyframes[0]; - var kf2 = keyframesStep.keyframes[1]; + const keyframesStep = ast.steps[0]; + const kf1 = keyframesStep.keyframes[0]; + const kf2 = keyframesStep.keyframes[1]; expect(flattenStyles(kf1.styles.styles)) .toEqual({'color': 'red', 'background': FILL_STYLE_FLAG}); }); it('should copy over any missing styles to the final keyframe if not already defined', () => { - var ast = parseAnimationAst([animate( + const ast = parseAnimationAst([animate( 1000, keyframes([ style({'color': 'white', 'borderColor': 'white'}), style({'color': 'red', 'background': 'blue'}), style({'background': 'blue'}) ]))]); - var keyframesStep = ast.steps[0]; - var kf1 = keyframesStep.keyframes[0]; - var kf2 = keyframesStep.keyframes[1]; - var kf3 = keyframesStep.keyframes[2]; + const keyframesStep = ast.steps[0]; + const kf1 = keyframesStep.keyframes[0]; + const kf2 = keyframesStep.keyframes[1]; + const kf3 = keyframesStep.keyframes[2]; expect(flattenStyles(kf3.styles.styles)) .toEqual({'background': 'blue', 'color': 'red', 'borderColor': 'white'}); @@ -325,18 +325,18 @@ export function main() { it('should create an initial keyframe if not detected and place all keyframes styles there', () => { - var ast = parseAnimationAst([animate( + const ast = parseAnimationAst([animate( 1000, keyframes([ style({'color': 'white', 'background': 'black', 'offset': 0.5}), style( {'color': 'orange', 'background': 'red', 'fontSize': '100px', 'offset': 1}) ]))]); - var keyframesStep = ast.steps[0]; + const keyframesStep = ast.steps[0]; expect(keyframesStep.keyframes.length).toEqual(3); - var kf1 = keyframesStep.keyframes[0]; - var kf2 = keyframesStep.keyframes[1]; - var kf3 = keyframesStep.keyframes[2]; + const kf1 = keyframesStep.keyframes[0]; + const kf2 = keyframesStep.keyframes[1]; + const kf3 = keyframesStep.keyframes[2]; expect(kf1.offset).toEqual(0); expect(flattenStyles(kf1.styles.styles)).toEqual({ @@ -348,26 +348,26 @@ export function main() { it('should create an destination keyframe if not detected and place all keyframes styles there', () => { - var ast = parseAnimationAst([animate(1000, keyframes([ - style({ - 'color': 'white', - 'background': 'black', - 'transform': 'rotate(360deg)', - 'offset': 0 - }), - style({ - 'color': 'orange', - 'background': 'red', - 'fontSize': '100px', - 'offset': 0.5 - }) - ]))]); + const ast = parseAnimationAst([animate(1000, keyframes([ + style({ + 'color': 'white', + 'background': 'black', + 'transform': 'rotate(360deg)', + 'offset': 0 + }), + style({ + 'color': 'orange', + 'background': 'red', + 'fontSize': '100px', + 'offset': 0.5 + }) + ]))]); - var keyframesStep = ast.steps[0]; + const keyframesStep = ast.steps[0]; expect(keyframesStep.keyframes.length).toEqual(3); - var kf1 = keyframesStep.keyframes[0]; - var kf2 = keyframesStep.keyframes[1]; - var kf3 = keyframesStep.keyframes[2]; + const kf1 = keyframesStep.keyframes[0]; + const kf2 = keyframesStep.keyframes[1]; + const kf3 = keyframesStep.keyframes[2]; expect(kf3.offset).toEqual(1); expect(flattenStyles(kf3.styles.styles)).toEqual({ @@ -380,37 +380,37 @@ export function main() { describe('easing / duration / delay', () => { it('should parse simple string-based values', () => { - var ast = parseAnimationAst([animate('1s .5s ease-out', style({'opacity': '1'}))]); + const ast = parseAnimationAst([animate('1s .5s ease-out', style({'opacity': '1'}))]); - var step = ast.steps[0]; + const step = ast.steps[0]; expect(step.duration).toEqual(1000); expect(step.delay).toEqual(500); expect(step.easing).toEqual('ease-out'); }); it('should parse a numeric duration value', () => { - var ast = parseAnimationAst([animate(666, style({'opacity': '1'}))]); + const ast = parseAnimationAst([animate(666, style({'opacity': '1'}))]); - var step = ast.steps[0]; + const step = ast.steps[0]; expect(step.duration).toEqual(666); expect(step.delay).toEqual(0); expect(step.easing).toBeFalsy(); }); it('should parse an easing value without a delay', () => { - var ast = parseAnimationAst([animate('5s linear', style({'opacity': '1'}))]); + const ast = parseAnimationAst([animate('5s linear', style({'opacity': '1'}))]); - var step = ast.steps[0]; + const step = ast.steps[0]; expect(step.duration).toEqual(5000); expect(step.delay).toEqual(0); expect(step.easing).toEqual('linear'); }); it('should parse a complex easing value', () => { - var ast = + const ast = parseAnimationAst([animate('30ms cubic-bezier(0, 0,0, .69)', style({'opacity': '1'}))]); - var step = ast.steps[0]; + const step = ast.steps[0]; expect(step.duration).toEqual(30); expect(step.delay).toEqual(0); expect(step.easing).toEqual('cubic-bezier(0, 0,0, .69)'); diff --git a/modules/@angular/compiler/test/compiler_util/identifier_util_spec.ts b/modules/@angular/compiler/test/compiler_util/identifier_util_spec.ts index 381337aaae..e6390936b7 100644 --- a/modules/@angular/compiler/test/compiler_util/identifier_util_spec.ts +++ b/modules/@angular/compiler/test/compiler_util/identifier_util_spec.ts @@ -23,7 +23,7 @@ export function main() { function createArgs(count: number): o.Expression[] { const result: o.Expression[] = []; - for (var i = 0; i < count; i++) { + for (let i = 0; i < count; i++) { result.push(o.NULL_EXPR); } return result; @@ -40,19 +40,19 @@ export function main() { }); it('should work for arrays of length 3 - 4', () => { - for (var i = 3; i <= 4; i++) { + for (let i = 3; i <= 4; i++) { check(i, Identifiers.inlineArrays[2]); } }); it('should work for arrays of length 5 - 8', () => { - for (var i = 5; i <= 8; i++) { + for (let i = 5; i <= 8; i++) { check(i, Identifiers.inlineArrays[3]); } }); it('should work for arrays of length 9 - 16', () => { - for (var i = 9; i <= 16; i++) { + for (let i = 9; i <= 16; i++) { check(i, Identifiers.inlineArrays[4]); } }); diff --git a/modules/@angular/compiler/test/css_parser/css_lexer_spec.ts b/modules/@angular/compiler/test/css_parser/css_lexer_spec.ts index 2c4d656113..7c9e1afc23 100644 --- a/modules/@angular/compiler/test/css_parser/css_lexer_spec.ts +++ b/modules/@angular/compiler/test/css_parser/css_lexer_spec.ts @@ -17,10 +17,10 @@ export function main() { const scanner = new CssLexer().scan(code, trackComments); scanner.setMode(mode); - var tokens: CssToken[] = []; - var output = scanner.scan(); + const tokens: CssToken[] = []; + let output = scanner.scan(); while (output != null) { - var error = output.error; + const error = output.error; if (isPresent(error)) { throw new CssScannerError(error.token, error.rawMessage); } @@ -33,31 +33,31 @@ export function main() { describe('CssLexer', () => { it('should lex newline characters as whitespace when whitespace mode is on', () => { - var newlines = ['\n', '\r\n', '\r', '\f']; + const newlines = ['\n', '\r\n', '\r', '\f']; newlines.forEach((line) => { - var token = tokenize(line, false, CssLexerMode.ALL_TRACK_WS)[0]; + const token = tokenize(line, false, CssLexerMode.ALL_TRACK_WS)[0]; expect(token.type).toEqual(CssTokenType.Whitespace); }); }); it('should combined newline characters as one newline token when whitespace mode is on', () => { - var newlines = ['\n', '\r\n', '\r', '\f'].join(''); - var tokens = tokenize(newlines, false, CssLexerMode.ALL_TRACK_WS); + const newlines = ['\n', '\r\n', '\r', '\f'].join(''); + const tokens = tokenize(newlines, false, CssLexerMode.ALL_TRACK_WS); expect(tokens.length).toEqual(1); expect(tokens[0].type).toEqual(CssTokenType.Whitespace); }); it('should not consider whitespace or newline values at all when whitespace mode is off', () => { - var newlines = ['\n', '\r\n', '\r', '\f'].join(''); - var tokens = tokenize(newlines); + const newlines = ['\n', '\r\n', '\r', '\f'].join(''); + const tokens = tokenize(newlines); expect(tokens.length).toEqual(0); }); it('should lex simple selectors and their inner properties', () => { - var cssCode = '\n' + + const cssCode = '\n' + ' .selector { my-prop: my-value; }\n'; - var tokens = tokenize(cssCode); + const tokens = tokenize(cssCode); expect(tokens[0].type).toEqual(CssTokenType.Character); expect(tokens[0].strValue).toEqual('.'); @@ -85,11 +85,11 @@ export function main() { }); it('should capture the column and line values for each token', () => { - var cssCode = '#id {\n' + + const cssCode = '#id {\n' + ' prop:value;\n' + '}'; - var tokens = tokenize(cssCode); + const tokens = tokenize(cssCode); // # expect(tokens[0].type).toEqual(CssTokenType.Character); @@ -133,8 +133,8 @@ export function main() { }); it('should lex quoted strings and escape accordingly', () => { - var cssCode = 'prop: \'some { value } \\\' that is quoted\''; - var tokens = tokenize(cssCode); + const cssCode = 'prop: \'some { value } \\\' that is quoted\''; + const tokens = tokenize(cssCode); expect(tokens[0].type).toEqual(CssTokenType.Identifier); expect(tokens[1].type).toEqual(CssTokenType.Character); @@ -147,8 +147,8 @@ export function main() { }); it('should lex numbers properly and set them as numbers', () => { - var cssCode = '0 1 -2 3.0 -4.001'; - var tokens = tokenize(cssCode); + const cssCode = '0 1 -2 3.0 -4.001'; + const tokens = tokenize(cssCode); expect(tokens[0].type).toEqual(CssTokenType.Number); expect(tokens[0].strValue).toEqual('0'); @@ -167,8 +167,8 @@ export function main() { }); it('should lex @keywords', () => { - var cssCode = '@import()@something'; - var tokens = tokenize(cssCode); + const cssCode = '@import()@something'; + const tokens = tokenize(cssCode); expect(tokens[0].type).toEqual(CssTokenType.AtKeyword); expect(tokens[0].strValue).toEqual('@import'); @@ -184,8 +184,8 @@ export function main() { }); it('should still lex a number even if it has a dimension suffix', () => { - var cssCode = '40% is 40 percent'; - var tokens = tokenize(cssCode); + const cssCode = '40% is 40 percent'; + const tokens = tokenize(cssCode); expect(tokens[0].type).toEqual(CssTokenType.Number); expect(tokens[0].strValue).toEqual('40'); @@ -201,8 +201,8 @@ export function main() { }); it('should allow escaped character and unicode character-strings in CSS selectors', () => { - var cssCode = '\\123456 .some\\thing \{\}'; - var tokens = tokenize(cssCode); + const cssCode = '\\123456 .some\\thing \{\}'; + const tokens = tokenize(cssCode); expect(tokens[0].type).toEqual(CssTokenType.Identifier); expect(tokens[0].strValue).toEqual('\\123456'); @@ -213,8 +213,8 @@ export function main() { }); it('should distinguish identifiers and numbers from special characters', () => { - var cssCode = 'one*two=-4+three-4-equals_value$'; - var tokens = tokenize(cssCode); + const cssCode = 'one*two=-4+three-4-equals_value$'; + const tokens = tokenize(cssCode); expect(tokens[0].type).toEqual(CssTokenType.Identifier); expect(tokens[0].strValue).toEqual('one'); @@ -242,8 +242,8 @@ export function main() { }); it('should filter out comments and whitespace by default', () => { - var cssCode = '.selector /* comment */ { /* value */ }'; - var tokens = tokenize(cssCode); + const cssCode = '.selector /* comment */ { /* value */ }'; + const tokens = tokenize(cssCode); expect(tokens[0].strValue).toEqual('.'); expect(tokens[1].strValue).toEqual('selector'); @@ -252,9 +252,9 @@ export function main() { }); it('should track comments when the flag is set to true', () => { - var cssCode = '.selector /* comment */ { /* value */ }'; - var trackComments = true; - var tokens = tokenize(cssCode, trackComments, CssLexerMode.ALL_TRACK_WS); + const cssCode = '.selector /* comment */ { /* value */ }'; + const trackComments = true; + const tokens = tokenize(cssCode, trackComments, CssLexerMode.ALL_TRACK_WS); expect(tokens[0].strValue).toEqual('.'); expect(tokens[1].strValue).toEqual('selector'); @@ -273,9 +273,9 @@ export function main() { describe('Selector Mode', () => { it('should throw an error if a selector is being parsed while in the wrong mode', () => { - var cssCode = '.class > tag'; + const cssCode = '.class > tag'; - var capturedMessage: string; + let capturedMessage: string; try { tokenize(cssCode, false, CssLexerMode.STYLE_BLOCK); } catch (e) { @@ -299,7 +299,7 @@ export function main() { it('should consider attribute selectors as valid input and throw when an invalid modifier is used', () => { function tokenizeAttr(modifier: string) { - var cssCode = 'value' + modifier + '=\'something\''; + const cssCode = 'value' + modifier + '=\'something\''; return tokenize(cssCode, false, CssLexerMode.ATTRIBUTE_SELECTOR); } @@ -338,8 +338,8 @@ export function main() { it('should validate pseudo selector identifiers with a reduced subset of valid characters', () => { function tokenizePseudo(code: string, withArgs = false): CssToken[] { - var mode = withArgs ? CssLexerMode.PSEUDO_SELECTOR_WITH_ARGUMENTS : - CssLexerMode.PSEUDO_SELECTOR; + const mode = withArgs ? CssLexerMode.PSEUDO_SELECTOR_WITH_ARGUMENTS : + CssLexerMode.PSEUDO_SELECTOR; return tokenize(code, false, mode); } diff --git a/modules/@angular/compiler/test/css_parser/css_parser_spec.ts b/modules/@angular/compiler/test/css_parser/css_parser_spec.ts index 024f59f03a..d2f7149e00 100644 --- a/modules/@angular/compiler/test/css_parser/css_parser_spec.ts +++ b/modules/@angular/compiler/test/css_parser/css_parser_spec.ts @@ -13,7 +13,7 @@ import {BlockType, CssParseError, CssParser, CssToken, ParsedCssResult} from '.. import {ParseLocation} from '../../src/parse_util'; export function assertTokens(tokens: CssToken[], valuesArr: string[]) { - for (var i = 0; i < tokens.length; i++) { + for (let i = 0; i < tokens.length; i++) { expect(tokens[i].strValue == valuesArr[i]); } } @@ -25,8 +25,8 @@ export function main() { } function makeAst(css: string): CssStyleSheetAst { - var output = parse(css); - var errors = output.errors; + const output = parse(css); + const errors = output.errors; if (errors.length > 0) { throw new Error(errors.map((error: CssParseError) => error.msg).join(', ')); } @@ -34,45 +34,45 @@ export function main() { } it('should parse CSS into a stylesheet Ast', () => { - var styles = '.selector { prop: value123; }'; + const styles = '.selector { prop: value123; }'; - var ast = makeAst(styles); + const ast = makeAst(styles); expect(ast.rules.length).toEqual(1); - var rule = ast.rules[0]; - var selector = rule.selectors[0]; + const rule = ast.rules[0]; + const selector = rule.selectors[0]; expect(selector.strValue).toEqual('.selector'); - var block: CssBlockAst = rule.block; + const block: CssBlockAst = rule.block; expect(block.entries.length).toEqual(1); - var definition = block.entries[0]; + const definition = block.entries[0]; expect(definition.property.strValue).toEqual('prop'); - var value = definition.value; + const value = definition.value; expect(value.tokens[0].strValue).toEqual('value123'); }); it('should parse multiple CSS selectors sharing the same set of styles', () => { - var styles = ` + const styles = ` .class, #id, tag, [attr], key + value, * value, :-moz-any-link { prop: value123; } `; - var ast = makeAst(styles); + const ast = makeAst(styles); expect(ast.rules.length).toEqual(1); - var rule = ast.rules[0]; + const rule = ast.rules[0]; expect(rule.selectors.length).toBe(7); - var classRule = rule.selectors[0]; - var idRule = rule.selectors[1]; - var tagRule = rule.selectors[2]; - var attrRule = rule.selectors[3]; - var plusOpRule = rule.selectors[4]; - var starOpRule = rule.selectors[5]; - var mozRule = rule.selectors[6]; + const classRule = rule.selectors[0]; + const idRule = rule.selectors[1]; + const tagRule = rule.selectors[2]; + const attrRule = rule.selectors[3]; + const plusOpRule = rule.selectors[4]; + const starOpRule = rule.selectors[5]; + const mozRule = rule.selectors[6]; assertTokens(classRule.selectorParts[0].tokens, ['.', 'class']); assertTokens(idRule.selectorParts[0].tokens, ['.', 'class']); @@ -87,13 +87,13 @@ export function main() { assertTokens(mozRule.selectorParts[0].pseudoSelectors[0].tokens, [':', '-moz-any-link']); - var style1 = rule.block.entries[0]; + const style1 = rule.block.entries[0]; expect(style1.property.strValue).toEqual('prop'); assertTokens(style1.value.tokens, ['value123']); }); it('should parse keyframe rules', () => { - var styles = ` + const styles = ` @keyframes rotateMe { from { transform: rotate(-360deg); @@ -107,37 +107,37 @@ export function main() { } `; - var ast = makeAst(styles); + const ast = makeAst(styles); expect(ast.rules.length).toEqual(1); - var rule = ast.rules[0]; + const rule = ast.rules[0]; expect(rule.name.strValue).toEqual('rotateMe'); - var block = rule.block; - var fromRule = block.entries[0]; + const block = rule.block; + const fromRule = block.entries[0]; expect(fromRule.name.strValue).toEqual('from'); - var fromStyle = (fromRule.block).entries[0]; + const fromStyle = (fromRule.block).entries[0]; expect(fromStyle.property.strValue).toEqual('transform'); assertTokens(fromStyle.value.tokens, ['rotate', '(', '-360', 'deg', ')']); - var midRule = block.entries[1]; + const midRule = block.entries[1]; expect(midRule.name.strValue).toEqual('50%'); - var midStyle = (midRule.block).entries[0]; + const midStyle = (midRule.block).entries[0]; expect(midStyle.property.strValue).toEqual('transform'); assertTokens(midStyle.value.tokens, ['rotate', '(', '0', 'deg', ')']); - var toRule = block.entries[2]; + const toRule = block.entries[2]; expect(toRule.name.strValue).toEqual('to'); - var toStyle = (toRule.block).entries[0]; + const toStyle = (toRule.block).entries[0]; expect(toStyle.property.strValue).toEqual('transform'); assertTokens(toStyle.value.tokens, ['rotate', '(', '360', 'deg', ')']); }); it('should parse media queries into a stylesheet Ast', () => { - var styles = ` + const styles = ` @media all and (max-width:100px) { .selector { prop: value123; @@ -145,40 +145,40 @@ export function main() { } `; - var ast = makeAst(styles); + const ast = makeAst(styles); expect(ast.rules.length).toEqual(1); - var rule = ast.rules[0]; + const rule = ast.rules[0]; assertTokens(rule.query.tokens, ['all', 'and', '(', 'max-width', ':', '100', 'px', ')']); - var block = rule.block; + const block = rule.block; expect(block.entries.length).toEqual(1); - var rule2 = block.entries[0]; + const rule2 = block.entries[0]; expect(rule2.selectors[0].strValue).toEqual('.selector'); - var block2 = rule2.block; + const block2 = rule2.block; expect(block2.entries.length).toEqual(1); }); it('should parse inline CSS values', () => { - var styles = ` + const styles = ` @import url('remote.css'); @charset "UTF-8"; @namespace ng url(http://angular.io/namespace/ng); `; - var ast = makeAst(styles); + const ast = makeAst(styles); - var importRule = ast.rules[0]; + const importRule = ast.rules[0]; expect(importRule.type).toEqual(BlockType.Import); assertTokens(importRule.value.tokens, ['url', '(', 'remote', '.', 'css', ')']); - var charsetRule = ast.rules[1]; + const charsetRule = ast.rules[1]; expect(charsetRule.type).toEqual(BlockType.Charset); assertTokens(charsetRule.value.tokens, ['UTF-8']); - var namespaceRule = ast.rules[2]; + const namespaceRule = ast.rules[2]; expect(namespaceRule.type).toEqual(BlockType.Namespace); assertTokens( namespaceRule.value.tokens, ['ng', 'url', '(', 'http://angular.io/namespace/ng', ')']); @@ -186,7 +186,7 @@ export function main() { it('should parse CSS values that contain functions and leave the inner function data untokenized', () => { - var styles = ` + const styles = ` .class { background: url(matias.css); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); @@ -195,10 +195,10 @@ export function main() { } `; - var ast = makeAst(styles); + const ast = makeAst(styles); expect(ast.rules.length).toEqual(1); - var defs = (ast.rules[0]).block.entries; + const defs = (ast.rules[0]).block.entries; expect(defs.length).toEqual(4); assertTokens((defs[0]).value.tokens, ['url', '(', 'matias.css', ')']); @@ -212,7 +212,7 @@ export function main() { }); it('should parse un-named block-level CSS values', () => { - var styles = ` + const styles = ` @font-face { font-family: "Matias"; font-weight: bold; @@ -224,19 +224,19 @@ export function main() { } `; - var ast = makeAst(styles); + const ast = makeAst(styles); - var fontFaceRule = ast.rules[0]; + const fontFaceRule = ast.rules[0]; expect(fontFaceRule.type).toEqual(BlockType.FontFace); expect(fontFaceRule.block.entries.length).toEqual(3); - var viewportRule = ast.rules[1]; + const viewportRule = ast.rules[1]; expect(viewportRule.type).toEqual(BlockType.Viewport); expect(viewportRule.block.entries.length).toEqual(2); }); it('should parse multiple levels of semicolons', () => { - var styles = ` + const styles = ` ;;; @import url('something something') ;;;;;;;; @@ -251,24 +251,24 @@ export function main() { ;.selector2{prop:1}} `; - var ast = makeAst(styles); + const ast = makeAst(styles); - var importRule = ast.rules[0]; + const importRule = ast.rules[0]; expect(importRule.type).toEqual(BlockType.Import); assertTokens(importRule.value.tokens, ['url', '(', 'something something', ')']); - var fontFaceRule = ast.rules[1]; + const fontFaceRule = ast.rules[1]; expect(fontFaceRule.type).toEqual(BlockType.FontFace); expect(fontFaceRule.block.entries.length).toEqual(2); - var mediaQueryRule = ast.rules[2]; + const mediaQueryRule = ast.rules[2]; assertTokens( mediaQueryRule.query.tokens, ['all', 'and', '(', 'max-width', ':', '100', 'px', ')']); expect(mediaQueryRule.block.entries.length).toEqual(2); }); it('should throw an error if an unknown @value block rule is parsed', () => { - var styles = ` + const styles = ` @matias { hello: there; } `; @@ -278,22 +278,22 @@ export function main() { }); it('should parse empty rules', () => { - var styles = ` + const styles = ` .empty-rule { } .somewhat-empty-rule { /* property: value; */ } .non-empty-rule { property: value; } `; - var ast = makeAst(styles); + const ast = makeAst(styles); - var rules = ast.rules; + const rules = ast.rules; expect((rules[0]).block.entries.length).toEqual(0); expect((rules[1]).block.entries.length).toEqual(0); expect((rules[2]).block.entries.length).toEqual(1); }); it('should parse the @document rule', () => { - var styles = ` + const styles = ` @document url(http://www.w3.org/), url-prefix(http://www.w3.org/Style/), domain(mozilla.org), @@ -314,18 +314,18 @@ export function main() { } `; - var ast = makeAst(styles); + const ast = makeAst(styles); - var rules = ast.rules; - var documentRule = rules[0]; + const rules = ast.rules; + const documentRule = rules[0]; expect(documentRule.type).toEqual(BlockType.Document); - var rule = documentRule.block.entries[0]; + const rule = documentRule.block.entries[0]; expect(rule.strValue).toEqual('body'); }); it('should parse the @page rule', () => { - var styles = ` + const styles = ` @page one { .selector { prop: value; } } @@ -334,89 +334,89 @@ export function main() { } `; - var ast = makeAst(styles); + const ast = makeAst(styles); - var rules = ast.rules; + const rules = ast.rules; - var pageRule1 = rules[0]; + const pageRule1 = rules[0]; expect(pageRule1.query.strValue).toEqual('@page one'); expect(pageRule1.query.tokens[0].strValue).toEqual('one'); expect(pageRule1.type).toEqual(BlockType.Page); - var pageRule2 = rules[1]; + const pageRule2 = rules[1]; expect(pageRule2.query.strValue).toEqual('@page two'); expect(pageRule2.query.tokens[0].strValue).toEqual('two'); expect(pageRule2.type).toEqual(BlockType.Page); - var selectorOne = pageRule1.block.entries[0]; + const selectorOne = pageRule1.block.entries[0]; expect(selectorOne.strValue).toEqual('.selector'); - var selectorTwo = pageRule2.block.entries[0]; + const selectorTwo = pageRule2.block.entries[0]; expect(selectorTwo.strValue).toEqual('.selector2'); }); it('should parse the @supports rule', () => { - var styles = ` + const styles = ` @supports (animation-name: "rotate") { a:hover { animation: rotate 1s; } } `; - var ast = makeAst(styles); + const ast = makeAst(styles); - var rules = ast.rules; + const rules = ast.rules; - var supportsRule = rules[0]; + const supportsRule = rules[0]; assertTokens(supportsRule.query.tokens, ['(', 'animation-name', ':', 'rotate', ')']); expect(supportsRule.type).toEqual(BlockType.Supports); - var selectorOne = supportsRule.block.entries[0]; + const selectorOne = supportsRule.block.entries[0]; expect(selectorOne.strValue).toEqual('a:hover'); }); it('should collect multiple errors during parsing', () => { - var styles = ` + const styles = ` .class$value { something: something } @custom { something: something } #id { cool^: value } `; - var output = parse(styles); + const output = parse(styles); expect(output.errors.length).toEqual(3); }); it('should recover from selector errors and continue parsing', () => { - var styles = ` + const styles = ` tag& { key: value; } .%tag { key: value; } #tag$ { key: value; } `; - var output = parse(styles); - var errors = output.errors; - var ast = output.ast; + const output = parse(styles); + const errors = output.errors; + const ast = output.ast; expect(errors.length).toEqual(3); expect(ast.rules.length).toEqual(3); - var rule1 = ast.rules[0]; + const rule1 = ast.rules[0]; expect(rule1.selectors[0].strValue).toEqual('tag&'); expect(rule1.block.entries.length).toEqual(1); - var rule2 = ast.rules[1]; + const rule2 = ast.rules[1]; expect(rule2.selectors[0].strValue).toEqual('.%tag'); expect(rule2.block.entries.length).toEqual(1); - var rule3 = ast.rules[2]; + const rule3 = ast.rules[2]; expect(rule3.selectors[0].strValue).toEqual('#tag$'); expect(rule3.block.entries.length).toEqual(1); }); it('should throw an error when parsing invalid CSS Selectors', () => { - var styles = '.class[[prop%=value}] { style: val; }'; - var output = parse(styles); - var errors = output.errors; + const styles = '.class[[prop%=value}] { style: val; }'; + const output = parse(styles); + const errors = output.errors; expect(errors.length).toEqual(3); @@ -428,17 +428,17 @@ export function main() { }); it('should throw an error if an attribute selector is not closed properly', () => { - var styles = '.class[prop=value { style: val; }'; - var output = parse(styles); - var errors = output.errors; + const styles = '.class[prop=value { style: val; }'; + const output = parse(styles); + const errors = output.errors; expect(errors[0].msg).toMatch(/Unbalanced CSS attribute selector at column 0:12/g); }); it('should throw an error if a pseudo function selector is not closed properly', () => { - var styles = 'body:lang(en { key:value; }'; - var output = parse(styles); - var errors = output.errors; + const styles = 'body:lang(en { key:value; }'; + const output = parse(styles); + const errors = output.errors; expect(errors[0].msg) .toMatch(/Character does not match expected Character value \("{" should match "\)"\)/); @@ -446,13 +446,13 @@ export function main() { it('should raise an error when a semi colon is missing from a CSS style/pair that isn\'t the last entry', () => { - var styles = `.class { + const styles = `.class { color: red background: blue }`; - var output = parse(styles); - var errors = output.errors; + const output = parse(styles); + const errors = output.errors; expect(errors.length).toEqual(1); @@ -461,62 +461,62 @@ export function main() { }); it('should parse the inner value of a :not() pseudo-selector as a CSS selector', () => { - var styles = `div:not(.ignore-this-div) { + const styles = `div:not(.ignore-this-div) { prop: value; }`; - var output = parse(styles); - var errors = output.errors; - var ast = output.ast; + const output = parse(styles); + const errors = output.errors; + const ast = output.ast; expect(errors.length).toEqual(0); - var rule1 = ast.rules[0]; + const rule1 = ast.rules[0]; expect(rule1.selectors.length).toEqual(1); - var simpleSelector = rule1.selectors[0].selectorParts[0]; + const simpleSelector = rule1.selectors[0].selectorParts[0]; assertTokens(simpleSelector.tokens, ['div']); - var pseudoSelector = simpleSelector.pseudoSelectors[0]; + const pseudoSelector = simpleSelector.pseudoSelectors[0]; expect(pseudoSelector.name).toEqual('not'); assertTokens(pseudoSelector.tokens, ['.', 'ignore-this-div']); }); it('should parse the inner selectors of a :host-context selector', () => { - var styles = `body > :host-context(.a, .b, .c:hover) { + const styles = `body > :host-context(.a, .b, .c:hover) { prop: value; }`; - var output = parse(styles); - var errors = output.errors; - var ast = output.ast; + const output = parse(styles); + const errors = output.errors; + const ast = output.ast; expect(errors.length).toEqual(0); - var rule1 = ast.rules[0]; + const rule1 = ast.rules[0]; expect(rule1.selectors.length).toEqual(1); - var simpleSelector = rule1.selectors[0].selectorParts[1]; - var innerSelectors = simpleSelector.pseudoSelectors[0].innerSelectors; + const simpleSelector = rule1.selectors[0].selectorParts[1]; + const innerSelectors = simpleSelector.pseudoSelectors[0].innerSelectors; assertTokens(innerSelectors[0].selectorParts[0].tokens, ['.', 'a']); assertTokens(innerSelectors[1].selectorParts[0].tokens, ['.', 'b']); - var finalSelector = innerSelectors[2].selectorParts[0]; + const finalSelector = innerSelectors[2].selectorParts[0]; assertTokens(finalSelector.tokens, ['.', 'c', ':', 'hover']); assertTokens(finalSelector.pseudoSelectors[0].tokens, [':', 'hover']); }); it('should raise parse errors when CSS key/value pairs are invalid', () => { - var styles = `.class { + const styles = `.class { background color: value; color: value font-size; font-weight }`; - var output = parse(styles); - var errors = output.errors; + const output = parse(styles); + const errors = output.errors; expect(errors.length).toEqual(4); @@ -535,30 +535,30 @@ export function main() { }); it('should recover from CSS key/value parse errors', () => { - var styles = ` + const styles = ` .problem-class { background color: red; color: white; } .good-boy-class { background-color: red; color: white; } `; - var output = parse(styles); - var ast = output.ast; + const output = parse(styles); + const ast = output.ast; expect(ast.rules.length).toEqual(2); - var rule1 = ast.rules[0]; + const rule1 = ast.rules[0]; expect(rule1.block.entries.length).toEqual(2); - var style1 = rule1.block.entries[0]; + const style1 = rule1.block.entries[0]; expect(style1.property.strValue).toEqual('background color'); assertTokens(style1.value.tokens, ['red']); - var style2 = rule1.block.entries[1]; + const style2 = rule1.block.entries[1]; expect(style2.property.strValue).toEqual('color'); assertTokens(style2.value.tokens, ['white']); }); describe('location offsets', () => { - var styles: string; + let styles: string; function assertMatchesOffsetAndChar( location: ParseLocation, expectedOffset: number, expectedChar: string): void { @@ -570,64 +570,64 @@ export function main() { styles = '.problem-class { border-top-right: 1px; color: white; }\n'; styles += '#good-boy-rule_ { background-color: #fe4; color: teal; }'; - var output = parse(styles); - var ast = output.ast; + const output = parse(styles); + const ast = output.ast; assertMatchesOffsetAndChar(ast.location.start, 0, '.'); assertMatchesOffsetAndChar(ast.location.end, 111, '}'); - var rule1 = ast.rules[0]; + const rule1 = ast.rules[0]; assertMatchesOffsetAndChar(rule1.location.start, 0, '.'); assertMatchesOffsetAndChar(rule1.location.end, 54, '}'); - var rule2 = ast.rules[1]; + const rule2 = ast.rules[1]; assertMatchesOffsetAndChar(rule2.location.start, 56, '#'); assertMatchesOffsetAndChar(rule2.location.end, 111, '}'); - var selector1 = rule1.selectors[0]; + const selector1 = rule1.selectors[0]; assertMatchesOffsetAndChar(selector1.location.start, 0, '.'); assertMatchesOffsetAndChar(selector1.location.end, 1, 'p'); // problem-class - var selector2 = rule2.selectors[0]; + const selector2 = rule2.selectors[0]; assertMatchesOffsetAndChar(selector2.location.start, 56, '#'); assertMatchesOffsetAndChar(selector2.location.end, 57, 'g'); // good-boy-rule_ - var block1 = rule1.block; + const block1 = rule1.block; assertMatchesOffsetAndChar(block1.location.start, 15, '{'); assertMatchesOffsetAndChar(block1.location.end, 54, '}'); - var block2 = rule2.block; + const block2 = rule2.block; assertMatchesOffsetAndChar(block2.location.start, 72, '{'); assertMatchesOffsetAndChar(block2.location.end, 111, '}'); - var block1def1 = block1.entries[0]; + const block1def1 = block1.entries[0]; assertMatchesOffsetAndChar(block1def1.location.start, 17, 'b'); // border-top-right assertMatchesOffsetAndChar(block1def1.location.end, 36, 'p'); // px - var block1def2 = block1.entries[1]; + const block1def2 = block1.entries[1]; assertMatchesOffsetAndChar(block1def2.location.start, 40, 'c'); // color assertMatchesOffsetAndChar(block1def2.location.end, 47, 'w'); // white - var block2def1 = block2.entries[0]; + const block2def1 = block2.entries[0]; assertMatchesOffsetAndChar(block2def1.location.start, 74, 'b'); // background-color assertMatchesOffsetAndChar(block2def1.location.end, 93, 'f'); // fe4 - var block2def2 = block2.entries[1]; + const block2def2 = block2.entries[1]; assertMatchesOffsetAndChar(block2def2.location.start, 98, 'c'); // color assertMatchesOffsetAndChar(block2def2.location.end, 105, 't'); // teal - var block1value1 = block1def1.value; + const block1value1 = block1def1.value; assertMatchesOffsetAndChar(block1value1.location.start, 35, '1'); assertMatchesOffsetAndChar(block1value1.location.end, 36, 'p'); - var block1value2 = block1def2.value; + const block1value2 = block1def2.value; assertMatchesOffsetAndChar(block1value2.location.start, 47, 'w'); assertMatchesOffsetAndChar(block1value2.location.end, 47, 'w'); - var block2value1 = block2def1.value; + const block2value1 = block2def1.value; assertMatchesOffsetAndChar(block2value1.location.start, 92, '#'); assertMatchesOffsetAndChar(block2value1.location.end, 93, 'f'); - var block2value2 = block2def2.value; + const block2value2 = block2def2.value; assertMatchesOffsetAndChar(block2value2.location.start, 105, 't'); assertMatchesOffsetAndChar(block2value2.location.end, 105, 't'); }); @@ -635,18 +635,18 @@ export function main() { it('should collect the source span location of each AST node with media query data', () => { styles = '@media (all and max-width: 100px) { a { display:none; } }'; - var output = parse(styles); - var ast = output.ast; + const output = parse(styles); + const ast = output.ast; - var mediaQuery = ast.rules[0]; + const mediaQuery = ast.rules[0]; assertMatchesOffsetAndChar(mediaQuery.location.start, 0, '@'); assertMatchesOffsetAndChar(mediaQuery.location.end, 56, '}'); - var predicate = mediaQuery.query; + const predicate = mediaQuery.query; assertMatchesOffsetAndChar(predicate.location.start, 0, '@'); assertMatchesOffsetAndChar(predicate.location.end, 32, ')'); - var rule = mediaQuery.block.entries[0]; + const rule = mediaQuery.block.entries[0]; assertMatchesOffsetAndChar(rule.location.start, 36, 'a'); assertMatchesOffsetAndChar(rule.location.end, 54, '}'); }); @@ -657,18 +657,18 @@ export function main() { styles += '100% { transform: rotate(360deg) scale(2); }'; styles += '}'; - var output = parse(styles); - var ast = output.ast; + const output = parse(styles); + const ast = output.ast; - var keyframes = ast.rules[0]; + const keyframes = ast.rules[0]; assertMatchesOffsetAndChar(keyframes.location.start, 0, '@'); assertMatchesOffsetAndChar(keyframes.location.end, 108, '}'); - var step1 = keyframes.block.entries[0]; + const step1 = keyframes.block.entries[0]; assertMatchesOffsetAndChar(step1.location.start, 30, 'f'); assertMatchesOffsetAndChar(step1.location.end, 62, '}'); - var step2 = keyframes.block.entries[1]; + const step2 = keyframes.block.entries[1]; assertMatchesOffsetAndChar(step2.location.start, 64, '1'); assertMatchesOffsetAndChar(step2.location.end, 107, '}'); }); @@ -676,14 +676,14 @@ export function main() { it('should collect the source span location of each AST node with an inline rule', () => { styles = '@import url(something.css)'; - var output = parse(styles); - var ast = output.ast; + const output = parse(styles); + const ast = output.ast; - var rule = ast.rules[0]; + const rule = ast.rules[0]; assertMatchesOffsetAndChar(rule.location.start, 0, '@'); assertMatchesOffsetAndChar(rule.location.end, 25, ')'); - var value = rule.value; + const value = rule.value; assertMatchesOffsetAndChar(value.location.start, 8, 'u'); assertMatchesOffsetAndChar(value.location.end, 25, ')'); }); @@ -691,8 +691,8 @@ export function main() { it('should property collect the start/end locations with an invalid stylesheet', () => { styles = '#id { something: value'; - var output = parse(styles); - var ast = output.ast; + const output = parse(styles); + const ast = output.ast; assertMatchesOffsetAndChar(ast.location.start, 0, '#'); assertMatchesOffsetAndChar(ast.location.end, 22, undefined); @@ -701,7 +701,7 @@ export function main() { it('should parse minified CSS content properly', () => { // this code was taken from the angular.io webpage's CSS code - var styles = ` + const styles = ` .is-hidden{display:none!important} .is-visible{display:block!important} .is-visually-hidden{height:1px;width:1px;overflow:hidden;opacity:0.01;position:absolute;bottom:0;right:0;z-index:1} @@ -712,17 +712,17 @@ export function main() { .grid-fluid .c1.na,.grid-fixed .c1.na,.grid-fluid .c2.na,.grid-fixed .c2.na,.grid-fluid .c3.na,.grid-fixed .c3.na,.grid-fluid .c4.na,.grid-fixed .c4.na,.grid-fluid .c5.na,.grid-fixed .c5.na,.grid-fluid .c6.na,.grid-fixed .c6.na,.grid-fluid .c7.na,.grid-fixed .c7.na,.grid-fluid .c8.na,.grid-fixed .c8.na,.grid-fluid .c9.na,.grid-fixed .c9.na,.grid-fluid .c10.na,.grid-fixed .c10.na,.grid-fluid .c11.na,.grid-fixed .c11.na,.grid-fluid .c12.na,.grid-fixed .c12.na{margin-right:0} `; - var output = parse(styles); - var errors = output.errors; + const output = parse(styles); + const errors = output.errors; expect(errors.length).toEqual(0); - var ast = output.ast; + const ast = output.ast; expect(ast.rules.length).toEqual(8); }); it('should parse a snippet of keyframe code from animate.css properly', () => { // this code was taken from the angular.io webpage's CSS code - var styles = ` + const styles = ` @charset "UTF-8"; /*! @@ -787,14 +787,14 @@ export function main() { } `; - var output = parse(styles); - var errors = output.errors; + const output = parse(styles); + const errors = output.errors; expect(errors.length).toEqual(0); - var ast = output.ast; + const ast = output.ast; expect(ast.rules.length).toEqual(6); - var finalRule = ast.rules[ast.rules.length - 1]; + const finalRule = ast.rules[ast.rules.length - 1]; expect(finalRule.type).toEqual(BlockType.Keyframes); expect(finalRule.block.entries.length).toEqual(4); }); diff --git a/modules/@angular/compiler/test/css_parser/css_visitor_spec.ts b/modules/@angular/compiler/test/css_parser/css_visitor_spec.ts index 546fd67e02..a69605e974 100644 --- a/modules/@angular/compiler/test/css_parser/css_visitor_spec.ts +++ b/modules/@angular/compiler/test/css_parser/css_visitor_spec.ts @@ -14,7 +14,7 @@ import {isPresent} from '../../src/facade/lang'; function _assertTokens(tokens: CssToken[], valuesArr: string[]): void { expect(tokens.length).toEqual(valuesArr.length); - for (var i = 0; i < tokens.length; i++) { + for (let i = 0; i < tokens.length; i++) { expect(tokens[i].strValue == valuesArr[i]); } } @@ -118,8 +118,8 @@ function _getCaptureAst(capture: any[], index = 0): CssAst { export function main() { function parse(cssCode: string, ignoreErrors: boolean = false) { - var output = new CssParser().parse(cssCode, 'some-fake-css-file.css'); - var errors = output.errors; + const output = new CssParser().parse(cssCode, 'some-fake-css-file.css'); + const errors = output.errors; if (errors.length > 0 && !ignoreErrors) { throw new Error(errors.map((error: CssParseError) => error.msg).join(', ')); } @@ -127,11 +127,11 @@ export function main() { } describe('CSS parsing and visiting', () => { - var ast: CssStyleSheetAst; - var context = {}; + let ast: CssStyleSheetAst; + const context = {}; beforeEach(() => { - var cssCode = ` + const cssCode = ` .rule1 { prop1: value1 } .rule2 { prop2: value2 } @@ -154,168 +154,168 @@ export function main() { }); it('should parse and visit a stylesheet', () => { - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssStyleSheet']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssStyleSheet']; expect(captures.length).toEqual(1); - var capture = captures[0]; + const capture = captures[0]; expect(capture[0]).toEqual(ast); expect(capture[1]).toEqual(context); }); it('should parse and visit each of the stylesheet selectors', () => { - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssSelectorRule']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssSelectorRule']; expect(captures.length).toEqual(3); - var rule1 = _getCaptureAst(captures, 0); + const rule1 = _getCaptureAst(captures, 0); expect(rule1).toEqual(ast.rules[0]); - var firstSelector = rule1.selectors[0]; - var firstSimpleSelector = firstSelector.selectorParts[0]; + const firstSelector = rule1.selectors[0]; + const firstSimpleSelector = firstSelector.selectorParts[0]; _assertTokens(firstSimpleSelector.tokens, ['.', 'rule1']); - var rule2 = _getCaptureAst(captures, 1); + const rule2 = _getCaptureAst(captures, 1); expect(rule2).toEqual(ast.rules[1]); - var secondSelector = rule2.selectors[0]; - var secondSimpleSelector = secondSelector.selectorParts[0]; + const secondSelector = rule2.selectors[0]; + const secondSimpleSelector = secondSelector.selectorParts[0]; _assertTokens(secondSimpleSelector.tokens, ['.', 'rule2']); - var rule3 = _getCaptureAst(captures, 2); + const rule3 = _getCaptureAst(captures, 2); expect(rule3).toEqual((ast.rules[2]).block.entries[0]); - var thirdSelector = rule3.selectors[0]; - var thirdSimpleSelector = thirdSelector.selectorParts[0]; + const thirdSelector = rule3.selectors[0]; + const thirdSimpleSelector = thirdSelector.selectorParts[0]; _assertTokens(thirdSimpleSelector.tokens, ['#', 'rule3']); }); it('should parse and visit each of the stylesheet style key/value definitions', () => { - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssDefinition']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssDefinition']; expect(captures.length).toEqual(5); - var def1 = _getCaptureAst(captures, 0); + const def1 = _getCaptureAst(captures, 0); expect(def1.property.strValue).toEqual('prop1'); expect(def1.value.tokens[0].strValue).toEqual('value1'); - var def2 = _getCaptureAst(captures, 1); + const def2 = _getCaptureAst(captures, 1); expect(def2.property.strValue).toEqual('prop2'); expect(def2.value.tokens[0].strValue).toEqual('value2'); - var def3 = _getCaptureAst(captures, 2); + const def3 = _getCaptureAst(captures, 2); expect(def3.property.strValue).toEqual('prop3'); expect(def3.value.tokens[0].strValue).toEqual('value3'); - var def4 = _getCaptureAst(captures, 3); + const def4 = _getCaptureAst(captures, 3); expect(def4.property.strValue).toEqual('prop4'); expect(def4.value.tokens[0].strValue).toEqual('value4'); - var def5 = _getCaptureAst(captures, 4); + const def5 = _getCaptureAst(captures, 4); expect(def5.property.strValue).toEqual('prop5'); expect(def5.value.tokens[0].strValue).toEqual('value5'); }); it('should parse and visit the associated media query values', () => { - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssMediaQueryRule']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssMediaQueryRule']; expect(captures.length).toEqual(1); - var query1 = _getCaptureAst(captures, 0); + const query1 = _getCaptureAst(captures, 0); _assertTokens(query1.query.tokens, ['all', 'and', '(', 'max-width', '100', 'px', ')']); expect(query1.block.entries.length).toEqual(1); }); it('should capture the media query predicate', () => { - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssAtRulePredicate']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssAtRulePredicate']; expect(captures.length).toEqual(1); - var predicate = _getCaptureAst(captures, 0); + const predicate = _getCaptureAst(captures, 0); expect(predicate.strValue).toEqual('@media all (max-width: 100px)'); }); it('should parse and visit the associated "@inline" rule values', () => { - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssInlineRule']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssInlineRule']; expect(captures.length).toEqual(1); - var inline1 = _getCaptureAst(captures, 0); + const inline1 = _getCaptureAst(captures, 0); expect(inline1.type).toEqual(BlockType.Import); _assertTokens(inline1.value.tokens, ['url', '(', 'file.css', ')']); }); it('should parse and visit the keyframe blocks', () => { - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssKeyframeRule']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssKeyframeRule']; expect(captures.length).toEqual(1); - var keyframe1 = _getCaptureAst(captures, 0); + const keyframe1 = _getCaptureAst(captures, 0); expect(keyframe1.name.strValue).toEqual('rotate'); expect(keyframe1.block.entries.length).toEqual(2); }); it('should parse and visit the associated keyframe rules', () => { - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssKeyframeDefinition']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssKeyframeDefinition']; expect(captures.length).toEqual(2); - var def1 = _getCaptureAst(captures, 0); + const def1 = _getCaptureAst(captures, 0); _assertTokens(def1.steps, ['from']); expect(def1.block.entries.length).toEqual(1); - var def2 = _getCaptureAst(captures, 1); + const def2 = _getCaptureAst(captures, 1); _assertTokens(def2.steps, ['50%', '100%']); expect(def2.block.entries.length).toEqual(1); }); it('should visit an unknown `@` rule', () => { - var cssCode = ` + const cssCode = ` @someUnknownRule param { one two three } `; ast = parse(cssCode, true); - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssUnknownRule']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssUnknownRule']; expect(captures.length).toEqual(1); - var rule = _getCaptureAst(captures, 0); + const rule = _getCaptureAst(captures, 0); expect(rule.ruleName).toEqual('@someUnknownRule'); _assertTokens(rule.tokens, ['param', '{', 'one', 'two', 'three', '}']); }); it('should collect an invalid list of tokens before a valid selector', () => { - var cssCode = 'one two three four five; selector { }'; + const cssCode = 'one two three four five; selector { }'; ast = parse(cssCode, true); - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssUnknownTokenList']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssUnknownTokenList']; expect(captures.length).toEqual(1); - var rule = _getCaptureAst(captures, 0); + const rule = _getCaptureAst(captures, 0); _assertTokens(rule.tokens, ['one', 'two', 'three', 'four', 'five']); }); it('should collect an invalid list of tokens after a valid selector', () => { - var cssCode = 'selector { } six seven eight'; + const cssCode = 'selector { } six seven eight'; ast = parse(cssCode, true); - var visitor = new MyVisitor(ast, context); - var captures = visitor.captures['visitCssUnknownTokenList']; + const visitor = new MyVisitor(ast, context); + const captures = visitor.captures['visitCssUnknownTokenList']; expect(captures.length).toEqual(1); - var rule = _getCaptureAst(captures, 0); + const rule = _getCaptureAst(captures, 0); _assertTokens(rule.tokens, ['six', 'seven', 'eight']); }); }); diff --git a/modules/@angular/compiler/test/directive_normalizer_spec.ts b/modules/@angular/compiler/test/directive_normalizer_spec.ts index adb4f19efa..90e35e4fa4 100644 --- a/modules/@angular/compiler/test/directive_normalizer_spec.ts +++ b/modules/@angular/compiler/test/directive_normalizer_spec.ts @@ -38,7 +38,7 @@ export function main() { describe('normalizeTemplateSync', () => { it('should store the template', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - let template = normalizer.normalizeTemplateSync({ + const template = normalizer.normalizeTemplateSync({ componentType: SomeComp, moduleUrl: SOME_MODULE_URL, encapsulation: null, @@ -53,7 +53,7 @@ export function main() { it('should resolve styles on the annotation against the moduleUrl', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - let template = normalizer.normalizeTemplateSync({ + const template = normalizer.normalizeTemplateSync({ componentType: SomeComp, moduleUrl: SOME_MODULE_URL, encapsulation: null, @@ -67,7 +67,7 @@ export function main() { it('should resolve styles in the template against the moduleUrl', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - let template = normalizer.normalizeTemplateSync({ + const template = normalizer.normalizeTemplateSync({ componentType: SomeComp, moduleUrl: SOME_MODULE_URL, encapsulation: null, @@ -81,7 +81,7 @@ export function main() { it('should use ViewEncapsulation.Emulated by default', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - let template = normalizer.normalizeTemplateSync({ + const template = normalizer.normalizeTemplateSync({ componentType: SomeComp, moduleUrl: SOME_MODULE_URL, encapsulation: null, @@ -98,7 +98,7 @@ export function main() { [CompilerConfig, DirectiveNormalizer], (config: CompilerConfig, normalizer: DirectiveNormalizer) => { config.defaultEncapsulation = ViewEncapsulation.None; - let template = normalizer.normalizeTemplateSync({ + const template = normalizer.normalizeTemplateSync({ componentType: SomeComp, moduleUrl: SOME_MODULE_URL, encapsulation: null, @@ -255,7 +255,7 @@ export function main() { (async: AsyncTestCompleter, normalizer: DirectiveNormalizer, resourceLoader: MockResourceLoader) => { resourceLoader.expect('package:some/module/cmp.html', 'a'); - var prenormMeta = { + const prenormMeta = { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, templateUrl: 'cmp.html', @@ -279,8 +279,8 @@ export function main() { it('should store the viewEncapsulationin the result', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var viewEncapsulation = ViewEncapsulation.Native; - var template = normalizer.normalizeLoadedTemplate( + const viewEncapsulation = ViewEncapsulation.Native; + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -294,7 +294,7 @@ export function main() { it('should keep the template as html', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -308,7 +308,7 @@ export function main() { it('should collect ngContent', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -322,7 +322,7 @@ export function main() { it('should normalize ngContent wildcard selector', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -337,7 +337,7 @@ export function main() { it('should collect top level styles in the template', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -351,7 +351,7 @@ export function main() { it('should collect styles inside in elements', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -365,7 +365,7 @@ export function main() { it('should collect styleUrls in the template', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -379,7 +379,7 @@ export function main() { it('should collect styleUrls in elements', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -393,7 +393,7 @@ export function main() { it('should ignore link elements with non stylesheet rel attribute', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -407,7 +407,7 @@ export function main() { it('should ignore link elements with absolute urls but non package: scheme', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -421,7 +421,7 @@ export function main() { it('should extract @import style urls into styleAbsUrl', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -436,7 +436,7 @@ export function main() { it('should not resolve relative urls in inline styles', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -450,7 +450,7 @@ export function main() { it('should resolve relative style urls in styleUrls', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -465,7 +465,7 @@ export function main() { it('should resolve relative style urls in styleUrls with http directive url', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_HTTP_MODULE_URL, @@ -480,7 +480,7 @@ export function main() { it('should normalize ViewEncapsulation.Emulated to ViewEncapsulation.None if there are no styles nor stylesheets', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -494,7 +494,7 @@ export function main() { it('should ignore ng-content in elements with ngNonBindable', inject([DirectiveNormalizer], (normalizer: DirectiveNormalizer) => { - var template = normalizer.normalizeLoadedTemplate( + const template = normalizer.normalizeLoadedTemplate( { componentType: SomeComp, moduleUrl: SOME_MODULE_URL, @@ -509,7 +509,7 @@ export function main() { it('should still collect