Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: ng-conf 2020 added #34176

Closed
wants to merge 117 commits into from

Commits on Dec 2, 2019

  1. docs: ng-conf 2020 added

    Added ng-conf 2020 marketing info to events and announcements
    owenmecham committed Dec 2, 2019
    Copy the full SHA
    a9f46a9 View commit details
    Browse the repository at this point in the history
  2. docs: ng-conf 2020 updates

    Updated announcement duration and html formatting
    owenmecham committed Dec 2, 2019
    Copy the full SHA
    c0e8546 View commit details
    Browse the repository at this point in the history
  3. build: consolidate @angular-devkit/build-angular to the root package.…

    …json (angular#34002)
    
    This allows us to update the version of the package in a single place for all tests.
    
    Notable exemption of this is aio which currently doesn't depend on anything installed in the root.
    
    PR Close angular#34002
    IgorMinar authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    ea37e82 View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    df6d6e0 View commit details
    Browse the repository at this point in the history
  5. build: remove obsolete build related tools and helper scripts (angula…

    …r#34058)
    
    none of these files are needed any more as they were replaced by Bazel.
    
    PR Close angular#34058
    IgorMinar authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    d251f22 View commit details
    Browse the repository at this point in the history
  6. build: remove gulp-connect and cors npm dependencies (angular#34058)

    we no longer need them.
    
    PR Close angular#34058
    IgorMinar authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    b15f86e View commit details
    Browse the repository at this point in the history
  7. build: remove fsevents from package.json (angular#34058)

    we no longer need it.
    
    PR Close angular#34058
    IgorMinar authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    3408468 View commit details
    Browse the repository at this point in the history
  8. test(docs-infra): ensure RxJS-related docs examples can compile witho…

    …ut errors (angular#34063)
    
    Previously, some RxJS-related examples (which are not proper Angular apps) were not
    tested on CI as part of the `example-e2e` npm script. This meant that the examples
    could get out-of-date or contain compile errors without as noticing.
    
    This commit ensures that the `example-e2e` script picks up these examples and checks
    that they compile successfully.
    
    Partly addresses angular#28017.
    
    PR Close angular#34063
    sonukapoor authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    2cc954d View commit details
    Browse the repository at this point in the history
  9. build: update to nodejs rules 0.42.1 (angular#34073)

    * This brings in a fix to the `@npm//foo:foo_files` targets for angular#33927 so the a rules_nodejs patch can be removed.
    * It also brings a protractor_web_test fix that resolves the need for a work-around in /modules/playground/e2e_test/sourcemap/BUILD.bazel.
    
    PR Close angular#34073
    gregmagolan authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    bbce2ad View commit details
    Browse the repository at this point in the history
  10. Copy the full SHA
    72abde6 View commit details
    Browse the repository at this point in the history
  11. fix(language-service): determine correct type for ngFor exported valu…

    …es (angular#34089)
    
    Currently, variables of an unknown type in an `*ngFor` expression are
    refined to have the type of the iterable binding of the `*ngFor`
    expression. Unfortunately, this is a bug for variables aliasing
    [values exported by
    `*ngFor`](https://angular.io/api/common/NgForOf#local-variables),
    including `index` and `first`, because they are also given the type of
    the binding expression, but they are not of the binding type. For
    example, in
    
    ```typescript
    @component({
      selector: 'test',
      template: `
        <div *ngFor="let hero of heroes; let i = index; let isFirst = first">
          {{ hero }}
        </div>
      `
    })
    export class TestComponent {
      heroes: Hero[];
    }
    ```
    
    The local variables `i` and `isFirst` are determined to have a type of
    `Hero`, when actually their types are `number` and `boolean`,
    respectively.
    
    This commit fixes this bug by checking if the value of a variable in an
    `*ngFor` expression is known to be an export and assigning the variable
    the type of that export value. Only if the variable does not alias an
    export is it typed with the binding value of the `*ngFor` expression.
    
    Closes angular/vscode-ng-language-service#460
    
    PR Close angular#34089
    ayazhafiz authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    1425e63 View commit details
    Browse the repository at this point in the history
  12. build: Add deprecation warning when compile=aot is used for building …

    …with Ivy (angular#34109)
    
    To inform downstream users to switch to using angular_ivy_enabled as the build
    variable for setting Ivy, a deprecation message is printed instructing the user
    to migrate away from building with compile=*
    
    PR Close angular#34109
    josephperrott authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    72d366f View commit details
    Browse the repository at this point in the history
  13. build: add failure message if compile build variable for angular/angu…

    …lar usage (angular#34109)
    
    To quicken migration for our own developers away from using compile=aot
    for setting ivy, we actually fail the build process if the compile
    build variable is used with a message to use our config flags instead.
    
    PR Close angular#34109
    josephperrott authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    c16a79d View commit details
    Browse the repository at this point in the history
  14. fix(language-service): Do not produce diagnostics if metadata for NgM…

    …odule not found (angular#34113)
    
    The language service incorrectly reports an error if it fails to find
    NgModule metadata for a particular Component / Directive. In many cases,
    the use case is legit, particularly in test.
    
    This commit removes such diagnostic message and cleans up the interface
    for `TypeScriptHost.getTemplateAst()`.
    
    PR closes angular/vscode-ng-language-service#463
    
    PR Close angular#34113
    kyliau authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    39722df View commit details
    Browse the repository at this point in the history
  15. fix(language-service): use host.error() instead of console.error() (a…

    …ngular#34114)
    
    `host.error()` would log to file, and makes error messages much easier
    to inspect because entries are time-stamped.
    
    PR Close angular#34114
    kyliau authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    99320e1 View commit details
    Browse the repository at this point in the history
  16. fix(language-service): Make missing module suggestion instead of error (

    angular#34115)
    
    If a Component or Directive is not part of any NgModule, the language
    service currently produces an error message. This should not be an
    error. Instead, it should be a suggestion.
    
    This PR removes `ng.DiagnosticKind`, and instead reuses
    `ts.DiagnosticCategory`.
    
    PR closes angular/vscode-ng-language-service#458
    
    PR Close angular#34115
    kyliau authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    7eccbcd View commit details
    Browse the repository at this point in the history
  17. Copy the full SHA
    0406734 View commit details
    Browse the repository at this point in the history
  18. docs: update title of v9 injectable migration guide (angular#34125)

    The missing-injectable migration has been updated to handle a breaking change that is
    unrelated to missing ´@Injectable` decorators. Though, the breaking change will be handled
    as part of this migration since we did not want to create another migration (with all the boilerplate etc.)
    
    The guide has been already updated to reflect the new pattern the migration handles, but we
    should also rename the title of the guide to something that also mentions the other pattern.
    
    Not renaming the guide URL since it is referenced in past releases and it's safer to keep the old
    URL. The important thing is to change the actual rendered title.
    
    PR Close angular#34125
    devversion authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    5b04abd View commit details
    Browse the repository at this point in the history
  19. refactor(core): update missing-injectable migration description to ma…

    …tch guide (angular#34125)
    
    Updates the description of the `missing-injectable` migration to mention the second pattern
    that will be automatically handled.
    
    PR Close angular#34125
    devversion authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    e7cc1d6 View commit details
    Browse the repository at this point in the history
  20. refactor(compiler-cli): remove bogus packages/compiler-cli/integratio…

    …ntest/benchmarks/ (angular#34142)
    
    nobody uses this folder for anything and the README.md is misleading.
    
    PR Close angular#34142
    IgorMinar authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    5a7f334 View commit details
    Browse the repository at this point in the history
  21. build: support yarn 1.19.x (angular#34143)

    PR Close angular#34143
    IgorMinar authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    b8eb2f2 View commit details
    Browse the repository at this point in the history
  22. fix(bazel): reenable template type checking in ng_module (angular#34144)

    due to an unfortunate condition in https://github.com/angular/angular/blob/168abc6d6f52713383411b14980e104c99bfeef5/packages/compiler-cli/src/ngtsc/program.ts#L430-L434 the typechecking has been disabled when running under bazel + ivy.
    
    As far as I can tell the ivyTemplateTypeCheck flag is now obsolete, so removing this
    code from ng_module.bzl is desirable. I'll send a separate PR to remove the flag completely.
    
    PR Close angular#34144
    IgorMinar authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    d8792b3 View commit details
    Browse the repository at this point in the history
  23. build: re-enable template type-checking for various targets across th…

    …e repo (angular#34144)
    
    Various targets have their template type-checking disabled in the past.
    
    There is no reason for this any more.
    
    The only target that was tricky was packages/examples/core:core_examples
    which was quite broken and I had to fix it up.
    
    Template typechecking is still disabled under blaze, see FW-1753 for more
    info.
    
    PR Close angular#34144
    IgorMinar authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    1421eff View commit details
    Browse the repository at this point in the history
  24. ci: replace fixme-ivy-aot with no-ivy-aot tag for //packages/language…

    …-service/test (angular#34144)
    
    This target will need to be completely updated once the language service supports Ivy.
    
    PR Close angular#34144
    IgorMinar authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    180a41a View commit details
    Browse the repository at this point in the history
  25. fix(ivy): i18n - correctly parse XLIFF placeholders (angular#34155)

    The ViewEngine translation extractor does not convert `-` to `_` for
    placeholders that represent custom elements. For example `<app-component>`
    gets converted to placeholders like `START_TAG_APP-COMPONENT`.
    
    In `$localize` placeholders are expected to be snake-case, not kebab-case.
    So we must normalize them when parsing a translation file that might have
    been created via the View Engine translation extractor.
    
    The `$localize` extraction code will normalize these placeholders when
    creating translation files in the first place.
    
    Fixes angular#34151
    
    PR Close angular#34155
    petebacondarwin authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    d529b55 View commit details
    Browse the repository at this point in the history
  26. Copy the full SHA
    e6dbcd0 View commit details
    Browse the repository at this point in the history
  27. fix(common): reflect input type in NgForOf context (angular#33997)

    Fixes `NgForOf` not reflecting the type of its input in the `NgForOfContext`.
    
    PR Close angular#33997
    crisbeto authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    a6b6d74 View commit details
    Browse the repository at this point in the history
  28. fix(common): reflect input type in NgIf context (angular#33997)

    Fixes the content of `NgIf` being typed to any.
    
    Fixes angular#31556.
    
    PR Close angular#33997
    crisbeto authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    02958c0 View commit details
    Browse the repository at this point in the history
  29. refactor(ivy): remove unnecessary fac wrapper (angular#34076)

    For injectables, we currently generate a factory function in the
    injectable def (prov) that delegates to the factory function in
    the factory def (fac). It looks something like this:
    
    ```
    factory: function(t) { return Svc.fac(t); }
    ```
    
    The extra wrapper function is unnecessary since the args for
    the factory functions are the same. This commit changes the
    compiler to generate this instead:
    
    ```
    factory: Svc.fac
    ```
    
    Because we are generating less code for each injectable, we
    should see some modest code size savings. AIO's main bundle
    is about 1 KB smaller.
    
    PR Close angular#34076
    kara authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    755d2d5 View commit details
    Browse the repository at this point in the history
  30. fix(bazel): don't rely on @angular/core being as a depedency to insta…

    …ll @angular/bazel (angular#34181)
    
    With this change we fix the logic to detect if a package is installed, removing a package and add a package by using the CLI schematic helpers.
    
    Also we save `@angular/bazel` package directly as a `devDependency` when doing `ng-add`.
    
    Closes angular#34164
    
    PR Close angular#34181
    alan-agius4 authored and mhevery committed Dec 2, 2019
    Copy the full SHA
    0cd8431 View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2019

  1. Copy the full SHA
    d4b8368 View commit details
    Browse the repository at this point in the history
  2. style: enforce disallowance of object constructor (angular#33211)

    Applying the `prefer-literal` tslint rule to object enforces the style guide rule https://google.github.io/styleguide/jsguide.html#features-objects-ctor
    
    PR Close angular#33211
    dannyskoog authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    c60d756 View commit details
    Browse the repository at this point in the history
  3. fix(language-service): Insert parentheses for method completion (angu…

    …lar#33860)
    
    This commit leverages the `insertText` field in `ts.CompletionEntry` to
    return a completion text for class methods that includes parentheses.
    
    PR closes angular/vscode-ng-language-service#15
    
    PR Close angular#33860
    kyliau authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    dd944ef View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    56f4e56 View commit details
    Browse the repository at this point in the history
  5. refactor(ivy): do not generate providedIn: null (angular#34116)

    We should only generate the `providedIn` property in injectable
    defs if it has a non-null value. `null` does not communicate
    any information to the runtime that isn't communicated already
    by the absence of the property.
    
    This should give us some modest code size savings.
    
    PR Close angular#34116
    kara authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    67eac73 View commit details
    Browse the repository at this point in the history
  6. test(ngcc): tidy up helper function (angular#34135)

    Thanks to @gkalpakl for the better regular expression approach.
    
    PR Close angular#34135
    petebacondarwin authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    e12933a View commit details
    Browse the repository at this point in the history
  7. refactor(ivy): i18n - remove hack around TS tagged literals (angular#…

    …34135)
    
    When first written there was no way to specify the raw text when
    programmatically creating a template tagged literal AST node.
    
    This is now fixed in TS and so the hack is no longer needed.
    
    PR Close angular#34135
    petebacondarwin authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    80d326b View commit details
    Browse the repository at this point in the history
  8. Copy the full SHA
    0971d30 View commit details
    Browse the repository at this point in the history
  9. Copy the full SHA
    599a55e View commit details
    Browse the repository at this point in the history
  10. refactor(ivy): i18n - store legacy message ids separately to custom i…

    …ds (angular#34135)
    
    This change will enable the Angular compiler to provide these legacy
    message ids by default, which will solve problems with ngcc not knowing
    whether to generate legacy ids or not.
    
    PR Close angular#34135
    petebacondarwin authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    8e96b45 View commit details
    Browse the repository at this point in the history
  11. refactor(compiler): i18n - render legacy i18n message ids (angular#34135

    )
    
    Now that `@angular/localize` can interpret multiple legacy message ids in the
    metablock of a `$localize` tagged template string, this commit adds those
    ids to each i18n message extracted from component templates, but only if
    the `enableI18nLegacyMessageIdFormat` is not `false`.
    
    PR Close angular#34135
    petebacondarwin authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    e524322 View commit details
    Browse the repository at this point in the history
  12. refactor(ngcc): store whether to render legacy i18n message ids in th…

    …e bundle (angular#34135)
    
    Placing this configuration in to the bundle avoids having to pass the
    value around through lots of function calls, but also could enable
    support for different behaviour per bundle in the future.
    
    PR Close angular#34135
    petebacondarwin authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    cebe49d View commit details
    Browse the repository at this point in the history
  13. fix(ngcc): render legacy i18n message ids by default (angular#34135)

    By ensuring that legacy i18n message ids are rendered into the templates
    of components for packages processed by ngcc, we ensure that these packages
    can be used in an application that may provide translations in a legacy
    format.
    
    Fixes angular#34056
    
    PR Close angular#34135
    petebacondarwin authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    f16f6a2 View commit details
    Browse the repository at this point in the history
  14. Copy the full SHA
    f6a6f26 View commit details
    Browse the repository at this point in the history
  15. Copy the full SHA
    4148559 View commit details
    Browse the repository at this point in the history
  16. fix(ivy): i18n - trim whitespace when parsing metadata (angular#34154)

    It is possible for HTML formatters to add whitespace
    around the content of `i18n` attribute values. This can
    make the meaning and custom ids brittle to simple
    whitespace formatting.
    
    This commit ensures that the metadata string extracted
    from HTML `i18n` attributes is trimmed before being parsed
    into meaning, description and custom id.
    
    PR Close angular#34154
    petebacondarwin authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    6b1a471 View commit details
    Browse the repository at this point in the history
  17. Copy the full SHA
    539d8f0 View commit details
    Browse the repository at this point in the history
  18. fix(ivy): incorrectly validating html foreign objects inside svg (ang…

    …ular#34178)
    
    Fixes ngtsc incorrectly logging an unknown element diagnostic for HTML elements that are inside an SVG `foreignObject` with the `xhtml` namespace.
    
    Fixes angular#34171.
    
    PR Close angular#34178
    crisbeto authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    e6909bd View commit details
    Browse the repository at this point in the history
  19. Copy the full SHA
    f84f362 View commit details
    Browse the repository at this point in the history
  20. fix(docs-infra): avoid version mismatch error when using local Angula…

    …r packages (angular#34213)
    
    The local Angular packages used to build `aio/` when running
    `yarn setup-local`/`yarn build-local` (and related commands), are built
    by bazel. Bazel, determines the version to use for these locally built
    packages based on the latest tag for a commit on the current branch.
    (This works as expected during the release, because the packages are
    built on the correct branch with up-to-date tags.)
    
    During local development, however, this often leads to generating older
    versions than what the current `@angular/cli` version is compatible
    with, if the user has not fetched the latest tags from `angular/angular`
    or the branch has not been rebased recently.
    
    Previously, the above (common) situation would result in a build error
    by the CLI. (Note that this would be a false error, because in this case
    the version set by bazel would not reflect the actual version of the
    local packages.) The solution would be for the user to fetch the latest
    tags from `angular/angular`, rebase their branch and run a bazel build
    again (ensuring that it would actually build anew and not emit cached
    artifacts). This was cumbersome and most people didn't even know about
    it.
    
    This commit avoids this error and the associated pain-points by
    overwriting the versions of the installed local packages with fake
    versions based on the ones in the lockfile, which are guaranteed to be
    compatible with the currently used CLI version.
    
    Fixes angular#34208
    
    PR Close angular#34213
    gkalpak authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    671dead View commit details
    Browse the repository at this point in the history
  21. Copy the full SHA
    86d5472 View commit details
    Browse the repository at this point in the history
  22. feat: add direction property to locale files (angular#33556)

    PR Close angular#33556
    Feliks Khantsis authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    3c24384 View commit details
    Browse the repository at this point in the history
  23. feat: update the locale files (angular#33556)

    PR Close angular#33556
    Feliks Khantsis authored and mhevery committed Dec 3, 2019
    Copy the full SHA
    15d3e74 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2019

  1. docs: remove information about which version of Firefox started suppo…

    …rting custom elements (angular#34007)
    
    PR Close angular#34007
    ahasall authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    8f102fe View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    627814c View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    bd820fd View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    2cf25fa View commit details
    Browse the repository at this point in the history
  5. Copy the full SHA
    5a52990 View commit details
    Browse the repository at this point in the history
  6. Copy the full SHA
    fcbc38c View commit details
    Browse the repository at this point in the history
  7. perf(ivy): avoid duplicate state lookup and default function paramete…

    …rs (angular#34183)
    
    Includes a few minor performance improvements:
    * In the `nextContext` instruction we assign a new LView to the `LFrame.contextLView` and then we immediately look it up to get its context. We don't need to do that since we know the view that was assigned already.
    * Removes the default value for the `level` parameter of `nextContextImpl` because it generates more code in es5 and is internal-only.
    * Removes the default parameter from `setActiveHostElement` since it generates extra code and it's an internal function.
    * Makes a check in `setElementExitFn` more strict since we're guaranteed for the value to match the type.
    
    PR Close angular#34183
    crisbeto authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    a295255 View commit details
    Browse the repository at this point in the history
  8. Copy the full SHA
    e315215 View commit details
    Browse the repository at this point in the history
  9. fix(ivy): support ICUs with pipes (angular#34198)

    Prior to this commit, i18n runtime code failed with the exception saying that no provider was found for ChangeDetectorRef for a pipe used in ICU. The problem happened because the underlying `createViewRef` function was not taking into account IcuContainer as a valid TNodeType. This commit updates the `createViewRef` function to return corresponding ViewRef for TNodeType.IcuContainer.
    
    PR Close angular#34198
    AndrewKushnir authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    60b13d9 View commit details
    Browse the repository at this point in the history
  10. fix(ivy): correctly support ngProjectAs on templates (angular#34200)

    Prior to this commit, if a template (for example, generated using structural directive such as *ngIf) contains `ngProjectAs` attribute, it was not included into attributes array in generated code and as a result, these templates were not matched at runtime during content projection. This commit adds the logic to append `ngProjectAs` values into corresponding element's attribute arrays, so content projection works as expected.
    
    PR Close angular#34200
    AndrewKushnir authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    c50faa9 View commit details
    Browse the repository at this point in the history
  11. refactor(ivy): check metadata presence before compiling Type in R3Tes…

    …tBed (angular#34204)
    
    Prior to this commit, there was no check in R3TestBed to verify that metadata is resolved using a given Type. That leads to some cryptic error messages (when TestBed tries to compile a Type without having metadata) in case TestBed override functions receive unexpected Types (for example a Directive is used in `TestBed.overrideComponent` call). This commit adds the necessary checks to verify metadata presence before TestBed tries to (re)compile a Type.
    
    PR Close angular#34204
    AndrewKushnir authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    9b6a1b8 View commit details
    Browse the repository at this point in the history
  12. refactor(common): add defaults to new generic parameters (angular#34206)

    This is a follow-up to angular#33997 where some new generic parameters were added without defaults which is technically a breaking change. These changes add the defaults.
    
    PR Close angular#34206
    crisbeto authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    cca2616 View commit details
    Browse the repository at this point in the history
  13. fix(core): ensure that ngI18nClosureMode is guarded (angular#34211)

    If the `ngI18nClosureMode` global check actually makes it
    through to the runtime, then checks for its existence should
    be guarded to prevent `Reference undefined` errors in strict
    mode.
    
    (Normally, it is stripped out by dead code elimination during
    build optimization.)
    
    PR Close angular#34211
    petebacondarwin authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    bc7cde0 View commit details
    Browse the repository at this point in the history
  14. fix(compiler-cli): ensure that ngI18nClosureMode is guarded in gene…

    …rated code (angular#34211)
    
    If the `ngI18nClosureMode` global check actually makes it
    through to the runtime, then checks for its existence should
    be guarded to prevent `Reference undefined` errors in strict
    mode.
    
    (Normally, it is stripped out by dead code elimination during
    build optimization.)
    
    This comment ensures that generated template code guards
    this global check.
    
    PR Close angular#34211
    petebacondarwin authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    c4ce246 View commit details
    Browse the repository at this point in the history
  15. build: add karma-sauce-launcher dependency for karma_web_test macro (a…

    …ngular#34220)
    
    Currently our bazel saucelabs tests silently fail as it does not have
    karma-sauce-launcher available from npm.  By providing it as expected
    we will properly run the bazel saucelabs tests once more
    
    PR Close angular#34220
    josephperrott authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    5e94f9a View commit details
    Browse the repository at this point in the history
  16. test(ivy): update ngI18nClosureMode flag usage in tests (angular#34224

    )
    
    Commit that updated i18n message ids rendering (angular@e524322) also introduced a couple tests that relied on a previous version of `ngI18nClosureMode` flag format. The `ngI18nClosureMode` usage format was changed in the followup commit (angular@c4ce246) and triggered a problem with the mentioned tests. This commit updates the tests to a new `ngI18nClosureMode` flag usage format.
    
    PR Close angular#34224
    AndrewKushnir authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    634887c View commit details
    Browse the repository at this point in the history
  17. fix(common): update closure locales to include directionality data (a…

    …ngular#34240)
    
    When directionality data was added to @angular/common locales, only
    the externally used locales were updated.  We need to additionally
    update the closure locales which are synced into google3.
    
    PR Close angular#34240
    josephperrott authored and mhevery committed Dec 4, 2019
    Copy the full SHA
    f9e959e View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2019

  1. Copy the full SHA
    e71d151 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    28ef1af View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    c0869ec View commit details
    Browse the repository at this point in the history
  4. fix(ngcc): ensure that bundle rootDir is the package path (angular#…

    …34212)
    
    Previously the `rootDir` was set to the entry-point path but
    this is incorrect if the source files are stored in a directory outside
    the entry-point path. This is the case in the latest versions of the
    Angular CDK.
    
    Instead the `rootDir` should be the containing package path, which is
    guaranteed to include all the source for the entry-point.
    
    ---
    
    A symptom of this is an error when ngcc is trying to process the source of
    an entry-point format after the entry-point's typings have already been
    processed by a previous processing run.
    
    During processing the `_toR3Reference()` function gets called which in turn
    makes a call to `ReflectionHost.getDtsDeclaration()`. If the typings files
    are also being processed this returns the node from the dts typings files.
    
    But if we have already processed the typings files and are now processing
    only an entry-point format without typings, the call to
    `ReflectionHost.getDtsDeclaration()` returns `null`.
    
    When this value is `null`, a JS `valueRef` is passed through as the DTS
    `typeRef` to the `ReferenceEmitter`. In this case, the `ReferenceEmitter`
    fails during `emit()` because no `ReferenceEmitStrategy` is able to provide
    an emission:
    
    1) The `LocalIdentifierStrategy` is not able help because in this case
    `ImportMode` is `ForceNewImport`.
    2) The `LogicalProjectStrategy` cannot find the JS file below the `rootDir`.
    
    The second strategy failure is fixed by this PR.
    
    Fixes angular/ngcc-validation#495
    
    PR Close angular#34212
    petebacondarwin authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    61e8ed6 View commit details
    Browse the repository at this point in the history
  5. test(ngcc): update ngcc integration test dependencies (angular#34212)

    This commit updates `@angular/material` and `@angular/cdk` to the
    latest release candidate. Doing so exposed a bug in ngcc, which is fixed
    by the preceding commit. Also the layout of these libraries changed, so
    the checks in the integration test need a bit of tweaking.
    
    PR Close angular#34212
    petebacondarwin authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    a188312 View commit details
    Browse the repository at this point in the history
  6. Copy the full SHA
    542f236 View commit details
    Browse the repository at this point in the history
  7. refactor(platform-browser): avoid mutable exports. (angular#34207)

    Previously, browser_util would export a mutable `let` binding that was
    initialized as a side-effect of `BrowserDetection.setup()`. This change
    refactors the mutable binding into a `const` binding that is immediately
    initialized in its initialized.
    
    This is functionally equivalent, but makes it easier for module
    optimizers such as Closure Compiler to track down side effects and prune
    modules. It is also arguably cleaner to read (no worries about later
    changes to the apparently mutable but effectively const binding).
    
    PR Close angular#34207
    mprobst authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    37bb901 View commit details
    Browse the repository at this point in the history
  8. refactor(upgrade): avoid mutable exports. (angular#34232)

    Previously, create_angular_testing_module would export a mutable `let`
    binding. The binding is already exporting using an accessor function
    though, so the export on the let variable seems like an accidental
    oversight.
    
    This is functionally equivalent, but makes it easier for module
    optimizers such as Closure Compiler to track down side effects and prune
    modules.
    
    PR Close angular#34232
    mprobst authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    1084d4a View commit details
    Browse the repository at this point in the history
  9. build: update to rules_nodejs 0.42.2 (angular#34243)

    This release brings two bug fixes we're waiting on:
    1) fix(builtin): additional_root_paths in pkg_web should also include paths in genfiles and bin dirs (bazelbuild/rules_nodejs#1402), which is a pre-req for angular#34112
    2) fix(typescript): fix for cross platform ts_devserver issue angular#1409 (bazelbuild/rules_nodejs#1413) which resolves ts_devserver launcher template is platform specific angular#1409 (bazelbuild/rules_nodejs#1409) --- this fixes an OSX developer workflow with --config=remote
    
    This does not upgrade integration/bazel or integation/schematics. That will be done in another PR.
    
    PR Close angular#34243
    gregmagolan authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    ecb29de View commit details
    Browse the repository at this point in the history
  10. ci: update saucelabs to use angular-framework account (angular#34233)

    Currently all saucelabs usage in our repos is done using the same
    account angular-ci.  By migrating to use individual accounts
    for each repo, we can better track the usage for each repo as well
    as providing concurrency limiting on a per repo basis.
    
    Additionally, we no longer use two separate accounts based on being
    on master or a PR branch, so this logic can be removed.
    
    PR Close angular#34233
    josephperrott authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    023c9be View commit details
    Browse the repository at this point in the history
  11. docs: add David Shevitz to about page (angular#34222)

    PR Close angular#34222
    David Shevitz authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    0213417 View commit details
    Browse the repository at this point in the history
  12. Copy the full SHA
    de62d8e View commit details
    Browse the repository at this point in the history
  13. fix(docs-infra): make header full-width and panels full-width on mobi…

    …le screens (angular#34188)
    
    On events page the header was not able to take full width when body exceeds viewport width of the screen So made the below body go overflow-x auto and resources page was taking 80% of the width which is okay on desktop but on mobile it should take 100% width put a media quer for it.
    
    Fixes angular#34163
    
    PR Close angular#34188
    ajitsinghkaler authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    421dba0 View commit details
    Browse the repository at this point in the history
  14. build: set upper version limit for yarn to <2 (angular#34236)

    Rather than bumping up the allowed version of yarn on each release
    we should instead just allow for anything within the major version
    1 range.
    
    PR Close angular#34236
    josephperrott authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    0341f32 View commit details
    Browse the repository at this point in the history
  15. build: Enable ivy in google3 if ng_module attr is True (angular#34238)

    This commit creates a way for `ng_module` rule to compile with Ivy based
    on the `ivy` attribute. This enables google3 targets to pick the
    compiler without using `define` flags.
    
    PR Close angular#34238
    kyliau authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    d6f2788 View commit details
    Browse the repository at this point in the history
  16. perf: rename index to index_aot (angular#34258)

    The renaming is needed so that js-web-frameworks benchmark test works
    inside google.
    
    PR Close angular#34258
    kyliau authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    0d95c08 View commit details
    Browse the repository at this point in the history
  17. Copy the full SHA
    2ebaa51 View commit details
    Browse the repository at this point in the history
  18. Copy the full SHA
    148a060 View commit details
    Browse the repository at this point in the history
  19. Copy the full SHA
    7a86a32 View commit details
    Browse the repository at this point in the history
  20. refactor(language-service): refactor the method TypeWrapper.name and …

    …PipeSymbol.selectSignature (angular#34177)
    
    PR Close angular#34177
    ivanwonder authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    a91ca99 View commit details
    Browse the repository at this point in the history
  21. fix(language-service): Remove getExternalFiles() (angular#34260)

    This commit removes the `getExternalFiles()` from the tsserver plugin.
    This API is no longer needed now that we do not intend to support
    external templates under the plugin mode.
    Instead, the external files are added to the project only when they are
    opened by the user.
    For complete discussion, see angular/vscode-ng-language-service#473
    
    PR closes angular/vscode-ng-language-service#469
    PR closes angular/vscode-ng-language-service#473
    
    PR Close angular#34260
    kyliau authored and AndrewKushnir committed Dec 5, 2019
    Copy the full SHA
    f05e171 View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2019

  1. Copy the full SHA
    3805172 View commit details
    Browse the repository at this point in the history
  2. fix(language-service): Simplify resolution logic in banner (angular#3…

    …4262)
    
    Due to a bug in the existing banner, `typescript` module was require-d
    instead of reusing the module passed in from tsserver.
    This bug is caused by some source files in language-service that imports
    `typescript` instead of `typescript/lib/tsserverlibrary`.
    This is not an unsupported use case, it's just that when typescript is
    resolved in the banner we have to be very careful about which modules to
    "require".
    The convoluted logic in the banner makes it very hard to detect
    anomalies. This commit cleans it up and removes a lot of unneeded code.
    
    This commit also removes `ts` import in typescript_host.ts and use `tss`
    instead to make it less confusing.
    
    PR Close angular#34262
    kyliau authored and AndrewKushnir committed Dec 6, 2019
    Copy the full SHA
    613dc11 View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    7a6e326 View commit details
    Browse the repository at this point in the history
  4. feat(docs-infra): add the ability to expose globals (angular#34237)

    Adds the ability to expose global symbols in the API docs via the `@globalApi` tag. Also supports optionally setting a namespace which will be added to the name automatically (e.g. `foo` will be renamed to `ng.foo`). Relevant APIs should also be exported through the `global.ts` file which will show up under `core/global`.
    
    PR Close angular#34237
    crisbeto authored and AndrewKushnir committed Dec 6, 2019
    Copy the full SHA
    e7cf1e0 View commit details
    Browse the repository at this point in the history
  5. ci: update sha of components repo for components unit test integratio…

    …ns (angular#34280)
    
    Before updating to remove the compile build variable, we must update
    the components unit test integrations to a sha  in the components
    repo which no longer relies on the compile build variable.
    
    PR Close angular#34280
    josephperrott authored and AndrewKushnir committed Dec 6, 2019
    Copy the full SHA
    89ef77f View commit details
    Browse the repository at this point in the history
  6. build: remove compile build variable (angular#34280)

    Remove the remaining check for compile build variable in the ng_module
    rule.  Now that components is no longer relying on this build variable
    we can safely remove it from our repository.
    
    We will leave the remaining check for if the compile build variable is
    used within our own repo, with plans to remove it in a couple months.
    It is being kept in place to ensure that uncommitted local scripts for
    our own development that we have locally, kill error as expected if
    they still reference the compile build variable.
    
    PR Close angular#34280
    josephperrott authored and AndrewKushnir committed Dec 6, 2019
    Copy the full SHA
    f72de51 View commit details
    Browse the repository at this point in the history
  7. fix(ivy): properly parenthesize ternary expressions when emitted (ang…

    …ular#34221)
    
    Previously, ternary expressions were emitted as:
    
    condExpr ? trueCase : falseCase
    
    However, this causes problems when ternary operations are nested. In
    particular, a template expression of the form:
    
    a?.b ? c : d
    
    would have compiled to:
    
    a == null ? null : a.b ? c : d
    
    The ternary operator is right-associative, so that expression is interpreted
    as:
    
    a == null ? null : (a.b ? c : d)
    
    when in reality left-associativity is desired in this particular instance:
    
    (a == null ? null : a.b) ? c : d
    
    This commit adds a check in the expression translator to detect such
    left-associative usages of ternaries and to enforce such associativity with
    parentheses when necessary.
    
    A test is also added for the template type-checking expression translator,
    to ensure it correctly produces right-associative expressions for ternaries
    in the user's template.
    
    Fixes angular#34087
    
    PR Close angular#34221
    alxhub authored and AndrewKushnir committed Dec 6, 2019
    Copy the full SHA
    718d7fe View commit details
    Browse the repository at this point in the history
  8. fix(ivy): do not invoke change detection for destroyed views (angular…

    …#34241)
    
    Prior to this commit, calling change detection for destroyed views resulted in errors being thrown in some cases. This commit adds a check to make sure change detection is invoked for non-destroyed views only.
    
    PR Close angular#34241
    AndrewKushnir committed Dec 6, 2019
    Copy the full SHA
    b342a69 View commit details
    Browse the repository at this point in the history
  9. fix(compiler): ensure localized strings are ES5 compatible for JIT mo…

    …de (angular#34265)
    
    Previously the JIT evaluated code for ivy localized strings included
    backtick tagged template strings, which are not compatible with ES5
    in legacy browsers such as IE 11.
    
    Now the generated code is ES5 compatible.
    
    Fixes angular#34246
    
    PR Close angular#34265
    petebacondarwin authored and AndrewKushnir committed Dec 6, 2019
    Copy the full SHA
    a12b5f9 View commit details
    Browse the repository at this point in the history
  10. fix(ivy): align TestBed.overrideProvider with what happens with provi…

    …ders in TestBed providers array (angular#33769)
    
    In Ivy, if you do:
    `TestBed.configureTestingModule({providers: [{provide: Service}]});`
    the injector will attempt to inject Service as if it was simply listed
    in the providers array like `{providers: [Service]}`
    This fixes an inconsistency when similarly providing an override with no
    `useValue` or `useFactory`.
    
    PR Close angular#33769
    atscott authored and AndrewKushnir committed Dec 6, 2019
    Copy the full SHA
    a1d0f1e View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2019

  1. Copy the full SHA
    f98aeca View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    d3069db View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    2f3d41f View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    7823c23 View commit details
    Browse the repository at this point in the history
  5. fix(ivy): throw a better error when DI can't inject a ctor param (ang…

    …ular#33739)
    
    Occasionally a factory function needs to be generated for an "invalid"
    constructor (one with parameters types which aren't injectable). Typically
    this happens in JIT mode where understanding of parameters cannot be done in
    the same "up-front" way that the AOT compiler can.
    
    This commit changes the JIT compiler to generate a new `invalidFactoryDep`
    call for each invalid parameter. This instruction will error at runtime if
    called, indicating both the index of the invalid parameter as well as (via
    the stack trace) the factory function which was generated for the type being
    constructed.
    
    Fixes angular#33637
    
    PR Close angular#33739
    alxhub authored and AndrewKushnir committed Dec 9, 2019
    Copy the full SHA
    13c2fad View commit details
    Browse the repository at this point in the history
  6. fix(compiler): switch to modern diagnostic formatting (angular#34234)

    The compiler exports a `formatDiagnostics` function which consumers can use
    to print both ts and ng diagnostics. However, this function was previously
    using the "old" style TypeScript diagnostics, as opposed to the modern
    diagnostic printer which uses terminal colors and prints additional context
    information.
    
    This commit updates `formatDiagnostics` to use the modern formatter, plus to
    update Ivy's negative error codes to Angular 'NG' errors.
    
    The Angular CLI needs a little more work to use this function for printing
    TS diagnostics, but this commit alone should fix Bazel builds as ngc-wrapped
    goes through `formatDiagnostics`.
    
    PR Close angular#34234
    alxhub authored and AndrewKushnir committed Dec 9, 2019
    Copy the full SHA
    9fa2c39 View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2019

  1. fix(ngcc): report diagnostics from migrations (angular#34014)

    When ngcc is analyzing synthetically inserted decorators from a
    migration, it is typically not expected that any diagnostics are
    produced. In the situation where a diagnostic is produced, however, the
    diagnostic would not be reported at all. This commit ensures that
    diagnostics in migrations are reported.
    
    PR Close angular#34014
    JoostK authored and AndrewKushnir committed Dec 10, 2019
    Copy the full SHA
    0f0fd25 View commit details
    Browse the repository at this point in the history
  2. fix(ngcc): log Angular error codes correctly (angular#34014)

    Replaces the "TS-99" sequence with just "NG", so that error codes are
    logged correctly.
    
    PR Close angular#34014
    JoostK authored and AndrewKushnir committed Dec 10, 2019
    Copy the full SHA
    95429d5 View commit details
    Browse the repository at this point in the history
  3. fix(ngcc): fix undecorated child migration when exportAs is present (

    …angular#34014)
    
    The undecorated child migration creates a synthetic decorator, which
    contained `"exportAs": ["exportName"]` as obtained from the metadata of
    the parent class. This is a problem, as `exportAs` needs to specified
    as a comma-separated string instead of an array. This commit fixes the
    bug by transforming the array of export names back to a comma-separated
    string.
    
    PR Close angular#34014
    JoostK authored and AndrewKushnir committed Dec 10, 2019
    Copy the full SHA
    ead169a View commit details
    Browse the repository at this point in the history
  4. docs: ng-conf marketing image

    Update ng-conf marketing image to reflect 2020 theme
    owenmecham committed Dec 10, 2019
    Copy the full SHA
    29b896d View commit details
    Browse the repository at this point in the history
  5. docs: ng-conf 2020 added

    Added ng-conf 2020 marketing info to events and announcements
    owenmecham committed Dec 10, 2019
    Copy the full SHA
    e3ace0e View commit details
    Browse the repository at this point in the history
  6. docs: ng-conf 2020 updates

    Updated announcement duration and html formatting
    owenmecham committed Dec 10, 2019
    Copy the full SHA
    00e6f03 View commit details
    Browse the repository at this point in the history
  7. docs: ng-conf marketing image

    Update ng-conf marketing image to reflect 2020 theme
    owenmecham committed Dec 10, 2019
    Copy the full SHA
    5939841 View commit details
    Browse the repository at this point in the history
  8. Copy the full SHA
    2b7fd55 View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2019

  1. docs: ng-conf 2020 added

    Added ng-conf 2020 marketing info to events and announcements
    owenmecham committed Dec 11, 2019
    Copy the full SHA
    f078dd0 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    5a1840f View commit details
    Browse the repository at this point in the history