Commit Graph

206 Commits

Author SHA1 Message Date
Sven Sauleau b166f46f2c parse import assertions 2021-07-16 13:14:54 +02:00
Tobias Koppers 629f9f031c add support for module externals and automatic externals 2021-06-24 16:44:14 +02:00
Tobias Koppers 4da99d8254 add `module` library support, test and example
add test cases for `experiments.outputModule`
2021-06-23 14:49:14 +02:00
Tobias Koppers c3af61fe2a add `__webpack_modules__` when `__webpack_require__` is used 2021-06-23 14:49:14 +02:00
Tobias Koppers d09cc17cee use types from estree 2021-06-22 09:47:29 +02:00
Tobias Koppers d0f500b76d
Merge pull request #13565 from webpack/dependabot/npm_and_yarn/acorn-8.4.0
chore(deps): bump acorn from 8.2.4 to 8.4.0
2021-06-22 09:43:00 +02:00
Tobias Koppers b6a39e3ccf remove allowAwaitOutsideFunction option as it's now set by default 2021-06-21 10:14:49 +02:00
Tobias Koppers 4e608c8723 assign class property keys to the correct top level symbol 2021-06-21 09:48:14 +02:00
Tobias Koppers b0fa9ccada pretty files 2021-05-11 09:31:46 +02:00
Tobias Koppers 94facd387d add support for class fields 2021-04-27 10:28:13 +02:00
Tobias Koppers cb494c9a8b fix returning exports from runtime for libraries
fixes #13165
2021-04-22 09:32:17 +02:00
Tobias Koppers 24c5902374 add interceptModuleExecution, module cache and improve error messages 2021-04-14 14:37:00 +02:00
Tobias Koppers ea3e0a39ac add experiments.executeModule
rename runModule -> executeModule
improve error reporting
2021-04-12 12:27:55 +02:00
Tobias Koppers 065177df66 add experimental support for build time execution
allow to execute a part of the module graph at build time
e. g. to generate code or other assets

loaders have access to that via `this.importModule(request, options)`
2021-04-12 12:27:54 +02:00
Tobias Koppers 87b67a920d avoid memory leak in v8 ICs after parsing and building modules 2021-03-25 14:52:12 +01:00
Tobias Koppers 89a44ab742 fix caching bug when split chunks of an entrypoint change and modules of the entrypoint stay equal 2021-03-19 16:13:18 +01:00
Tobias Koppers aacd7b2143 fix library exports when using onChunks in entry 2021-03-19 16:13:18 +01:00
Tobias Koppers fccc13aaa0
Merge pull request #12907 from webpack/bugfix/assign-library-runtime-chunk
fix problem with strict mode for assigning libraries with separate runtime chunk
2021-03-16 20:54:25 +01:00
Tobias Koppers a93eb10903 fix problem with strict mode for assigning libraries with separate runtime chunk 2021-03-16 19:53:13 +01:00
Ali Al Amine 8dcaade8fc Fix #12908 2021-03-16 20:19:10 +02:00
Tobias Koppers 2abcede6cd
Merge pull request #12852 from chenxsan/test/test-library-type-assign 2021-03-15 20:33:14 +01:00
Tobias Koppers d5992633e6 offer a hook to opt-out of strict mode 2021-03-15 16:38:50 +01:00
Tobias Koppers 69218d4ea0 fix problem with startup of non-js initial chunks
fixes #12880
2021-03-14 19:54:50 +01:00
Tobias Koppers 61cc65c58e improve parsing to handle non-literal options 2021-03-12 12:09:02 +01:00
Tobias Koppers 404a854c8b improve hmr error handling abilities
pass module and moduleId with self error handler
add error handlers for dependency accept handlers
pass moduleId and dependencyId with dependency accept error handler
add output.strictModuleErrorHandling to opt-in into strict module error handling
HotModuleReplacementPlugin enalbed output.strictModuleErrorHandling automatically

fixes #12826
2021-03-09 20:23:00 +01:00
Tobias Koppers 393913dbd8 rename files, avoid indenting runtime code 2021-03-09 09:42:01 +01:00
Tobias Koppers c7f93af138 refactor startup logic to better integrate with libraries
get rid of startupNoDefault and many custom logic regarding this in jsonp chunk loading
add onChunksLoaded runtime method to cover that for all chunk loading types
add `__webpack_runtime_id__` to access the current runtime
allow to use onChunksLoaded for other module types too
2021-03-08 20:25:09 +01:00
Tobias Koppers 5c42b918b4 further optimizations 2021-02-23 12:03:26 +01:00
Tobias Koppers cc6f3d9113 fix regression when combining library + runtimeChunk + node target
related to https://github.com/vercel/next.js/pull/22187
2021-02-18 15:50:40 +01:00
Tobias Koppers 9f3950e571 add support for libraries combined with iife: false
fix missing runtime requirement for system.js context
fix inlining of modules when conflicting symbols are defined on top-level
2021-02-11 11:19:24 +01:00
Tobias Koppers 89e95d6bda newline fixes for startup code 2021-02-09 21:28:10 +01:00
Tobias Koppers b29dd3d224 add renderStartup hook 2021-02-09 21:27:10 +01:00
Tobias Koppers 1c8fe2a8f8 allow module inlining when exports is used 2021-02-09 21:26:23 +01:00
evilebottnawi 938fc8946a refactor: add semicolon 2021-01-27 15:47:04 +03:00
Tobias Koppers a07a1269f0
Merge pull request #11316 from petermetz/master 2021-01-21 11:46:33 +01:00
Tobias Koppers be13a46750 sort imports 2021-01-20 09:51:17 +01:00
Peter Somogyvari ded4cc64a0 perf(parser): binary search for comments in range
Signed-off-by: Peter Somogyvari <peter.metz@unarin.com>
2021-01-19 11:55:35 -08:00
Tobias Koppers a2fd6c2226 disable iife handling for functions with default parameters or patterns 2021-01-19 13:35:50 +01:00
Ivan Kopeykin 9fadec4dc1 fix: walk iife function expression params 2021-01-19 13:35:50 +01:00
Tobias Koppers e9183f9810 only return result of startup when needed
fixes #12244
2021-01-18 19:21:12 +01:00
Tobias Koppers ae15a701a4 fix handling of MetaProperty
fixes #12339
2021-01-05 21:26:28 +01:00
Tobias Koppers 0179d88d4b improve checkEnabled error messages 2021-01-05 11:34:57 +01:00
highonweb bc1911bf78 Changed name of memorize function to memoize 2020-12-27 03:02:57 +05:30
Tobias Koppers 48571c663f add selective runtime requirements from startup logic which doesn't prevent inlining modules
avoid using startup function for grab data from preexecuted chunks
2020-12-11 14:36:48 +01:00
Tobias Koppers c847009d87 typescript workarounds
see https://github.com/microsoft/TypeScript/issues/41697
2020-11-30 08:42:35 +01:00
Tobias Koppers dbea79cf8a improve code and test case 2020-11-25 22:48:11 +01:00
Ivan Kopeykin f000854cee fix: check statements in path for asi safe 2020-11-25 22:48:10 +01:00
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