+ * Traverse with {@link CKEDITOR.dom.walker} to retrieve the previous element before the range start.\r
+ * @param {Function} evaluator Function used as the walker's evaluator.\r
+ * @param {Function} [guard] Function used as the walker's guard.\r
+ * @param {CKEDITOR.dom.element} [boundary] A range ancestor element in which the traversal is limited,\r
+ * default to the root editable if not defined.\r
+ *\r
+ * @return {CKEDITOR.dom.element|null} The returned node from the traversal.\r
+ */\r
+ getPreviousNode : function( evaluator, guard, boundary ) {\r
+\r
+ var walkerRange = this.clone();\r
+ walkerRange.collapse( 1 );\r
+ walkerRange.setStartAt( boundary || this.document.getBody(), CKEDITOR.POSITION_AFTER_START );\r
+\r
+ var walker = new CKEDITOR.dom.walker( walkerRange );\r
+ walker.evaluator = evaluator;\r
+ walker.guard = guard;\r
+ return walker.previous();\r
+ },\r
+\r
+ /**\r
+ * Traverse with {@link CKEDITOR.dom.walker} to retrieve the next element before the range start.\r
+ * @param {Function} evaluator Function used as the walker's evaluator.\r
+ * @param {Function} [guard] Function used as the walker's guard.\r
+ * @param {CKEDITOR.dom.element} [boundary] A range ancestor element in which the traversal is limited,\r
+ * default to the root editable if not defined.\r
+ *\r
+ * @return {CKEDITOR.dom.element|null} The returned node from the traversal.\r