diff --git a/includes/common.inc b/includes/common.inc index 34fa9b9..f57c3d4 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -5078,7 +5078,39 @@ function drupal_build_js_cache($files) { * Deletes old cached JavaScript files and variables. */ function drupal_clear_js_cache() { - variable_del('javascript_parsed'); + // Hard code drupal.js since it is hard-coded in drupal_add_js() and is not a + // library. + $files = array('misc/drupal.js'); + foreach (module_list() as $module) { + foreach (drupal_get_library($module) as $library) { + if (!empty($library['js'])) { + foreach ($library['js'] as $key => $data) { + if (empty($data['type']) || $data['type'] == 'file') { + if (isset($data['data'])) { + $files[] = $data['data']; + } + else { + $files[] = $key; + } + } + } + } + } + } + foreach (list_themes() as $theme) { + if (isset($theme->scripts)) { + foreach ($theme->scripts as $script) { + $files[] = $script; + } + } + } + foreach ($files as $file) { + _locale_parse_js_file($file); + } + variable_set('javascript_parsed', $files); + variable_del('locale_js_files'); + $dir = 'public://' . variable_get('locale_js_directory', 'languages'); + file_unmanaged_delete_recursive($dir); variable_del('drupal_js_cache_files'); file_scan_directory('public://js', '/.*/', array('callback' => 'drupal_delete_file_if_stale')); }