+ // The contents of table should be in correct order (#4809).\r
+ table : function( element )\r
+ {\r
+ // Clone the array as it would become empty during the sort call.\r
+ var children = element.children.slice( 0 );\r
+ children.sort( function ( node1, node2 )\r
+ {\r
+ var index1, index2;\r
+\r
+ // Compare in the predefined order.\r
+ if ( node1.type == CKEDITOR.NODE_ELEMENT &&\r
+ node2.type == node1.type )\r
+ {\r
+ index1 = CKEDITOR.tools.indexOf( tableOrder, node1.name );\r
+ index2 = CKEDITOR.tools.indexOf( tableOrder, node2.name );\r
+ }\r
+\r
+ // Make sure the sort is stable, if no order can be established above.\r
+ if ( !( index1 > -1 && index2 > -1 && index1 != index2 ) )\r
+ {\r
+ index1 = getNodeIndex( node1 );\r
+ index2 = getNodeIndex( node2 );\r
+ }\r
+\r
+ return index1 > index2 ? 1 : -1;\r
+ } );\r
+ },\r
+\r