docs: function waitTimeoutNotice() {
          var hangModules = [];
          var missModules = [];
          var hangModulesMap = {};
          var missModulesMap = {};
          var visited = {};
  
          /**
           * 检查模块的加载错误
           *
           * @inner
           * @param {string} id 模块id
           */
          function checkError( id, hard ) {
              if ( visited[ id ] || modIs( id, MODULE_DEFINED ) ) {
                  return;
              }
  
              visited[ id ] = 1;
  
              if ( !modIs( id, MODULE_PREPARED ) ) {
                  // HACK: 为gzip后体积优化，不做抽取
                  if ( !hangModulesMap[ id ] ) {
                      hangModulesMap[ id ] = 1;
                      hangModules.push( id );
                  }
              }
  
              var module = modModules[ id ];
              if ( !module ) {
                  if ( !missModulesMap[ id ] ) {
                      missModulesMap[ id ] = 1;
                      missModules.push( id );
                  }
              }
              else if ( hard ) {
                  if ( !hangModulesMap[ id ] ) {
                      hangModulesMap[ id ] = 1;
                      hangModules.push( id );
                  }
  
                  each(
                      module.depMs,
                      function ( dep ) {
                          checkError( dep.absId, dep.hard );
                      }
                  );
              }
          }
  
          for ( var id in autoDefineModules ) {
              checkError( id, 1 );
          }
  
          if ( hangModules.length || missModules.length ) {
              throw new Error( '[MODULE_TIMEOUT]Hang( '
                  + ( hangModules.join( ', ' ) || 'none' )
                  + ' ) Miss( '
                  + ( missModules.join( ', ' ) || 'none' )
                  + ' )'
              );
          }
      }