diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-04-25 22:34:55 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-05-02 14:20:16 +0000 |
commit | 440a25388b55d465873647b3dc9f470ed68e917e (patch) | |
tree | e79cae143659596bcd62b3423699f0cdf2c41fd3 /src/qml/jsruntime/qv4vme_moth.cpp | |
parent | a4207b2f958e12b01653d8285d9433a77bce9c52 (diff) |
Make instanceOf compliant with the ES7 spec
Add implementation for Function.prototype[Symbol.hasInstance]
and call it when defined.
Change-Id: Iad6b0c075452b46ba710ffe7b94b74b71f715d22
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, 2 insertions, 8 deletions
diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 4a7339ca3a..1567269932 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -1174,14 +1174,8 @@ QV4::ReturnedValue VME::exec(const FunctionObject *fo, const QV4::Value *thisObj MOTH_END_INSTR(CmpIn) MOTH_BEGIN_INSTR(CmpInstanceOf) - // 11.8.6, 5: rval must be an Object - if (Q_UNLIKELY(!Primitive::fromReturnedValue(acc).isObject())) { - acc = engine->throwTypeError(); - goto catchException; - } - - // 11.8.6, 7: call "HasInstance", which we term instanceOf, and return the result. - acc = Primitive::fromReturnedValue(acc).objectValue()->instanceOf(STACK_VALUE(lhs)); + STORE_ACC(); + acc = Runtime::method_instanceof(engine, STACK_VALUE(lhs), ACC); CHECK_EXCEPTION; MOTH_END_INSTR(CmpInstanceOf) |