diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 6f52196afb4a288e4a57c95bc9638350aa378d3f..049496c217e59bdd3bd93520ec480e0c52fc4f2f 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -74,6 +74,23 @@ public:
 
             processor->process(prop.name(), propertyValue(prop));
         }
+
+        for (int index = 0; index < _metaObject->methodCount(); ++index) {
+            QMetaMethod meth = _metaObject->method(index);
+            const QString signature = QString::fromUtf8(meth.signature());
+
+            int indexOfParen = signature.indexOf(QLatin1Char('('));
+            if (indexOfParen == -1)
+                continue; // skip it, invalid signature.
+
+            const QString signalName = signature.left(indexOfParen);
+            QString slotName;
+            slotName += QLatin1String("on");
+            slotName += signalName.at(0).toUpper();
+            slotName += signalName.midRef(1);
+            processor->process(slotName, engine()->undefinedValue()); // ### FIXME: assign a decent type to the property
+        }
+
     }
 
     const Value *propertyValue(const QMetaProperty &prop) const {