А что вообще делегат делает? Возвращает функцию оболочку с нужной функцией вызова apply:

Код:
class Room {
public function Room() {
xmlDoc = new XML();
xmlDoc.onLoad = function (){
return onLoadXML.apply(this, arguments);
}
}
private function onLoadXML (success){}
}
По-любому генерится лишняя функция.