From 2291588304b6c057ad8fe0551aa76f33a4055917 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 1 Aug 2018 22:19:57 +0200 Subject: Fix writing to properties of primitive data In strict mode, this should throw a type error and not do an implicit toObject conversion. Change-Id: I7b8cdf1125978b9d9a047d9da84f23b547cb4a75 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4lookup.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/qml/jsruntime/qv4lookup.cpp') diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index daa5b2dfbd..95a431bd9b 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -511,6 +511,9 @@ bool Lookup::setterGeneric(Lookup *l, ExecutionEngine *engine, Value &object, co if (object.isObject()) return l->resolveSetter(engine, static_cast(&object), value); + if (engine->currentStackFrame->v4Function->isStrict()) + return false; + Scope scope(engine); ScopedObject o(scope, RuntimeHelpers::convertToObject(scope.engine, object)); if (!o) // type error -- cgit v1.2.3