Commit Graph

209 Commits

Author SHA1 Message Date
Tobias Koppers 3601b4bfe3 handle ASI issue between concatenated modules
fixes #11897
2020-11-04 12:02:36 +01:00
Tobias Koppers 1b78895c31 improve handling of ASI in concatenated modules and with imports
fixes #11897
2020-11-02 14:15:12 +01:00
Tobias Koppers 11a7cac537 add useSimpleSourceMap flag to enable/disable OriginalSource for generated code
pass reduced options object to Source.map() function
2020-10-26 16:33:38 +01:00
Tobias Koppers 2ec90b3687 add asset info for `sourceFilename` and `javascriptModule` 2020-10-22 10:47:23 +02:00
Tobias Koppers 20c4eff3e7 Merge branch 'master' into bump-acorn-8 2020-10-07 10:35:13 +02:00
Tobias Koppers 8e562aa260 fix some nitpicks with active state 2020-10-07 09:36:41 +02:00
Tobias Koppers fcca1d649d analyse source code for side effects
mark the module as side effects free in such cases
allow 3rd state TRANSITIVE_ONLY to be side-effect-free but dependencies should still be included (for mini-css-extract-plugin)
2020-10-06 14:10:29 +02:00
Huáng Jùnliàng bd902b37ed chore: bump acorn to 8.0.3 2020-10-02 10:13:10 -04:00
Huáng Jùnliàng d1dd411cb3 workaround upstream bug 2020-10-01 18:05:23 -04:00
Huáng Jùnliàng 48be8c4d26 fix typing 2020-09-30 08:49:06 -04:00
Huáng Jùnliàng e142c50a91 revert AcornOptions hotfix 2020-09-30 08:49:05 -04:00
Huáng Jùnliàng aea7ce053d feat: add logical assignment support 2020-09-30 08:49:05 -04:00
Tobias Koppers 6dad1d0d6b use better hash for renderManifest to avoid unnecessary invalidation
add bootstrap code to content hash
2020-09-28 11:42:05 +02:00
Tobias Koppers d770a55ec0
Merge pull request #11474 from webpack/refactor/concatenation
Refactor module concatenation
2020-09-15 15:14:49 +02:00
Tobias Koppers 145d392143 fixes parsing of 'this' in arrow iife
yarnpkg/berry#1832
2020-09-15 13:46:10 +02:00
Tobias Koppers 9af1d7526b refactor module concatenation to address discovered bugs/edge cases 2020-09-15 12:36:02 +02:00
Tobias Koppers 23e91dbbac move module concatenation bailout checks to Module and for NormalModule to Generator 2020-09-15 12:35:59 +02:00
Tobias Koppers fdd4a7713f add ConcatenationScope 2020-09-15 12:34:50 +02:00
Tobias Koppers 7e85649492 improve target options
infer target properties from different targets and fill defaults from that

custom targets can now be created via `target: false` and a plugin (similar to the other options)

add stubs from universal chunk/wasm loading and module chunk format

add externalsPresets.electron and externalsPresets.electronRenderer

node.__file/dirname: "eval-only"
2020-09-10 11:42:09 +02:00
Tobias Koppers 041dfe15c7
Merge pull request #11440 from webpack/bugfix/hmr-incorrect-dispose
fix incorrect disposing of modules during HMR
2020-09-09 03:50:42 +02:00
Tobias Koppers 12997f0a6c fix incorrect disposing of modules during HMR 2020-09-08 10:25:41 +02:00
Tobias Koppers ed06a7f83a new Worker() support
add support for async anonymous entrypoints from inside the codebase
add worker example
move entry options into Entrypoint and receive them from there
2020-09-08 07:37:20 +02:00
Tobias Koppers 0f089187e4 improve hashing of runtime modules that need a full hash 2020-09-01 18:31:29 +02:00
Tobias Koppers bdeea6ec2f
Merge pull request #11395 from webpack/refactor/asi
refactor how asi handled
2020-09-01 15:47:41 +02:00
Tobias Koppers 962199c288 nitpicks 2020-09-01 11:15:52 +02:00
Tobias Koppers dd6512ddfe add support for IIFE with arrow functions 2020-08-29 01:59:42 +02:00
Ivan Kopeykin 35c56e67ae refactor how asi handled
- add asiSafeExpression helper for JavascriptParser
- use asiSafe flag in DefinePlugin
- try to use (...) instead of Object()
2020-08-28 19:46:56 +03:00
Tobias Koppers 07d863e14c implement enabledChunkLoadingTypes approach
allow chunkLoading per entry
allow custom library/chunkLoading types
2020-08-28 10:59:37 +02:00
Tobias Koppers 6ac97b3f58 move CommonJsChunkFormat into separate plugin 2020-08-28 10:58:02 +02:00
Tobias Koppers b475d5fd0c swap argument for consistency 2020-08-28 10:58:01 +02:00
Tobias Koppers 805d26b0ae unify config options for jsonpFunction and chunkLoadFunction to chunkLoadingGlobal
rename hotUpdateFunction to hotUpdateGlobal
2020-08-28 10:58:00 +02:00
Tobias Koppers b66599ea58 move ArrayPushCallbackChunkFormat into separate plugin 2020-08-28 10:57:58 +02:00
Tobias Koppers c0249af6d1
Merge pull request #11370 from webpack/feature/javascript-parser-improvement
use bitmask instead of array+set in getMemberExpressionInfo
2020-08-28 10:08:22 +02:00
Tobias Koppers 49d9ec5625 cleanup public api and expose JavascriptParser 2020-08-28 01:46:14 +02:00
Tobias Koppers e23bc8ca7c use expression hook for metaProperty
a MetaProperty is an Expression
it's more consistent
2020-08-27 13:03:56 +02:00
Ivan Kopeykin 1556341c13 fix #11310 2020-08-27 12:59:28 +02:00
Ivan Kopeykin a739705ff8 expose consts 2020-08-24 23:04:35 +03:00
Ivan Kopeykin 434c446d91 use bitmask instead of array+set in getMemberExpressionInfo 2020-08-24 22:00:08 +03:00
Tobias Koppers 65710679fb
Merge pull request #11299 from webpack/feature/evaluate-new-regexp
feat: evaluate new RegExp
2020-08-24 18:27:22 +02:00
Tobias Koppers 71cf7f4dc8 add support for reexporting in CommonJS
and necessary refactoring + fixes for that
2020-08-17 21:32:47 +02:00
Tobias Koppers 52cfe09ac7 track statement path in parser instead of only positions 2020-08-17 09:45:50 +02:00
Ivan Kopeykin eb48bb2c61 check that RegExp is not redefined 2020-08-15 12:35:04 +03:00
Ivan Kopeykin ba1f278417 use bitmask in isValidRegExpFlags, add unit test for it 2020-08-15 12:26:50 +03:00
Tobias Koppers 41a8e2ea48 use xor to hash modules instead of sorting them 2020-08-14 10:54:24 +02:00
Ivan Kopeykin 8c6860e6c7 increase coverage 2020-08-09 22:50:38 +03:00
Ivan Kopeykin 9d36bd46b3 feat: evaluate new RegExp 2020-08-09 22:17:19 +03:00
Tobias Koppers 537c6f228c
Merge pull request #11292 from webpack/fix/issue-11283
fix(#11283) bug with switch case
2020-08-08 11:06:01 +02:00
Ivan Kopeykin 8e480b8720 use one block scope for switch 2020-08-08 11:13:38 +03:00
Tobias Koppers fcf2647019
Merge pull request #11257 from webpack/chore/todos-to-defined-types
add more types
2020-08-07 19:29:32 +02:00
Tobias Koppers 1eacb07c95 improve optional chaining handling 2020-08-07 14:45:25 +02:00
Ivan Kopeykin 70c0b28d00 add tests, refactor how optional chaining handles 2020-08-07 14:44:54 +02:00
Ivan Kopeykin 18ae4d16d8 add evaluation to optional chaining 2020-08-07 14:43:40 +02:00
Ivan Kopeykin dfdc554b80 add optional chaining support 2020-08-07 14:43:39 +02:00
Ivan Kopeykin 42cb86bfdc fix(#11283): define extra scope for switch-case 2020-08-07 00:56:35 +03:00
Ivan Kopeykin 8cf511dc94 Merge branch 'master' into chore/todos-to-defined-types 2020-08-06 22:48:20 +03:00
Tobias Koppers dfc8e35f2d enable experiments.importAsync by default
remove experiments.importAwait
2020-08-04 00:47:08 +02:00
Ivan Kopeykin 4fc44a3398 add more types 2020-08-02 23:47:54 +03:00
Tobias Koppers e16bdfda6c refactor used exports analysis, hashing, code generation, optimizations
to keep track of runtimes, used exports depending on runtime

modules can have different hashes and generated code depending on runtime
chunks are only considered as equal for MergeDuplicateChunks and SplitChunks when exports used in contained modules are equal
added `optimization.usedExports: "global"` to opt-out from used exports analysis per runtime
added `splitChunks.usedExports` and `splitChunks.cacheGroups[x].usedExports` to enable/disable used exports comparing for modules
`splitChunks.usedExports` defaults to `true` in production
2020-07-27 22:40:44 +02:00
Ivan Kopeykin 8b0aed4465 fix discussions 2020-07-22 22:49:07 +03:00
Ivan Kopeykin bd858f0d30 add more types 2020-07-22 19:58:08 +03:00
Tobias Koppers c8aff62228 improve handling of side effects with evaluation 2020-07-21 13:00:25 +02:00
Tobias Koppers bc1c5a8f23 refactor evaluation logic 2020-07-21 10:30:12 +02:00
Ivan Kopeykin 5ec7dfd6ac refactor equality comparison, support nullish coalescing in ConstPlugin
- add handleStrictEqualityComparison callback
- add handleAbstractEqualityComparison callback
- rework evaluateIdentifier interface
- add tests
2020-07-21 10:30:10 +02:00
Ivan Kopeykin 3ecc87889c add nullish coalescing support 2020-07-21 10:30:08 +02:00
Tobias Koppers e8ed3d8d3b
Merge pull request #11117 from vankop/add-export-as-from
add export * as namespace from "module"
2020-07-06 22:31:07 +02:00
Tobias Koppers 85edc5c7fa improve code design of ImportMetaPlugin
add missing evaluation for compare operations
refactor duplicate code

add unhandledExpressionMemberChain hook to parser
add evaluateToNumber and types to JavascriptParserHelpers
add undefined to BasicEvaluatedExpression

add import.meta.webpack as webpack major version
2020-07-06 17:13:09 +02:00
Ivan Kopeykin 85715ba2c9 add export * as namespace from "module" 2020-07-03 13:12:58 +03:00
Ivan Kopeykin de18533373 update import.meta
- add evaluation to import.meta and import.meta.url
- bare import.meta is disallowed
2020-06-24 22:47:43 +03:00
Ivan Kopeykin 1beb4e5707 support import.meta 2020-06-23 01:03:52 +03:00
Ivan Kopeykin 104845a419 support import.meta.hot 2020-06-22 18:49:57 +03:00
Mohsen Azimi 042b4ee7d4 Use @ts-expext-error 2020-05-12 14:34:29 +02:00
Tobias Koppers 50ec72a6ca use the full hash on modules that need the full hash of the compilation
use getFullHash runtime module for updating the hash in HMR
2020-04-30 17:57:01 +02:00
Tobias Koppers b9c50fdb09 fix jsdoc documentations 2020-04-28 19:42:58 +02:00
Tobias Koppers b38330754f add hooks for walking parts of classes
import handling of classes and expressions
2020-04-09 15:53:59 +02:00
Ivan Kopeykin cc99b42293 fix InnerGraph for super expression 2020-04-09 01:33:55 +03:00
Mohsen Azimi 7b07a8db66 Upgrade to Prettier 2 2020-03-28 18:20:24 -04:00
evilebottnawi cc02825bed chore: setup cspell 2020-03-13 12:23:42 +03:00
evilebottnawi dafa4cd69a chore: setup cspell 2020-03-12 19:51:26 +03:00
evilebottnawi 09197da090 feat: `bigint` for the `DefinePlugin` plugin 2020-03-09 10:57:22 +01:00
evilebottnawi 784ff508d0 feat: `bigint` for the `DefinePlugin` plugin 2020-03-09 10:57:14 +01:00
evilebottnawi 1308ae7e8e feat: `bigint` for the `DefinePlugin` plugin 2020-03-09 10:57:05 +01:00
Tobias Koppers a995a335f4
add missing argument check 2020-03-02 16:05:43 +01:00
evilebottnawi f4ba449130 fix: negative zero for DefinePlugin 2020-03-02 16:49:59 +03:00
jamesgeorge007 bebc55b7a1 chore: rephrase JSDoc comment 2020-01-23 14:24:36 +05:30
jamesgeorge007 cc85a27955 chore: rephrase comment 2020-01-23 14:20:53 +05:30
jamesgeorge007 52422ad14a refactor: prefer destructuring approach 2020-01-23 14:18:14 +05:30
Gergely Nagy aea4fd97b5 do not evaluate constants in asm.js, fix IIFE mode detection
fixes #10283
2020-01-22 15:41:45 +01:00
Tobias Koppers 6400fd42b4
Merge pull request #10139 from yurynix/relative-dir-runtime-chunk-loading
Make inner folder entrypoints able to require common chunks
2020-01-17 11:39:52 +01:00
Tobias Koppers 2350d09680 move chunk filename template logic into reusable function 2020-01-16 15:40:44 +01:00
Tobias Koppers b398814628 cache module wrappers in memory 2019-12-19 14:26:27 +01:00
Tobias Koppers 782e4535ac Refactor how exportsType work
add flagged exportsType for __esModule flagged
add getExportsType to merge strict with exportsType
move CommonJsStuffPlugin into CommonJsPlugin
split CommonJsPlugin into imports and exports part
enable minimal tree shaking for CommonJs imports and exports
2019-12-06 11:13:08 +01:00
Tobias Koppers ab8a768cac remove module.id and loaded shortcuts and only include them when used 2019-12-06 11:09:43 +01:00
Sergey Melyukov f212d3c30e pr comments 2019-12-03 18:11:46 +03:00
Sergey Melyukov faf784b6ab refactor hop runtime helper 2019-12-03 16:27:39 +03:00
Sergey Melyukov ba306b6f2c Merge remote-tracking branch 'upstream/master' into optimize-webpack-runtime-size 2019-12-02 19:54:21 +03:00
Sergey Melyukov 6b59d113a4 optimize webpack runtime size 2019-12-02 17:59:37 +03:00
Tobias Koppers 2f3da77d38 Introduce a Parser base class to improve Parser types
Parser.parse must be always sync
make JSON and WASM modules strict

fix inherit-types tooling to omit static methods
2019-11-30 01:36:28 +01:00
Sergey Melyukov bdc61abf82 refactor: merge generators in asset modules 2019-11-26 15:42:37 +01:00
Tobias Koppers fe67677f55 offer cached methods to get chunk modules by source type 2019-11-20 11:20:34 +01:00
Sergey Melyukov a214be41a0 add deprecation codes 2019-11-14 17:03:15 +03:00
Tobias Koppers 5abf55b1af allocate presentationalDependencies array only when needed 2019-11-10 21:05:28 +01:00
Tobias Koppers ed81ad0fa4 allocate warnings and errors arrays only when needed 2019-11-10 21:05:16 +01:00
Tobias Koppers efe0c2e610 avoid creating arrays in getConnections 2019-11-10 21:05:05 +01:00
Tobias Koppers 84b6817f60 consistency and bugfixes for reexporting json 2019-11-05 10:39:12 +01:00
Tobias Koppers 90c2392b29 fix bug where importing variables with special free names is broken 2019-10-30 13:06:53 +01:00
Tobias Koppers a877cd51d1 add presentational dependencies which are cheaper, but allow only templating 2019-10-30 07:49:20 +01:00
Tobias Koppers 8d46b21fad add Dependency.getCondition and conditional ModuleGraphConnections
getDependencyReference is no longer used to check of connection
2019-10-30 07:48:32 +01:00
Tobias Koppers acff6ec992 move BasicEvaluatedExpression and JavascriptParserHelpers to javascript directory 2019-10-22 09:27:52 +02:00
evilebottnawi 8198ffb3e6 refactor: code 2019-10-22 00:14:05 +02:00