27057 Commits

Author SHA1 Message Date
Alex Rickabaugh 9a37b3ed6a refactor(compiler): emit correct listener name in template pipeline (#49797)
This commit modifies the `ListenerOp` operation to capture the context
needed to generate the "correct" (per `TemplateDefinitionBuilder`) function
name for the handler function for the listener.

PR Close #49797
2023-04-18 17:00:52 +00:00
Alex Rickabaugh 59bed917d9 refactor(compiler): fix wrong instruction emit for resetView (#49797)
The `resetView` instruction in the template pipeline had a copy-paste error
where it was emitting a call to `reference` instead. This commit fixes the
issue.

PR Close #49797
2023-04-18 17:00:52 +00:00
Alex Rickabaugh c4fe1e329e refactor(compiler): implement operation chaining in the template pipeline (#49797)
This commit adds a chaining phase which post-processes reified template
pipeline operations, and collapses chainable instructions into chained
calls. Performing chaining as a post-processing step after reification
allows the specifically selected instruction variants to be known when
considering chaining two operations.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh 303ad05b9c refactor(compiler): variable optimizer for the template pipeline (#49797)
This commit adds a variable optimization pass to the template pipeline. The
pipeline generates all variables which might be referenced within a given
view's template function, regardless of whether other operations will read
those values.

The variable optimizer post-processes the IR and performs several variable-
related optimizations:

* It transforms variable declarations to side effectful expressions when the
  variable is not used, but its initializer has global effects which other
  operations rely upon.
* It removes variable declarations if those variables are not referenced and
  either they do not have global effects, or nothing relies on them.
* It inlines variable declarations when those variables are only used once
  and the inlining is semantically safe.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh cbda8054c5 refactor(compiler): handle textInterpolate with empty string bookends (#49797)
This commit teaches the template pipeline how to generate `textInterpolate`
when there's a single expression with no surrounding static text.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh f5f67e6917 refactor(compiler): reorder constant pool statements in template pipeline (#49797)
This commit reverses the generate template functions when adding them to the
constant pool in the template pipeline. This seems to better match the
ordering in which `TemplateDefinitionBuilder` generates template functions.
Further study is needed to determine if this is exactly accurate.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh d5c40a569b refactor(compiler): skip emit of empty blocks in template pipeline (#49797)
This commit configures the template pipeline to skip the emit of empty
create or update blocks of a template function.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh 4688464ac5 refactor(compiler): fix issues with advance() in the template pipeline (#49797)
`advance()` was not emitted correctly by the template pipeline. There were
two problems:

* it was not handled in `transformExpressionsInOp()`.
* it was not added to the list correctly in `phaseGenerateAdvance()`.

This commit addresses both problems.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh 3d2fc821e8 refactor(compiler): fix node ownership assertions in template pipeline ops (#49797)
This commit fixes a broken assertion in the template pipeline concerning the
ownership of nodes in `insertBefore`, as well as adjusts a few other
assertions.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh 3fa916047d refactor(compiler): don't throw on static attr bindings in the pipeline (#49797)
The template pipeline previously included an error when a static attribute
binding was found on an `<ng-template>`, under the assumption that this case
didn't happen in reality. It turns out that it does, so this commit removes
the error in favor of a comment to investigate the case further.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh a2245663b0 refactor(compiler): reify the correct parameters to template() (#49797)
The template pipeline previously reified the parameters to `template()`
incorrectly. This commit adjusts the output to correctly reference the
attributes of the `template()` call.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh bc20ca4913 refactor(compiler): introduce ir.VisitorContextFlag to template pipeline (#49797)
This commit introduces a flag which is tracked while visiting expression
nodes in the template pipeline. This flag can be used to differentiate when
in an immediate evaluation context vs. a closure, which is useful for
certain operations.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh d09b23c8ad refactor(compiler): generate correct fn names in the template pipeline (#49797)
The `TemplateDefinitionBuilder` has a specific pattern it uses for template
function names for embedded view template functions. This commit changes the
template pipeline to use the same format, allowing the generated code to
match between them.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh ea8a264b83 refactor(compiler): rethink ir.SemanticVariables and their naming (#49797)
The `TemplateDefinitionBuilder` uses the same name for the same semantic
variables across different views declared in a component. This commit
refactors the template pipeline's concept of `ir.SemanticVariable` to share
instances across all `ViewCompilation`s. This allows the `name` of the
variable to be stored on the `ir.SemanticVariable` instance instead of on
the `ir.VariableOp` (which makes sense as variables are often named based on
the `ir.SemanticVariable` anyway).

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh 2bf6d45cbe refactor(compiler): read context of the correct view for let- variables (#49797)
The template pipeline was previously reading the context of the wrong view,
resulting in incorrect generated code. Previously only `ctx` was being used,
since the context read was always that of the current view being compiled,
even for variables which exist on the contexts of parent views.

PR Close #49797
2023-04-18 17:00:51 +00:00
Alex Rickabaugh dd3908c24d refactor(compiler): reorder fields for template pipeline output (#49797)
The template pipeline was emitting fields on the component definition in a
different order than the `TemplateDefinitionBuilder`, which causes test
failures. Additionally, the `consts` field was being emitted even if it was
empty.

PR Close #49797
2023-04-18 17:00:51 +00:00
CodeMaster7000 c34e945cdb docs: update README.md (#48423)
PR Close #48423
2023-04-18 16:59:39 +00:00
Vasil Chimev ffb8715f86 docs: typos and wording (#48597)
PR Close #48597
2023-04-18 16:58:32 +00:00
Matthieu Riegler 27c624e8e7 refactor(compiler): handle #24571 todos. (#49220)
This commit removes the remaining TODO(issue/24571) in compiler code base.

PR Close #49220
2023-04-18 16:30:44 +00:00
Vladyslav Makarenko f05d4b9b84 docs: add a dot (#49434)
The first sentence misses a dot in the end, however other sentences have it
PR Close #49434
2023-04-18 16:22:51 +00:00
Ikko Eltociear Ashimine 82de3fd301 refactor: fix typo in windows-chromium-path.js (#49676)
preceeding -> preceding
PR Close #49676
2023-04-18 16:22:10 +00:00
John Manners 755678123f docs: fix errors in toh-pt6.md (#49129)
Line 182 and line 185 - grammatical and typo errors.
PR Close #49129
2023-04-18 16:21:36 +00:00
Angular Robot 52d2ec1c2e build: update io_bazel_rules_sass digest to 898e4dd (#49575)
See associated pull request for more information.

PR Close #49575
2023-04-18 16:20:54 +00:00
Matthieu Riegler 8219857821 refactor(platform-browser): cleanup references to dart (#49858)
The repo doesn't support dart anymore, we can reduce the references to it .

PR Close #49858
2023-04-18 14:00:45 +00:00
Matthieu Riegler 934d74ba73 refactor(core): cleanup references to dart (#49858)
The repo doesn't support dart anymore, we can reduce the references to it .

PR Close #49858
2023-04-18 14:00:45 +00:00
Matthieu Riegler 7498163ed2 refactor(compiler): cleanup references to dart (#49858)
The repo doesn't support dart anymore, we can reduce the references to it .

PR Close #49858
2023-04-18 14:00:45 +00:00
Matthieu Riegler 3a6e71e5ed refactor(core): Remove ununsed Zone mock from testing internals. (#49873)
The last time it was used in was on the v10 branch.

PR Close #49873
2023-04-18 14:00:16 +00:00
Pawel Kozlowski ef91a2e0fe fix(core): execute template creation in non-reactive context (#49883)
This fix assures that templates functions executed in the creation mode
are run outside of the reactive context. This avoids the situation where
signal reads in a directive constructor (executed as part of the creation
mode) would mark the host component as dirty.

Fixes #49871

PR Close #49883
2023-04-18 13:59:42 +00:00
Angular Robot c985ed2cf7 build: update scorecard action dependencies (#49897)
See associated pull request for more information.

PR Close #49897
2023-04-18 13:58:54 +00:00
Andrew Kushnir 164e50d43d docs: include a note on blocking initial navigation when destructive hydration is used (#49895)
This commit updates the docs for the `withNoDomReuse` function, which lets to opt out of non-destructive hydration.
The docs now mention the need to configure an initial navigation option for the Router to be blocking, i.e.
use `withEnabledBlockingInitialNavigation()` Router feature.

PR Close #49895
2023-04-18 13:56:06 +00:00
Jessica Janiuk 003e7d1c80 Revert "refactor(core): throw an error when APP_INITIALIZER token is not an array. (#49860)" (#49893)
This reverts commit bf2e11c035.

PR Close #49893
2023-04-17 18:57:47 +00:00
Kristiyan Kostadinov 4ee286b518 build: update PullApprove config (#49878)
Updates the PullApprove config to add myself to `fw-compiler` and `fw-core` with the following reasoning:
* We talked about `fw-compiler` some time ago, because it would help with TypeScript updates and because I'm familiar with the compiler.
* Also adding myself to `fw-core` to make it easier with some upcoming features and because I can help with the review load for the runtime changes.

PR Close #49878
2023-04-17 18:32:15 +00:00
Lara Newsom 57b30c9ad9 docs(docs-infra): add lara newsom to GDE resources (#49620)
PR Close #49620
2023-04-17 18:31:15 +00:00
Andrew Scott 2118ee9a38 refactor(router): remove targetPageId from transition (#49799)
The `targetPageId` was pre-calculated at the start of a navigation using
the same logic that exists in `setBrowserUrl` now. Doing the calculation
ahead of time is not necessary and complicates the transition state.

PR Close #49799
2023-04-17 17:36:02 +00:00
Matthieu Riegler 9e6c7d590c refactor(compiler): Remove unnecessary assertion in jit_compiler_facade. (#49852)
This commit removes unnecessary types assertions.

PR Close #49852
2023-04-17 17:35:28 +00:00
Andrew Scott fd9dcd36cd fix(core): Ensure effects can be created when Zone is not defined (#49890)
Effects should run in the same zone they were created in. However, if ZoneJS is not used at all,
effects should just run (without zone). This is similar to what's done
in the elements `ComponentNgElementStrategy`.

fixes #49798

PR Close #49890
2023-04-17 17:34:58 +00:00
Matthieu Riegler cb1ca930fd docs: Specify when an app is debuggable by the DevTools. (#48970)
DevMode is when the ng debug object is available. `Optimization:true` is responsible for treeshaking everything behind `ngDevMode`.

Fixes #48968

PR Close #48970
2023-04-17 17:32:42 +00:00
Matthieu Riegler 204857263b fix(devtools): Specify when an app is considered in dev mode. (#48970)
DevMode is when the ng debug object is available. `Optimization:true` is responsible for treeshaking everything behind `ngDevMode`.

PR Close #48970
2023-04-17 17:32:42 +00:00
Matthieu Riegler 3d7f1d1218 refactor(compiler-cli): cleanup inferences (#49863)
With the ts compiler updates these inferences have been fixed.

PR Close #49863
2023-04-17 17:23:30 +00:00
Angular Robot a4c768cad6 build: update dependency eslint-plugin-jsdoc to v41 (#49885)
See associated pull request for more information.

PR Close #49885
2023-04-17 15:48:24 +00:00
Angular Robot 22a9aab547 build: update cross-repo angular dependencies (#49887)
See associated pull request for more information.

PR Close #49887
2023-04-17 15:46:40 +00:00
Matthieu Riegler 28c789bb06 refactor(compiler-cli): remove unused integration tests. (#49862)
Theses tests have been disabled when the ViewEngine code has been remove in v13.1

PR Close #49862
2023-04-17 14:57:03 +00:00
Matthieu Riegler f04c693f5e refactor(compiler-cli): remove incrementalDriver on the compiler (#49869)
The CLI now only uses the `incrementalDriver` property.

PR Close #49869
2023-04-17 14:54:53 +00:00
Alex Rickabaugh 49fe974501 perf(compiler-cli): optimize NgModule emit for standalone components (#49837)
NgModules which import standalone components currently list those components
in their injector definitions, because we assume that any standalone
component may export providers from its own imports.

This commit adds an optimization for that emit, which attempts to statically
analyze the NgModule imports and determine which standalone components, if
any are present, do not export providers and thus can be omitted.

This analysis is imperfect, because some imported components may be declared
outside of the current compilation, or transitively import types which are
declared outside the compilation. These types are therefore _assumed_ to
carry providers and so the optimization isn't applied to them.

PR Close #49837
2023-04-17 14:51:58 +00:00
Andrew Scott 6a09cc1c4f refactor(router): Do not access browserPageId if not computed resolution (#49850)
This commit avoids accessing the routerPageId if the
canceldNavigationResolution is not computed.

PR Close #49850
2023-04-17 14:47:17 +00:00
Alan Agius 14d27475f8 test: refactor platform-server tests to use async/await (#49855)
This commit changes the platform-server integration tests to use async/await instead of waitForAsync.

PR Close #49855
2023-04-17 14:07:34 +00:00
Matthieu Riegler e668a05929 refactor(common): Remove check for createShadowRoot (#49756)
`createShadowRoot` is not used since the drop of `ViewEncapsulation.Native` in v11 by #38882

PR Close #49756
2023-04-17 14:06:02 +00:00
Matthieu Riegler f254499d0b refactor(docs-infra): cleanup deprecated code (#49671)
This commit replaces (non material-related) deprecated code present in the aio app.

* `pageYOffset` can be replaced by `scrollY`
*  RxJs' `mapTo()` is just a `map()`
* `createNgModuleRef` can be replaced by `createNgModule`
* HttpEmits `ProgressEvent` not `ErrorEvent`  (see #34748)
* `SwUpdate.available` is replaced by  `versionUpdates` with a `filter`
* `SwUpdate.activated` is replaced by the returned promised of `SwUpdate.activateUpdate`.

PR Close #49671
2023-04-17 14:04:27 +00:00
Matthieu Riegler 5d965803fe refactor(core): improve styling coverage (#49868)
The test was waiting for #34202 to be merged.

PR Close #49868
2023-04-17 14:02:41 +00:00
Matthieu Riegler 1e69a66864 docs: remove outdated/unsupported webworker doc (#49856)
The webworker platform has been removed in v11 by #38846

PR Close #49856
2023-04-17 14:01:42 +00:00