diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 2fd0aa6581a016c302f910ed1ddf121f3b152d2f..ae22a628389c78c6693b42b8734cf22bfbc0d58b 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -1410,6 +1410,7 @@ Engine::Engine()
       _regexpCtor(0),
       _globalObject(0),
       _mathObject(0),
+      _qtObject(0),
 #ifndef NO_DECLARATIVE_BACKEND
       _qmlKeysObject(0),
 #endif
@@ -1566,6 +1567,11 @@ const ObjectValue *Engine::mathObject() const
     return _mathObject;
 }
 
+const ObjectValue *Engine::qtObject() const
+{
+    return _qtObject;
+}
+
 void Engine::registerValue(Value *value)
 {
     _registeredValues.append(value);
@@ -1856,6 +1862,40 @@ void Engine::initializePrototypes()
     _globalObject->setProperty("Number", numberCtor());
     _globalObject->setProperty("Date", dateCtor());
     _globalObject->setProperty("RegExp", regexpCtor());
+
+
+    //types
+    _qtObject = newObject(/*prototype */ 0);
+    addFunction(_qtObject, QLatin1String("rgba"), 4);
+    addFunction(_qtObject, QLatin1String("hsla"), 4);
+    addFunction(_qtObject, QLatin1String("rect"), 4);
+    addFunction(_qtObject, QLatin1String("point"), 2);
+    addFunction(_qtObject, QLatin1String("size"), 2);
+    addFunction(_qtObject, QLatin1String("vector3d"), 3);
+
+    //color helpers
+    addFunction(_qtObject, QLatin1String("lighter"), 1);
+    addFunction(_qtObject, QLatin1String("darker"), 1);
+    addFunction(_qtObject, QLatin1String("tint"), 2);
+
+    //misc methods
+    addFunction(_qtObject, QLatin1String("closestAngle"), 2);
+    addFunction(_qtObject, QLatin1String("playSound"), 1);
+    addFunction(_qtObject, QLatin1String("openUrlExternally"), 1);
+    addFunction(_qtObject, QLatin1String("md5"), 1);
+    addFunction(_qtObject, QLatin1String("btoa"), 1);
+    addFunction(_qtObject, QLatin1String("atob"), 1);
+    addFunction(_qtObject, QLatin1String("quit"), 0);
+    addFunction(_qtObject, QLatin1String("resolvedUrl"), 1);
+
+    //firebug/webkit compat
+    ObjectValue *consoleObject = newObject(/*prototype */ 0);
+    addFunction(consoleObject, QLatin1String("log"), 1);
+    addFunction(consoleObject, QLatin1String("debug"), 1);
+
+    _globalObject->setProperty(QLatin1String("console"), consoleObject);
+
+    _globalObject->setProperty(QLatin1String("Qt"), _qtObject);
 }
 
 const ObjectValue *Engine::qmlKeysObject()
diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h
index 3a03be7a642030c6df4e1abbfaee66e1b8405b25..b07a14915137bcac113fd43096b3df83c53a7a7b 100644
--- a/src/libs/qmljs/qmljsinterpreter.h
+++ b/src/libs/qmljs/qmljsinterpreter.h
@@ -547,6 +547,7 @@ public:
     // global object
     ObjectValue *globalObject() const;
     const ObjectValue *mathObject() const;
+    const ObjectValue *qtObject() const;
 
     // prototypes
     ObjectValue *objectPrototype() const;
@@ -608,6 +609,7 @@ private:
 
     ObjectValue *_globalObject;
     ObjectValue *_mathObject;
+    ObjectValue *_qtObject;
 #ifndef NO_DECLARATIVE_BACKEND
     ObjectValue *_qmlKeysObject;
 #endif