From b8b551cf2b2d54cf78094bb2fbb35c19be40190d Mon Sep 17 00:00:00 2001 From: Pawel Kozlowski Date: Fri, 28 Jul 2017 15:58:28 +0200 Subject: [PATCH] perf(core): add option to remove blank text nodes from compiled templates (#18823) PR Close #18823 --- packages/compiler-cli/src/codegen.ts | 1 + packages/compiler-cli/src/transformers/api.ts | 4 + .../compiler-cli/src/transformers/program.ts | 2 +- packages/compiler/src/aot/compiler.ts | 3 +- packages/compiler/src/aot/compiler_factory.ts | 1 + packages/compiler/src/aot/compiler_options.ts | 1 + packages/compiler/src/compile_metadata.ts | 10 +- packages/compiler/src/compiler.ts | 2 +- packages/compiler/src/config.ts | 17 ++- packages/compiler/src/directive_normalizer.ts | 15 ++- packages/compiler/src/directive_resolver.ts | 3 +- packages/compiler/src/jit/compiler.ts | 4 +- packages/compiler/src/jit/compiler_factory.ts | 3 + packages/compiler/src/metadata_resolver.ts | 6 +- .../src/ml_parser/html_whitespaces.ts | 86 +++++++++++++ packages/compiler/src/ml_parser/tags.ts | 7 ++ .../src/template_parser/template_parser.ts | 28 +++-- .../test/directive_normalizer_spec.ts | 54 +++++++- .../compiler/test/directive_resolver_spec.ts | 8 +- packages/compiler/test/integration_spec.ts | 1 - .../test/ml_parser/ast_serializer_spec.ts | 2 +- .../test/ml_parser/html_whitespaces_spec.ts | 118 ++++++++++++++++++ .../template_parser/template_parser_spec.ts | 86 +++++++++++-- .../testing/src/directive_resolver_mock.ts | 3 +- packages/core/src/linker/compiler.ts | 1 + packages/core/src/metadata/directives.ts | 68 ++++++++++ packages/core/test/linker/integration_spec.ts | 45 +++++++ tools/@angular/tsc-wrapped/src/options.ts | 4 + tools/public_api_guard/core/core.d.ts | 1 + 29 files changed, 536 insertions(+), 48 deletions(-) create mode 100644 packages/compiler/src/ml_parser/html_whitespaces.ts create mode 100644 packages/compiler/test/ml_parser/html_whitespaces_spec.ts diff --git a/packages/compiler-cli/src/codegen.ts b/packages/compiler-cli/src/codegen.ts index 6ea5a6aae4..e65ca3706e 100644 --- a/packages/compiler-cli/src/codegen.ts +++ b/packages/compiler-cli/src/codegen.ts @@ -104,6 +104,7 @@ export class CodeGenerator { locale: cliOptions.locale, missingTranslation, enableLegacyTemplate: options.enableLegacyTemplate !== false, enableSummariesForJit: options.enableSummariesForJit !== false, + preserveWhitespaces: options.preserveWhitespaces, }); return new CodeGenerator(options, program, tsCompilerHost, aotCompiler, ngCompilerHost); } diff --git a/packages/compiler-cli/src/transformers/api.ts b/packages/compiler-cli/src/transformers/api.ts index ea0919c3b5..efcdabede6 100644 --- a/packages/compiler-cli/src/transformers/api.ts +++ b/packages/compiler-cli/src/transformers/api.ts @@ -91,6 +91,10 @@ export interface CompilerOptions extends ts.CompilerOptions { // Whether to enable support for