Go to file
Olivier Combe baf103c98f fix(ivy): don't increment `expandoStartIndex` after directives are matched (#28424)
i18n instructions create text nodes dynamically and save them between bindings and the expando block in `LView`. e.g., they try to create the following order in `LView`.

```
| -- elements -- | -- bindings -- | -- dynamic i18n text -- | -- expando (dirs, injectors) -- |
```

Each time a new text node is created, it is pushed to the end of the array and the `expandoStartIndex` marker is incremented, so the section begins slightly later. This happens in `allocExpando`.

This is fine if no directives have been created yet. The end of the array will be in the "dynamic text node" section.

| -- elements -- | -- bindings -- | -- dynamic i18n text -- |

However, this approach doesn't work if dynamic text nodes are created after directives are matched (for example when the directive uses host bindings). In that case, there are already directives and injectors saved in the "expando" section. So pushing to the end of `LView` actually pushes after the expando section. What we get is this:

```
| -- elements -- | -- bindings -- | -- dynamic i18n text -- | -- expando -- | -- dynamic i18n text-- |
```

In this case, the `expandoStartIndex` shouldn't be incremented because we are not inserting anything before the expando section (it's now after the expando section). But because it is incremented in the code right now, it's now pointing to an index in the middle of the expando section.

This PR fixes that so that we only increment the `expandoStartIndex` if nothing was pushed into the expando section.

FW-978 #resolve

PR Close #28424
2019-02-05 23:30:37 -05:00
.buildkite revert: "ci: use image based cache for windows BuildKite (#27990)" (#28160) 2019-01-18 10:21:38 -08:00
.circleci build: add some debug info for yarn installs (#28553) 2019-02-05 20:15:49 -05:00
.github ci: move material-ci blocklist into core approval group (#28531) 2019-02-05 14:24:22 -05:00
.vscode build: update vscode settings to support clang-format (#28348) 2019-01-25 12:48:09 -08:00
aio build: update yarn to v1.13.0 (#28546) 2019-02-05 16:48:56 -05:00
docs build: `gulp format` only changed lines by default (#28411) 2019-02-04 16:49:16 -05:00
integration build: update lock files (#28532) 2019-02-05 16:55:43 -05:00
modules revert: build: switch to typescript's es2015 typings (#28134) 2019-02-05 18:07:10 -05:00
packages fix(ivy): don't increment `expandoStartIndex` after directives are matched (#28424) 2019-02-05 23:30:37 -05:00
scripts refactor(ivy): rename "blacklist" to "blocklist" (#28536) 2019-02-05 14:06:15 -05:00
third_party build: fix routing playground example using external resource (#28490) 2019-02-04 16:51:11 -05:00
tools test: enter notes on ivy-related material test errors (#28527) 2019-02-05 20:12:40 -05:00
.bazelignore build: update to rules_typescript 0.23.2 and rules_nodejs 0.16.8 (#28532) 2019-02-05 16:55:43 -05:00
.bazelrc build(bazel): update to bazel 0.22.0 and turn on --incompatible_strict_action_env flag (#28404) 2019-01-28 11:48:41 -08:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes chore: force lf EOL for ts files (#11143) 2016-08-29 12:41:58 -07:00
.gitignore build: update and unify gitignore (#28316) 2019-01-23 10:55:21 -08:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: update .nvmrc file to correct node version (#25992) 2018-09-18 13:11:58 -07:00
BUILD.bazel build: load angular.js minified output in upgrade tests (#27711) 2018-12-18 09:29:27 -08:00
CHANGELOG.md release: cut the v8.0.0-beta.3 release 2019-02-05 20:02:00 -08:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
LICENSE build: bump year (#27880) 2019-01-11 11:15:59 -08:00
README.md docs: remove Travis status from README (#27973) 2019-01-08 10:38:34 -08:00
WORKSPACE build: remove all deps on io_bazel_rules_go (#28532) 2019-02-05 16:55:43 -05:00
browser-providers.conf.js build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
gulpfile.js build: `gulp format` only changed lines by default (#28411) 2019-02-04 16:49:16 -05:00
index.bzl style: format .bzl files with buildifier (#23544) 2018-08-08 13:12:07 -07:00
karma-js.conf.js ci: move local and saucelabs unit tests to circle (#27937) 2019-01-07 15:35:09 -08:00
package.json release: cut the v8.0.0-beta.3 release 2019-02-05 20:02:00 -08:00
protractor-e2e.conf.js build: re-enable disabled e2e tests (#27979) 2019-01-09 10:41:16 -08:00
protractor-perf.conf.js build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js fix(platform-browser): run BLACK_LISTED_EVENTS outside of ngZone (#18993) 2017-09-05 15:33:22 -05:00
test-main.js refactor(core): remove withBody from public testing API (#25171) 2018-07-31 15:09:32 -07:00
tslint.json style: tslint enforces no debugger statements left behind (#25532) 2018-08-16 16:00:22 -07:00
yarn.lock build: update to rules_typescript 0.23.2 and rules_nodejs 0.16.8 (#28532) 2019-02-05 16:55:43 -05:00
yarn.lock.readme.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00

README.md

CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.