| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
git@scm.dev.nokia.troll.no:qt/qt-webkit into qtscript-jsc-backend
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With an object created by QScriptEngine::newObject(), it should
be possible to call QScriptValue::setClass() to dynamically
change the behavior of that object. Similarly, it should be
possible to promote plain script objects to QObject (QVariant)
wrappers by calling the overload of QScriptEngine::newQObject()
(newVariant()) that takes a script object as the first argument.
This commit implements this capability.
The premise is the (internal) QScriptObject class, which inherits
JSC::JSObject. It reimplements all the methods for getting/setting
properties etc. Then there's a level of indirection to facilitate
dynamic change of the class: Each QScriptObject can have a
delegate associated with it that will handle operations on the
object. By default there is no delegate, so the object behaves as
a normal JS object, as you expect. However, once a delegate is set
(e.g., when QScriptValue::setScriptClass() is called),
QScriptObject will give the delegate the chance to handle the
object operation.
In addition to a delegate implementation for QScriptClass-based
objects, there are also delegates for QObject and QVariant
wrappers. These replace the QObjectWrapperObject and
QVariantWrapperObject classes.
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
|
| |
Setters don't work yet. But hey, the defaultprototypes
example finally works.
|
|
|
|
| |
(QScriptValue::objectId() and QScriptEnigne::objectById)
|
|
|
|
|
|
|
|
|
|
| |
The JSC parser doesn't understand function expressions as
statements; you have to surround the expression by parentheses.
That's in accordance with the ECMA spec, but most
implementations (including the old qtscript backend) don't
require the parentheses. However, since it's easier to change
the tests than the JSC parser, let's do that for now to get
rid of some noise in the test output.
|
|
|
|
|
| |
With commit 6985212c8909c89183b232ca28b96a2c8a2f1385,
context->thisObject() now returns the right thing.
|
| |
|
|
|
|
| |
There's an off-by-one issue that we just work around for now.
|
|
|
|
| |
They now work.
|
| |
|
|
|
|
| |
Do it The right way(TM), by lazily wrapping JSC::ExecState objects.
|
|
|
|
| |
QScriptValues added.
|
| |
|
|
|
|
|
|
| |
It's possible that JSC evaluate() returns a completion of type
Throw without hadException() being true, so we need to store the
exception value explicitly.
|
| |
|
| |
|
| |
|
|
|
|
| |
Callable seems to work, HasInstance not quite there yet.
|
| |
|
|
|
|
| |
It's been fixed (commit c23be3111ec279b4e19ca9c37a0d9eddb756f402)
|
|
|
|
| |
Implement delete operator for Qt properties.
|
| |
|
|
|
|
|
| |
Enumeration is missing, as is the ability to change the class
of an object after it has been created.
|
| |
|
|
|
|
|
| |
With the JSC backend, these tests hang (in debug and
non-JIT mode, at least).
|
|
|
|
| |
With JSC backend these tests work (better compatibility, yay).
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Makes variant conversion work for signal handlers.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/script/api/qscriptable.cpp
src/script/api/qscriptclasspropertyiterator.cpp
src/script/api/qscriptcontext.cpp
src/script/api/qscriptengine.h
src/script/api/qscriptengineagent.cpp
src/script/api/qscriptextensionplugin.cpp
src/script/api/qscriptvalue.h
src/script/api/qscriptvalueiterator.cpp
src/script/parser/qscript.g
src/script/parser/qscriptast.cpp
src/script/parser/qscriptast_p.h
src/script/parser/qscriptastvisitor_p.h
src/script/parser/qscriptgrammar.cpp
src/script/parser/qscriptgrammar_p.h
src/script/parser/qscriptlexer.cpp
src/script/parser/qscriptlexer_p.h
src/script/parser/qscriptparser.cpp
src/script/parser/qscriptparser_p.h
src/script/parser/qscriptsyntaxchecker.cpp
src/script/qscriptable.h
src/script/qscriptable_p.h
src/script/qscriptarray_p.h
src/script/qscriptasm.cpp
src/script/qscriptasm_p.h
src/script/qscriptastfwd_p.h
src/script/qscriptastvisitor.cpp
src/script/qscriptbuffer_p.h
src/script/qscriptclass.cpp
src/script/qscriptclass.h
src/script/qscriptclass_p.h
src/script/qscriptclassdata.cpp
src/script/qscriptclassdata_p.h
src/script/qscriptclassinfo_p.h
src/script/qscriptclasspropertyiterator.h
src/script/qscriptclasspropertyiterator_p.h
src/script/qscriptcompiler.cpp
src/script/qscriptcompiler_p.h
src/script/qscriptcontext.h
src/script/qscriptcontext_p.cpp
src/script/qscriptcontext_p.h
src/script/qscriptcontextfwd_p.h
src/script/qscriptcontextinfo.cpp
src/script/qscriptcontextinfo.h
src/script/qscriptcontextinfo_p.h
src/script/qscriptecmaarray.cpp
src/script/qscriptecmaarray_p.h
src/script/qscriptecmaboolean.cpp
src/script/qscriptecmaboolean_p.h
src/script/qscriptecmacore.cpp
src/script/qscriptecmacore_p.h
src/script/qscriptecmadate.cpp
src/script/qscriptecmadate_p.h
src/script/qscriptecmaerror.cpp
src/script/qscriptecmaerror_p.h
src/script/qscriptecmafunction.cpp
src/script/qscriptecmafunction_p.h
src/script/qscriptecmaglobal.cpp
src/script/qscriptecmaglobal_p.h
src/script/qscriptecmamath.cpp
src/script/qscriptecmamath_p.h
src/script/qscriptecmanumber.cpp
src/script/qscriptecmanumber_p.h
src/script/qscriptecmaobject.cpp
src/script/qscriptecmaobject_p.h
src/script/qscriptecmaregexp.cpp
src/script/qscriptecmaregexp_p.h
src/script/qscriptecmastring.cpp
src/script/qscriptecmastring_p.h
src/script/qscriptengine.cpp
src/script/qscriptengine_p.cpp
src/script/qscriptengine_p.h
src/script/qscriptengineagent.h
src/script/qscriptengineagent_p.h
src/script/qscriptenginefwd_p.h
src/script/qscriptextensioninterface.h
src/script/qscriptextensionplugin.h
src/script/qscriptextenumeration.cpp
src/script/qscriptextenumeration_p.h
src/script/qscriptextqobject.cpp
src/script/qscriptextqobject_p.h
src/script/qscriptextvariant.cpp
src/script/qscriptextvariant_p.h
src/script/qscriptfunction.cpp
src/script/qscriptfunction_p.h
src/script/qscriptgc_p.h
src/script/qscriptglobals_p.h
src/script/qscriptmember_p.h
src/script/qscriptmemberfwd_p.h
src/script/qscriptmemorypool_p.h
src/script/qscriptnameid_p.h
src/script/qscriptnodepool_p.h
src/script/qscriptobject_p.h
src/script/qscriptobjectdata_p.h
src/script/qscriptobjectfwd_p.h
src/script/qscriptrepository_p.h
src/script/qscriptstring.cpp
src/script/qscriptstring.h
src/script/qscriptstring_p.h
src/script/qscriptsyntaxchecker_p.h
src/script/qscriptsyntaxcheckresult_p.h
src/script/qscriptvalue.cpp
src/script/qscriptvalue_p.h
src/script/qscriptvaluefwd_p.h
src/script/qscriptvalueimpl.cpp
src/script/qscriptvalueimpl_p.h
src/script/qscriptvalueimplfwd_p.h
src/script/qscriptvalueiterator.h
src/script/qscriptvalueiterator_p.h
src/script/qscriptvalueiteratorimpl.cpp
src/script/qscriptvalueiteratorimpl_p.h
src/script/visitors/qscriptprettypretty.cpp
src/script/visitors/qscriptprettypretty_p.h
src/script/visitors/qscriptxmlgenerator.cpp
src/script/visitors/qscriptxmlgenerator_p.h
|
| |
| |
| |
| |
| |
| |
| | |
build was failing because of a wrong include path set, and the test
requires zlib
Reviewed-by: Jesper Thomschütz
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
src/sql/drivers/psql/qsql_psql.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
object.
QWizard crashed when removing a page after deleting an object
that was already registered as a field for the page. This patch
prevents such a crash by doing the necessary cleanup immediately
when the object is deleted. QWizard::removePage() will then see a
consistent state in this case.
Reviewed-by: janarve
Task-number: 255350
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The problem was that we did an accelerated move, i.e. scrolled the
widget's contents in the backing store and repainted the old area. We
cannot do this trick when the widget has been invalidated (show(),
resize()). In this case the widget had never been painted, so we
basically scrolled the content of its parent and the widget itself
appeared as invisible.
Auto-test included.
Task-number: 255117
Reviewed-by: Paul
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Having an implicit default error state in the graph which the user
has not added is unintuitive and ugly. Rather than have a default error
state, we stop execution of the machine and print an error message when
the machine has run-time errors. If a user wishes to prevent errors
from stopping the machine, you can set one or more error states
explicitly.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Formatting of pointers in sprintf() is platform dependent. Use
QString::sprintf() instead to make sure warnings match the actual
warnings emitted.
|
| | |
| | |
| | |
| | |
| | | |
Mostly cleanup of dropping of tables to a consistent place.
Also enable itemmodel tests.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Elements with display="none" should not be rendered. Modified and
autotest added by Kim.
Reviewed-by: Kim
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Autotest added by Kim.
Task-number: 204686
Reviewed-by: Kim
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In path, if 'moveto' is followed by multiple pairs of coordinates,
those pairs shall be treated as 'lineto'. Autotest added by Kim.
Reviewed-by: Kim
|
| | |
| | |
| | |
| | |
| | |
| | | |
Modified and autotest added by Kim.
Reviewed-by: Kim
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Polygon element should apply the fill rule which is specified in its
fill-rule attribute. Default fill rule is 'WindingFill' (nonzero).
Modified and autotest added by Kim.
Reviewed-by: Kim
|