angular/packages/core/testing/src
Miško Hevery 49e8028f26 refactor(ivy): Switch styling to new reconcile algorithm (#34616)
NOTE: This change must be reverted with previous deletes so that it code remains in build-able state.

This change deletes old styling code and replaces it with a simplified styling algorithm.

The mental model for the new algorithm is:
- Create a linked list of styling bindings in the order of priority. All styling bindings ere executed in compiled order and than a linked list of bindings is created in priority order.
- Flush the style bindings at the end of `advance()` instruction. This implies that there are two flush events. One at the end of template `advance` instruction in the template. Second one at the end of `hostBindings` `advance` instruction when processing host bindings (if any).
- Each binding instructions effectively updates the string to represent the string at that location. Because most of the bindings are additive, this is a cheap strategy in most cases. In rare cases the strategy requires removing tokens from the styling up to this point. (We expect that to be rare case)S Because, the bindings are presorted in the order of priority, it is safe to resume the processing of the concatenated string from the last change binding.

PR Close #34616
2020-01-24 14:05:05 -08:00
..
async.ts docs: update core to use @publicApi tags (#26595) 2018-10-19 14:35:53 -07:00
async_fallback.ts refactor: utilize type narrowing (#33075) 2019-10-10 15:18:44 -07:00
async_test_completer.ts build(bazel): Turning on strictPropertyInitialization for Angular. (#24572) 2018-06-25 07:57:13 -07:00
before_each.ts docs: in doc comments, replace [aA]ngular2 with Angular (#15463) 2017-03-27 09:44:35 -07:00
component_fixture.ts docs: update core to use @publicApi tags (#26595) 2018-10-19 14:35:53 -07:00
fake_async.ts docs: convert all @experimental tags to @publicApi tags (#26595) 2018-10-19 14:35:52 -07:00
fake_async_fallback.ts refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
lang_utils.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
logger.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
metadata_override.ts docs: convert all @experimental tags to @publicApi tags (#26595) 2018-10-19 14:35:52 -07:00
metadata_overrider.ts refactor(core): replace instanceof Array (#33077) 2019-10-14 23:44:57 +00:00
ng_zone_mock.ts feat: add a flag in bootstrap to enable coalesce event change detection to improve performance (#30533) 2019-11-05 18:58:25 +00:00
private_export_testing.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
r3_test_bed.ts fix: work around 'noImplicityAny' incompatibility due to ts3.7 update (#34798) 2020-01-16 12:06:58 -05:00
r3_test_bed_compiler.ts fix(ivy): TestBed not unwrapping imports array function when overriding provider (#34629) 2020-01-06 11:38:03 -08:00
resolvers.ts fix(ivy): TestBed rewrite to avoid unnecessary recompilations (#29483) 2019-03-27 09:41:58 -07:00
styling.ts refactor(ivy): Switch styling to new reconcile algorithm (#34616) 2020-01-24 14:05:05 -08:00
test_bed.ts feat: add a flag in bootstrap to enable coalesce event change detection to improve performance (#30533) 2019-11-05 18:58:25 +00:00
test_bed_common.ts feat(core): Deprecate TestBed.get as deprecated (#32406) 2019-09-11 20:28:56 -04:00
test_compiler.ts docs: convert all @experimental tags to @publicApi tags (#26595) 2018-10-19 14:35:52 -07:00
testing.ts refactor(ivy): cleanup the public API for core/testing (#25492) 2018-08-15 09:53:17 -07:00
testing_internal.ts refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00