diff options
| author | Joerg Bornemann <joerg.bornemann@digia.com> | 2013-04-02 13:45:55 +0200 |
|---|---|---|
| committer | Christian Kandeler <christian.kandeler@digia.com> | 2013-04-03 13:26:30 +0200 |
| commit | a44efdd72349a5d2fcb1bb77cf729a84e712f74e (patch) | |
| tree | 5c28976e8d32d932ecd4417df8df5b4754952aaf | |
| parent | f501c82eb66f478c0447ffa08dee1b629f0baa6b (diff) | |
| download | qbs-a44efdd72349a5d2fcb1bb77cf729a84e712f74e.tar.gz | |
introduce ScriptEngine.defineProperty
This is a convenience wrapper around Object.defineProperty.
Change-Id: Ifefe59ea8a443bed347115be9e8e87078a853ec4
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| -rw-r--r-- | src/lib/language/scriptengine.cpp | 18 | ||||
| -rw-r--r-- | src/lib/language/scriptengine.h | 1 |
2 files changed, 13 insertions, 6 deletions
diff --git a/src/lib/language/scriptengine.cpp b/src/lib/language/scriptengine.cpp index 15291f1fd..d8c80f903 100644 --- a/src/lib/language/scriptengine.cpp +++ b/src/lib/language/scriptengine.cpp @@ -121,6 +121,17 @@ QScriptValue ScriptEngine::retrieveFromPropertyCache(const QString &moduleName, propertyMap)); } +void ScriptEngine::defineProperty(QScriptValue &object, const QString &name, + const QScriptValue &descriptor) +{ + QScriptValue arguments = newArray(); + arguments.setProperty(0, object); + arguments.setProperty(1, name); + arguments.setProperty(2, descriptor); + QScriptValue result = m_definePropertyFunction.call(QScriptValue(), arguments); + QBS_ASSERT(!result.isError(), qDebug() << name << result.toString()); +} + static QScriptValue js_observedGet(QScriptContext *context, QScriptEngine *, void *arg) { ScriptPropertyObserver * const observer = static_cast<ScriptPropertyObserver *>(arg); @@ -147,12 +158,7 @@ void ScriptEngine::setObservedProperty(QScriptValue &object, const QString &name QScriptValue descriptor = newObject(); descriptor.setProperty(QLatin1String("get"), getterFunc); descriptor.setProperty(QLatin1String("set"), m_emptyFunction); - QScriptValue arguments = newArray(); - arguments.setProperty(0, object); - arguments.setProperty(1, name); - arguments.setProperty(2, descriptor); - QScriptValue result = m_definePropertyFunction.call(QScriptValue(), arguments); - QBS_ASSERT(!result.isError(), qDebug() << name << result.toString()); + defineProperty(object, name, descriptor); } void ScriptEngine::importProgram(const QScriptProgram &program, const QScriptValue &scope, diff --git a/src/lib/language/scriptengine.h b/src/lib/language/scriptengine.h index e39d46e25..19e43e98d 100644 --- a/src/lib/language/scriptengine.h +++ b/src/lib/language/scriptengine.h @@ -67,6 +67,7 @@ public: QScriptValue retrieveFromPropertyCache(const QString &moduleName, const QString &propertyName, const PropertyMapConstPtr &propertyMap); + void defineProperty(QScriptValue &object, const QString &name, const QScriptValue &descriptor); void setObservedProperty(QScriptValue &object, const QString &name, const QScriptValue &value, ScriptPropertyObserver *observer); |
