24 #ifndef QSCRIPTENGINE_P_H 25 #define QSCRIPTENGINE_P_H 38 #include "private/qobject_p.h" 40 #include <QtCore/qdatetime.h> 41 #include <QtCore/qhash.h> 42 #include <QtCore/qnumeric.h> 43 #include <QtCore/qregexp.h> 44 #include <QtCore/qset.h> 55 #include "DateConstructor.h" 56 #include "DateInstance.h" 58 #include "ErrorInstance.h" 60 #include "Executable.h" 63 #include "RegExpConstructor.h" 64 #include "RegExpObject.h" 65 #include "SourceProvider.h" 66 #include "Structure.h" 68 #include "JSGlobalObject.h" 96 class QObjectPrototype;
97 class QMetaObjectPrototype;
98 class QVariantPrototype;
102 class TimeoutCheckerProxy;
134 class UStringSourceProviderWithFeedback;
141 virtual void mark(JSC::MarkStack& markStack);
149 #ifndef QT_NO_QOBJECT
161 static inline bool isArray(JSC::JSValue);
162 static inline bool isDate(JSC::JSValue);
163 static inline bool isError(JSC::JSValue);
164 static inline bool isObject(JSC::JSValue);
165 static inline bool isRegExp(JSC::JSValue);
166 static inline bool isVariant(JSC::JSValue);
167 static inline bool isQObject(JSC::JSValue);
168 static inline bool isQMetaObject(JSC::JSValue);
170 static inline bool toBool(JSC::ExecState *, JSC::JSValue);
171 static inline qsreal toInteger(JSC::ExecState *, JSC::JSValue);
172 static inline qsreal toNumber(JSC::ExecState *, JSC::JSValue);
173 static inline qint32 toInt32(JSC::ExecState *, JSC::JSValue);
174 static inline quint32 toUInt32(JSC::ExecState *, JSC::JSValue);
175 static inline quint16 toUInt16(JSC::ExecState *, JSC::JSValue);
176 static inline JSC::UString
toString(JSC::ExecState *, JSC::JSValue);
178 static inline QDateTime toDateTime(JSC::ExecState *, JSC::JSValue);
180 static QRegExp toRegExp(JSC::ExecState*, JSC::JSValue);
182 static QVariant toVariant(JSC::ExecState *, JSC::JSValue);
183 static inline QObject *toQObject(JSC::ExecState *, JSC::JSValue);
184 static inline const QMetaObject *toQMetaObject(JSC::ExecState *, JSC::JSValue);
186 static inline JSC::JSValue
property(JSC::ExecState*, JSC::JSValue,
const JSC::Identifier &
id,
188 static JSC::JSValue propertyHelper(JSC::ExecState*, JSC::JSValue,
const JSC::Identifier &
id,
int resolveMode);
191 static JSC::JSValue propertyHelper(JSC::ExecState*, JSC::JSValue,
quint32,
int resolveMode);
192 static inline JSC::JSValue
property(JSC::ExecState*, JSC::JSValue,
const JSC::UString &,
int resolveMode);
193 static inline void setProperty(JSC::ExecState*, JSC::JSValue
object,
const JSC::UString &
name, JSC::JSValue,
195 static void setProperty(JSC::ExecState*, JSC::JSValue
object,
const JSC::Identifier &
id, JSC::JSValue,
197 static void setProperty(JSC::ExecState*, JSC::JSValue
object,
quint32 index, JSC::JSValue,
200 const JSC::Identifier &
id,
const QScriptValue::ResolveFlags &mode);
202 const JSC::UString &name,
const QScriptValue::ResolveFlags &mode);
204 static bool convertValue(JSC::ExecState*, JSC::JSValue value,
206 static bool convertNumber(
qsreal,
int type,
void *ptr);
207 static bool convertString(
const QString &,
int type,
void *ptr);
208 static JSC::JSValue
create(JSC::ExecState*,
int type,
const void *ptr);
209 bool hasDemarshalFunction(
int type)
const;
211 inline QScriptValue scriptValueFromJSCValue(JSC::JSValue value);
212 inline JSC::JSValue scriptValueToJSCValue(
const QScriptValue &value);
215 static inline JSC::JSValue jscValueFromVariant(JSC::ExecState*,
const QVariant &value);
216 static QVariant jscValueToVariant(JSC::ExecState*, JSC::JSValue value,
int targetType);
217 static inline QVariant &variantValue(JSC::JSValue value);
218 static inline void setVariantValue(JSC::JSValue objectValue,
const QVariant &value);
220 static JSC::JSValue arrayFromStringList(JSC::ExecState*,
const QStringList &lst);
221 static QStringList stringListFromArray(JSC::ExecState*, JSC::JSValue arr);
223 static JSC::JSValue arrayFromVariantList(JSC::ExecState*,
const QVariantList &lst);
224 static QVariantList variantListFromArray(JSC::ExecState*, JSC::JSArray *arr);
226 static JSC::JSValue objectFromVariantMap(JSC::ExecState*,
const QVariantMap &vmap);
227 static QVariantMap variantMapFromObject(JSC::ExecState*, JSC::JSObject *obj);
229 JSC::JSValue defaultPrototype(
int metaTypeId)
const;
230 void setDefaultPrototype(
int metaTypeId, JSC::JSValue
prototype);
232 static inline QScriptContext *contextForFrame(JSC::ExecState *frame);
233 static inline JSC::ExecState *frameForContext(
QScriptContext *context);
234 static inline const JSC::ExecState *frameForContext(
const QScriptContext *context);
236 static inline bool hasValidCodeBlockRegister(JSC::ExecState *frame);
238 JSC::JSGlobalObject *originalGlobalObject()
const;
239 JSC::JSObject *getOriginalGlobalObjectProxy();
240 JSC::JSObject *customGlobalObject()
const;
241 JSC::JSObject *globalObject()
const;
242 void setGlobalObject(JSC::JSObject *
object);
243 inline JSC::ExecState *globalExec()
const;
244 JSC::JSValue toUsableValue(JSC::JSValue value);
245 static JSC::JSValue thisForContext(JSC::ExecState *frame);
246 static JSC::Register *thisRegisterForFrame(JSC::ExecState *frame);
249 JSC::JSObject *callee,
bool calledAsConstructor =
false,
bool clearScopeChain =
false);
252 void mark(JSC::MarkStack& markStack);
253 bool isCollecting()
const;
254 void collectGarbage();
255 void reportAdditionalMemoryCost(
int size);
260 CalledAsConstructorContext = 2,
262 ShouldRestoreCallFrame = 8
264 static uint contextFlags(JSC::ExecState *);
265 static void setContextFlags(JSC::ExecState *,
uint);
271 static inline void saveException(JSC::ExecState *, JSC::JSValue *);
272 static inline void restoreException(JSC::ExecState *, JSC::JSValue);
279 static bool canEvaluate(
const QString &program);
283 void detachAllRegisteredScriptPrograms();
290 void detachAllRegisteredScriptValues();
294 void detachAllRegisteredScriptStrings();
297 static inline JSC::JSValue newArray(JSC::ExecState *,
uint length);
298 static inline JSC::JSValue newDate(JSC::ExecState *,
qsreal value);
299 static inline JSC::JSValue newDate(JSC::ExecState *,
const QDateTime &);
300 inline JSC::JSValue newObject();
303 static JSC::JSValue newRegExp(JSC::ExecState *,
const QRegExp &);
306 static JSC::JSValue newRegExp(JSC::ExecState *,
const QString &pattern,
const QString &flags);
307 JSC::JSValue newVariant(
const QVariant &);
308 JSC::JSValue newVariant(JSC::JSValue objectValue,
const QVariant &);
313 JSC::UString translationContextFromUrl(
const JSC::UString &);
315 #ifndef QT_NO_QOBJECT 316 JSC::JSValue newQObject(
QObject *
object,
318 const QScriptEngine:: QObjectWrapOptions &options = 0);
319 JSC::JSValue newQMetaObject(
const QMetaObject *metaObject,
322 static bool convertToNativeQObject(JSC::ExecState*, JSC::JSValue,
326 JSC::JSValue evaluateHelper(JSC::ExecState *exec,
intptr_t sourceId,
327 JSC::EvalExecutable *executable,
331 void disposeQObject(
QObject *
object);
332 void emitSignalHandlerException();
334 bool scriptConnect(
QObject *sender,
const char *signal,
335 JSC::JSValue receiver, JSC::JSValue
function,
337 bool scriptDisconnect(
QObject *sender,
const char *signal,
338 JSC::JSValue receiver, JSC::JSValue
function);
340 bool scriptConnect(
QObject *sender,
int index,
341 JSC::JSValue receiver, JSC::JSValue
function,
342 JSC::JSValue senderWrapper,
344 bool scriptDisconnect(
QObject *sender,
int index,
345 JSC::JSValue receiver, JSC::JSValue
function);
347 bool scriptConnect(JSC::JSValue signal, JSC::JSValue receiver,
349 bool scriptDisconnect(JSC::JSValue signal, JSC::JSValue receiver,
350 JSC::JSValue
function);
353 void _q_objectDestroyed(
QObject *);
377 static const int maxFreeScriptValues = 256;
397 #ifndef QT_NO_QOBJECT 413 : m_engine(engine), m_oldTable(
JSC::setCurrentIdentifierTable(engine->globalData->identifierTable))
418 JSC::setCurrentIdentifierTable(m_oldTable);
432 static PassRefPtr<UStringSourceProviderWithFeedback>
create(
433 const JSC::UString& source,
const JSC::UString& url,
444 if (JSC::Debugger* debugger = this->debugger())
445 debugger->scriptUnload(asID());
446 m_ptr->loadedScripts.remove(asID());
454 if (JSC::Debugger* debugger = this->debugger())
455 debugger->scriptUnload(asID());
461 for (
const UChar *
c = m_source.data() + offset;
c >= m_source.data(); --
c) {
462 if (JSC::Lexer::isLineTerminator(*
c))
463 return offset - static_cast<int>(
c -
data());
471 : UStringSourceProvider(source, url),
474 if (JSC::Debugger* debugger = this->debugger())
475 debugger->scriptLoad(asID(), source, url, lineNumber);
477 m_ptr->loadedScripts.insert(asID(),
this);
487 return m_ptr->originalGlobalObject()->debugger();
498 JSC::ExecState *newFrame)
499 : engine(eng), oldFrame(eng->currentFrame)
505 engine->currentFrame = oldFrame;
514 return static_cast<GlobalClientData*
>(exec->globalData().clientData)->engine;
522 return JSC::UString::from(value);
527 return ((JSC::UString)value).toDouble();
554 return (value != 0) && !
qIsNaN(value);
564 const UChar *e = i + length;
566 *(s++) = (
uchar) *(i++);
581 Q_ASSERT(!registeredScriptPrograms.contains(program));
582 registeredScriptPrograms.insert(program);
587 Q_ASSERT(registeredScriptPrograms.contains(program));
588 registeredScriptPrograms.remove(program);
593 if (freeScriptValues) {
595 freeScriptValues = p->
next;
596 --freeScriptValuesCount;
604 if (freeScriptValuesCount < maxFreeScriptValues) {
605 p->
next = freeScriptValues;
606 freeScriptValues = p;
607 ++freeScriptValuesCount;
616 value->
next = registeredScriptValues;
617 if (registeredScriptValues)
618 registeredScriptValues->
prev = value;
619 registeredScriptValues = value;
628 if (value == registeredScriptValues)
629 registeredScriptValues = value->
next;
655 return JSC::JSValue();
670 unsigned attribs = 0;
672 attribs |= JSC::ReadOnly;
674 attribs |= JSC::DontEnum;
676 attribs |= JSC::DontDelete;
684 engine->unregisterScriptValue(
this);
689 if (value.isCell()) {
691 value = engine->toUsableValue(value);
693 type = JavaScriptCore;
696 engine->registerScriptValue(
this);
704 engine->registerScriptValue(
this);
712 engine->registerScriptValue(
this);
717 return property(exec, value, JSC::Identifier(exec, name), resolveMode);
723 JSC::JSObject *
object = JSC::asObject(value);
724 JSC::PropertySlot slot(
object);
726 return slot.getValue(exec,
id);
727 return propertyHelper(exec, value,
id, resolveMode);
733 JSC::JSObject *
object = JSC::asObject(value);
734 JSC::PropertySlot slot(
object);
736 return slot.getValue(exec, index);
737 return propertyHelper(exec, value, index, resolveMode);
741 const JSC::UString &
name,
742 const QScriptValue::ResolveFlags &mode)
744 return propertyFlags(exec, value, JSC::Identifier(exec, name), mode);
750 setProperty(exec, objectValue, JSC::Identifier(exec, name), value, flags);
765 JSC::ExecState *exec = engine->currentFrame;
770 const JSC::Identifier &
id,
const QScriptValue::ResolveFlags &mode)
const 790 JSC::ExecState *exec = engine->currentFrame;
797 return engine->allocateScriptValuePrivate(size);
801 inline void QScriptValuePrivate::operator
delete(
void *
ptr)
813 *val = exec->exception();
814 exec->clearException();
816 *val = JSC::JSValue();
823 exec->setException(val);
830 value->
next = registeredScriptStrings;
831 if (registeredScriptStrings)
832 registeredScriptStrings->
prev = value;
833 registeredScriptStrings = value;
843 if (value == registeredScriptStrings)
844 registeredScriptStrings = value->
next;
851 if (frame && frame->callerFrame()->hasHostCallFrameFlag() && !frame->callee()
854 frame = frame->callerFrame()->removeHostCallFrameFlag();
861 return reinterpret_cast<JSC::ExecState*
>(context);
866 return reinterpret_cast<const JSC::ExecState*
>(context);
875 JSC::JSObject *callee = frame->callee();
877 && JSC::asFunction(callee)->isHostFunction());
886 return originalGlobalObject()->globalExec();
891 return JSC::constructEmptyArray(exec, length);
896 JSC::JSValue val = JSC::jsNumber(exec, value);
897 JSC::ArgList args(&val, 1);
898 return JSC::constructDate(exec, args);
908 return new (currentFrame)
QScriptObject(scriptObjectStructure);
913 return value && value.isObject();
947 #ifndef QT_NO_QOBJECT 962 #ifndef QT_NO_QOBJECT 971 JSC::JSValue savedException;
972 saveException(exec, &savedException);
973 bool result = value.toBoolean(exec);
974 restoreException(exec, savedException);
980 JSC::JSValue savedException;
981 saveException(exec, &savedException);
982 qsreal result = value.toInteger(exec);
983 restoreException(exec, savedException);
989 JSC::JSValue savedException;
990 saveException(exec, &savedException);
991 qsreal result = value.toNumber(exec);
992 restoreException(exec, savedException);
998 JSC::JSValue savedException;
999 saveException(exec, &savedException);
1000 qint32 result = value.toInt32(exec);
1001 restoreException(exec, savedException);
1007 JSC::JSValue savedException;
1008 saveException(exec, &savedException);
1009 quint32 result = value.toUInt32(exec);
1010 restoreException(exec, savedException);
1023 return JSC::UString();
1024 JSC::JSValue savedException;
1025 saveException(exec, &savedException);
1026 JSC::UString str = value.toString(exec);
1027 if (exec && exec->hadException() && !str.size()) {
1028 JSC::JSValue savedException2;
1029 saveException(exec, &savedException2);
1030 str = savedException2.toString(exec);
1031 restoreException(exec, savedException2);
1034 restoreException(exec, savedException);
1042 qsreal t =
static_cast<JSC::DateInstance*
>(JSC::asObject(value))->internalNumber();
1048 #ifndef QT_NO_QOBJECT 1055 return static_cast<QScript::QObjectDelegate*>(delegate)->value();
1057 return static_cast<QScript::DeclarativeObjectDelegate*>(delegate)->scriptClass()->toQObject(declarativeObject(value));
1059 QVariant var = variantValue(value);
1066 return toQObject(exec, proxy->
delegate());
1074 #ifndef QT_NO_QOBJECT 1075 if (isQMetaObject(value))
The QVariant class acts like a union for the most common Qt data types.
static unsigned propertyFlagsToJSCAttributes(const QScriptValue::PropertyFlags &flags)
static bool isQMetaObject(JSC::JSValue)
The QScriptContext class represents a Qt Script function invocation.
int columnNumberFromOffset(int offset) const
QScriptEnginePrivate * m_ptr
QScriptValuePrivate * next
JSC::ExecState * globalExec() const
static bool isObject(JSC::JSValue)
static JSC::ExecState * frameForContext(QScriptContext *context)
QScriptEnginePrivate * scriptEngineFromExec(const JSC::ExecState *exec)
static mach_timebase_info_data_t info
virtual Type type() const =0
void disconnectFromEngine()
#define QT_END_NAMESPACE
This macro expands to.
static const QMetaObject * toQMetaObject(JSC::ExecState *, JSC::JSValue)
WTF::RefPtr< JSC::Structure > variantWrapperObjectStructure
static JSC::JSValue jscValueFromVariant(JSC::ExecState *, const QVariant &value)
void clearCurrentException()
The QRegExp class provides pattern matching using regular expressions.
JSC::JSObject * delegate() const
static const JSC::ClassInfo info
qint32 ToInt32(const QString &)
WTF::RefPtr< JSC::Structure > qmetaobjectWrapperObjectStructure
QSet< QString > importedExtensions
bool ToBool(const QString &)
JSC::UString cachedTranslationContext
Q_CORE_EXPORT void qFree(void *ptr)
WTF::RefPtr< JSC::Structure > staticScopeObjectStructure
The QByteArray class provides an array of bytes.
static Expression::Ptr create(Expression *const expr, const YYLTYPE &sourceLocator, const ParserContext *const parseInfo)
void setProperty(const JSC::UString &name, const JSC::JSValue &value, const QScriptValue::PropertyFlags &flags=QScriptValue::KeepExistingFlags)
static QScriptValuePrivate * get(const QScriptValue &q)
static PassRefPtr< UStringSourceProviderWithFeedback > create(const JSC::UString &source, const JSC::UString &url, int lineNumber, QScriptEnginePrivate *engine)
static QObject * toQObject(JSC::ExecState *, JSC::JSValue)
QScriptObjectDelegate * delegate() const
QScript::QVariantPrototype * variantPrototype
JSC::Debugger * debugger()
QList< QScriptEngineAgent * > ownedAgents
QScriptStringPrivate * prev
static quint16 toUInt16(JSC::ExecState *, JSC::JSValue)
Q_CORE_EXPORT void * qMalloc(size_t size)
static QScriptValue toPublic(QScriptValuePrivate *d)
static QScriptDeclarativeClass * declarativeClass(JSC::JSValue)
static qsreal toNumber(JSC::ExecState *, JSC::JSValue)
static const JSC::ClassInfo info
The QString class provides a Unicode character string.
The QHash class is a template class that provides a hash-table-based dictionary.
The QObject class is the base class of all Qt objects.
void setCurrentException(QScriptValue exception)
int processEventsInterval
QScriptEnginePrivate * m_engine
static QVariant convertValue(GConfValue *src)
JSC::ExecState * currentFrame
The QScriptString class acts as a handle to "interned" strings in a QScriptEngine.
APIShim(QScriptEnginePrivate *engine)
void freeScriptValuePrivate(QScriptValuePrivate *p)
static bool toBool(Register *reg, int type, bool *ok=0)
static QString toString(Register *reg, int type, bool *ok=0)
The QScriptEngine class provides an environment for evaluating Qt Script code.
QScriptValuePrivate * prev
static bool isVariant(JSC::JSValue)
static qint32 toInt32(JSC::ExecState *, JSC::JSValue)
#define QT_BEGIN_NAMESPACE
This macro expands to.
QHash< QObject *, QScript::QObjectData * > m_qobjectData
quint16 ToUInt16(const QString &)
QScriptStringPrivate * next
JSC::JSValue scriptValueToJSCValue(const QScriptValue &value)
void registerScriptProgram(QScriptProgramPrivate *program)
static QScriptContext * contextForFrame(JSC::ExecState *frame)
QScript::QMetaObjectPrototype * qmetaobjectPrototype
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
static JSC::UString toString(JSC::ExecState *, JSC::JSValue)
QScriptValuePrivate * allocateScriptValuePrivate(size_t)
The QStringList class provides a list of strings.
static void setProperty(JSC::ExecState *, JSC::JSValue object, const JSC::UString &name, JSC::JSValue, const QScriptValue::PropertyFlags &flags=QScriptValue::KeepExistingFlags)
int freeScriptValuesCount
static QDateTime toDateTime(JSC::ExecState *, JSC::JSValue)
SaveFrameHelper(QScriptEnginePrivate *eng, JSC::ExecState *newFrame)
bool isFunction(JSC::JSValue value)
QHash< intptr_t, QScript::UStringSourceProviderWithFeedback * > loadedScripts
static void restoreException(JSC::ExecState *, JSC::JSValue)
static const char * data(const QByteArray &arr)
static qsreal toInteger(JSC::ExecState *, JSC::JSValue)
The QScriptSyntaxCheckResult class provides the result of a script syntax check.
ValueOwnership
This enum specifies the ownership when wrapping a C++ value, e.
qsreal DateTimeToMs(JSC::ExecState *exec, const QDateTime &dt)
Converts a QDateTime to a JS date value (milliseconds).
const T * ptr(const T &t)
QScriptStringPrivate * registeredScriptStrings
QSet< QScriptProgramPrivate * > registeredScriptPrograms
void convertToLatin1_helper(const UChar *i, int length, char *s)
virtual ~GlobalClientData()
void unregisterScriptProgram(QScriptProgramPrivate *program)
Q_CORE_EXPORT bool qIsNaN(double d)
Returns true if the double {d} is not a number (NaN).
QScriptValue currentException() const
QHash< int, QScriptTypeInfo * > m_typeInfos
UStringSourceProviderWithFeedback(const JSC::UString &source, const JSC::UString &url, int lineNumber, QScriptEnginePrivate *engine)
static QByteArray prototype(const QList< QByteArray > ¶meterTypes, const QList< QByteArray > ¶meterNames, bool *ok)
static bool isDate(JSC::JSValue)
GlobalClientData(QScriptEnginePrivate *e)
JSC::ExecState * oldFrame
qsreal ToNumber(const QString &)
static bool isRegExp(JSC::JSValue)
quint32 ToUInt32(const QString &)
int userType() const
Returns the storage type of the value stored in the variant.
WTF::RefPtr< JSC::Structure > scriptObjectStructure
#define Q_DECLARE_PUBLIC(Class)
static JSC::JSValue property(JSC::ExecState *, JSC::JSValue, const JSC::Identifier &id, int resolveMode=QScriptValue::ResolvePrototype)
The QDateTime class provides date and time functions.
static void saveException(JSC::ExecState *, JSC::JSValue *)
static JSC::JSValue newArray(JSC::ExecState *, uint length)
qsreal ToInteger(const QString &)
QScriptEngineAgent * activeAgent
QScript::QObjectPrototype * qobjectPrototype
JSC::JSValue property(const JSC::Identifier &id, const QScriptValue::ResolveFlags &mode=QScriptValue::ResolvePrototype) const
static bool isQObject(JSC::JSValue)
static quint32 toUInt32(JSC::ExecState *, JSC::JSValue)
static bool isError(JSC::JSValue)
const void * constData() const
static JSC::JSValue newDate(JSC::ExecState *, qsreal value)
virtual ~UStringSourceProviderWithFeedback()
void initFrom(JSC::JSValue value)
QScriptValuePrivate * freeScriptValues
static QScriptDeclarativeClass::Object * declarativeObject(JSC::JSValue)
JSC::JSObject * originalGlobalObjectProxy
QScriptValue m_currentException
QSet< JSC::JSObject * > visitedConversionObjects
static QVariant & variantValue(JSC::JSValue value)
JSC::IdentifierTable * m_oldTable
QDateTime MsToDateTime(JSC::ExecState *exec, qsreal t)
Converts a JS date value (milliseconds) to a QDateTime (local time).
quint16 ToUInt16(qsreal n)
static QScriptValue::PropertyFlags propertyFlags(JSC::ExecState *, JSC::JSValue value, const JSC::Identifier &id, const QScriptValue::ResolveFlags &mode)
JSC::JSGlobalData * globalData
QScriptValue scriptValueFromJSCValue(JSC::JSValue value)
Represent a scope for native function call.
QScriptValuePrivate * registeredScriptValues
QScriptEnginePrivate * engine
JSC::UString cachedTranslationUrl
QSet< QString > extensionsBeingImported
static void setVariantValue(JSC::JSValue objectValue, const QVariant &value)
static bool toBool(JSC::ExecState *, JSC::JSValue)
static bool isArray(JSC::JSValue)
void registerScriptValue(QScriptValuePrivate *value)
void unregisterScriptString(QScriptStringPrivate *value)
QScriptEnginePrivate * engine
The QScriptValue class acts as a container for the Qt Script data types.
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
The QScriptEngineAgent class provides an interface to report events pertaining to QScriptEngine execu...
WTF::RefPtr< JSC::Structure > qobjectWrapperObjectStructure
QScriptEnginePrivate * engine
QByteArray convertToLatin1(const JSC::UString &str)
void unregisterScriptValue(QScriptValuePrivate *value)
static bool hasValidCodeBlockRegister(JSC::ExecState *frame)
QScriptValue::PropertyFlags propertyFlags(const JSC::Identifier &id, const QScriptValue::ResolveFlags &mode=QScriptValue::ResolvePrototype) const
void registerScriptString(QScriptStringPrivate *value)