Commit Graph

54 Commits

Author SHA1 Message Date
Tobias Koppers 77abab8c97 cleanup, renaming 2020-01-29 14:24:55 +01:00
Sergey Melyukov 68a61677dc move flatter algo into InnerGraph 2020-01-27 18:33:40 +03:00
Sergey Melyukov 721ce54bdf incapsulating inner graph logic 2020-01-23 15:59:27 +03:00
Sergey Melyukov 533d7fced7 fix pr comments 2020-01-21 20:50:27 +03:00
Sergey Melyukov 5613a38bb1 decouple inner-graph and parser state 2020-01-21 17:36:22 +03:00
Tobias Koppers 3b4a7455df use parser state instead of module to store harmony/dynamic exports state
this is important for incremental build
2019-12-07 01:04:38 +01:00
Tobias Koppers d9a2b7997a refactor dynamic and harmony exports parser state
bailout when using AMD define
2019-12-06 11:13:15 +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 41a6f2af1a fix PureExpressionDependency bug 2019-09-04 09:57:55 +02:00
Tobias Koppers 2e37731988 add analysis for top level symbols, exports and imports
integrates the work of Vincent Chan for GSoC 2018

Co-authored-by: Vincent Chan <cdzos97@gmail.com>
2019-09-03 14:18:40 +02:00
Tobias Koppers ab169893a1 refactor Parser to allow variable tagging
use variable tagging in harmony pluging (instead of magic renaming)
Parser no longer calls hooks.expression for x in `x = ...`, hooks.pattern is called instead
remove rootName argument from hooks.expressionMemberChain and hooks.callMemberChain
2019-09-03 14:17:46 +02:00
Tobias Koppers 0bce5fd8d5 detect ASI and generate more efficient code when no semicolon need to be inserted 2019-08-22 23:03:38 +02:00
Tobias Koppers 12a3e7c854 create experiments for importAwait importAsync and (a)syncWebAssembly 2019-06-05 13:32:22 +02:00
Tobias Koppers 903084f9aa WIP prototype of top-level-await and async modules based on import await 2019-06-04 23:25:35 +02:00
Tobias Koppers 9850915eea fix context problem 2019-05-31 22:11:56 +02:00
Tobias Koppers 979e6e40a8 fix edgecase with script this context 2019-05-29 21:59:09 +02:00
Tobias Koppers 43bc7a306e Refactor to track nested exports
Harmony dependencies track access to nested properties
Flag nested exports
2019-05-29 11:55:00 +02:00
Tobias Koppers a09b9a5b8f refactor call and callArgs for HarmonyImportSpecifierDependency 2018-10-17 21:25:41 +02:00
Tobias Koppers 6d09410a26 remove parserScope
it's not serializable and not needed anyway
2018-09-27 13:40:58 +02:00
Florent Cailhol f75027475b Move HMR hotBoostrap hook 2018-09-07 14:14:10 +02:00
Tobias Koppers 3618cc1b3c remove originModule from Dependencies and add parent module to ModuleGraph 2018-08-07 14:20:53 +02:00
Tobias Koppers 72cdb84967 bugfix harmony accept should ignore non-harmony modules 2018-07-30 23:07:43 +02:00
Tobias Koppers cf5f1d723c format existing code 2018-07-30 21:29:21 +02:00
Florent Cailhol 668c2e428c Introduce HMRP.hooks instead of extending Parser#hooks 2018-07-09 08:43:45 +02:00
Tobias Koppers a5e55de8e9 skip harmony accept dependency in non-harmony modules 2018-06-25 18:40:29 +02:00
Florent Cailhol 2a9452e51b Add brackets for multiline if/for statements 2018-05-29 15:45:44 +02:00
Florent Cailhol 3983803d30 Destructure 'require' to improve readability 2018-03-22 12:05:58 +01:00
Tobias Koppers 5238159d21 run prettier on existing code 2018-02-25 02:00:20 +01:00
Florent Cailhol 9669c9e013 Use Parser#hooks instead of Tapable#plugin 2017-12-21 09:08:10 +01:00
Tobias Koppers c10da6c285 upgrade tapable from Parser 2017-11-28 10:25:48 +01:00
Tobias Koppers 5c489b6c5d Refactor harmony modules
separate side effects from specifier
fixes TDZ for export let/const
bigger bundles are caused by correct export const/let behavior

BREAKING CHANGE: Internal have changed. Plugins could rely on them.
2017-09-14 09:44:32 +02:00
Tobias Koppers f53c0ceb84 Merge pull request #5322 from webpack/performance/parser
Parser performance improvements
2017-09-11 12:41:28 +02:00
Tobias Koppers 1fb9eb1e47 fixes #5624 2017-09-06 10:33:08 +02:00
Tobias Koppers d9e01d4a5f use more efficient data structures
Parser.definitions and Parser.renames are using Maps now
2017-08-11 12:23:58 +02:00
Tobias Koppers 6842d50cf9 Call imports with the correct context.
Parse arguments of an import call.
Support strictThisContextOnImports in ConcatenatedModules

fixes #5246
fixes #5135
fixes #5111
2017-07-11 19:08:23 +02:00
Tobias Koppers d967a4623c add `module.strictThisContextOnImports` option
to allow spec-comforming behavior this context on
called imported harmony functions
2017-05-21 09:23:35 +02:00
Joe Haddad fa47a39107
Add strictExportPresence option 2017-02-22 21:06:43 -05:00
Tobias Koppers a7a41848c7 remove error for CommonJs/AMD in ESM
there are too many weird modules

detect harmony modules before parsing
exports is now undefined in ESM
module.exports is now read-only in ESM and returns undefined
define is now undefined in ESM
#3917
2017-01-15 01:44:26 +01:00
Sergey Rubanov d9ab99792c refactor(es6): Upgrade Parser Plugins which depend on AbstractPlugin to es6 (#3683)
* refactor(es6): Upgrade RequireIncludeDependencyParserPlugin to es6 and remove AbstractPlugin dep

* refactor(es6): Upgrade RequireEnsureDependenciesBlockParserPlugin to es6 and remove AbstractPlugin dep

* refactor(es6): Upgrade RequireContextDependencyParserPlugin to es6 and remove AbstractPlugin dep

* refactor(es6): Upgrade HarmonyExportDependencyParserPlugin to es6 and remove AbstractPlugin dep

* refactor(es6): Upgrade HarmonyImportDependencyParserPlugin to es6 and remove AbstractPlugin dep

* Remove AbstractPlugin
2017-01-02 15:30:08 -06:00
Tobias Koppers 0bcad134cb add harmony compatiblity also in case of import 2016-12-14 12:56:39 +01:00
Tobias Koppers 98a232b889 fixes indexed import
fixes #3116
2016-11-15 11:28:34 +01:00
Tobias Koppers 3a6b649016 star import a non-harmony modules behaves like require
fixes #2732
2016-07-04 10:24:04 +02:00
Tobias Koppers 78307a937f allow to display used exports
support Tree Shaking with import *
fixes #2713
2016-06-29 01:17:59 +02:00
Tobias Koppers 1f66b3acf0 allow module.hot.accept without callback (harmony) 2016-06-04 17:31:03 +02:00
Tobias Koppers f4ba0d0f0a support for importing into object shothand
fixed #2522
2016-06-04 15:22:47 +02:00
Tobias Koppers 75b93a1438 fixes #2455, fixes #2460 2016-05-14 14:33:04 +02:00
Tobias Koppers e83e9b8c23 test strict mode
enable strict mode if import/export is used
2016-05-06 10:44:31 +02:00
Tobias Koppers 65e801487c fixed a bug where called imported were not parsed 2016-02-22 15:18:13 +01:00
Tobias Koppers 1cf2cb5fef fixed and test edge cases with this scope in harmony imports 2016-02-13 10:00:47 +01:00
Tobias Koppers cabe7866fa HMR with harmony modules 2015-11-01 23:27:53 +01:00