code: function( rules, options ) {
  				var priority;
  
  				// Backward compatibility.
  				if ( typeof options == 'number' )
  					priority = options;
  				// New version - try reading from options.
  				else if ( options && ( 'priority' in options ) )
  					priority = options.priority;
  
  				// Defaults.
  				if ( typeof priority != 'number' )
  					priority = 10;
  				if ( typeof options != 'object' )
  					options = {};
  
  				// Add the elementNames.
  				if ( rules.elementNames )
  					this.elementNameRules.addMany( rules.elementNames, priority, options );
  
  				// Add the attributeNames.
  				if ( rules.attributeNames )
  					this.attributeNameRules.addMany( rules.attributeNames, priority, options );
  
  				// Add the elements.
  				if ( rules.elements )
  					addNamedRules( this.elementsRules, rules.elements, priority, options );
  
  				// Add the attributes.
  				if ( rules.attributes )
  					addNamedRules( this.attributesRules, rules.attributes, priority, options );
  
  				// Add the text.
  				if ( rules.text )
  					this.textRules.add( rules.text, priority, options );
  
  				// Add the comment.
  				if ( rules.comment )
  					this.commentRules.add( rules.comment, priority, options );
  
  				// Add root node rules.
  				if ( rules.root )
  					this.rootRules.add( rules.root, priority, options );
  			}
docs: Add rules to this filter.
  
  @param {CKEDITOR.htmlParser.filterRulesDefinition} rules Object containing filter rules.
  @param {Object/Number} [options] Object containing rules' options or a priority
  (for a backward compatibility with CKEditor versions up to 4.2.x).
  @param {Number} [options.priority=10] The priority of a rule.
  @param {Boolean} [options.applyToAll=false] Whether to apply rule to non-editable
  elements and their descendants too.