| 2011-03-01 Andras Becsi <abecsi@webkit.org> |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| [Qt] Clean up the project files and move common options to WebKit.pri. |
| |
| * api/QtScript.pro: Deduplicate options. |
| |
| 2011-02-24 Andras Becsi <abecsi@webkit.org> |
| |
| Reviewed by Laszlo Gombos. |
| |
| [Qt] MinGW build fails to link |
| https://bugs.webkit.org/show_bug.cgi?id=55050 |
| |
| Prepend the libraries of subcomponents instead of appending them |
| to fix the library order according to the dependency of the libraries |
| |
| * api/QtScript.pro: |
| |
| 2010-09-29 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> |
| |
| Reviewed by Andreas Kling. |
| |
| [Qt] QScriptEngine should have an API for creating Date objects |
| https://bugs.webkit.org/show_bug.cgi?id=41667 |
| |
| Implement newDate(), isDate() and toDateTime() functions. Use the |
| QDateTime::{to,set}MSecsSinceEpoch() functions to do the |
| calculations. |
| |
| * api/qscriptengine.cpp: |
| (QScriptEngine::newDate): |
| * api/qscriptengine.h: |
| * api/qscriptengine_p.cpp: |
| (QScriptEnginePrivate::newDate): |
| * api/qscriptengine_p.h: |
| (QScriptEnginePrivate::isDate): |
| |
| * api/qscriptoriginalglobalobject_p.h: |
| (QScriptOriginalGlobalObject::QScriptOriginalGlobalObject): need |
| to keep track of Date Constructor and Prototype. |
| (QScriptOriginalGlobalObject::~QScriptOriginalGlobalObject): ditto. |
| (QScriptOriginalGlobalObject::isDate): use the Date Constructor |
| and Prototype to identify Date values. |
| |
| * api/qscriptvalue.cpp: |
| (QScriptValue::isDate): |
| (QScriptValue::toDateTime): |
| * api/qscriptvalue.h: |
| * api/qscriptvalue_p.h: |
| (QScriptValuePrivate::isDate): |
| (QScriptValuePrivate::toDateTime): |
| * tests/qscriptengine/tst_qscriptengine.cpp: |
| (tst_QScriptEngine::newDate): |
| |
| 2010-07-27 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
| |
| Reviewed by Kenneth Rohde Christiansen. |
| |
| Update the QScriptValue autotests suite. |
| |
| QScriptValue generated files were updated, changes are: |
| - More tested values (for example QSE::newObject() and QSE::newArray()) |
| - Tested values are recreated before each test and are not reused. |
| The change implies better code coverage and some expected result changes. |
| - A new test to check copy and assign functions. |
| - Tests are using standard QTestLib interface, without any custom macros. |
| |
| [Qt] Improve test coverage for the QScriptValue |
| https://bugs.webkit.org/show_bug.cgi?id=42366 |
| |
| * tests/qscriptvalue/tst_qscriptvalue.cpp: |
| (tst_QScriptValue::tst_QScriptValue): |
| (tst_QScriptValue::~tst_QScriptValue): |
| (tst_QScriptValue::assignAndCopyConstruct_data): |
| (tst_QScriptValue::assignAndCopyConstruct): |
| * tests/qscriptvalue/tst_qscriptvalue.h: |
| * tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: |
| (tst_QScriptValue::equals_data): |
| (tst_QScriptValue::equals): |
| (tst_QScriptValue::strictlyEquals_data): |
| (tst_QScriptValue::strictlyEquals): |
| (tst_QScriptValue::instanceOf_data): |
| (tst_QScriptValue::instanceOf): |
| * tests/qscriptvalue/tst_qscriptvalue_generated_init.cpp: |
| (tst_QScriptValue::initScriptValues): |
| * tests/qscriptvalue/tst_qscriptvalue_generated_istype.cpp: |
| (tst_QScriptValue::isValid_data): |
| (tst_QScriptValue::isValid): |
| (tst_QScriptValue::isBool_data): |
| (tst_QScriptValue::isBool): |
| (tst_QScriptValue::isBoolean_data): |
| (tst_QScriptValue::isBoolean): |
| (tst_QScriptValue::isNumber_data): |
| (tst_QScriptValue::isNumber): |
| (tst_QScriptValue::isFunction_data): |
| (tst_QScriptValue::isFunction): |
| (tst_QScriptValue::isNull_data): |
| (tst_QScriptValue::isNull): |
| (tst_QScriptValue::isString_data): |
| (tst_QScriptValue::isString): |
| (tst_QScriptValue::isUndefined_data): |
| (tst_QScriptValue::isUndefined): |
| (tst_QScriptValue::isObject_data): |
| (tst_QScriptValue::isObject): |
| (tst_QScriptValue::isArray_data): |
| (tst_QScriptValue::isArray): |
| (tst_QScriptValue::isError_data): |
| (tst_QScriptValue::isError): |
| * tests/qscriptvalue/tst_qscriptvalue_generated_totype.cpp: |
| (tst_QScriptValue::toString_data): |
| (tst_QScriptValue::toString): |
| (tst_QScriptValue::toNumber_data): |
| (tst_QScriptValue::toNumber): |
| (tst_QScriptValue::toBool_data): |
| (tst_QScriptValue::toBool): |
| (tst_QScriptValue::toBoolean_data): |
| (tst_QScriptValue::toBoolean): |
| (tst_QScriptValue::toInteger_data): |
| (tst_QScriptValue::toInteger): |
| (tst_QScriptValue::toInt32_data): |
| (tst_QScriptValue::toInt32): |
| (tst_QScriptValue::toUInt32_data): |
| (tst_QScriptValue::toUInt32): |
| (tst_QScriptValue::toUInt16_data): |
| (tst_QScriptValue::toUInt16): |
| |
| 2010-07-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> |
| |
| Reviewed by Kenneth Rohde Christiansen. |
| |
| [Qt] Implement QScriptEngine::newFunction() parts that doesn't depend on QScriptContext |
| https://bugs.webkit.org/show_bug.cgi?id=42174 |
| |
| Since our function can be called in Javascript both as a function |
| and as a constructor, we couldn't use the existing |
| JSObjectMakeFunctionWithCallback() and JSObjectMakeConstructor(). |
| |
| Instead, a JSClassRef was created, implementing the needed |
| callbacks (the callAsConstructor is not there yet because its |
| behaviour depends on QScriptContext). |
| |
| For the moment, QScriptContext is defined as a void type, since we |
| still don't use it. |
| |
| The variant of newFunction() that also takes an external argument |
| was also implemented. The details of implementation were added to |
| the qscriptfunction{.c,_p.h} files. |
| |
| This commit also adds tests, some of them from Qt's upstream. |
| |
| * api/QtScript.pro: |
| * api/qscriptengine.cpp: |
| (QScriptEngine::newFunction): |
| * api/qscriptengine.h: |
| * api/qscriptengine_p.cpp: |
| (QScriptEnginePrivate::QScriptEnginePrivate): |
| (QScriptEnginePrivate::~QScriptEnginePrivate): |
| (QScriptEnginePrivate::newFunction): |
| * api/qscriptengine_p.h: |
| * api/qscriptfunction.cpp: Added. |
| (qt_NativeFunction_finalize): |
| (qt_NativeFunction_callAsFunction): |
| (qt_NativeFunctionWithArg_finalize): |
| (qt_NativeFunctionWithArg_callAsFunction): |
| * api/qscriptfunction_p.h: Added. |
| (QNativeFunctionData::QNativeFunctionData): |
| (QNativeFunctionWithArgData::QNativeFunctionWithArgData): |
| * api/qscriptoriginalglobalobject_p.h: |
| (QScriptOriginalGlobalObject::QScriptOriginalGlobalObject): |
| (QScriptOriginalGlobalObject::~QScriptOriginalGlobalObject): |
| (QScriptOriginalGlobalObject::functionPrototype): |
| * tests/qscriptengine/tst_qscriptengine.cpp: |
| (myFunction): |
| (myFunctionWithArg): |
| (myFunctionThatReturns): |
| (myFunctionThatReturnsWithoutEngine): |
| (myFunctionThatReturnsWrongEngine): |
| (tst_QScriptEngine::newFunction): |
| |
| 2010-07-23 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
| |
| Reviewed by Kenneth Rohde Christiansen. |
| |
| QScriptValue::equals benchmark crash fix. |
| |
| Patch changes QScriptValue::equals implementation to cover |
| more edge cases. |
| |
| Problem exposes an issue in our autotests (all values got |
| bound to an engine too fast - bug 42366). |
| |
| [Qt] QScriptValue::equals asserts |
| https://bugs.webkit.org/show_bug.cgi?id=42363 |
| |
| * api/qscriptvalue_p.h: |
| (QScriptValuePrivate::equals): |
| |
| 2010-07-14 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
| |
| Reviewed by Kenneth Rohde Christiansen. |
| |
| Introduce QScriptOriginalGlobalObject. |
| |
| QtScript exposes more functionality than JSC C API. Sometimes it is |
| necessary to take a shortcut in implementation. Really often we have |
| to use a standard JS function. These function could be changed or |
| even deleted by a script, so a backup of a reference to an object is needed. |
| |
| In them same time this is rather a workaround then real fix, so the code |
| should be separated and changed easily in future. It is why we need |
| the new internal class. |
| |
| The patch fixes a few crashes. |
| |
| [Qt] QScriptEngine should work correctly even after global object changes |
| https://bugs.webkit.org/show_bug.cgi?id=41839 |
| |
| * api/QtScript.pro: |
| * api/qscriptengine_p.cpp: |
| (QScriptEnginePrivate::QScriptEnginePrivate): |
| (QScriptEnginePrivate::~QScriptEnginePrivate): |
| * api/qscriptengine_p.h: |
| (QScriptEnginePrivate::isArray): |
| (QScriptEnginePrivate::isError): |
| (QScriptEnginePrivate::objectHasOwnProperty): |
| (QScriptEnginePrivate::objectGetOwnPropertyNames): |
| * api/qscriptoriginalglobalobject_p.h: Added. |
| (QScriptOriginalGlobalObject::QScriptOriginalGlobalObject): |
| (QScriptOriginalGlobalObject::initializeMember): |
| (QScriptOriginalGlobalObject::~QScriptOriginalGlobalObject): |
| (QScriptOriginalGlobalObject::objectHasOwnProperty): |
| (QScriptOriginalGlobalObject::objectGetOwnPropertyNames): |
| (QScriptOriginalGlobalObject::isArray): |
| (QScriptOriginalGlobalObject::isError): |
| (QScriptOriginalGlobalObject::isType): |
| * api/qscriptvalue_p.h: |
| (QScriptValuePrivate::isError): |
| (QScriptValuePrivate::hasOwnProperty): |
| * api/qscriptvalueiterator_p.h: |
| (QScriptValueIteratorPrivate::QScriptValueIteratorPrivate): |
| * tests/qscriptvalue/tst_qscriptvalue.cpp: |
| (tst_QScriptValue::globalObjectChanges): |
| * tests/qscriptvalue/tst_qscriptvalue.h: |
| |
| 2010-07-13 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
| |
| Reviewed by Simon Hausmann. |
| |
| Introduce QScriptValueIterator. |
| |
| The QScriptValueIterator class permits to iterate over a QScriptValue's properties. |
| |
| [Qt] QtScript should provide an API for enumerating a JS object's properties |
| https://bugs.webkit.org/show_bug.cgi?id=41680 |
| |
| * api/QtScript.pro: |
| * api/qscriptvalueiterator.cpp: Added. |
| (QScriptValueIterator::QScriptValueIterator): |
| (QScriptValueIterator::~QScriptValueIterator): |
| (QScriptValueIterator::hasNext): |
| (QScriptValueIterator::next): |
| (QScriptValueIterator::hasPrevious): |
| (QScriptValueIterator::previous): |
| (QScriptValueIterator::toFront): |
| (QScriptValueIterator::toBack): |
| (QScriptValueIterator::name): |
| (QScriptValueIterator::scriptName): |
| (QScriptValueIterator::value): |
| (QScriptValueIterator::setValue): |
| (QScriptValueIterator::remove): |
| (QScriptValueIterator::flags): |
| (QScriptValueIterator::operator=): |
| * api/qscriptvalueiterator.h: Added. |
| * api/qscriptvalueiterator_p.h: Added. |
| (QScriptValueIteratorPrivate::QScriptValueIteratorPrivate): |
| (QScriptValueIteratorPrivate::~QScriptValueIteratorPrivate): |
| (QScriptValueIteratorPrivate::hasNext): |
| (QScriptValueIteratorPrivate::next): |
| (QScriptValueIteratorPrivate::hasPrevious): |
| (QScriptValueIteratorPrivate::previous): |
| (QScriptValueIteratorPrivate::name): |
| (QScriptValueIteratorPrivate::scriptName): |
| (QScriptValueIteratorPrivate::value): |
| (QScriptValueIteratorPrivate::setValue): |
| (QScriptValueIteratorPrivate::remove): |
| (QScriptValueIteratorPrivate::toFront): |
| (QScriptValueIteratorPrivate::toBack): |
| (QScriptValueIteratorPrivate::flags): |
| (QScriptValueIteratorPrivate::isValid): |
| (QScriptValueIteratorPrivate::engine): |
| * tests/qscriptvalueiterator/qscriptvalueiterator.pro: Added. |
| * tests/qscriptvalueiterator/tst_qscriptvalueiterator.cpp: Added. |
| (tst_QScriptValueIterator::tst_QScriptValueIterator): |
| (tst_QScriptValueIterator::~tst_QScriptValueIterator): |
| (tst_QScriptValueIterator::iterateForward_data): |
| (tst_QScriptValueIterator::iterateForward): |
| (tst_QScriptValueIterator::iterateBackward_data): |
| (tst_QScriptValueIterator::iterateBackward): |
| (tst_QScriptValueIterator::iterateArray_data): |
| (tst_QScriptValueIterator::iterateArray): |
| (tst_QScriptValueIterator::iterateBackAndForth): |
| (tst_QScriptValueIterator::setValue): |
| (tst_QScriptValueIterator::remove): |
| (tst_QScriptValueIterator::removeMixed): |
| (tst_QScriptValueIterator::removeUndeletable): |
| (tst_QScriptValueIterator::iterateString): |
| (tst_QScriptValueIterator::assignObjectToIterator): |
| * tests/tests.pro: |
| |
| 2010-07-09 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
| |
| Reviewed by Simon Hausmann. |
| |
| Implementation of the QScriptValue::propertyFlags function. |
| |
| The function returns the flags of a property with the given name, |
| using a given mode to resolve the property. This is a simple |
| implementation that is sufficient to test the QScriptValueIterator. |
| |
| [Qt] QScriptValue API should have a property flag accessor. |
| https://bugs.webkit.org/show_bug.cgi?id=41769 |
| |
| * api/qscriptvalue.cpp: |
| (QScriptValue::propertyFlags): |
| * api/qscriptvalue.h: |
| * api/qscriptvalue_p.h: |
| (QScriptValuePrivate::propertyFlags): |
| * tests/qscriptvalue/tst_qscriptvalue.cpp: |
| (tst_QScriptValue::propertyFlag_data): |
| (tst_QScriptValue::propertyFlag): |
| * tests/qscriptvalue/tst_qscriptvalue.h: |
| |
| 2010-07-07 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> |
| |
| Reviewed by Kenneth Rohde Christiansen. |
| |
| Implementation of QScriptValue::isArray() |
| https://bugs.webkit.org/show_bug.cgi?id=41713 |
| |
| Since we don't have access to the [[Class]] internal property of |
| builtins (including Array), the solution was to keep the original 'Array' |
| (constructor) and 'Array.prototype' objects and use them to identify |
| if a given object is an Array. |
| |
| Also uncomment some tests and add some tests of newArray() that |
| depended on isArray(). |
| |
| * api/qscriptengine_p.cpp: |
| (QScriptEnginePrivate::QScriptEnginePrivate): |
| (QScriptEnginePrivate::~QScriptEnginePrivate): |
| * api/qscriptengine_p.h: |
| (QScriptEnginePrivate::isArray): |
| * api/qscriptvalue.cpp: |
| (QScriptValue::isArray): |
| * api/qscriptvalue.h: |
| * api/qscriptvalue_p.h: |
| (QScriptValuePrivate::isArray): |
| * tests/qscriptengine/tst_qscriptengine.cpp: |
| (tst_QScriptEngine::newArray): |
| |
| 2010-07-06 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
| |
| Reviewed by Kenneth Rohde Christiansen. |
| |
| Implementation of QScriptValue properties accessors. |
| |
| The patch contains implementation of the QScriptValue::property() and |
| the QScriptValue::setProperty(). It is not full functionality, as these |
| method are too complex for one patch, but it is enough to cover about |
| 95% of use cases. |
| |
| Missing functionality: |
| - Few of the PropertyFlags are ignored. |
| - Only a public part of the ResolveFlags can be used (ResolveLocal, |
| ResolvePrototype). |
| |
| A lot of new test cases were added. |
| |
| [Qt] QScriptValue should have API for accessing object properties |
| https://bugs.webkit.org/show_bug.cgi?id=40903 |
| |
| * api/qscriptconverter_p.h: |
| (QScriptConverter::toPropertyFlags): |
| * api/qscriptstring_p.h: |
| (QScriptStringPrivate::operator JSStringRef): |
| * api/qscriptvalue.cpp: |
| (QScriptValue::property): |
| (QScriptValue::setProperty): |
| * api/qscriptvalue.h: |
| (QScriptValue::): |
| * api/qscriptvalue_p.h: |
| (QScriptValuePrivate::assignEngine): |
| (QScriptValuePrivate::property): |
| (QScriptValuePrivate::hasOwnProperty): |
| (QScriptValuePrivate::setProperty): |
| (QScriptValuePrivate::deleteProperty): |
| * tests/qscriptvalue/tst_qscriptvalue.cpp: |
| (tst_QScriptValue::getPropertySimple_data): |
| (tst_QScriptValue::getPropertySimple): |
| (tst_QScriptValue::setPropertySimple): |
| (tst_QScriptValue::getPropertyResolveFlag): |
| (tst_QScriptValue::getSetProperty): |
| (tst_QScriptValue::setProperty_data): |
| (tst_QScriptValue::setProperty): |
| * tests/qscriptvalue/tst_qscriptvalue.h: |
| |
| 2010-07-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
| |
| Reviewed by Simon Hausmann. |
| |
| Compilation fix. |
| |
| QScriptEnginePrivate::newArray can't be const because it can |
| throw an exception. |
| |
| [Qt] QScriptEnginePrivate compilation fix |
| https://bugs.webkit.org/show_bug.cgi?id=41520 |
| |
| * api/qscriptengine_p.cpp: |
| (QScriptEnginePrivate::newArray): |
| * api/qscriptengine_p.h: |
| |
| 2010-06-28 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
| |
| Reviewed by Simon Hausmann. |
| |
| Implement exception reporting in the QtScript API. |
| |
| The exception should be accessible through the API by the uncaughtException |
| function. Functions; hasUncaughtException, clearExceptions, uncaughtExceptionLineNumber, |
| uncaughtExceptionBacktrace were added to facilitate error checking and debugging. |
| |
| [Qt] QtScript API should be exceptions aware. |
| https://bugs.webkit.org/show_bug.cgi?id=41199 |
| |
| * api/qscriptengine.cpp: |
| (QScriptEngine::hasUncaughtException): |
| (QScriptEngine::uncaughtException): |
| (QScriptEngine::clearExceptions): |
| (QScriptEngine::uncaughtExceptionLineNumber): |
| (QScriptEngine::uncaughtExceptionBacktrace): |
| * api/qscriptengine.h: |
| * api/qscriptengine_p.cpp: |
| (QScriptEnginePrivate::QScriptEnginePrivate): |
| (QScriptEnginePrivate::~QScriptEnginePrivate): |
| (QScriptEnginePrivate::uncaughtException): |
| * api/qscriptengine_p.h: |
| (QScriptEnginePrivate::): |
| (QScriptEnginePrivate::evaluate): |
| (QScriptEnginePrivate::hasUncaughtException): |
| (QScriptEnginePrivate::clearExceptions): |
| (QScriptEnginePrivate::setException): |
| (QScriptEnginePrivate::uncaughtExceptionLineNumber): |
| (QScriptEnginePrivate::uncaughtExceptionBacktrace): |
| * api/qscriptvalue_p.h: |
| (QScriptValuePrivate::toString): |
| (QScriptValuePrivate::toNumber): |
| (QScriptValuePrivate::toObject): |
| (QScriptValuePrivate::equals): |
| (QScriptValuePrivate::instanceOf): |
| (QScriptValuePrivate::call): |
| (QScriptValuePrivate::inherits): |
| * tests/qscriptengine/tst_qscriptengine.cpp: |
| (tst_QScriptEngine::uncaughtException): |
| |