aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/v8
Commit message (Collapse)AuthorAgeFilesLines
* Rename QDeclarative symbols to QQuick and QQmlMatthew Vogt2012-02-2457-15215/+0
| | | | | | | | | | | | | Symbols beginning with QDeclarative are already exported by the quick1 module. Users can apply the bin/rename-qtdeclarative-symbols.sh script to modify client code using the previous names of the renamed symbols. Task-number: QTBUG-23737 Change-Id: Ifaa482663767634931e8711a8e9bf6e404859e66 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Implement String.localeCompare() using QString::localeAwareCompare()Martin Jones2012-02-221-0/+1
| | | | | | | | v8's localeCompare() implementation is not locale aware, so we use Qt's locale aware compare. Change-Id: Ia9092b3d6754545bb797adac26080ac7a29dcd92 Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
* Console API: Pass context information from js to qt logging frameworkKai Koehne2012-02-201-36/+87
| | | | | | | | Log the file, line, function context from the original calls in js. Also print the stack trace as part of one multi-line message. Change-Id: I53836df081f3ce06e9b52ebb647ba172ff6bdbef Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
* Don't store object and property in QDeclarativeAbstractBindingAaron Kennedy2012-02-202-6/+17
| | | | | Change-Id: Ia164655f6329ec80dc466a1a3a5613a73e1c23ac Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Reduce size of QV8BindingsAaron Kennedy2012-02-202-34/+63
| | | | | Change-Id: I4bd8fed3f38aa358fb42e21b5cf19ff1aa61c138 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Reduce size of QDeclarativeJavaScriptExpressionAaron Kennedy2012-02-202-11/+19
| | | | | Change-Id: Ie1242d18ef10e5cbd9c1cab27c31ad3f6d9281fd Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Reduce size of QV8Bindings::BindingAaron Kennedy2012-02-202-34/+44
| | | | | | | Use the instruction ptr instead of copying data Change-Id: I2e9c8ce2fcf5d664ac98d8d58b5733b60e8bf548 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Reduce the size of QDeclarative*ExpressionAaron Kennedy2012-02-202-15/+25
| | | | | | | | Reduces the size of QDeclarativeAbstractExpression and QDeclarativeJavaScriptExpression. Change-Id: I39386e5a45f8bd12bfb2d80b47dfec37f2f05479 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Use Utf8 for javascript source codeAaron Kennedy2012-02-204-4/+31
| | | | | | | This saves a surprising amount of memory. Change-Id: I16f7bde8d11fe11703d4e441060fd52e9632248c Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Reduce the memory used by QStringHashAaron Kennedy2012-02-161-0/+12
| | | | | | | | | This change reduces the memory consumed by individual QStringHashNodes, and adds support for "linking" one hash to another that allows us to avoid copying all the nodes. Change-Id: Ib5bd151d8ec610a020fd125f46a4e218d959529b Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Fix warnings in sequence wrapper codeChris Adams2012-02-151-36/+83
| | | | | | | | | | | | | | | Previously, the sequence wrapper had unsigned int / signed int comparisons (due to Qt container classes only allowing signed int indexes (where negative indexes are invalid). This commit ensures that unsigned indexes are bounds checked appropriately, and also fixes a warning due to QString construction from QByteArray. Finally, it updates the documentation for sequences to clarify the indexing semantics. Change-Id: I4c6e133bef6e980a9ccb62ff15a70a5d41537ee3 Reviewed-by: Martin Jones <martin.jones@nokia.com> Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Fix typo in error string.Glenn Watson2012-02-141-1/+1
| | | | | | | | | Provide correct line/column information in case of error while creating dynamic qml object. Task-number: QTBUG-24065 Change-Id: I283408c898706dc6df57e21a57d97bafd56d9aaa Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Change linkage of datafunction in V8_DEFINE_EXTENSION to static.Justin McPherson2012-02-131-1/+1
| | | | | | | Stops interaction with items of the same name elsewhere. Change-Id: I37ffdc8253d76247f03bd593785a35069636eba8 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
* Debugger: Rename QDeclarativeDebugTrace to QDeclarativeProfilerServiceKai Koehne2012-02-102-5/+5
| | | | | | | | This avoids naming confusion with QDeclarativeTrace + makes it in line with QV8ProfilerService. Change-Id: Ifd801655044cff3ffdb2a9695ffc9868eeb51663 Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
* Use QInputMethod instead of deprecated QInputPanelPekka Vuorela2012-02-102-1/+3
| | | | | | | | | | Similarly deprecate Qt.application.inputPanel and introduce replacement Qt.inputMethod. Change-Id: Ie4fd467f93f75023c86b0a2d038d858fe5001146 Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Sami Kananoja <sami.kananoja@nokia.com>
* Remove deprecated builtin sql database API.Charles Yin2012-02-092-8/+1
| | | | | | | | | | | The new local storage API has been implemented as a standalone module plugin for a while, and qtquick1 has been moved into a seperated repo, so the old API can be safely removed now. Task-number:QTBUG-21538 Change-Id: Ib89f34797afe492ad4987d5afa8ff23cdca044ab Reviewed-by: Martin Jones <martin.jones@nokia.com> Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Handle exceptions while compiling v8 bindingsChris Adams2012-02-091-6/+32
| | | | | | | | | | | | | Previously, no exception handling existed, which could cause a crash if an invalid v8 binding expression was generated. Such invalid bindings should usually be rewritten into valid form by the bindings rewriter, but in some cases it is too costly to do so, so we need to handle exceptions. Task-number: QTBUG-24064 Task-number: QTBUG-23387 Change-Id: I7da12a936780a561c9e9cad3a4a7b62c06d6973e Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
* Update documentation on QJSEngine::newQObject to match implementation.Jamey Hicks2012-02-081-1/+1
| | | | | Change-Id: Id38244dd78b7d562dad14e08555fb55d2e0815fa Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Mark constructor of QJSValue as deletable.Jędrzej Nowacki2012-02-072-11/+2
| | | | | | | This constructor is there only to force compile time error. Change-Id: Ia2e059e0c7fa516949a166da8856543a5608d217 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Remove warnings with clangYann Bodson2012-02-071-1/+1
| | | | | Change-Id: I924f0adc036b47e2342bf383d308c6a5269c2de6 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Fix some QJSValue test failures.Glenn Watson2012-02-061-2/+10
| | | | | | | | | | | Fix precision issues causing test failures on platforms where qreal is defined as single precision. Also use explicit casts to ensure well defined behaviour when converting a negative double value to an unsigned integer. Change-Id: Ia0048bf83169d3b617f70828f86368c23f4f3786 Reviewed-by: Chris Adams <christopher.adams@nokia.com> Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Remove QJSEngine::undefinedValue() functionKent Hansen2012-02-023-21/+0
| | | | | | | | | | | | | | | | Rationale: It's strange to have an undefined value factory function. There should just be one way of constructing undefined values: By passing UndefinedValue to the QJSValue constructor. The undefinedValue() function created a value that was bound to the engine; the QJSValue constructor does not. In order to ensure that we're testing the same behavior as before, I've replaced undefinedValue() calls by toScriptValue(QVariant()) in the autotests. Task-number: QTBUG-23604 Change-Id: Ie9295b7af49c853b5a4a3445da48c325fef8d6b1 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* Remove QJSValue::isFunction() functionKent Hansen2012-02-022-18/+0
| | | | | | | | | | Rationale: QJSValue::isCallable() should be used instead. There is no compelling reason to be able to distinguish between JS Function instances and other callable objects. Task-number: QTBUG-23604 Change-Id: Ieef6b32030ef70f54081035fd4ffc3c17c184cd3 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSValue::construct() and deprecated call() overloadKent Hansen2012-02-022-29/+1
| | | | | | | | callAsConstructor() should be used instead. Task-number: QTBUG-23604 Change-Id: If95ab9906712ede7cbae5e9d24624708bccf880f Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSValue::toInt32() and toUInt32() functionsKent Hansen2012-02-022-30/+0
| | | | | | | | toInt() and toUInt() should be used instead. Task-number: QTBUG-23604 Change-Id: Ib64aea139e9082066a1e5096ef9fe3a97c35d3eb Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSEngine::nullValue() functionKent Hansen2012-02-023-21/+1
| | | | | | | | | | | | | | | Rationale: It's strange to have a null value factory function. There should just be one way of constructing null values: By passing NullValue to the QJSValue constructor. The nullValue() function created a value that was bound to the engine; the QJSValue constructor does not. In order to ensure that we're testing the same behavior as before, I've replaced nullValue() calls by evaluate("null") in the autotests. Task-number: QTBUG-23604 Change-Id: Ie40b61fa64e070b90c6245fd21554963073c5f80 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSValue constructors that take QJSEngine argumentKent Hansen2012-02-022-128/+0
| | | | | | | | | | | Rationale: These were remnants from QtScript. The difference from the standard constructors is that the value is eagerly bound to the engine, so they can be a bit faster. But they are also more low-level and look ugly in use. Task-number: QTBUG-23604 Change-Id: I5dae7452389383f60055d5ccc4f28d53c52f6092 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSValue::propertyFlags() functionKent Hansen2012-02-0210-71/+32
| | | | | | | | | | | | | | | | Rationale: The API is incomplete. There is no way to set/update the flags; adding a third (optional) argument to setProperty() is ugly. If necessary, a QJSPropertyDescriptor API should be added, to enable complete setting/querying of properties. The flags were moved to QJSValuePrivate, and the propertyFlags() implementation kept, because there is one place the read-only flag is checked internally (in qv8typewrapper). Task-number: QTBUG-23604 Change-Id: I089dce28dbda428662aac7c8d1536987fe6d855c Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove invalid QJSValue typeKent Hansen2012-02-027-181/+33
| | | | | | | | | | | | | | | | | | | Rationale: It's confusing to have an invalid type (which doesn't exist in JavaScript), and it creates lots of extra cases that have to be handled e.g. in value conversion and comparison. The Undefined type should be sufficient. Also, the invalid value type was being (ab)used to 1) make setProperty() act as a property deleter, and 2) signify that a property queried by property() doesn't exist. The recently introduced functions has(Own)Property() and deleteProperty() now provide that functionality. Default-constructed QJSValues now have the Undefined type. Task-number: QTBUG-23604 Change-Id: I1847492724d31e03ee1212c09ec87a2010920dc5 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSEngine::newVariant() functionKent Hansen2012-02-014-28/+1
| | | | | | | | | | | | | Rationale: This is a remnant from QtScript. There is no reason one should be able to explicitly wrap an arbitrary C++ type in a QVariant. toScriptValue() will automatically wrap the type in a QVariant if it's a type that's not specifically handled by the meta-type system, or if it can't usefully/losslessly be converted to a native JavaScript type. Task-number: QTBUG-23604 Change-Id: I5790cd92b9ffd5fcfbee1cd73a8eaa16fc74846f Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSEngine::newDate() functionsKent Hansen2012-02-012-40/+1
| | | | | | | | | | | | | | Rationale: Passing a QDateTime to toScriptValue() should be sufficient, there's no need to have a dedicated factory function for Date objects. QDateTime has API for specifying a time in milliseconds, so the newDate() overload that takes a double argument should be redundant. Task-number: QTBUG-23604 Change-Id: Iec1d4ce8e1fd0a6ebef58dde3141730d27c2fb8c Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSValue::instanceOf() functionKent Hansen2012-02-014-57/+0
| | | | | | | | | | | | | Rationale: This is a remnant from QtScript. There is no good reason for providing this type of low-level "prototype inheritance chain" checks in this high-level QJSValue class. If you want to check if an object is of the "right type", you can check if it has the properties you require using property(). Task-number: QTBUG-23604 Change-Id: I3a274212cc57c38228fab73423af481e1b95d8a5 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* QJS{Engine,Value}: Remove QRegExp-specific functionsKent Hansen2012-02-018-111/+2
| | | | | | | | | | | | | Rationale: QRegExp regular expressions have different semantics than JavaScript RegExp. This can cause data loss and unexpected behavior. qjsvalue_cast() and fromScriptValue() can still be used to convert between QRegExp and JS RegExp. Task-number: QTBUG-23604 Change-Id: Iacf4aaea232aff9e4cecf4afa40753229bc5d643 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSValue::toUInt16() functionKent Hansen2012-02-012-21/+1
| | | | | | | | | | | Rationale: Remnant from QtScript. The implementation is just zeroing the upper 16 bits of the 32-bit integer conversion. Task-number: QTBUG-23604 Change-Id: I6b4b40883da01713d2a946eb028264f3a351276b Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSValue::toInteger() functionKent Hansen2012-02-012-27/+1
| | | | | | | | | | | | Rationale: This is a remnant from QtScript. A function called toInteger() that returns a double looks strange. Use toInt32() to convert a QJSValue to an integer. Task-number: QTBUG-23604 Change-Id: I2829704c64b077fca264b660c46248c3f35cb5c0 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Remove QJSEngine::toObject() and QJSValue::toObject()Kent Hansen2012-02-016-90/+1
| | | | | | | | | | Rationale: There is no compelling usecase for these functions. They are a remnant from QtScript. Task-number: QTBUG-23604 Change-Id: I6d8b4299956dd8f6284934739c4f1a65e4deb64c Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* QmlProfiler: profiling binding loopsChristiaan Janssen2012-02-011-1/+2
| | | | | | | | Moved the trace call in bindings so that they are also registered when binding loops occur. Change-Id: I56aa7bda6c5305f14dee98bebd929fb720f1ab32 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* QmlProfiler: profiling compiled v8 bindingsChristiaan Janssen2012-02-011-0/+2
| | | | | Change-Id: I8c61b3805244595de6e1c7fbed7ed23440fe0a82 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-3054-54/+54
| | | | | | | | | | 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: If39bd256b0fa85eba17ea30f8ab87ea27d758908 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Move sqldatabase into a module API pluginCharles Yin2012-01-254-1/+148
| | | | | Change-Id: Icd0bbfe16804abf1bbadbabddf3a30b5b18df30c Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Allow JS API in modulesMatthew Vogt2012-01-241-2/+9
| | | | | | | | | Allow modules to export verisoned javascript code into specified namespaces. Task-number: QTBUG-20857 Change-Id: Ic968c697ba36cbc4535870ed5eed2fe7f01af11d Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* Console API: Add console.exceptionAurindam Jana2012-01-243-0/+12
| | | | | | | | | console.exception writes a message to the console and prints the JavaScript stack trace at the point where it is called. Change-Id: Idd2ff5982826accae0895db44c7ecf6130338cc7 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* Console API: Add console.assertAurindam Jana2012-01-243-13/+41
| | | | | | | | | console.assert tests if an expression is true. If it is false, it writes a message to the console and prints the JavaScript stack trace at that point. Change-Id: I5487552cb8a947e1947914166834e0bdedba3354 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* Console API: Add console.countKai Koehne2012-01-244-13/+58
| | | | | | | | console.count can be handy to check how often code snippets are executed. Change-Id: I0eaf17ab893c76e7b8956122aa31e218745e92bf Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* Update obsolete contact address.Jason McDonald2012-01-2352-70/+70
| | | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I6a730abc0c396fb545a48b2d6938abedac2e3f1c Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
* Mark deprecated functions in QJSEngine and QJSValueKent Hansen2012-01-204-38/+142
| | | | | | | | | | | | | This functionality will be removed or renamed in the final Qt 5 API. From this commit and with deprecated warnings enabled (DEFINES += QT_DEPRECATED_WARNINGS), it's easy to see how existing users of this API (e.g. qtjsondb) are affected. Task-number: QTBUG-23604 Change-Id: I242c43377bb34ddcca84b6ed5b7ef9fbf2017a83 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Add QJSValue::callAsConstructor() functionKent Hansen2012-01-204-27/+38
| | | | | | | | | | The old name, construct(), was bad. This name is more descriptive and consistent with the other callXXX() functions. Task-number: QTBUG-23604 Change-Id: Ie205b0c52721782101e665f7dfedcac9051a00d0 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Add QJSValue::callWithInstance() functionKent Hansen2012-01-202-4/+17
| | | | | | | | | | | | | | With the deprecated call() overload, it was confusing what the first argument was (the this-object or an actual argument passed to the function). Introduce a dedicated function for the "explicit this-object" case. This makes code more readable, and eliminates the need to pass a "dummy" this-object to call() in the quite common case where you don't care about the this-object. Task-number: QTBUG-23604 Change-Id: I18f8be6592a848436351516bea266fc7e9195777 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Add QJSValue::call() overloadKent Hansen2012-01-202-0/+23
| | | | | | | | | | | | This overload takes only an argument list, not a this-object, since that is a very common way of calling stand-alone ("non-member") functions. Now there is no longer a need to pass a dummy value for the this-object. Task-number: QTBUG-23604 Change-Id: Iae952d91fce5bcaa62a05b9978c15f32802da90a Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Add QJSValue::isCallable() functionKent Hansen2012-01-202-3/+16
| | | | | | | | | | | This replaces the isFunction() function. isFunction() will be removed. It's possible that objects are callable even if they aren't Function instances. Also, "isCallable" is consistent with call(). Task-number: QTBUG-23604 Change-Id: I42e0ab2ad9dc84e7793199254bbd89d5c9466e6a Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>