Bug #80459
closedMissing dependency of various require JS modules on FormEngineValidation
100%
Description
Some module require the requireJS module FormEngine. Those modules use the "submodule" FormEngine.Validation
in their initialization.
The problem is that FormEngine.Validation
is initialized in a separate requireJS module "FormEngineValidation", which itself depends on the FormEngine module to be available.
So for requireJS the dependency tree resolves to this:
FormEngine
- FormEngineValidation
- Editor
- ...
As by definition the loading and execution order of modules without dependency is undefined.
Since e.g. Editor specifies a dependency on FormEngine, but uses actually only FormEngineValidation, there can be race conditions, FormEngineValidation is actually not yet there.
This can be reproduced using Chrome 57 (on Windows) on latest master, TYPO3 in dev context and with network throttling set to 2G, caching disabled.
You will receive JS errors in the console where Editor.js is reported to access FormEngine.Validation.validate()
, where FormEngine.Validation
is undefined.
This is actually totally clear, when inspecting the dependencies close enough.