diff --git a/src/libs/qmljs/qmljsvalueowner.cpp b/src/libs/qmljs/qmljsvalueowner.cpp index ac0ceb9c6a3c483447a8a01f7c7ef7e8085012b2..6c73df3caf3a78ca3b438f67caeb307896836375 100644 --- a/src/libs/qmljs/qmljsvalueowner.cpp +++ b/src/libs/qmljs/qmljsvalueowner.cpp @@ -67,7 +67,12 @@ private: class QmlJS::SharedValueOwner : public ValueOwner { public: - SharedValueOwner(); + enum SharedValueOwnerKind{ + Qt4Kind = 1, + Qt5Kind = 2 + }; + + SharedValueOwner(SharedValueOwnerKind kind = Qt5Kind); ObjectValue *_objectPrototype; ObjectValue *_functionPrototype; @@ -109,9 +114,18 @@ public: ColorValue _colorValue; AnchorLineValue _anchorLineValue; }; -Q_GLOBAL_STATIC(SharedValueOwner, sharedValueOwner) -SharedValueOwner::SharedValueOwner() +SharedValueOwner *ValueOwner::sharedValueOwner(QString kind) +{ + static SharedValueOwner qt5owner(SharedValueOwner::Qt5Kind); + static SharedValueOwner qt4owner(SharedValueOwner::Qt4Kind); + if (kind == QLatin1String("Qt4Kind")) + return &qt4owner; + else + return &qt5owner; +} + +SharedValueOwner::SharedValueOwner(SharedValueOwnerKind kind) : ValueOwner(this) // need to avoid recursing in ValueOwner ctor { _objectPrototype = newObject(/*prototype = */ 0); @@ -526,8 +540,21 @@ SharedValueOwner::SharedValueOwner() // firebug/webkit compat ObjectValue *consoleObject = newObject(/*prototype */ 0); - addFunction(consoleObject, QLatin1String("log"), 1); - addFunction(consoleObject, QLatin1String("debug"), 1); + addFunction(consoleObject, QLatin1String("log"), 1, 0, true); + addFunction(consoleObject, QLatin1String("debug"), 1, 0, true); + if (kind == Qt5Kind) { + addFunction(consoleObject, QLatin1String("info"), 1, 0, true); + addFunction(consoleObject, QLatin1String("warn"), 1, 0, true); + addFunction(consoleObject, QLatin1String("error"), 1, 0, true); + addFunction(consoleObject, QLatin1String("assert"), 1, 0, true); + addFunction(consoleObject, QLatin1String("count"), 0, 1); + addFunction(consoleObject, QLatin1String("profile"), 0); + addFunction(consoleObject, QLatin1String("profileEnd"), 0); + addFunction(consoleObject, QLatin1String("time"), 1); + addFunction(consoleObject, QLatin1String("timeEnd"), 1); + addFunction(consoleObject, QLatin1String("trace"), 0); + addFunction(consoleObject, QLatin1String("exception"), 1, 0, true); + } _globalObject->setMember(QLatin1String("console"), consoleObject); // translation functions diff --git a/src/libs/qmljs/qmljsvalueowner.h b/src/libs/qmljs/qmljsvalueowner.h index 9797980efbfc8224c2b084747a1883dea9312b6a..61cc64bfd93c4d5083cdedadcfe673f4746666c7 100644 --- a/src/libs/qmljs/qmljsvalueowner.h +++ b/src/libs/qmljs/qmljsvalueowner.h @@ -66,6 +66,7 @@ class QMLJS_EXPORT ValueOwner Q_DISABLE_COPY(ValueOwner) public: + static SharedValueOwner *sharedValueOwner(QString kind = QString()); ValueOwner(const SharedValueOwner *shared = 0); ~ValueOwner();