7#include <QtQml/private/qv4functionobject_p.h>
26 if (!
key->isValid()) {
50 if (
key->isArrayIndex())
53 return key->asStringOrSymbol()->asReturnedValue();
70 return key->toStringOrSymbol(
engine)->asReturnedValue();
84 return key->toStringOrSymbol(
engine)->asReturnedValue();
94 o->object->mark(markStack);
96 o->current->mark(markStack);
97 o->workArea[0].mark(markStack);
98 o->workArea[1].mark(markStack);
99 Object::markObjects(that, markStack);
102void Heap::ForInIteratorObject::destroy()
140 if (!
attrs.isEnumerable() ||
key->isSymbol())
143 if (
d()->current !=
d()->
object) {
145 bool shadowed =
false;
146 while (
o &&
o->d() !=
c->heapObject()) {
151 o =
o->getPrototypeOf();
159 c =
c->getPrototypeOf();
160 d()->current.set(scope.
engine,
c->d());
163 delete d()->iterator;
164 d()->iterator =
c->ownPropertyKeys(
t.getRef());
165 d()->target.set(scope.
engine,
t->d());
166 if (!
d()->iterator) {
typename C::iterator iterator
\qmltype Particle \inqmlmodule QtQuick.Particles
static struct AttrInfo attrs[]
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLboolean GLboolean GLboolean b
#define QStringLiteral(str)
#define DEFINE_OBJECT_VTABLE(classname)
static constexpr ReturnedValue null()
ReturnedValue throwTypeError()
V4_NEEDS_DESTROY PropertyKey nextProperty() const
void init(ExecutionEngine *engine)
static ReturnedValue method_next(const FunctionObject *b, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue createIterResultObject(ExecutionEngine *engine, const Value &value, bool done)
OwnPropertyKeyIterator * iterator
PropertyKey next(Property *pd=nullptr, PropertyAttributes *attributes=nullptr)
ReturnedValue nextPropertyName(Value *value)
ReturnedValue nextPropertyNameAsString()
void defineDefaultProperty(StringOrSymbol *name, const Value &value, PropertyAttributes attributes=Attr_Data|Attr_NotEnumerable)
virtual PropertyKey next(const Object *o, Property *p=nullptr, PropertyAttributes *attrs=nullptr)=0
static PropertyKey invalid()