diff options
author | Kent Hansen <khansen@trolltech.com> | 2009-08-10 11:01:42 (GMT) |
---|---|---|
committer | Kent Hansen <khansen@trolltech.com> | 2009-08-10 11:01:42 (GMT) |
commit | fab932713af6dfa7aad06ddfde774d25f5222472 (patch) | |
tree | f96e87bbc0fe3a5448c105bf161fd4bf5bfa464d /src/script/bridge | |
parent | 34511e1001471ed4041794640aefe508f50ad01c (diff) | |
download | Qt-fab932713af6dfa7aad06ddfde774d25f5222472.zip Qt-fab932713af6dfa7aad06ddfde774d25f5222472.tar.gz Qt-fab932713af6dfa7aad06ddfde774d25f5222472.tar.bz2 |
implement QScriptClass property query semantics of old back-end
Look up the property as a normal JS property before falling back
to the dynamic query mechanism. This is the documented behavior.
Diffstat (limited to 'src/script/bridge')
-rw-r--r-- | src/script/bridge/qscriptclassobject.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/script/bridge/qscriptclassobject.cpp b/src/script/bridge/qscriptclassobject.cpp index 2c28ca0..50547e81 100644 --- a/src/script/bridge/qscriptclassobject.cpp +++ b/src/script/bridge/qscriptclassobject.cpp @@ -89,6 +89,11 @@ bool ClassObjectDelegate::getOwnPropertySlot(QScriptObject* object, const JSC::Identifier &propertyName, JSC::PropertySlot &slot) { + // for compatibility with the old back-end, normal JS properties + // are queried first. + if (QScriptObjectDelegate::getOwnPropertySlot(object, exec, propertyName, slot)) + return true; + QScriptEnginePrivate *engine = scriptEngineFromExec(exec); QScriptValue scriptObject = engine->scriptValueFromJSCValue(object); QString name = qtStringFromJSCUString(propertyName.ustring()); @@ -101,7 +106,7 @@ bool ClassObjectDelegate::getOwnPropertySlot(QScriptObject* object, slot.setValue(engine->scriptValueToJSCValue(value)); return true; } - return QScriptObjectDelegate::getOwnPropertySlot(object, exec, propertyName, slot); + return false; } void ClassObjectDelegate::put(QScriptObject* object, JSC::ExecState *exec, |