aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.11' into devUlf Hermann2018-06-25131-241/+544
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp src/quick/handlers/qquickhandlerpoint.cpp src/quick/handlers/qquicksinglepointhandler.cpp tests/auto/qml/ecmascripttests/test262 Change-Id: I8908ec8c6116ca626fbd269af7625d4c429429ca
| * Doc: Move literal codeblocks to snippet filesVenugopal Shivashankar2018-06-226-12/+116
| | | | | | | | | | Change-Id: Iff45ea6cf414717fd1cb0a194eef390a9f153838 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Doc: Move the code snippets to a separate snippet fileVenugopal Shivashankar2018-06-225-21/+220
| | | | | | | | | | Change-Id: I17671563f2beebe16ae1d08552854eaf44ae43ee Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * PacketProtocol: Explicitly transmit packet sizes in little endianUlf Hermann2018-06-221-5/+15
| | | | | | | | | | | | | | | | | | So far the protocol would fail if the endpoints have different endianness. Task-number: QTBUG-68721 Change-Id: Ib53894b1e2f3eecf40160bb7bb9cfaa4beb2c045 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Doc: Correct QML type for FolderListModel.folderPaul Wicking2018-06-211-4/+4
| | | | | | | | | | | | Task-number: QTBUG-68940 Change-Id: I439ec9b6253815f41e405a0d9f79ff69eb75c98e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Fix crash in binding setup during async load from a LoaderErik Verbruggen2018-06-211-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 91ac4a8d099d10fdfd5aa631da02727b7917d85f removed the source location from QQmlBindingFunction, because it can be retrieved from the QV4::Function in the QV4::CppStackFrame. However, if a binding is initialized as part of an asynchronous load from a Loader component, there might not be a valid function pointer in that frame. In this specific case, we fall back to the source location of the binding function. Task-number: QTBUG-68738 Change-Id: I2d3f17e4cb82be1e70a54cb66f9cf9c17f541f95 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Script::parse(): improve "function expressions as statement" error msgMitch Curtis2018-06-201-3/+4
| | | | | | | | | | Change-Id: I3c54c90bfa48d2f6ba78b898413133e49b66c208 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Fix transitive includeUlf Hermann2018-06-201-0/+2
| | | | | | | | | | | | | | | | qsgtexturefilehandler_p.h is included through other headers that depend on QT_CONFIG(opengl). Change-Id: Ic87482289332cb1a0215ca74362207f9941239d7 Reviewed-by: Michael Brasser <michael.brasser@live.com>
| * revert change 353164263c55825a0ec72d30128c50560c626334Lars Knoll2018-06-194-18/+3
| | | | | | | | | | | | | | | | | | | | | | The change was too aggressive in trying to avoid marking the array data. We didn't catch all cases where on could be inserting a GC controlled object into the array data. Let's be safe and always mark the content of array data objects. Task-number: QTBUG-68894 Change-Id: Ifbb628be898c0903596b1a483212384295b01df5 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
| * Doc: Add missing dots (qtdeclarative)Paul Wicking2018-06-19112-173/+173
| | | | | | | | | | | | Task-number: QTBUG-68933 Change-Id: Ibb5aa227e82825085e7214e17dcffcb17fd44157 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Flickable: fix another possible cause for out-of-sync moving flagsNils Jeisecke2018-06-191-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In addition to d868bb4f3e4b0424fd4a2989ff1c82692b0f014c this removes the check for scrollingPhase in movementEnding. If movementEnding is invoked by some codepath other than timerEvent (e.g. setContentY) and scrollingPhase is true this will again prevent any further invocation of movementStarting from within the drag method (see d868bb4). As this check was introduced together with the movementEnding timer (QTBUG-63026) and scrollingPhase is now checked inside the timerEvent there should be no need for the check in movementEnding. Task-number: QTBUG-67460 Change-Id: I88ad6e3ee56b88a66bb61798b8876324f4842f1e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Fix crash with the QQuickRenderControl and deleteLaterDavid Edmundson2018-06-241-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From 238cc098d785b4fe76fbc8422b340d98ff8c1a1b which removes this same line from the software renderer. >I can't see a good reason for the existence of the sendPostedEvents() >call there. It is not present in the other render loops and according to >git blame it stems from the very early first implementation of the >software renderer where surely copy & paste from other render loop code >was involved back then. Task-number: QTBUG-68997 Change-Id: I40aaeb92f431d474b7b1affb85d0ea5f8b2a46ef Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Clean up finally code genSimon Hausmann2018-06-231-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of emitting GetException MoveReg <returnvaluetemp>, <returnaddress> StoreReg <exceptiontemp> ... LoadReg <exceptionTemp> MoveReg <returnvaluetemp>, <returnaddress> SetException and implicitly relying on MoveReg to not clobber the accumulator, it's cleaner to produce MoveReg <returnvaluetemp>, <returnaddress> GetException StoreReg <exceptiontemp> ... MoveReg <returnvaluetemp>, <returnaddress> LoadReg <exceptionTemp> SetException Change-Id: I3c392ba5fb75aa2ad3ef32aa776fa7acbc25317c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Add run time assertion for local handlingSimon Hausmann2018-06-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Commit f44782d0cdbdb800d9c31d5aff712fbf29d52edc fixed the missing call context creation that would lead to language/statements/break/S12.8_A2.js failing. It wouldn't always fail as the invalid cast from the global context to a call context would access memory that happens to be available just for the test. An assertion however will not require us to rely on memory setup. Change-Id: I131a2242004cd5e4d518e58cc9f6a79037f962d2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix remaining failues with qjstest --jitSimon Hausmann2018-06-223-2/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The codegen generates code like this for the unwind handling: GetException MoveReg <somereg>, <return value reg> SetException In the interpreter, MoveReg doesn't clobber the accumulator, but in the JIT it did. Change-Id: I7a9c8200468115ca37403ec8a0d511210e2b25fd Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix language/expressions/equals/coerce-symbol-to-prim-return-prim.js with JITSimon Hausmann2018-06-222-129/+122
| | | | | | | | | | | | | | | | | | Use the same method for comparing values for the JIT as well as the interpreter, so that the test passes with interpreter as well as the JIT. Change-Id: I2e0249d8e915c816a64adc922839cb71f0e065db Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Improve GC safety of compare functionSimon Hausmann2018-06-221-5/+32
| | | | | | | | | | | | | | | | | | When comparing values we may end up calling user-defined conversion functions, which in turn may accidentally end up triggering the GC. So any intermediate managed values we fetch, we must save on the JS stack. Change-Id: I810a46f740f22f8fd71a83ed362301cfc822190d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Add missing 'we mean it' warning to private headerKai Koehne2018-06-221-0/+11
| | | | | | | | | | | | | | | | Fixes syncqt warning: QtQuick: WARNING: src/quick/items/qquicktableview_p_p.h does not have the "We mean it." warning Change-Id: Iebda5832bb6a931aec9b34db149c062cf5e03343 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | QQmlDebugConnector: Don't complain about new pluginKey if it's unchangedUlf Hermann2018-06-221-1/+1
| | | | | | | | | | | | | | | | We cannot set the plugin key to a new value if we've already instantiated the plugin. Setting the same value again, is a noop, though. Change-Id: Ib2d2cb3dc20d8d3d7f1673957970f5235e3aeccc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Enable perf map writing on all platformsErik Verbruggen2018-06-211-3/+1
| | | | | | | | | | | | | | | | This is controlled by a environment variable, so the code won't be executed if not explicitly asked for. Change-Id: Iec7be17ae1f21f604064e12f35ffe24be0407760 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Check that toObject() didn't failLars Knoll2018-06-211-0/+2
| | | | | | | | | | | | | | | | Avoid a crash below if the toObject call failed and threw an exception. Change-Id: I82a12c5cd8892c176d345d7f4b0cf3297357f272 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Extend V4's Math object with methods new in ES6Edward Welbourne2018-06-212-5/+206
| | | | | | | | | | | | | | | | | | | | Added: acosh, asinh, atanh, cbrt, clz32, cosh, expm1, fround, hypot, imul, sinh, tanh and trunc. Some needed hand-coding for android, whose std:: is defective. Fixed some buglets in existing asin and round in the process. Change-Id: I0858d45430dc0f5944c53723545717ca1ffa6ef7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add support for ReflectLars Knoll2018-06-215-1/+364
| | | | | | | | | | | | | | | | Implemented all methods in Reflect, only some smaller bugs left in there. Change-Id: I53d2304d0e59566aec64e200cd995e02afcfc33e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add support for function calls with spreadLars Knoll2018-06-2110-42/+235
| | | | | | | | | | | | | | | | | | | | | | Function calls with thread are modelled by pushing an empty value in front of every argument that requires spreading. The runtime methods callWithSpread and constructWithSpread then take care of spreading out the arguments. Change-Id: Ie877c59d3d9d08fc5f20d7befb7153c7b716bf30 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Get rid of LoadElement and LoadProperty instruction overloadsLars Knoll2018-06-218-87/+34
| | | | | | | | | | | | | | Always use the overload where the value is in the accumulator. Change-Id: I6a3d81fea7aae957e0cf6efd123d7739f8880c95 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Unify DeleteMember and DeleteSubscript instructionsLars Knoll2018-06-219-92/+34
| | | | | | | | | | | | | | | | The delete operator is rarely used, so it's simpler to unify these into one DeleteProperty instruction. Change-Id: I8c0d4455b35efb03db2ab0010df70030d774a6ae Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Get rid of the unused JumpEmpty instructionLars Knoll2018-06-218-37/+0
| | | | | | | | | | Change-Id: I117687939e0f02d801dbad8de7761b4c799f2035 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add support for spread expressions in Array literalsLars Knoll2018-06-212-35/+140
| | | | | | | | | | Change-Id: I613d853dbb34d86ebedd871e9676d3206f1e3349 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Provide API to access singletons associated with a QQmlEngineRichard Weickelt2018-06-216-9/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds allows C++ code to retrieve the instance of a registered singleton type. Until now this required a deturn via QML expression. Two methods are added to QQmlEngine: A generic one that encapsulates all singleton objects in a QJSValue and a template function for QObject-derived singleton types. An additional convenience function is added to query the QML type id. This function may also be used for other purposes in the future. [ChangeLog][QtQml][QQmlEngine] Added API to access singletons associated with a QQmlEngine. Task-number: QTBUG-39970 Change-Id: I67c132ede35f80b9aaf1c5e5456715cf4f1b0848 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Variables declared in strict eval code don't all escapeLars Knoll2018-06-211-1/+1
| | | | | | | | | | | | | | | | | | eval() calls in strict mode code create their own context, so even though we don't have a parent context, those variables do not escape, and can be allocated on the stack. Change-Id: Iea1853452fe1f792468fd6108851f04a1acf9b66 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QQmlDelegateModel: even for QAIM, only use first column by defaultRichard Moe Gustavsen2018-06-213-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 2f9afadd5d9b4899397dca, we introduced a change in QQmlAdaptorModel so that a QAIM model report that it contains "rows * cols" number of model items, and not just "rows". This was needed, otherwise TableView would only display the first column of such models. It turns out, however, that also ListView will now detect that a QAIM contain more items than just the items in the first column. The result will be that it ends up adding all the other columns underneath the first column in the view. To avoid this unforseen change, this patch will revert this logic, and instead add a private variable that can be set if the new behavior is wanted (e.g by TableView). Change-Id: I8c13da99f05e2f922362e498d1fa1779cdbd0d72 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Fix const expressions containing destructuring patternsLars Knoll2018-06-212-2/+1
| | | | | | | | | | | | | | | | Don't throw a syntax error when encountering a destructuring pattern. Change-Id: I93250a2963d2d50ff61d725229e1b51be17689e9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix array destructuring nested in a rest elementLars Knoll2018-06-212-24/+23
| | | | | | | | | | Change-Id: I3a8c15fe221bff04a3b9b21ed8c0b06c04770a3d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix more issues with destructuringLars Knoll2018-06-214-30/+50
| | | | | | | | | | | | | | | | | | | | Fix destructuring targets that are complex lhs expressions. There are still some failures remaining, but this fixes another larger chunk of test cases. Change-Id: Icf08f42d7c70d4e81be5d5d2e27ebe6249d25467 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove some dead codeLars Knoll2018-06-213-28/+0
| | | | | | | | | | | | | | maxNumberOfArguments isn't used anymore. Change-Id: Ibb891101b971b4b0b01be7897e6d1490e1dde62c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix handling of elisions in destructuring expressionsLars Knoll2018-06-215-24/+17
| | | | | | | | | | | | | | | | We need to iterator over elisions at the end, as those could trigger side effects by calling iterator.next() Change-Id: Ieb5fa3562b6e60fdf179fa228510b2eeaaf9da30 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix more test failures for destructuring expressionsLars Knoll2018-06-211-3/+6
| | | | | | | | | | | | | | | | Fix parsing of var { x = function(){} } = ... Change-Id: I524e39c7a556c392a5359eafc445b59020ccadf2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Correctly set the name of anonymous functions in most casesLars Knoll2018-06-211-0/+6
| | | | | | | | | | | | | | | | If the anonymous function is bound to an identifier, set the name to the identifier. Change-Id: Idbb3170210e6f91cca3c9bd36b2b6ddcb3a50c7b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Allow a trailing comma in parameter listsLars Knoll2018-06-211-8/+19
| | | | | | | | | | | | | | | | This got changed in ES8, but let's already take this in now, as there are quite a few tests checking this behavior. Change-Id: I73f86b8fd8a681881bcc9cc3132bef1589d5194f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix some of the finer details with regards to CompletionsLars Knoll2018-06-213-11/+121
| | | | | | | | | | | | | | | | | | | | | | JS completion records have some finer details that can only be seen when using eval(), where the value of the completion record becomes important. Fix most of those cases to be compliant with the spec. Change-Id: I0c8105a8e778de7be3aea151d1bd64243aea067c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Exit test executable with failure if specified test functions are not foundKari Oikarinen2018-06-211-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If QtQuickTest test executable was given filters that didn't match in any of the qml files run, it exited successfully. In combination with a Coin bug when the test function name contains a space, this allowed failing tests to pass the CI. If the test function fails, the repeat attempts would pass two arguments to the executable. Neither of those hit, but that wasn't considered a problem. Check that all of the test functions named on the command line are actually executed during the whole run and otherwise exit with a non-zero exit code. I assume there's no duplicates in the whole names of test functions scoped with testcase names. Task-number: QTBUG-68197 Change-Id: Icf7fe263945403f02920522dfd187aeb76b7cb3c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kalle Viironen <kalle.viironen@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* | Move QtQuick.Shapes implementation to qtquickshapes, privately exportedPaolo Angelelli2018-06-2135-41/+197
| | | | | | | | | | | | | | | | | | | | | | This change moves the implementation of QtQuick.Shapes into an own qt module, where classes are privately exported. In this way Shapes QML types can be internally (= from other Qt modules) instantiated also from cpp. Change-Id: I428f981f0a1f3083e6571cbeaffa706fd8ef7254 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Always generate QML cache files in the cache directory, never in sourcesRichard Weickelt2018-06-212-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch eliminates the annoying behavior of the QML compiler that .qmlc cache files are stored alongside the sources. When cache files are generated at run-time, then they are always stored in the application's local cache directory defined by QStandardPaths::CacheLocation (qmlcache subfolder). The application's uninstaller is responsible for cleaning up the cache directory during removal. If explicitly precompiled QML files exist at the source location, then they are loaded from there and no cache file is being generated. Storing cache files in the source directory is as problematic as an in-tree build. The cache files pollute the source directory and create unnecessary inconvenience with version control systems. [ChangeLog][QtQml][QQmlEngine] QML cache files are now always stored in the application's cache directory when being generated at run-time. If precompiled QML files exist at the source location, then they are loaded and no cache file is being generated. The application's uninstaller is responsible for cleaning up the cache during removal. Task-number: QTBUG-56150 Change-Id: I5a64b7f958e782e03c71873a82cef4b07011cbf1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Rework unwind handlingLars Knoll2018-06-2113-430/+349
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old code was rather convoluted and expanded to quite a bit of bytecode. It was also very hard to fix some of the remaining issues with unwinding in there. The new code handles unwinding a bit differently. Basically, we now have three instructions to do what the spec requires. SetUnwindHandler is the same as the old SetExceptionHandler instruction. It basically tells the runtime where to jump to to handle any abrupt completion (ie. throw/break/continue/return) that requires unwinding. UnwindToLabel is a new instruction that is used for unwinding break/continue/return statements. It takes two arguments, one telling the runtime how many levels to unwind and the second a target label to jump to when unwinding is done. UnwindDispatch is the third instruction and is invoked at the end of each unwind block to dispatch the the parent unwind handler if required and thus implement the support for the levelled unwinding. Change-Id: I079a39d0d897b3ecc2f0dc631ca29b25eae05250 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Swap the order of protection for cache flushTuomas Heimonen2018-06-211-2/+2
| | | | | | | | | | | | | | | | This is to accommodate operating systems such as VxWorks that require writable pages in order to perform the flushing Change-Id: Iefcd26a4d7fa74fa046776c6ee2883399a4d31dc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Deliver QNativeGestureEvent via deliverSinglePointEventUntilAcceptedShawn Rutledge2018-06-214-49/+21
| | | | | | | | | | | | | | | | This just simplifies the code a little, and also enables event filtering during delivery to Items. Change-Id: I407dc9a19207f977b574f2a92f5da892e8752987 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Deliver QWheelEvent wrapped as QQuickPointerScrollEventShawn Rutledge2018-06-212-36/+41
| | | | | | | | | | | | | | | | | | | | | | | | and prepare to let Pointer Handlers see these events. There are several types of events which are delivered recursively by a less-complex algorithm: wheel, hover, native gesture etc. deliverSinglePointEventUntilAccepted() is intended for those. Task-number: QTBUG-68119 Change-Id: I68c2d77925daab6107354c1cc12bb525ded936b1 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Move wantsEventPoint() up from SinglePointHandler to QQPointerHandlerShawn Rutledge2018-06-205-7/+7
| | | | | | | | | | | | | | | | We want to be able to call it from the upcoming QQuickItemPrivate::anyPointerHandlerWants function. Change-Id: I15ef60303fa56f43e66b16c8dd0f4102070536d0 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Add QQuickPointerScrollEvent as a wrapper for QWheelEventShawn Rutledge2018-06-202-0/+110
| | | | | | | | | | | | | | | | | | We'll use this for delivery of QWheelEvents to both Items and Pointer Handlers. Later we can perhaps use it for QScrollEvent too. Task-number: QTBUG-68119 Change-Id: I04cbbc85fe1a86cf5fd0374d353876f7e6140b70 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Add QQuickSinglePointEvent as intermed. base for QQMouseEvent and othersShawn Rutledge2018-06-202-124/+74
| | | | | | | | | | | | | | | | | | | | | | | | For now we already have QQuickPointerNativeGestureEvent; and in the future, there may be other single-point events such as wheel events. It's handy to reuse the implementations of several virtual functions and the m_point storage. Also format braces more consistently in function implementations. Change-Id: I4b514610b9ed2bd23b7e9a6f1acf826ebd9ebc45 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>