summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Fix and test for assert/crash in v8 inlining of local functions in qml modev5.1.0-rc1David McFarland2013-05-314-0/+42
| | | | | | | | | | | | | | | When v8 tries to inline a local function which has been flagged is_qml_global, the assert "CHECK(location_ != __null)" fails. This happens because of the early out in RecordTypeFeedback for is_qml_global. I've limited the early out to UNALLOCATED variables with is_qml_global. bug: https://bugreports.qt-project.org/browse/QTBUG-31366 Change-Id: I360ef1a05a970589159686cf3100cb70de9ae29d Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-174-4/+4
|\ | | | | | | Change-Id: I5973d2b84a0b2690b4b7f8dc37711c7dfd106180
| * Update copyright year in Digia's license headersSergio Ahumada2013-01-104-4/+4
| | | | | | | | | | | | Change-Id: I96c696a2318ae4959af9d56e2c8d943e00542fa0 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* | Add testcase for variable declaration when QML compilation mode is enabledPeter Varga2013-01-114-0/+71
|/ | | | | Change-Id: I04596a40a5953cb8c93a28f10e07c3ba33dc4793 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix non-Qt testingPeter Varga2012-10-164-24/+66
| | | | | | | | | | The Makefile.nonqt has been updated to use gyp build instead of scons. Some new test cases have been added for non-Qt testing and the Qt specific v8test_stringhascomparison has been skipped by NONQT_TESTING macro. Change-Id: I71f0d41de2f9c46767c9c9a7ec5c45ff25b1fe98 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Add testcase for Strign::ComputeHash functionPeter Varga2012-09-284-0/+62
| | | | | | | | The qcalculatehash_p.h private header also has been added to provide function calculatehash for qml and the new testcase. Change-Id: I1a0cf6052f596438f50bb5d2899ceaaae3e2e477 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Always initialise symbol_id for ASCII symbolsPhilip Lorenz2012-09-243-0/+55
| | | | | | | | | | | | | Commit 30662b5d64ff633f57d89290da2a85507d561187 dropped the default initialisation of the symbol_id for ASCII characters. This leads to problems when trying to access the symbol_id when the symbol was not instantiated via AsciiSymbolKey (e.g. via SubStringAsciiSymbolKey). Additionally, AsciiSymbolKey does not guarantee the presence of a symbol_id in case the SMI value space has been exhausted. Change-Id: I778bc5cc3cee80038a4ca6606bfcf4423d569132 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-234-96/+96
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Ieaceddcb9e3ef7be89be129b3bcac34d37ba2586 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Set the Qt API level to compatibility mode in all tests.Thiago Macieira2012-08-011-0/+1
| | | | | | | | | | Qt 5.0 beta requires changing the default to the 5.0 API, disabling the deprecated code. However, tests should test (and often do) the compatibility API too, so turn it back on. Task-number: QTBUG-25053 Change-Id: I43873a55fbaf106efc4fb2955569a643aff19480 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* test: Allow linking to the gyp build mips/arm release/debug buildHolger Hans Peter Freyther2012-05-162-3/+19
| | | | | | | | | | | SCons will be deprecated soon and the new gyp buildsystem allows to build for MIPS/ARM debug/release at the same time in different build directories. Add Makefile targets to link arm/mips test applications. I plan to use them for nigthly builds on my public jenkins. Change-Id: I16e7637e1066d1f27724ec3403bcc770cd190a61 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com> Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
* v8: Fix the compilation of the standalone test on GNU/Linux systemsHolger Hans Peter Freyther2012-05-091-0/+1
| | | | | | | | | | | | | Without including string.h, memcmp will not be known and will lead to the following error: v8main.cpp:59:5: error: ‘::strcmp’ has not been declared v8main.cpp:60:5: error: ‘::strcmp’ has not been declared ... Change-Id: I82382ca930f654c090a78a39f54abc8fb0a88f63 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Kent Hansen <kent.hansen@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Add testcases for fallback interceptorsPeter Varga2012-05-084-2/+536
| | | | | Change-Id: I85d31c5443cbfca7462aa671d59a50f22fead9c4 Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Fix assert in stub-cache.cc when loading qml-mode functionsKent Hansen2012-03-203-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit c511fa8a6a631e45ee4075453bcb2eeb7f01ba63 introduced a regression that could cause an assert in V8 to be triggered: Fatal error in ../3rdparty/v8/src/stub-cache.cc, line 1171 CHECK(!CallIC::Contextual::decode( Code::ExtractExtraICStateFromFlags(flags))) failed The assert would be triggered when 1) the "QML global object" (implicit receiver in qml-mode evaluation) defined more than 12 properties, and 2) a function property of the QML global object was looked up at least twice from JavaScript. In particular, the V8 IC would assert that there should be an explicit receiver when advancing the function lookup from pre-monomorphic state to monomorphic state. (The magic number 12 (number of properties needed to trigger the bug) is the kMaxFastProperties constant. This is the threshold where V8 switches to using a dictionary for the object storage, instead of using "fast properties" (array).) The IC correctly determines that the property holder object (the QML global object) is not the JS Global Object, and hence compiles it as a "normal" call, in which it asserts that "there must be an explicit receiver here". But in QML mode, the receiver can be implicit when the holder is the QML global object. Propagate this information to the stub cache to avoid the assert triggering. The generated JIT code still works as expected when the receiver is implicit (i.e., the receiver is always loaded). None of the other property/function-load IC handlers have a similar assert. It might be worth investigating whether "QML global object" property loading should have dedicated cache stubs; e.g. a ComputeCallQmlGlobal() akin to ComputeCallGlobal(). This could potentially simplify/speed up the generated code, since we can take advantage of the read-only nature of the QML global object type right off the bat. But that's a bigger change that would require all the JIT compilers and the GC to be adapted. Task-number: QTBUG-24871 Change-Id: I55e499d9c61ff264e3a96e5628e2f30292ee565d Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Let V8 throw the exception when QML property lookup failsKent Hansen2012-03-144-0/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should be squashed into the "Introduce a QML compilation mode" commit (8a4d849a0152c76bd9107a1b38a641cf8c0ff226) the next time V8 is rebased. In normal (non-QML) mode, when a global property lookup fails (implicit receiver ("this") object), V8 decides to throw an exception iff the expression evaluation is not part of a "typeof" evaluation. If it is evaluated as part of "typeof", the result silently becomes "undefined". This is the expected behavior as per the ECMA-262 standard; "typeof" shouldn't throw a ReferenceError even if the expression involves a global variable that doesn't exist. This commit brings the QML mode behavior in line with normal mode. When the receiver object is a QML global object, V8 up until now hasn't detected whether it should throw an error in that case. The QML implementation has been working around that by explicitly throwing the ReferenceError in the QML context wrapper, but that breaks the "typeof" operator in QML mode. The QML context wrapper should rather return an empty handle, and leave it up to V8 to throw the exception as appropriate. This also reverts the parts of the original QML mode patch that changed the RelocInfo mode for QML variables, since V8 relies precisely on this mode to know whether it's evaluating a "typeof". (It's no longer clear why the RelocInfo mode was modified in the first place.) Task-number: QTBUG-24448 Change-Id: Ic33610d5e91bdf373b22d97a3181e6e5f2fc1843 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
* Add testcase for Context::GetCallingQmlGlobal functionPeter Varga2012-03-033-0/+64
| | | | | Change-Id: I509b168b6923e1a9e92c6ab3505d51ea607e979c Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-304-4/+4
| | | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: Iae1bc1790d55d2afd3cd1d1799ac48dd225e63c7 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update obsolete contact address.Jason McDonald2012-01-244-4/+4
| | | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I4eec7c0fb71742c4a5836905f45ba49452250d6a Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Created QtJSBackend module.Simon Hausmann2012-01-059-0/+644
Imported src/v8, tools and tests from qtbase (1fdfc2abfe1fa26b86028934d4853432e25b4655) and added the necessary build system files to build it as a top-level Qt module. Change-Id: I0b784165157bfb031059f1528c1b3b2828284f6f