diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-06-30 19:19:18 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-07-03 08:09:05 +0000 |
commit | 6d8dbba4624c8a453ba13ff009f011f2946422bb (patch) | |
tree | ec1aec45c122a31d7e5c1c19daa9ba5d4f824355 /src/qml/jsruntime/qv4vme_moth.cpp | |
parent | deaa99f66ddedc2ea79e6902c665925b04665e68 (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.cpp | 10 |
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; |