diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2012-04-17 16:35:19 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@nokia.com> | 2012-04-17 22:32:42 +0200 |
commit | 7d3a56f3cf717a06823c33b031ea4f590e14002d (patch) | |
tree | b5d2845e8353ba2de3028a9f32749ca622e115da /src/qml/qml/v8/qv8valuetypewrapper.cpp | |
parent | f92c3aecd08eef468f9a47f2e970f22beecc8216 (diff) | |
parent | e5f45d9b57bb0542ec47e5a8a4e57388b6d59d35 (diff) |
Merge remote-tracking branch 'origin/api_changes'
Change-Id: I39905acde16ba6bb0ba39401cb73082a73dd9167
Diffstat (limited to 'src/qml/qml/v8/qv8valuetypewrapper.cpp')
-rw-r--r-- | src/qml/qml/v8/qv8valuetypewrapper.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/qml/qml/v8/qv8valuetypewrapper.cpp b/src/qml/qml/v8/qv8valuetypewrapper.cpp index 7a3c675d49..cf2c13fce9 100644 --- a/src/qml/qml/v8/qv8valuetypewrapper.cpp +++ b/src/qml/qml/v8/qv8valuetypewrapper.cpp @@ -324,6 +324,13 @@ v8::Handle<v8::Value> QV8ValueTypeWrapper::Setter(v8::Local<v8::String> property QQmlBinding *newBinding = 0; if (value->IsFunction()) { + if (value->ToObject()->GetHiddenValue(r->engine->bindingFlagKey()).IsEmpty()) { + // assigning a JS function to a non-var-property is not allowed. + QString error = QLatin1String("Cannot assign JavaScript function to value-type property"); + v8::ThrowException(v8::Exception::Error(r->engine->toString(error))); + return value; + } + QQmlContextData *context = r->engine->callingContext(); v8::Handle<v8::Function> function = v8::Handle<v8::Function>::Cast(value); |