Thomas Bruederli
2014-05-27 f5de03208e80bec1a9be689b55c93d4faade2de0
Replace Array.prototype.last() with jQuery.last to avoid side-effects in array iterations
2 files modified
16 ■■■■■ changed files
program/js/app.js 12 ●●●●● patch | view | raw | blame | history
program/js/common.js 4 ●●●● patch | view | raw | blame | history
program/js/app.js
@@ -6597,10 +6597,8 @@
      this.treelist.select(name);
    }
    else if (this.gui_objects.folderlist) {
      $('li.selected', this.gui_objects.folderlist)
        .removeClass('selected').addClass('unfocused');
      $(this.get_folder_li(name, prefix, encode))
        .removeClass('unfocused').addClass('selected');
      $('li.selected', this.gui_objects.folderlist).removeClass('selected');
      $(this.get_folder_li(name, prefix, encode)).addClass('selected');
      // trigger event hook
      this.triggerEvent('selectfolder', { folder:name, prefix:prefix });
@@ -6976,8 +6974,8 @@
          this.hide_menu(this.menu_stack[i]);
      }
      if (stack && this.menu_stack.length) {
        obj.data('parent', this.menu_stack.last());
        obj.css('z-index', ($('#'+this.menu_stack.last()).css('z-index') || 0) + 1);
        obj.data('parent', $.last(this.menu_stack));
        obj.css('z-index', ($('#'+$.last(this.menu_stack)).css('z-index') || 0) + 1);
      }
      else if (!stack && this.menu_stack.length) {
        this.hide_menu(this.menu_stack[0], event);
@@ -7027,7 +7025,7 @@
    // focus previous menu in stack
    if (this.menu_stack.length && keyboard) {
      this.menu_keyboard_active = true;
      this.focused_menu = this.menu_stack.last();
      this.focused_menu = $.last(this.menu_stack);
      if (!obj || !obj.data('opener'))
        $('#'+this.focused_menu).find('a,input:not(:disabled)').not('[aria-disabled=true]').first().focus();
    }
program/js/common.js
@@ -607,8 +607,8 @@
}
// array utility function
Array.prototype.last = function() {
  return this[this.length-1];
jQuery.last = function(arr) {
  return arr && arr.length ? arr[arr.length-1] : undefined;
}
// jQuery plugin to emulate HTML5 placeholder attributes on input elements