67 inline void initFrom(const QString &value); |
67 inline void initFrom(const QString &value); |
68 |
68 |
69 inline bool isJSC() const; |
69 inline bool isJSC() const; |
70 inline bool isObject() const; |
70 inline bool isObject() const; |
71 |
71 |
72 QVariant &variantValue() const; |
|
73 void setVariantValue(const QVariant &value); |
|
74 |
|
75 static inline QScriptValuePrivate *get(const QScriptValue &q) |
72 static inline QScriptValuePrivate *get(const QScriptValue &q) |
76 { |
73 { |
77 return q.d_ptr.data(); |
74 return q.d_ptr.data(); |
78 } |
75 } |
79 |
76 |
87 if (!q.d_ptr) |
84 if (!q.d_ptr) |
88 return 0; |
85 return 0; |
89 return q.d_ptr->engine; |
86 return q.d_ptr->engine; |
90 } |
87 } |
91 |
88 |
92 inline QScriptValue property(const JSC::Identifier &id, int resolveMode) const; |
89 inline JSC::JSValue property(const JSC::Identifier &id, |
93 QScriptValue propertyHelper(const JSC::Identifier &id, int resolveMode) const; |
90 const QScriptValue::ResolveFlags &mode = QScriptValue::ResolvePrototype) const; |
94 inline QScriptValue property(quint32 index, int resolveMode) const; |
91 inline JSC::JSValue property(quint32 index, const QScriptValue::ResolveFlags &mode = QScriptValue::ResolvePrototype) const; |
95 QScriptValue propertyHelper(quint32, int resolveMode) const; |
92 inline JSC::JSValue property(const JSC::UString &, const QScriptValue::ResolveFlags &mode = QScriptValue::ResolvePrototype) const; |
96 inline QScriptValue property(const QString &, int resolveMode) const; |
93 inline void setProperty(const JSC::UString &name, const JSC::JSValue &value, |
97 void setProperty(const JSC::Identifier &id, const QScriptValue &value, |
94 const QScriptValue::PropertyFlags &flags = QScriptValue::KeepExistingFlags); |
98 const QScriptValue::PropertyFlags &flags); |
95 inline void setProperty(const JSC::Identifier &id, const JSC::JSValue &value, |
99 QScriptValue::PropertyFlags propertyFlags( |
96 const QScriptValue::PropertyFlags &flags = QScriptValue::KeepExistingFlags); |
100 const JSC::Identifier &id, const QScriptValue::ResolveFlags &mode) const; |
97 inline void setProperty(quint32 index, const JSC::JSValue &value, |
|
98 const QScriptValue::PropertyFlags &flags = QScriptValue::KeepExistingFlags); |
|
99 inline QScriptValue::PropertyFlags propertyFlags( |
|
100 const JSC::Identifier &id, const QScriptValue::ResolveFlags &mode = QScriptValue::ResolvePrototype) const; |
101 |
101 |
102 void detachFromEngine(); |
102 void detachFromEngine(); |
103 |
103 |
104 qint64 objectId() |
104 qint64 objectId() |
105 { |
105 { |
106 if ( (type == JavaScriptCore) && (engine) ) |
106 if ( (type == JavaScriptCore) && (engine) ) |
107 return (qint64)jscValue.asCell(); |
107 return (qint64)jscValue.asCell(); |
108 else |
108 else |
109 return -1; |
109 return -1; |
110 } |
110 } |
111 |
|
112 static inline void saveException(JSC::ExecState*, JSC::JSValue*); |
|
113 static inline void restoreException(JSC::ExecState*, JSC::JSValue); |
|
114 |
111 |
115 QScriptEnginePrivate *engine; |
112 QScriptEnginePrivate *engine; |
116 Type type; |
113 Type type; |
117 JSC::JSValue jscValue; |
114 JSC::JSValue jscValue; |
118 qsreal numberValue; |
115 qsreal numberValue; |