angular/packages
JiaLiPassion f35f7c6d37 fix(zone.js): fesm2015 bundle should also be strict module. (#40456)
Close #40215

`fesm2015/zone.js` is built to `esm` bundle with rollup, so the 'use strict';
statement is not generated in the bundle, even we put the 'use strict' in the src code,
rollup removes the code in the final bundle.

So if we load the `fesm2015/zone.js` as a module, such as `ng serve`, in the index.html

```
<script src="polyfills.js" type="module"></script>
```

Everything works fine, since polyfills.js is loaded as `module`, so it is always `strict`.

But in `ng test`, webpack concat the `zone.js` and loaded into the karma html. For other app and
 test code, they are still `strict` since they are `module` because they have `export/import`
statement, but `zone.js` is a bundle without `export`, it is a `side effect` bundle, so after
 loaded by webpack, it becomes non-strict. Which causes some issues, such as #40215,
the root cause is the `this` context should be `undefined` but treated as `Window` in `non-strict` mode.

```
Object.prototype.toString.apply(undefined);
// should be [object undefined], but it is [object Window] in non-strict mode.

// zone.js patched version of toString
Object.prototype.toString = function() {
  ...
  // in non-strict mode, this is Window
  return originalObjectPrototypeToString.call(this);
}

```

So in this commit, `'use strict';` is always added to the `esm` bundles.

PR Close #40456
2021-01-19 09:16:41 -08:00
..
animations fix(animations): implement getPosition in browser animation builder (#39983) 2020-12-08 16:24:41 -08:00
bazel docs: remove duplicated the (#40434) 2021-01-14 11:33:57 -08:00
benchpress build: support building with TypeScript 4.1 (#39571) 2020-11-25 11:10:01 -08:00
common docs: remove duplicated the (#40434) 2021-01-14 11:33:57 -08:00
compiler fix(compiler): correct the KeySpan for animation events and properties (#40347) 2021-01-15 11:38:41 -08:00
compiler-cli refactor(core): Remove the need for explicit static query instruction (#40091) 2021-01-14 13:55:02 -08:00
core fix(core): fix fakeAsync() error messages (#40442) 2021-01-19 09:15:12 -08:00
docs docs(di): fix typo in advanced di doc (#36634) 2020-05-01 09:50:28 -07:00
elements fix(elements): update the view of an OnPush component when inputs change (#39452) 2020-11-06 09:31:46 -08:00
examples fix(core): Allow passing AbstractType to the inject function (#37958) 2020-11-24 10:42:21 -08:00
forms docs: remove duplicated the (#40434) 2021-01-14 11:33:57 -08:00
language-service feat(language-service): Implement getRenameInfo (#40439) 2021-01-15 16:44:30 -08:00
localize docs: update JSDOC comment for the ArbTranslationSerializer (#40354) 2021-01-11 10:40:24 -08:00
misc/angular-in-memory-web-api docs: remove duplicated the (#40434) 2021-01-14 11:33:57 -08:00
platform-browser fix(animations): implement getPosition in browser animation builder (#39983) 2020-12-08 16:24:41 -08:00
platform-browser-dynamic docs: update links to use HTTPS as protocol (#39718) 2020-11-20 12:52:16 -08:00
platform-server build: support building with TypeScript 4.1 (#39571) 2020-11-25 11:10:01 -08:00
private/testing build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
router fix(router): lazy loaded modules without RouterModule.forChild() won't cause an infinite loop (#36605) 2021-01-15 10:39:55 -08:00
service-worker refactor(service-worker): remove work-around for Chrome code highlighting bug (#40234) 2021-01-11 10:42:50 -08:00
upgrade fix(upgrade): fix HMR for hybrid applications (#40045) 2020-12-10 13:40:53 -08:00
zone.js fix(zone.js): fesm2015 bundle should also be strict module. (#40456) 2021-01-19 09:16:41 -08:00
BUILD.bazel build: replace @types/trusted-types dep with minimal type defs (#39211) 2020-10-15 09:08:00 -07:00
circular-deps-test.conf.js fix(platform-webworker): remove platform-webworker and platform-webworker-dynamic (#38846) 2020-09-30 09:13:59 -04:00
empty.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
goog.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
license-banner.txt build: bump year (#34651) 2020-01-13 07:21:43 -08:00
README.md docs: add doc reference to npm package readme (#33911) 2019-11-20 14:46:23 -08:00
system.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
tsconfig-build-no-strict.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-build.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-test.json refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
tsconfig.json fix(platform-webworker): remove platform-webworker and platform-webworker-dynamic (#38846) 2020-09-30 09:13:59 -04:00
types.d.ts build: replace @types/trusted-types dep with minimal type defs (#39211) 2020-10-15 09:08:00 -07:00

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

Usage information and reference details can be found in Angular documentation.

License: MIT