summaryrefslogtreecommitdiffstats
path: root/tests/auto/qscriptcontext/tst_qscriptcontext.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QScriptContext::parentContext: don't skip unessecary framesOlivier Goffart2009-10-061-1/+0
| | | | | | | | Calling QScriptValue::call doesn't create a fake frame. We can detect a real fake frame as it does not have a callee. Task-number: QT-2270 Reviewed-by: Kent Hansen
* add test for QT-2270Kent Hansen2009-10-061-0/+17
|
* QScript: Add test for getting backtrace of recursive functionsOlivier Goffart2009-09-281-0/+66
|
* QScript: Fix strange bugs and crashes.Olivier Goffart2009-09-281-0/+25
| | | | | | | | | | I was assuming that the default return value register was always set to 0 for native calls. But this is not the case. So we must ensure this. Also be consistend in the way the stackframe grow and shrink. This expose another bug in the way the call frame is created in JSC Reviewed-by: Kent Hansen
* improve "nested evaluation" testKent Hansen2009-09-251-0/+10
| | | | | | | Test that the variable is stored in the correct activation object. Currently it's marked as an expected failure because it doesn't work with the JSC-based back-end. It did however work with the old back-end, so this is a regression.
* Update license headers again.Jason McDonald2009-09-091-4/+4
| | | | Reviewed-by: Trust Me
* Merge branch '4.5' into 4.6Thiago Macieira2009-08-311-13/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: demos/boxes/glshaders.cpp demos/boxes/vector.h demos/embedded/fluidlauncher/pictureflow.cpp demos/embedded/fluidlauncher/pictureflow.h doc/src/desktop-integration.qdoc doc/src/distributingqt.qdoc doc/src/examples-overview.qdoc doc/src/examples.qdoc doc/src/frameworks-technologies/dbus-adaptors.qdoc doc/src/geometry.qdoc doc/src/groups.qdoc doc/src/objecttrees.qdoc doc/src/platform-notes.qdoc doc/src/plugins-howto.qdoc doc/src/qt3support.qdoc doc/src/qtdbus.qdoc doc/src/qtdesigner.qdoc doc/src/qtgui.qdoc doc/src/qtmain.qdoc doc/src/qtopengl.qdoc doc/src/qtsvg.qdoc doc/src/qtuiloader.qdoc doc/src/qundo.qdoc doc/src/richtext.qdoc doc/src/topics.qdoc src/corelib/tools/qdumper.cpp src/gui/embedded/qkbdpc101_qws.cpp src/gui/embedded/qkbdsl5000_qws.cpp src/gui/embedded/qkbdusb_qws.cpp src/gui/embedded/qkbdvr41xx_qws.cpp src/gui/embedded/qkbdyopy_qws.cpp src/gui/embedded/qmousebus_qws.cpp src/gui/embedded/qmousevr41xx_qws.cpp src/gui/embedded/qmouseyopy_qws.cpp src/gui/painting/qpaintengine_d3d.cpp src/gui/painting/qwindowsurface_d3d.cpp src/opengl/gl2paintengineex/glgc_shader_source.h src/opengl/gl2paintengineex/qglpexshadermanager.cpp src/opengl/gl2paintengineex/qglpexshadermanager_p.h src/opengl/gl2paintengineex/qglshader.cpp src/opengl/gl2paintengineex/qglshader_p.h src/opengl/util/fragmentprograms_p.h src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp src/script/parser/qscript.g src/script/qscriptarray_p.h src/script/qscriptasm_p.h src/script/qscriptbuffer_p.h src/script/qscriptclass.cpp src/script/qscriptclassdata_p.h src/script/qscriptcompiler.cpp src/script/qscriptcompiler_p.h src/script/qscriptcontext.cpp src/script/qscriptcontext_p.cpp src/script/qscriptcontext_p.h src/script/qscriptcontextfwd_p.h src/script/qscriptecmaarray.cpp src/script/qscriptecmaarray_p.h src/script/qscriptecmaboolean.cpp src/script/qscriptecmacore.cpp 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/qscriptenginefwd_p.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/qscriptfunction.cpp src/script/qscriptfunction_p.h src/script/qscriptgc_p.h src/script/qscriptmember_p.h src/script/qscriptobject_p.h src/script/qscriptprettypretty.cpp src/script/qscriptprettypretty_p.h src/script/qscriptvalue.cpp src/script/qscriptvalueimpl.cpp src/script/qscriptvalueimpl_p.h src/script/qscriptvalueimplfwd_p.h src/script/qscriptvalueiteratorimpl.cpp src/script/qscriptxmlgenerator.cpp src/script/qscriptxmlgenerator_p.h tests/auto/linguist/lupdate/testdata/recursivescan/project.ui tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp tests/auto/qkeyevent/tst_qkeyevent.cpp tools/linguist/shared/cpp.cpp
| * Update tech preview license header.Jason McDonald2009-08-311-13/+13
| | | | | | | | Reviewed-by: Trust Me
| * Update license headers.Jason McDonald2009-08-111-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Make it possible for autotests to check if JIT is enabled or notKent Hansen2009-08-281-10/+14
| | | | | | | | | | | | Currently there are some differences in behavior and availability of information between the interpreter and the JIT. This is now documented as expected failures in the relevant autotests.
* | QScriptContextInfo: fix the line numbers with JITOlivier Goffart2009-08-281-2/+8
| | | | | | | | It even works better than with the interpreter
* | Fix QScriptContext::argumentObjects for function called with QScriptValue::callOlivier Goffart2009-08-241-0/+35
| | | | | | | | They have the hostCallFrameFlag, but are function context, not <eval> context
* | Fix the QScriptContext::argumentsObject and QScriptContext::argument for js ↵Olivier Goffart2009-08-181-5/+48
| | | | | | | | | | | | | | | | | | | | | | | | functions On js functions, if the number of arguments is different from the number of expected arguments, they are located in different place in the stackframe. We need to call the JSC functions that take that into account. Test is the backtrace test Reviewed-by: Kent Hansen
* | Fix the line numbers on the backtraceOlivier Goffart2009-08-181-3/+6
| | | | | | | | | | | | | | The returnPC points to the opcode after the call, but we want the opcode right before to compute the line number. Reviewed-by: Kent Hansen
* | test default scope chain after a new context has been pushedKent Hansen2009-08-171-0/+3
| | | | | | | | | | The scope chain should contain the activation object and the Global Object.
* | push the right object when the argument is the Global ObjectKent Hansen2009-08-141-12/+9
| | | | | | | | | | | | | | | | | | Since the internal Global Object is never exposed to the public, we need to do like we do in setActivationObject(): if the object passed is the Global Object proxy, use the internal Global Object as the "real" argument. (JSC requires that the initial object pushed onto the scope chain is an instance of JSC::JSGlobalObject, and the Global Object proxy is not; hence, we can't push the proxy.)
* | Detect evaluation context in the backtraceOlivier Goffart2009-08-141-2/+2
| |
* | More polishing on the backtraceOlivier Goffart2009-08-141-18/+18
| | | | | | | | | | | | change the coding style of function from foo (arg=text) to foo(arg = 'text')
* | more extensive backtrace testOlivier Goffart2009-08-141-12/+93
| |
* | Polish the QScriptContext::backtrace()Olivier Goffart2009-08-141-4/+3
| | | | | | | | | | | | | | - in QScriptContextInfo, get the filename of specials context - in QScriptContextInfo, get the right information for the global context (from the skipped fake frame) - addapt the test to the current backtrace layout.
* | make sure QScriptContext::scopeChain() returns the right objectKent Hansen2009-08-141-0/+2
| | | | | | | | | | | | | | | | Follow-up to commit e0a86dc604b87921652b844a5f85889bb6291ed9. Just like in the activationObject() function, we need to check if the activation object is actually a proxy to another object, and return that other object if that's the case (the proxy object should not be exposed to the public).
* | make it possible for any script object to serve as activation objectKent Hansen2009-08-141-2/+37
| | | | | | | | | | | | | | This was possible in the old back-end. In JSC, activation objects have to be instances of JSC::JSVariableObject. So the way we solve it is by having our QScriptActivationObject be able to act as a proxy to any other JSObject.
* | Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt into ↵Kent Hansen2009-08-121-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qtscript-jsc-backend Conflicts: configure src/script/qscriptarray_p.h src/script/qscriptasm.cpp src/script/qscriptasm_p.h src/script/qscriptbuffer_p.h src/script/qscriptclass.cpp src/script/qscriptclassdata.cpp src/script/qscriptclassdata_p.h src/script/qscriptclassinfo_p.h src/script/qscriptclasspropertyiterator_p.h src/script/qscriptcompiler.cpp src/script/qscriptcompiler_p.h src/script/qscriptcontext_p.cpp src/script/qscriptcontext_p.h src/script/qscriptcontextfwd_p.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_p.h src/script/qscriptenginefwd_p.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/qscriptnameid_p.h src/script/qscriptnodepool_p.h src/script/qscriptobject_p.h src/script/qscriptobjectfwd_p.h src/script/qscriptprettypretty.cpp src/script/qscriptprettypretty_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/qscriptvalueiteratorimpl.cpp src/script/qscriptvalueiteratorimpl_p.h
| * | Update contact URL in license headers.Jason McDonald2009-08-121-1/+1
| | | | | | | | | | | | Reviewed-by: Trust Me
* | | make it possible to pop all items in a scope chain and then push to itKent Hansen2009-08-111-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A lot of the JSC::ExecState functions rely on scopeChain() not being 0. This means we shouldn't pop the scope chain if doing so would make it empty; otherwise when you call e.g. pushScope() or evaluate(), you will crash. So instead of popping the chain completely, we now set the sole scope chain item's object pointer to 0 and add appropriate checks elsewhere. A second issue, not solved in this commit, is that JSC expects the Global Object to always be the last item in every scope chain. If it's not, you will crash.
* | | Fix line number and arguments in QScriptContext::toStringOlivier Goffart2009-08-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For arguments, we always need to skip the implicit 'this' argument For line number, we walk thought the stack frames from the top to find the one above the requested one, which contains the returnPC we need. Also fixed a crash because QScriptContext::parentContext would have returned a pointer with flags inside. Reviewed-by: Kent Hansen
* | | Test the activationObject for js functionsOlivier Goffart2009-08-101-0/+25
| | |
* | | more tests for the QScriptContext::argumentsObjectOlivier Goffart2009-08-101-4/+11
| | |
* | | make QScriptContext::setScope() fail for object created in other engineKent Hansen2009-08-101-8/+15
| | | | | | | | | | | | | | | Also fix some autotest failures, improve the descriptions of failures, and make the tests run to completion.
* | | implement QScriptContext::setActivationObject()Kent Hansen2009-08-101-2/+6
| | |
* | | implement QScriptContext::backtrace()Kent Hansen2009-08-101-1/+1
| | | | | | | | | | | | | | | Doesn't pass the test yet, but at least it returns something that might be useful on occasion.
* | | skip the QScriptContext::returnValue() testKent Hansen2009-08-101-2/+1
| | | | | | | | | | | | | | | returnValue() and setReturnValue() are internal functions not implemented in the JSC-based back-end.
* | | Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt into ↵Kent Hansen2009-08-051-0/+30
|\| | | | | | | | | | | | | | | | | | | | qtscript-jsc-backend Conflicts: src/script/qscriptextqobject.cpp
| * | test that activation and this-object can be inherited from parent contextKent Hansen2009-07-311-0/+30
| | |
* | | Do not crash if using popContext() while the current context have not been ↵Olivier Goffart2009-08-041-6/+2
| | | | | | | | | | | | | | | | | | pushed Reviewed-by: Kent Hansen
* | | QScriptContext::calledAsConstructor also works with non-native functionOlivier Goffart2009-08-031-5/+28
| | | | | | | | | | | | | | | | | | | | | Use the opcode to see if it was called with op_construct This could also work with native function, but not when they are called with QScriptValue::call() or QScriptValue::construct()
* | | implement QScriptContext::activationObject()Kent Hansen2009-07-301-8/+9
| | |
* | | Implement QScriptEngine::pushContext end popContextOlivier Goffart2009-07-301-2/+9
| | | | | | | | | | | | Reviewed-by: Kent Hansen
* | | set calledAsConstructor to true when function is called as constructorKent Hansen2009-07-291-0/+32
| | |
* | | Set the this object on the global context sets the global objectOlivier Goffart2009-07-281-2/+0
| | | | | | | | | | | | Reviewed-by: Kent Hansen
* | | Test tst_QScriptContext::lineNumberOlivier Goffart2009-07-281-3/+1
| | | | | | | | | | | | The test was wrong. The line number should be from within the eval.
* | | add QEXPECT_FAIL where it failsOlivier Goffart2009-07-271-0/+7
| | |
* | | Fix tst_QScriptContext::argumentsOlivier Goffart2009-07-271-2/+43
| | |
* | | update autotestKent Hansen2009-07-151-3/+4
| | |
* | | mark a few expected failuresKent Hansen2009-07-091-0/+3
| | |
* | | make arguments object work for native functionsKent Hansen2009-07-091-0/+26
| | | | | | | | | | | | There's an off-by-one issue that we just work around for now.
* | | remove two expected failuresKent Hansen2009-07-091-2/+0
| | | | | | | | | | | | They now work.
* | | rewrite most of QScriptContext handlingKent Hansen2009-07-081-1/+9
|/ / | | | | | | Do it The right way(TM), by lazily wrapping JSC::ExecState objects.
* | Merge license header changes from 4.5Volker Hilsheimer2009-06-161-2/+2
|\|
| * Update license headers as requested by the marketing department.Jason McDonald2009-06-161-2/+2
| | | | | | | | Reviewed-by: Trust Me