domEventMapping is a bit of a misnomer here -- this is actually a map from registrationName to eventName. also you're not recording the registration names for capture events, unless I'm misunderstanding something. what I'd do here is rename EventPluginRegistry.registrationNames to registrationNameModules and rename domEventMapping to registrationNameEventNames or something like that. your code will also be cleaner if you modify publishEventForPlugin to take PluginModule and eventName and have publishRegistrationName take PluginModule, eventName, registrationName and add the mapping there instead of directly in recomputePluginOrdering.