message: review comments - modified the return type to primitive boolean type. updated the logic to use the Object.values
diff: import {reduce, toInteger} from 'lodash';
  import {normalizeTaskName} from '@flogo/shared/utils';
  -import {FLOGO_TASK_TYPE} from '@flogo/core';
  +import {FLOGO_TASK_TYPE, ItemTask} from '@flogo/core';
  +
  +const isBranchTask = (task) => task.type === FLOGO_TASK_TYPE.TASK_BRANCH;
  export function uniqueTaskName(taskName: string, ...taskDictionaries) {
  // TODO for performance pre-normalize and store task names?
  @@ -28,9 +30,7 @@ export function uniqueTaskName(taskName: string, ...taskDictionaries) {
  return greatestIndex > 0 ? `${taskName} (${greatestIndex + 1})` : taskName;
  }
  -export function hasTaskWithSameName(taskName, ...taskDictionaries): Boolean {
  +export function hasTaskWithSameName(taskName, ...taskDictionaries): boolean {
  const allTasks = Object.assign({}, ...taskDictionaries);
  - // The branch type of items are exempted while finding the unique name
  - return !!Object.keys(allTasks).find(taskID => allTasks[taskID].type !== FLOGO_TASK_TYPE.TASK_BRANCH
  - && (allTasks[taskID].name).toLowerCase() === taskName.toLowerCase());
  + return !!Object.values(allTasks).find(task => !isBranchTask(task) && (task as ItemTask).name.toLowerCase() === taskName.toLowerCase());
  }
  