| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Just a little cleanup.
|
|
|
|
|
|
|
|
|
| |
Avoid calling malloc() and free() so often. The premise is that
QScriptValue is usually a short-lived type, and only a few QScriptValues
exist at a time, so if we cache privates in the engine, QScriptValues
will be much faster to create and destroy.
Reviewed-by: Olivier Goffart
|
|
|
|
| |
Reviewed-by: Trust Me
|
| |
|
|
|
|
| |
It's faster.
|
|
|
|
| |
Get rid of the hash.
|
|
|
|
|
| |
It's the d-pointer that we most frequently want to access, so store it
to avoid having to use QScriptEnginePrivate::get() all over the place.
|
|
|
|
|
| |
For the innermost frame, we don't have a returnPC, so use the line
number that was last passed to the engine agent.
|
|
|
|
|
| |
It needs to work even when there is no public QScriptValue that
holds a reference to the object.
|
|
|
|
| |
It is a POD with the size of a pointer
|
|
|
|
|
| |
Remove useless variable.
Use QBoolBlocker instread of custom QScript::InEval.
|
|
|
|
|
|
|
| |
QScriptValue id were made persistent. It depands
on JSC:JSValue JSCell pointer not on QScriptValuePrivate attr.
Reviewed-by: Kent Hansen
|
|
|
|
|
|
| |
Since QScriptEngine::evaluate() doesn't create a new stack frame
anymore, we need to use a dedicated variable to keep track of
whether the engine is currently evaluating or not.
|
|
|
|
|
|
| |
Static method QScriptValue::initFromJSCValue was removed.
Reviewed-by: Kent Hansen
|
|
|
|
|
|
|
|
|
| |
Internal API of QScriptValue were cleaned. toPublic() was
removed and replaced by standard static Private::get().
All initFromXXX() methods were replaced by overload call
of initFrom().
Reviewed-by: Kent Hansen
|
|
|
|
| |
The engine owns its agents, and also knows when they are deleted.
|
|
|
|
|
|
|
| |
Get rid of conversion functions QScript::qtStringFromJSCUString and
QScript::qtStringToJSCUString. Code was moved to cast operators.
Reviewed-by: Kent Hansen
|
| |
|
|
|
|
|
| |
No need to look up the global object via the scope chain since we have
a direct pointer to it already.
|
|
|
|
|
|
| |
In WebKit/JSC config.h needs to be included first in .cpp files, to among
other things make sure that min/max are not defined as macros through
windows.h.
|
|
|
|
|
| |
Use the JSC_HOST_CALL annotation for the declaration as well as for the
definition of the JSC callback functions.
|
|
|
|
|
|
|
|
|
|
|
| |
We can store flags on the ReturnValueRegister entry in the stackframe
header (as native function don't use that)
Then when requesting an activation object we can lookup the flags to
know if we should create it.
This reduce a lot the cost of a native call.
Reviewed-by: Kent Hansen
|
| |
|
|
|
|
|
|
|
| |
When called from the interpreter, we do not need to create a stack
frame, but we need anyway to put the newly created this on the stack.
This fixes crash in the test qscriptjstestsuite
|
|
|
|
|
|
|
|
| |
doesn't construct.
Removes code duplication.
This also indirrectly fixes the QMetaObjectWrapperObject where this was missing
|
|
|
|
|
|
|
|
|
|
| |
The original JavaScriptCore doesn't create stack frame or scope for
native function.
JSC has been patched to support that.
This commit revert our patches to JSC, and implement create the stack
frame from QScript
Reviewed-by: Kent Hansen
|
|
|
|
|
|
|
| |
QSCriptEngine::evaluate()
Fix broken behavior after bad integration with
538153994cacc4613aef1eb8ef77e501be7f5a88 commit
|
|
|
|
|
|
| |
Fix GetSetAgent() in tst_qscriptengine.
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
|
| |
Complete reimplementation of QScriptEngineAgentPrivate.
New QScriptEngineAgentPrivate implementation makes conversion from
different JSC::Debuger types and events to corresponding
QScriptEngineAgent.
contextPush and contextPop events are created in QScriptEngine each time
contextPush or contextPop is ordered from public API
|
| |
|
|
|
|
|
| |
Introduce a frameForContext() function so we don't have to cast
all over the place.
|
|
|
|
|
| |
Added the properties to the activation object: __extension__,
__setupPackage__ and __postInit__.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-script (default) and -no-script.
This means we can get rid of the SCRIPT feature from qfeatures,
since it's now handled by the new configure variable.
It also allows us to get rid of all the QT_NO_SCRIPT ifdefs from
the source files, since qmake isn't going to include those files
for compilation when you configure with -no-script.
The QtScriptTools module will be disabled if the QtScript module
is not built. You'll have to build the old QtScript back-end
(will be made available in a separate package), then build the
QtScriptTools module yourself.
Reviewed-by: Simon Hausmann
|
| |
|
| |
|
|
|
|
|
| |
We can infer it from the JSC environment when the function is
actually called.
|
| |
|
|
|
|
|
| |
Otherwise evaluate() would _always_ return the value previously
passed to abortEvaluation(), once a script had been aborted.
|
| |
|
| |
|
|
|
|
|
|
| |
pushed
Reviewed-by: Kent Hansen
|
|
|
|
|
|
| |
We store the abort-state in the TimeoutChecker, since that's
where we'll mostly access it, but the abort result is stored
in the QScriptEngine's d-pointer.
|
|
|
|
|
| |
We're using a wrapper around TimeoutChecker, where we
re-implement didTimeout() to call processEvents().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There will not be instances of QScriptContext anymore. Pointer to
QScriptContext are just pointer to JSC::CallFrame
This simplifies the code as we do not need to manage the memory for the
QScriptContext anymore.
It is compatible because it is not possible to create
QScriptContext. They were all created by QScriptEngine.
QScriptContext constructor is private.
Aknoweldged-by: Kent
|
| |
|
|
|
|
|
|
|
|
|
| |
- Create a scope (activation object) for the native constructor in QScriptClass
- put the isCalledasConstructor in the activation object (so i can
clean up the QScriptContext
- Remove the code duplication in all native functions.
Aknoweldged-by: Kent
|
|
|
|
|
|
|
|
|
|
| |
Added an extra argument to JSObject::getPropertyNames() that
specifies if the non-enumerable properties (those with the
DontEnum attribute set) should be included or not.
Tried looking at using a unsigned as an attribute-inclusion
or exclusion filter, but the semantics of either the calling
or the callee code would be very strange so I opted out.
|
|
|
|
|
|
|
|
| |
JSC doesn't provide a way to get the backtrace after the exception
has happened (you can only get it at the point it's thrown, by
installing a debugger). As a least effort, we try to use the
uncaught exception to provide a 1-line backtrace (the filename and
linenumber of the innermost call where the exception happened).
|
|
|
|
| |
Reviewed-by: Kent Hansen
|
| |
|