Deliver web apps with confidence 🚀
Find a file
Miško Hevery fcadbf4bf6 perf: switch angular to use StaticInjector instead of ReflectiveInjector
This change allows ReflectiveInjector to be tree shaken resulting
in not needed Reflect polyfil and smaller bundles.

Code savings for HelloWorld using Closure:

Reflective: bundle.js:  105,864(34,190 gzip)
    Static: bundle.js:  154,889(33,555 gzip)
                            645( 2%)

BREAKING CHANGE:

`platformXXXX()` no longer accepts providers which depend on reflection.
Specifically the method signature when from `Provider[]` to
`StaticProvider[]`.

Example:
Before:
```
[
  MyClass,
  {provide: ClassA, useClass: SubClassA}
]

```

After:
```
[
  {provide: MyClass, deps: [Dep1,...]},
  {provide: ClassA, useClass: SubClassA, deps: [Dep1,...]}
]
```

NOTE: This only applies to platform creation and providers for the JIT
compiler. It does not apply to `@Compotent` or `@NgModule` provides
declarations.

Benchpress note: Previously Benchpress also supported reflective
provides, which now require static providers.

DEPRECATION:

- `ReflectiveInjector` is now deprecated as it will be remove. Use
  `Injector.create` as a replacement.

closes #18496
2017-08-07 15:42:34 -07:00
.circleci build: update bazel rules to latest (#18289) 2017-07-21 18:09:44 -05:00
.github docs: does please -> does (#18044) 2017-07-11 11:46:57 -07:00
aio docs(aio): typo & update the bio (#18559) 2017-08-07 10:20:11 -07:00
docs docs: improve github labels by introducing "PR target" labels (#18436) 2017-08-02 15:30:36 -07:00
integration refactor(tsc-wrapped): move tsc-wrapped to the packages directory (#18160) 2017-07-21 12:26:16 -05:00
modules perf: switch angular to use StaticInjector instead of ReflectiveInjector 2017-08-07 15:42:34 -07:00
packages perf: switch angular to use StaticInjector instead of ReflectiveInjector 2017-08-07 15:42:34 -07:00
scripts ci(aio): compute AIO deployment mode 2017-08-04 09:14:18 -07:00
tools perf: switch angular to use StaticInjector instead of ReflectiveInjector 2017-08-07 15:42:34 -07:00
.bazelrc build: Introduce Bazel build rules 2017-06-05 11:18:20 -07:00
.bowerrc chore(dgeni): clean up legacy typings bundle creation 2015-10-29 21:19:59 +00:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig chore(.editorconfig): include markdown config 2015-01-27 00:14:48 -08:00
.gitattributes chore: force lf EOL for ts files (#11143) 2016-08-29 12:41:58 -07:00
.gitignore test: git ignore e2e test folders (#17984) 2017-07-11 11:55:24 -07:00
.nvmrc ci: bump node version to 6.9.5 and npm to 3.10.7 2017-02-02 23:28:00 -08:00
.pullapprove.yml ci: give ownership of ngc-wrapped to compiler-cli maintainers (#18354) 2017-07-26 17:55:24 -05:00
.travis.yml ci(aio): compute AIO deployment mode 2017-08-04 09:14:18 -07:00
bower.json docs: branding fixes (#14132) 2017-01-27 15:03:11 -06:00
browser-providers.conf.js ci: disable Android 4.1, 4.2 and 4.3 in SauceLabs (#14461) 2017-03-16 09:13:07 -07:00
BUILD.bazel build: update bazel rules to latest (#18289) 2017-07-21 18:09:44 -05:00
build.sh refactor(tsc-wrapped): update tsc-wrapped to pass strictNullCheck (#18160) 2017-07-21 12:26:20 -05:00
CHANGELOG.md docs: changelog for 5.0.0-beta.2 release 2017-08-02 13:23:27 -07:00
CONTRIBUTING.md docs: improve grammar and wording on CONTRIBUTING.md (#17855) 2017-07-11 12:40:30 -07:00
gulpfile.js build: fix public-api:update gulp task (#16859) 2017-05-22 11:07:21 -06:00
karma-js.conf.js refactor(tsc-wrapped): move tsc-wrapped to the packages directory (#18160) 2017-07-21 12:26:16 -05:00
LICENSE style(docs): update copyright years (#13736) 2017-01-27 20:47:14 -08:00
npm-shrinkwrap.clean.json build: update bazel rules to latest (#18289) 2017-07-21 18:09:44 -05:00
npm-shrinkwrap.json build: update bazel rules to latest (#18289) 2017-07-21 18:09:44 -05:00
npm-shrinkwrap.readme.md chore(lint): replace gulp check-task with tslint no-jasmine-focus rule 2016-10-28 15:53:15 -07:00
package.json release: cut the 5.0.0-beta.2 release 2017-08-02 13:21:07 -07:00
protractor-e2e.conf.js refactor: add license header to JS files & format files (#12081) 2016-10-04 20:39:20 -07:00
protractor-examples-e2e.conf.js refactor: format and lint code 2016-12-12 11:30:25 -08:00
protractor-perf.conf.js refactor: add license header to JS files & format files (#12081) 2016-10-04 20:39:20 -07:00
README.md docs: Unbreak README Formatting (#18043) 2017-07-11 11:48:37 -07: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-main.js feat(common): new HttpClient API 2017-07-07 12:09:32 -07:00
test.sh refactor(tsc-wrapped): move tsc-wrapped to the packages directory (#18160) 2017-07-21 12:26:16 -05:00
tslint.json build(tslint): enable no-inner-declarations (#13316) 2016-12-08 13:46:08 -08:00
WORKSPACE build: update bazel rules to latest (#18289) 2017-07-21 18:09:44 -05:00

Build Status CircleCI Join the chat at https://gitter.im/angular/angular Issue Stats Issue Stats npm version

Sauce Test Status

Safari (7+), iOS (7+), Edge (14) and IE mobile (11) are tested on BrowserStack.

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.

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.