Commit Graph

390 Commits

Author SHA1 Message Date
alexander.akait 792ee7e516 refactor(types): more 2023-05-31 14:56:55 +00:00
Ben Worline 9abdfecb5a Merge branch 'main' of https://github.com/webpack/webpack into ns 2023-05-27 07:46:50 -07:00
Burhanuddin Udaipurwala 8bf6d59f35 refactor: refactor usages of module.loaded 2023-05-26 21:12:29 +05:30
Burhanuddin Udaipurwala 839e2bf6ad refactor: use global runtime constants for webpack exports 2023-05-26 21:04:26 +05:30
Sean Larkin 8eb9d8cf4a
Merge pull request #17262 from webpack/types-for-assets
refactor: types for assets and json modules plus plugins
2023-05-25 14:52:56 -07:00
Sean Larkin 7328ab824a
Merge pull request #17261 from webpack/types-more
refactor(types): more
2023-05-25 14:46:37 -07:00
alexander.akait 9d97d8981c fix: handle more cases 2023-05-25 18:59:08 +03:00
alexander.akait 234fc91cd7 fix: regression in inner graph 2023-05-25 17:33:58 +03:00
alexander.akait 60e5e13eb8 refactor: more types 2023-05-25 01:41:32 +03:00
alexander.akait 620c8d5fa4 refactor: more types 2023-05-24 22:37:58 +03:00
Ben Worline f3fcd696d4 Merge branch 'main' of https://github.com/webpack/webpack into ns 2023-05-24 08:39:45 -07:00
Sean Larkin 80284ceb5d
Merge pull request #17233 from webpack/fix-16763
fix: handle class name in properties and methods
2023-05-24 07:18:13 -07:00
Sean Larkin 4a8035f2b5
Merge pull request #17228 from burhanuday/refactor/burhan-use-globals
refactor: use global constant for __webpack_require__ instead of string literal
2023-05-24 07:16:33 -07:00
Ben Worline a8bb2d73f8 Merge branch 'main' of https://github.com/webpack/webpack into ns 2023-05-23 20:22:06 -07:00
Ben Worline 6f43ce3bfb checkpoint 2023-05-23 15:29:25 -07:00
alexander.akait 84629bfc7e refactor: fix type 2023-05-24 00:41:43 +03:00
alexander.akait fca1703ee5 refactor: rebase 2023-05-24 00:35:55 +03:00
alexander.akait 69dcaf1864 fix: enable this 2023-05-24 00:28:23 +03:00
alexander.akait ae66636cd0 test: added 2023-05-24 00:28:23 +03:00
alexander.akait a9e8aacecb fix: handle class name in properties and methods 2023-05-24 00:28:23 +03:00
alexander.akait f003f1c138 refactor: types more 2023-05-22 05:12:44 +03:00
alexander.akait 8e63b43b5e refactor: types more 2023-05-22 04:50:50 +03:00
alexander.akait 30390058ef refactor: types more 2023-05-22 03:46:58 +03:00
alexander.akait e719e60340 refactor: types more 2023-05-22 03:03:05 +03:00
alexander.akait 78075cac67 refactor: types more 2023-05-22 01:28:57 +03:00
alexander.akait 055737dc0c refactor(types): more 2023-05-21 23:31:30 +03:00
Burhanuddin Udaipurwala 8d8a0e0e56 refactor: use global constant instead of string literal 2023-05-19 21:25:47 +05:30
Sean Larkin e958ac552b refactor(types): Improve module type strictness and refactor module type string usages in module subclasses 2023-05-04 23:19:11 +00:00
Sean Larkin f3389577ef refactor(types): Increase type coverage & docs for B.E.E 2023-04-28 19:21:02 +00:00
Sean Larkin 0fff38d157 refactor(types): Improve types coverage & docs for js parser 2023-04-28 17:59:30 +00:00
An0nie 9309106146 fix: template string compare issue 2023-04-27 16:54:20 +02:00
擢秀 8c59f8955d
fix: avoid modify ast params object reference 2023-04-20 18:35:54 +08:00
Sean Larkin 9c70d1dcf6
Merge pull request #17016 from xiaoboost/fix/fix-spell-error
fix: fix spell error
2023-04-18 19:10:37 -07:00
xiaoboost a01d2d5360 fix: fix spell error 2023-04-18 22:45:47 +08:00
Ivan Kopeykin 3824beedaf support destructuring assignment with AwaitExpression 2023-04-13 17:16:32 +03:00
Ivan Kopeykin 45754f45d0 rename some properties, add more test cases 2023-04-09 10:44:09 +03:00
Ivan Kopeykin bdbb78769f support rest element 2023-04-09 08:55:55 +03:00
Ivan Kopeykin 89933e8a06 fix pre walking 2023-04-08 21:19:04 +03:00
Ivan Kopeykin 12844b2d34 fix keys evaluation 2023-04-08 13:17:30 +03:00
Ivan Kopeykin 9bb35fb998 support destructuring assignment in parser 2023-04-07 22:29:32 +03:00
Sean Larkin fa4cbf11a1 add more module type constants, use them across codebase 2023-03-31 10:56:32 -07:00
xiaoxiaojx 3902ac5ffc fix: fix pureDep returns null in some js files 2023-02-09 14:16:25 +08:00
Jack Works 4f39c9f658 fix: type error 2022-11-22 12:09:17 +08:00
Jack Works c922ee1569 chore: revert breaking change 2022-11-22 12:03:27 +08:00
Jack Works 1d86c181a8 fix: test fail 2022-11-22 11:52:04 +08:00
Jack Works 18c59c600d fix: avoid cross-realm objects 2022-11-22 11:37:16 +08:00
Ivan Kopeykin 8bfcb6999b support import/export name as string literal 2022-07-19 16:58:38 +03:00
Ivan Kopeykin d6d6fb584d Merge branch 'main' into feature-14072
# Conflicts:
#	lib/DependencyTemplate.js
#	lib/javascript/JavascriptGenerator.js
#	schemas/WebpackOptions.check.js
#	types.d.ts
2022-04-05 09:34:50 +03:00
Ivan Kopeykin 8df5134ddb support context 2022-03-31 15:10:21 +03:00
Ivan Kopeykin 34c4edca6b add createRequire support 2022-03-25 10:50:13 +03:00
Tobias Koppers 86a8bd9618
Merge pull request #15455 from webpack/feature/support-in-operator
add "in" operator support
2022-03-17 11:17:39 +01:00
Tobias Koppers 5cc3a39109
Merge pull request #15327 from webpack/fix/dont-count-optional-chaining-in-import-specifier
dont count optional chaining in import specifier
2022-03-15 16:56:06 +01:00
Ivan Kopeykin b2fc854227 fix parser.evaluteExpression api 2022-03-15 15:37:17 +03:00
Ivan Kopeykin eb5d124150 add "in" operator support 2022-03-02 15:01:35 +03:00
Ivan Kopeykin 005e065fc4 renaming 2022-02-28 22:52:16 +03:00
Tobias Koppers 18c3590b28
Merge pull request #15315 from webpack/fix/issue-13022
update topLevelDeclarations for ConcatenatedModule
2022-02-14 14:46:43 +01:00
Ivan Kopeykin cd3ec1da92 refactor top level declarations usage 2022-02-11 17:59:35 +03:00
Ivan Kopeykin b531eb629f fix types 2022-02-08 21:48:57 +03:00
Ivan Kopeykin 59437ccd10 dont count optional chaining in import specifier
instead of full member expression use only non-optional member expression part
2022-02-07 16:14:22 +03:00
Ivan Kopeykin f1d329cc0e use nonNumericOnlyHash function for contentHash 2022-02-01 20:10:45 +03:00
Tobias Koppers b9c6691ff5 bugfixes, external assets 2021-12-03 16:23:09 +01:00
Tobias Koppers 8ae9507196 add support for url() in css 2021-12-03 08:46:24 +01:00
Ivan Kopeykin 405ce48637 fix discussion 2021-11-30 16:36:34 +03:00
Ivan Kopeykin c243a4b022 Merge branch 'main' into feature-14072
# Conflicts:
#	schemas/WebpackOptions.check.js
2021-11-30 13:56:01 +03:00
Tobias Koppers 3eff82d0f9
Merge pull request #14806 from webpack/fix-12924
use "safe" global object
2021-11-26 08:40:29 +01:00
Ivan Kopeykin a3fff1a4c8 evaluate undefined to type undefined 2021-11-25 22:41:27 +03:00
Tobias Koppers c69e37c39d fix outputModule with initial splitChunks 2021-11-25 16:05:03 +01:00
Ivan Kopeykin 58edd1aebb fix evaluating tagged template 2021-11-24 21:22:59 +03:00
Ivan Kopeykin edeaa6eb82 use "safe" global object 2021-11-23 20:40:03 +03:00
Ivan Kopeykin 166be712c0 Merge branch 'main' into feature-14072
# Conflicts:
#	lib/dependencies/CachedConstDependency.js
#	schemas/WebpackOptions.check.js
2021-10-30 21:36:39 +03:00
Tobias Koppers 7135727cba avoid unneccessary separators and arrays 2021-10-04 09:29:09 +02:00
shfshanyue 92f84dcac0 chore: merge multi hash.update 2021-09-26 08:51:53 +08:00
Ivan Kopeykin ffad02dbe2 fix discussions 2021-09-20 15:40:45 +03:00
Ivan Kopeykin 1b2c08a672 fix discussions 2021-09-17 07:23:29 +03:00
Ivan Kopeykin 18ed9cb34b fix logic expression evaluation 2021-09-16 13:15:01 +03:00
Ivan Kopeykin 04a466082c use chunkInitFragments 2021-09-14 21:23:41 +03:00
Tobias Koppers 720aa43bd3 handle hashbangs in javascript files
fixes https://github.com/vercel/next.js/issues/27806
2021-08-10 11:34:06 +02:00
Sven Sauleau 6c50c81350 Revert "Revert "Merge pull request #12278 from xtuc/sven/import-assertions""
This reverts commit 61946b7c46.
2021-07-24 23:28:30 +01:00
Tobias Koppers 0bd1e789d4 generate "use strict" only when really needed 2021-07-22 16:09:09 +02:00
Tobias Koppers 3967571924 Merge branch 'main' into fix/overwritten_webpack__exports_onChunksLoaded 2021-07-16 21:58:34 +02:00
Tobias Koppers 61946b7c46 Revert "Merge pull request #12278 from xtuc/sven/import-assertions"
This reverts commit df02bc6c0a, reversing
changes made to a6f341e243.
2021-07-16 21:54:21 +02:00
Tobias Koppers c469adc265 fix handling of onChunksLoaded with prefetching 2021-07-16 18:11:29 +02:00
shinyaigeek 1d8f9fd4d0 Fix: overwritten __webpack_exports__ on onChunksLoaded 2021-07-16 18:10:45 +02:00
Tobias Koppers 7f22e4721f match on asserts
change Map to Record
improve test case
2021-07-16 13:17:20 +02:00
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
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