aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmljavascriptexpression_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/qqmljavascriptexpression_p.h')
-rw-r--r--src/qml/qml/qqmljavascriptexpression_p.h47
1 files changed, 17 insertions, 30 deletions
diff --git a/src/qml/qml/qqmljavascriptexpression_p.h b/src/qml/qml/qqmljavascriptexpression_p.h
index b521ea3bee..2e674b214a 100644
--- a/src/qml/qml/qqmljavascriptexpression_p.h
+++ b/src/qml/qml/qqmljavascriptexpression_p.h
@@ -53,7 +53,6 @@
// We mean it.
//
-#include <private/qv8_p.h>
#include <QtCore/qglobal.h>
#include <QtQml/qqmlerror.h>
#include <private/qqmlengine_p.h>
@@ -65,7 +64,7 @@ class QQmlDelayedError
{
public:
inline QQmlDelayedError() : nextError(0), prevError(0) {}
- inline ~QQmlDelayedError() { qPersistentDispose(m_message); removeError(); }
+ inline ~QQmlDelayedError() { removeError(); }
bool addError(QQmlEnginePrivate *);
@@ -77,20 +76,19 @@ public:
prevError = 0;
}
- inline bool isValid() const { return !m_message.IsEmpty() || m_error.isValid(); }
- inline const QQmlError &error(QQmlEngine *engine) const { convertMessageToError(engine); return m_error; }
- inline void clearError() { qPersistentDispose(m_message); m_error = QQmlError(); }
+ inline bool isValid() const { return m_error.isValid(); }
+ inline const QQmlError &error() const { return m_error; }
+ inline void clearError() { m_error = QQmlError(); }
- void setMessage(v8::Handle<v8::Message> message);
void setErrorLocation(const QUrl &url, quint16 line, quint16 column);
void setErrorDescription(const QString &description);
void setErrorObject(QObject *object);
+ void setError(const QV4::Exception &e);
+
private:
- void convertMessageToError(QQmlEngine *engine) const;
mutable QQmlError m_error;
- mutable v8::Persistent<v8::Message> m_message;
QQmlDelayedError *nextError;
QQmlDelayedError **prevError;
@@ -111,16 +109,14 @@ public:
QQmlJavaScriptExpression(VTable *vtable);
- v8::Local<v8::Value> evaluate(QQmlContextData *, v8::Handle<v8::Function>,
+ QV4::Value evaluate(QQmlContextData *, const QV4::Value &function,
bool *isUndefined);
- v8::Local<v8::Value> evaluate(QQmlContextData *, v8::Handle<v8::Function>,
- int argc, v8::Handle<v8::Value> args[],
+ QV4::Value evaluate(QQmlContextData *, const QV4::Value &function,
+ int argc, QV4::Value *args,
bool *isUndefined);
inline bool requiresThisObject() const;
inline void setRequiresThisObject(bool v);
- inline bool useSharedContext() const;
- inline void setUseSharedContext(bool v);
inline bool notifyOnValueChanged() const;
void setNotifyOnValueChanged(bool v);
@@ -148,15 +144,16 @@ public:
void clearGuards();
QQmlDelayedError *delayedError();
- static void exceptionToError(v8::Handle<v8::Message>, QQmlError &);
- static v8::Persistent<v8::Function> evalFunction(QQmlContextData *ctxt, QObject *scope,
+ static void exceptionToError(const QV4::Exception &e, QQmlError &);
+ static QV4::PersistentValue evalFunction(QQmlContextData *ctxt, QObject *scope,
const QString &code, const QString &filename,
quint16 line,
- v8::Persistent<v8::Object> *qmlscope = 0);
- static v8::Persistent<v8::Function> evalFunction(QQmlContextData *ctxt, QObject *scope,
- const char *code, int codeLength,
- const QString &filename, quint16 line,
- v8::Persistent<v8::Object> *qmlscope = 0);
+ QV4::PersistentValue *qmlscope = 0);
+ // doesn't require rewriting the expression
+ static QV4::PersistentValue qmlBinding(QQmlContextData *ctxt, QObject *scope,
+ const QString &code,
+ const QString &filename, quint16 line,
+ QV4::PersistentValue *qmlscope = 0);
protected:
~QQmlJavaScriptExpression();
@@ -227,16 +224,6 @@ void QQmlJavaScriptExpression::setRequiresThisObject(bool v)
m_scopeObject.setFlagValue(v);
}
-bool QQmlJavaScriptExpression::useSharedContext() const
-{
- return activeGuards.flag2();
-}
-
-void QQmlJavaScriptExpression::setUseSharedContext(bool v)
-{
- activeGuards.setFlag2Value(v);
-}
-
bool QQmlJavaScriptExpression::notifyOnValueChanged() const
{
return activeGuards.flag();