original_string: public static function find_all_amd_modules($debug = false) {
          global $CFG;
  
          $jsdirs = array();
          $jsfiles = array();
  
          $dir = $CFG->libdir . '/amd';
          if (!empty($dir) && is_dir($dir)) {
              $jsdirs['core'] = $dir;
          }
          $subsystems = core_component::get_core_subsystems();
          foreach ($subsystems as $subsystem => $dir) {
              if (!empty($dir) && is_dir($dir . '/amd')) {
                  $jsdirs['core_' . $subsystem] = $dir . '/amd';
              }
          }
          $plugintypes = core_component::get_plugin_types();
          foreach ($plugintypes as $type => $dir) {
              $plugins = core_component::get_plugin_list_with_file($type, 'amd', false);
              foreach ($plugins as $plugin => $dir) {
                  if (!empty($dir) && is_dir($dir)) {
                      $jsdirs[$type . '_' . $plugin] = $dir;
                  }
              }
          }
  
          foreach ($jsdirs as $component => $dir) {
              $srcdir = $dir . '/build';
              if ($debug) {
                  $srcdir = $dir . '/src';
              }
              if (!is_dir($srcdir) || !is_readable($srcdir)) {
                  // This is probably an empty amd directory without src or build.
                  // Skip it - RecursiveDirectoryIterator fatals if the directory is not readable as an iterator.
                  continue;
              }
              $items = new RecursiveDirectoryIterator($srcdir);
              foreach ($items as $item) {
                  $extension = $item->getExtension();
                  if ($extension === 'js') {
                      $filename = str_replace('.min', '', $item->getBaseName('.js'));
                      // We skip lazy loaded modules.
                      if (strpos($filename, '-lazy') === false) {
                          $modulename = $component . '/' . $filename;
                          $jsfiles[$modulename] = $item->getRealPath();
                      }
                  }
                  unset($item);
              }
              unset($items);
          }
  
          return $jsfiles;
      }
code: public static function find_all_amd_modules($debug = false) {
          global $CFG;
  
          $jsdirs = array();
          $jsfiles = array();
  
          $dir = $CFG->libdir . '/amd';
          if (!empty($dir) && is_dir($dir)) {
              $jsdirs['core'] = $dir;
          }
          $subsystems = core_component::get_core_subsystems();
          foreach ($subsystems as $subsystem => $dir) {
              if (!empty($dir) && is_dir($dir . '/amd')) {
                  $jsdirs['core_' . $subsystem] = $dir . '/amd';
              }
          }
          $plugintypes = core_component::get_plugin_types();
          foreach ($plugintypes as $type => $dir) {
              $plugins = core_component::get_plugin_list_with_file($type, 'amd', false);
              foreach ($plugins as $plugin => $dir) {
                  if (!empty($dir) && is_dir($dir)) {
                      $jsdirs[$type . '_' . $plugin] = $dir;
                  }
              }
          }
  
          foreach ($jsdirs as $component => $dir) {
              $srcdir = $dir . '/build';
              if ($debug) {
                  $srcdir = $dir . '/src';
              }
              if (!is_dir($srcdir) || !is_readable($srcdir)) {
                  // This is probably an empty amd directory without src or build.
                  // Skip it - RecursiveDirectoryIterator fatals if the directory is not readable as an iterator.
                  continue;
              }
              $items = new RecursiveDirectoryIterator($srcdir);
              foreach ($items as $item) {
                  $extension = $item->getExtension();
                  if ($extension === 'js') {
                      $filename = str_replace('.min', '', $item->getBaseName('.js'));
                      // We skip lazy loaded modules.
                      if (strpos($filename, '-lazy') === false) {
                          $modulename = $component . '/' . $filename;
                          $jsfiles[$modulename] = $item->getRealPath();
                      }
                  }
                  unset($item);
              }
              unset($items);
          }
  
          return $jsfiles;
      }
code_tokens: public static function find_all_amd_modules ( $ debug = false ) { global $ CFG ; $ jsdirs = array ( ) ; $ jsfiles = array ( ) ; $ dir = $ CFG -> libdir . '/amd' ; if ( ! empty ( $ dir ) && is_dir ( $ dir ) ) { $ jsdirs [ 'core' ] = $ dir ; } $ subsystems = core_component :: get_core_subsystems ( ) ; foreach ( $ subsystems as $ subsystem => $ dir ) { if ( ! empty ( $ dir ) && is_dir ( $ dir . '/amd' ) ) { $ jsdirs [ 'core_' . $ subsystem ] = $ dir . '/amd' ; } } $ plugintypes = core_component :: get_plugin_types ( ) ; foreach ( $ plugintypes as $ type => $ dir ) { $ plugins = core_component :: get_plugin_list_with_file ( $ type , 'amd' , false ) ; foreach ( $ plugins as $ plugin => $ dir ) { if ( ! empty ( $ dir ) && is_dir ( $ dir ) ) { $ jsdirs [ $ type . '_' . $ plugin ] = $ dir ; } } } foreach ( $ jsdirs as $ component => $ dir ) { $ srcdir = $ dir . '/build' ; if ( $ debug ) { $ srcdir = $ dir . '/src' ; } if ( ! is_dir ( $ srcdir ) || ! is_readable ( $ srcdir ) ) { // This is probably an empty amd directory without src or build. // Skip it - RecursiveDirectoryIterator fatals if the directory is not readable as an iterator. continue ; } $ items = new RecursiveDirectoryIterator ( $ srcdir ) ; foreach ( $ items as $ item ) { $ extension = $ item -> getExtension ( ) ; if ( $ extension === 'js' ) { $ filename = str_replace ( '.min' , '' , $ item -> getBaseName ( '.js' ) ) ; // We skip lazy loaded modules. if ( strpos ( $ filename , '-lazy' ) === false ) { $ modulename = $ component . '/' . $ filename ; $ jsfiles [ $ modulename ] = $ item -> getRealPath ( ) ; } } unset ( $ item ) ; } unset ( $ items ) ; } return $ jsfiles ; }
docstring: Scan the source for AMD modules and return them all.
  
  The expected location for amd modules is:
  <componentdir>/amd/src/modulename.js
  
  @param boolean $debug If true, returns the paths to the original (unminified) source files.
  @return array $files An array of mappings from module names to file paths.
docstring_tokens: Scan the source for AMD modules and return them all .