Go to file
JoostK a9543457ef fix(ivy): prevent invalid forward references in setClassMetadata call (#27561)
In Ivy, a pure call to `setClassMetadata` is inserted to retain the
information that would otherwise be lost while eliding the Angular
decorators. In the past, the Angular constructor decorators were
wrapped inside of an anonymous function which was only evaluated once
`ReflectionCapabilities` was requested for such metadata. This approach
prevents forward references from inside the constructor parameter
decorators from being evaluated before they are available.

In the `setClassMetadata` call, the constructor parameters were not wrapped
within an anonymous function, such that forward references were evaluated
too early, causing runtime errors.

This commit changes the `setClassMetadata` call to pass the constructor
parameter decorators inside of an anonymous function again, such that
forward references are not resolved until requested by
`ReflectionCapabilities`, therefore avoiding the early reads of forward refs.

PR Close #27561
2018-12-14 10:24:16 -08:00
.buildkite ci: test ts-api-guardian on windows (#27205) 2018-12-06 09:38:59 -08:00
.circleci build: update to Bazel 0.20 (#27394) 2018-12-07 14:29:03 -08:00
.github ci: exclude unnedeed files and directories from angular-robot g3sync check (#27653) 2018-12-13 10:58:43 -08:00
aio build(docs-infra): upgrade cli command docs sources to 02d2ec250 (#27670) 2018-12-14 10:18:59 -08:00
docs docs: update SAVED_REPLIES and CONTRIBUTING with new issue templates (#27608) 2018-12-11 16:43:57 -08:00
integration test(bazel): integration test for ng new with Bazel (#27659) 2018-12-14 10:19:22 -08:00
modules build(bazel): upgrade benchmarks to protractor_web_test_suite for CI without local chrome (#26908) 2018-11-07 16:47:39 -08:00
packages fix(ivy): prevent invalid forward references in setClassMetadata call (#27561) 2018-12-14 10:24:16 -08:00
scripts build: re-enable saucelabs non-verbose logging (#27657) 2018-12-14 10:19:54 -08:00
third_party/github.com/bazelbuild/bazel-toolchains/bazelrc build: update to Bazel 0.20 (#27394) 2018-12-07 14:29:03 -08:00
tools build: ts-api-guardian tsconfig warning with bazel (#27583) 2018-12-13 11:01:48 -08:00
.bazelignore build: add aio/tools/examples/shared/node_modules to .bazelignore (#27278) 2018-11-27 10:30:58 -08:00
.bazelrc build: update to Bazel 0.20 (#27394) 2018-12-07 14:29:03 -08: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 build: introduce remote bazel caching (#27358) 2018-12-06 11:25:03 -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
.pullapprove.yml ci: remove packages/bazel from compiler-cli group (#27641) 2018-12-13 10:58:58 -08:00
.travis.yml build: disable failing optional travis jobs (#27657) 2018-12-14 10:19:54 -08:00
BUILD.bazel build: use bazel version from node modules (#26691) 2018-10-30 16:19:13 -04:00
CHANGELOG.md docs: remove labs breaking changes from changelog (#27628) 2018-12-13 11:00:57 -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 docs: update SAVED_REPLIES and CONTRIBUTING with new issue templates (#27608) 2018-12-11 16:43:57 -08:00
LICENSE docs(common): update copyright years (#21232) 2018-01-04 17:45:36 -05:00
README.md build: run CI (#26488) 2018-10-19 20:59:29 -07:00
WORKSPACE build: update to Bazel 0.20 (#27394) 2018-12-07 14:29:03 -08:00
bower.json docs: branding fixes (#14132) 2017-01-27 15:03:11 -06:00
browser-providers.conf.js feat(elements): enable Shadow DOM v1 and slots (#24861) 2018-08-30 21:33:14 -07:00
build.sh feat(ivy): implement TestBed (#25369) 2018-08-14 11:58:47 -07:00
gulpfile.js build: remove obsolete gulp build task (#27386) 2018-12-05 20:55:32 -08:00
index.bzl style: format .bzl files with buildifier (#23544) 2018-08-08 13:12:07 -07:00
karma-js.conf.js build: update to latest karma-sauce-launcher version (#27634) 2018-12-13 10:58:18 -08:00
package.json build: update to latest karma-sauce-launcher version (#27634) 2018-12-13 10:58:18 -08: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 ci: configure chrome options for protractor (#26735) 2018-10-26 14:48:05 -04: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
test.sh feat: typescript 2.9 support (#24652) 2018-07-03 13:32:06 -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 latest karma-sauce-launcher version (#27634) 2018-12-13 10:58:18 -08:00
yarn.lock.readme.md docs: replace npm with yarn in lockfile readme (#25309) 2018-08-06 13:38:13 -07:00

README.md

Build Status 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.