aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4generatorobject_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-08-30 13:16:28 +0200
committerLars Knoll <lars.knoll@qt.io>2018-08-31 06:08:48 +0000
commitac3a9fd8f352b1d717334d16111d22d6c155e4e2 (patch)
tree17c12dbc09143103d060da062a5d9102d7c50f57 /src/qml/jsruntime/qv4generatorobject_p.h
parentd457b919885fdbcc07f3414de64b0b50ebe8b263 (diff)
Fix super property access
Super properties work in a rather special way by accessing a 'home object' on the function object, and reading from it's prototype. Change-Id: I666334c9c27048c6c2ba6770dd8c9f56aecbee14 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4generatorobject_p.h')
-rw-r--r--src/qml/jsruntime/qv4generatorobject_p.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/qml/jsruntime/qv4generatorobject_p.h b/src/qml/jsruntime/qv4generatorobject_p.h
index f00f730344..55e6091ad5 100644
--- a/src/qml/jsruntime/qv4generatorobject_p.h
+++ b/src/qml/jsruntime/qv4generatorobject_p.h
@@ -75,7 +75,7 @@ struct GeneratorFunctionCtor : FunctionObject {
struct GeneratorFunction : ScriptFunction {
};
-struct MemberGeneratorFunction : ScriptFunction {
+struct MemberGeneratorFunction : MemberFunction {
};
struct GeneratorPrototype : FunctionObject {
@@ -113,12 +113,14 @@ struct GeneratorFunction : ScriptFunction
static ReturnedValue virtualCall(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc);
};
-struct MemberGeneratorFunction : GeneratorFunction
+struct MemberGeneratorFunction : MemberFunction
{
- V4_OBJECT2(MemberGeneratorFunction, GeneratorFunction)
+ V4_OBJECT2(MemberGeneratorFunction, MemberFunction)
V4_INTERNALCLASS(MemberGeneratorFunction)
- static Heap::FunctionObject *create(ExecutionContext *scope, Function *function, String *name);
+ static Heap::FunctionObject *create(ExecutionContext *scope, Function *function, Object *homeObject, String *name);
+ static constexpr VTable::CallAsConstructor virtualCallAsConstructor = nullptr;
+ static ReturnedValue virtualCall(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc);
};
struct GeneratorPrototype : Object