diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-08-07 13:27:38 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-08-10 08:18:41 +0000 |
commit | fee680b24a41c177a23f82fc7334ab593931afea (patch) | |
tree | 23aa05e538b287ec25830bc3b000c9641cfd9699 /src/qml/jsruntime/qv4object_p.h | |
parent | 2ad213cc02094e003802530757fa4010720a22e6 (diff) |
Don't throw errors from the internal put methods anymore
Instead do it in the VME, where we can then easily separate
into throwing and non throwing versions by bytecode.
Change-Id: Ie63bd5b3610bb85f26fb8979179b2e239876cd97
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4object_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4object_p.h | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index fc9a42921e..2bb230412d 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -186,7 +186,7 @@ struct ObjectVTable bool (*deleteProperty)(Managed *m, String *name); bool (*deleteIndexedProperty)(Managed *m, uint index); ReturnedValue (*getLookup)(const Managed *m, Lookup *l); - void (*setLookup)(Managed *m, Lookup *l, const Value &v); + bool (*setLookup)(Managed *m, Lookup *l, const Value &v); uint (*getLength)(const Managed *m); void (*advanceIterator)(Managed *m, ObjectIterator *it, Value *name, uint *index, Property *p, PropertyAttributes *attributes); ReturnedValue (*instanceOf)(const Object *typeObject, const Value &var); @@ -409,19 +409,6 @@ public: return ret; } - inline bool setIndexed(uint idx, const Value &v, ThrowOnFailure shouldThrow) - { - bool ret = vtable()->putIndexed(this, idx, v); - if (!ret && shouldThrow == ThrowOnFailure::DoThrowOnRejection) { - ExecutionEngine *e = engine(); - if (!e->hasException) { // allow a custom set impl to throw itself - e->throwTypeError(); - } - } - return ret; - } - - PropertyAttributes query(String *name) const { return vtable()->query(this, name); } PropertyAttributes queryIndexed(uint index) const @@ -432,8 +419,8 @@ public: { return vtable()->deleteIndexedProperty(this, index); } ReturnedValue getLookup(Lookup *l) const { return vtable()->getLookup(this, l); } - void setLookup(Lookup *l, const Value &v) - { vtable()->setLookup(this, l, v); } + bool setLookup(Lookup *l, const Value &v) + { return vtable()->setLookup(this, l, v); } void advanceIterator(ObjectIterator *it, Value *name, uint *index, Property *p, PropertyAttributes *attributes) { vtable()->advanceIterator(this, it, name, index, p, attributes); } uint getLength() const { return vtable()->getLength(this); } @@ -456,7 +443,7 @@ protected: static bool deleteProperty(Managed *m, String *name); static bool deleteIndexedProperty(Managed *m, uint index); static ReturnedValue getLookup(const Managed *m, Lookup *l); - static void setLookup(Managed *m, Lookup *l, const Value &v); + static bool setLookup(Managed *m, Lookup *l, const Value &v); static void advanceIterator(Managed *m, ObjectIterator *it, Value *name, uint *index, Property *p, PropertyAttributes *attributes); static uint getLength(const Managed *m); static ReturnedValue instanceOf(const Object *typeObject, const Value &var); |