in packages/metro-runtime/src/polyfills/require.js [309:335]
function registerSegment(
segmentId: number,
moduleDefiner: ModuleDefiner,
moduleIds: ?$ReadOnlyArray<ModuleID>,
): void {
moduleDefinersBySegmentID[segmentId] = moduleDefiner;
if (__DEV__) {
if (segmentId === 0 && moduleIds) {
throw new Error(
'registerSegment: Expected moduleIds to be null for main segment',
);
}
if (segmentId !== 0 && !moduleIds) {
throw new Error(
'registerSegment: Expected moduleIds to be passed for segment #' +
segmentId,
);
}
}
if (moduleIds) {
moduleIds.forEach(moduleId => {
if (!modules[moduleId] && !definingSegmentByModuleID.has(moduleId)) {
definingSegmentByModuleID.set(moduleId, segmentId);
}
});
}
}