 retrieving revision 1.602
 diff -u -r1.602 zend_compile.c
 --- Zend/zend_compile.c	30 Dec 2004 15:18:23 -0000	1.602
-+++ Zend/zend_compile.c	6 Jan 2005 18:43:35 -0000
++++ Zend/zend_compile.c	6 Jan 2005 18:49:44 -0000
 @@ -116,6 +116,22 @@
  	CG(declarables).ticks.value.lval = 0;
  }

 /* {{{ proto public static mixed ReflectionClass::export(mixed argument [, bool return]) throws ReflectionException
    Exports a reflection object. Returns the output if TRUE is specified for return, printing it otherwise. */
 ZEND_METHOD(reflection_class, export)
@@ -2539,6 +2660,29 @@
 }
 /* }}} */
 
+/* {{{ proto public ReflectionMethod ReflectionClass::hasMethod(string name)
+   Returns whether a method by a given name exists */
+ZEND_METHOD(reflection_class, hasMethod)
+{
+	reflection_object *intern;
+	zend_class_entry *ce;
+	char *name, *lc_name; 
+	int name_len, exists;
+
+	METHOD_NOTSTATIC;
+	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) {
+		return;
+	}
+
+	GET_REFLECTION_OBJECT_PTR(ce);
+	lc_name = zend_str_tolower_dup(name, name_len);
+	exists = zend_hash_exists(&ce->function_table, lc_name, name_len + 1);
+	efree(lc_name);
+
+	RETVAL_BOOL(exists);
+}
+/* }}} */
+
 /* {{{ _addmethod */
 static int _addmethod(zend_function *mptr, int num_args, va_list args, zend_hash_key *hash_key TSRMLS_DC)
 {
@@ -2998,6 +3142,107 @@
 }
 /* }}} */
 

retrieving revision 1.118
diff -u -r1.118 zend_language_scanner.l
--- Zend/zend_language_scanner.l	3 Jan 2005 10:01:03 -0000	1.118
+++ Zend/zend_language_scanner.l	6 Jan 2005 18:49:46 -0000
@@ -796,6 +796,10 @@
 	return T_THROW;
 }
