Go to file
Pawel Kozlowski c34c223122 fix(ivy): avoid type coercion in binding-related instruction asserts (#29470)
ivy's bindingUpdated instruction is using the assertNotEqual check to make
sure that NO_CHANGE value (of type Object) is not passed as a value to be
dirty-checked. In practice it means that any value passed as a binding
value would be compared to the NO_CHANGE object.

It turns out that the assertNotEqual is using == and given
that binding values are of different type and we always compare it to the
NO_CHANGE object we were doing lots of type coercion. It resulted in calls
to expensive types conversions and calls to Object.toString().

A profiler reported ~15% of the self time spent in the assertNotEqual
but it turns out that removing type coercion speeds up Material Chips with
input scenario much more (~40ms down to ~20ms).

This PR introduces new assert method `assertNotSame` that uses strict equality
check. The new assertion is used in binding instructions to compare to
NO_CHANGE object reference.

PR Close #29470
2019-03-25 09:34:13 -07:00
.buildkite ci: update buildkite provision instructions (#28273) 2019-02-07 12:36:27 -08:00
.circleci ci: cache Material `node_modules` based on the lockfile checksum (#29417) 2019-03-20 13:13:27 -04:00
.codefresh ci: add codefresh badge (#29475) 2019-03-25 09:23:48 -07:00
.github ci: add `.codefresh/` to the `fw-dev-infra` group (#29478) 2019-03-22 13:16:16 -07:00
.vscode Revert "build: add a nice Angular-themed color for the vscode status bar (#29407)" (#29419) 2019-03-20 13:31:27 -04:00
aio docs: changing "struture" to "structure" (#29497) 2019-03-25 09:21:10 -07:00
docs docs: update developer guide for testing and IntelliJ (#29048) 2019-03-22 13:05:40 -07:00
integration test(bazel): Add router to bazel integration test (#29459) 2019-03-22 13:17:01 -07:00
modules build: rules_nodejs 0.26.0 & use @npm instead of @ngdeps now that downstream angular build uses angular bundles (#28871) 2019-02-28 12:06:36 -08:00
packages fix(ivy): avoid type coercion in binding-related instruction asserts (#29470) 2019-03-25 09:34:13 -07:00
scripts ci: add codefresh (#29305) 2019-03-21 22:19:19 +00:00
third_party build: use vendored yarn under Bazel (#28839) 2019-02-20 09:19:03 -08:00
tools fix(router): support NgFactory promise in loadChildren typings (#29392) 2019-03-25 09:30:28 -07:00
.bazelignore ci: share data between jobs using workspaces (#28928) 2019-02-22 13:24:11 -08:00
.bazelrc build: disable tsc_wrapped workers (#29197) 2019-03-14 13:11:36 -04: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: rules_nodejs 0.26.0 & use @npm instead of @ngdeps now that downstream angular build uses angular bundles (#28871) 2019-02-28 12:06:36 -08:00
CHANGELOG.md docs: fix html tags in changelog (#29411) 2019-03-21 02:46:41 -04: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: update link for CircleCI badge to point workflow 2019-02-07 14:14:59 -08:00
WORKSPACE build(bazel): add comment about advancing the version of yarn used under Bazel in the future (#29431) 2019-03-20 18:36:13 -04:00
browser-providers.conf.js build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
gulpfile.js refactor: remove extra line break in gulpfile (#29489) 2019-03-25 09:22:37 -07:00
karma-js.conf.js build: rules_nodejs 0.26.0 & use @npm instead of @ngdeps now that downstream angular build uses angular bundles (#28871) 2019-02-28 12:06:36 -08:00
package.json ci: add codefresh (#29305) 2019-03-21 22:19:19 +00:00
protractor-perf.conf.js build: remove legacy e2e tests job (#28645) 2019-02-13 12:15:02 -08:00
renovate.json ci: update packageFiles to be renovated (#29071) 2019-03-05 09:43:23 -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 build: remove unused rollup.config.js files (#28646) 2019-02-14 19:28:08 +00:00
yarn.lock ci: add codefresh (#29305) 2019-03-21 22:19:19 +00: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.