Let V8 throw the exception when QML property lookup fails
authorKent Hansen <kent.hansen@nokia.com>
Wed, 14 Mar 2012 12:39:31 +0000 (13:39 +0100)
committerQt by Nokia <qt-info@nokia.com>
Wed, 14 Mar 2012 18:49:35 +0000 (19:49 +0100)
commita27fd584df0ec3d1d072501d8fefe576a97a2e53
tree1db602032bc1d018eb6d76ef326e0cbdb57f5e00
parent8f077f28c51c24e71d95c4e99d322734578d9c9c
Let V8 throw the exception when QML property lookup fails

Only V8 knows whether a failed property lookup should actually cause
a ReferenceError to be thrown. When evaluating a "typeof" expression,
for example, a ReferenceError should not be thrown even if the
expression involves global variables that don't exist, according to
the ECMA-262 specification.

QML should try to match the standard JavaScript behavior. This is
achieved by simply returning an empty value handle (to signify the
absence of the property), and leaving it to V8 to throw an exception
as appropriate.

Task-number: QTBUG-21864
Task-number: QTBUG-24448
Change-Id: I9945adcab98fc3b801371163367473d6af0ab31a
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
src/qml/qml/v8/qv8contextwrapper.cpp
tests/auto/qml/qqmlecmascript/data/qtbug_24448.js [new file with mode: 0644]
tests/auto/qml/qqmlecmascript/data/qtbug_24448.qml [new file with mode: 0644]
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp