src/libs/DependencyInjector.js
function getDependencyThroughAllMaps(sDependency) {
  var oMap,
    oDependency,
    nIndexOrder,
    nLenOrder,
    aOrderDependency = oMappingMaps.___order___;

  createMapping(oMappingMaps, '__', root, function (sDependency) {
    var oDependency,
      oPromise = getPromise();
    oDependency = resolveNamespace(sDependency);
    oPromise.resolve(oDependency);
    return oPromise;
  });

  for (nIndexOrder = 0, nLenOrder = aOrderDependency.length; nIndexOrder < nLenOrder; nIndexOrder++) {
    oMap = oMappingMaps[aOrderDependency[nIndexOrder]];
    oDependency = oMap.__resolveDI__(sDependency);
    if (oDependency) {
      delete oMappingMaps['__'];
      return oDependency;
    }
  }
  delete oMappingMaps['__'];
  return false;
}
function getDependencyThroughAllMaps(sDependency) {
  var oMap,
    oDependency,
    nIndexOrder,
    nLenOrder,
    aOrderDependency = oMappingMaps.___order___;

  createMapping(oMappingMaps, '__', root, function (sDependency) {
    var oDependency,
      oPromise = getPromise();
    oDependency = resolveNamespace(sDependency);
    oPromise.resolve(oDependency);
    return oPromise;
  });

  for (nIndexOrder = 0, nLenOrder = aOrderDependency.length; nIndexOrder < nLenOrder; nIndexOrder++) {
    oMap = oMappingMaps[aOrderDependency[nIndexOrder]];
    oDependency = oMap.__resolveDI__(sDependency);
    if (oDependency) {
      delete oMappingMaps['__'];
      return oDependency;
    }
  }
  delete oMappingMaps['__'];
  return false;
}
Traverse all the mapping systems to get a match.
@param {String} sDependency
@return {Boolean|Promise}
@private