Testing double-fetching of `module`/`nomodule` JS code (including [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc))
```
```
Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
|IE/Edge|Firefox|Chrome|Safari |fetches module|fetches nomodule|executes| |
|:-----:|:-----:|:----:|:-----:|:------------:|:--------------:|:------:|----|
| 15- | 59- | 55- |10.0- | v | v |nomodule|❌ |
| 16 | | |10.1/3 | v | v |module |❌ |
| 17-18 | | | | double! | v |module |❌❌|
| | |56-60 | | | v |nomodule|✅ |
| | 60+ | 61+ |11.0+* | v | |module |✅ |
Summary:
- ✅ no browser does double execution (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc))
- ✅ modern Chrome and Firefox never fetch more than necessary
- ⚠ Safari <11 may or may not double fetch (even with the hack); it does not on small test pages, but in real complex pages it does (it seems deterministic, but not clear what's the exact trigger)
- ⚠ Safari 11+ may still double fetch in some cases (see https://bugs.webkit.org/show_bug.cgi?id=194337)
- ❌ pre-2018 browsers do double fetches
- ❌❌ latest Edge does triple fetch (2x module + 1x nomodule)