aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4vme_moth.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-06-30 19:19:18 +0200
committerLars Knoll <lars.knoll@qt.io>2018-07-03 08:09:05 +0000
commit6d8dbba4624c8a453ba13ff009f011f2946422bb (patch)
treeec1aec45c122a31d7e5c1c19daa9ba5d4f824355 /src/qml/jsruntime/qv4vme_moth.cpp
parentdeaa99f66ddedc2ea79e6902c665925b04665e68 (diff)
Add support for super calls
Implement super call support for class constructor functions. Change-Id: I3c64276234689cf4f644b095e0fc8ca1c634ac53 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4vme_moth.cpp')
-rw-r--r--src/qml/jsruntime/qv4vme_moth.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp
index 4f0f9f27ec..39eaa3a25c 100644
--- a/src/qml/jsruntime/qv4vme_moth.cpp
+++ b/src/qml/jsruntime/qv4vme_moth.cpp
@@ -936,6 +936,16 @@ QV4::ReturnedValue VME::interpret(CppStackFrame *frame, ExecutionEngine *engine,
}
MOTH_END_INSTR(ConvertThisToObject)
+ MOTH_BEGIN_INSTR(LoadSuperConstructor)
+ const Value *f = &stack[CallData::Function];
+ if (!f->isFunctionObject()) {
+ engine->throwTypeError();
+ } else {
+ acc = static_cast<const Object *>(f)->getPrototypeOf()->asReturnedValue();
+ }
+ CHECK_EXCEPTION;
+ MOTH_END_INSTR(LoadSuperConstructor)
+
MOTH_BEGIN_INSTR(ToObject)
acc = ACC.toObject(engine)->asReturnedValue();
CHECK_EXCEPTION;