function maybeBootstrap() {
  // we don't know if angular is loaded
  if (!angular.resumeBootstrap) {
    return setTimeout(maybeBootstrap, 1);
  }

  var modules = loadModules();
  angular.resumeBootstrap(modules);
}
Closure compiler type information

@typedef { {
  requires: !Array.<string>,
  invokeQueue: !Array.<Array.<*>>,

  service: function(string, Function):angular.Module,
  factory: function(string, Function):angular.Module,
  value: function(string, *):angular.Module,

  filter: function(string, Function):angular.Module,

  init: function(Function):angular.Module
} }