aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4objectproto.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-06-19 21:58:07 +0200
committerLars Knoll <lars.knoll@qt.io>2018-06-26 10:03:50 +0000
commitd95b4826bdf94ad90ba90812cc07d18f3f37b9e9 (patch)
tree03aae1e5ff515b20fe5473f1bb143a436a7d4c36 /src/qml/jsruntime/qv4objectproto.cpp
parent53adb5bbc659f4ae78427b0b1925bf9732d8a6e5 (diff)
Cleanup defineOwnProperty
Make it a vtable method as required by the ES7 spec. Change all calls sites to call through the virtual function. Adjust ArgumentsObject and give it it's own defineOwnProperty implementation instead of hacking it into the base implementation. Move the array object specific handling into a reimplementation. Change-Id: I48c960c4c69f99b178628c94b4808be2bab0dccc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4objectproto.cpp')
-rw-r--r--src/qml/jsruntime/qv4objectproto.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/qml/jsruntime/qv4objectproto.cpp b/src/qml/jsruntime/qv4objectproto.cpp
index 9d52ab1980..ef3e4268c0 100644
--- a/src/qml/jsruntime/qv4objectproto.cpp
+++ b/src/qml/jsruntime/qv4objectproto.cpp
@@ -295,7 +295,7 @@ ReturnedValue ObjectPrototype::method_defineProperty(const FunctionObject *b, co
if (scope.engine->hasException)
return QV4::Encode::undefined();
- if (!O->__defineOwnProperty__(scope.engine, name, pd, attrs))
+ if (!O->defineOwnProperty(name->toPropertyKey(), pd, attrs))
THROW_TYPE_ERROR();
return O.asReturnedValue();
@@ -332,9 +332,9 @@ ReturnedValue ObjectPrototype::method_defineProperties(const FunctionObject *b,
return QV4::Encode::undefined();
bool ok;
if (name)
- ok = O->__defineOwnProperty__(scope.engine, name, n, nattrs);
+ ok = O->defineOwnProperty(name->toPropertyKey(), n, nattrs);
else
- ok = O->__defineOwnProperty__(scope.engine, index, n, nattrs);
+ ok = O->defineOwnProperty(Identifier::fromArrayIndex(index), n, nattrs);
if (!ok)
THROW_TYPE_ERROR();
}
@@ -644,7 +644,7 @@ ReturnedValue ObjectPrototype::method_defineGetter(const FunctionObject *b, cons
ScopedProperty pd(scope);
pd->value = f;
pd->set = Primitive::emptyValue();
- bool ok = o->__defineOwnProperty__(scope.engine, prop, pd, Attr_Accessor);
+ bool ok = o->defineOwnProperty(prop->toPropertyKey(), pd, Attr_Accessor);
if (!ok)
THROW_TYPE_ERROR();
RETURN_UNDEFINED();
@@ -674,7 +674,7 @@ ReturnedValue ObjectPrototype::method_defineSetter(const FunctionObject *b, cons
ScopedProperty pd(scope);
pd->value = Primitive::emptyValue();
pd->set = f;
- bool ok = o->__defineOwnProperty__(scope.engine, prop, pd, Attr_Accessor);
+ bool ok = o->defineOwnProperty(prop->toPropertyKey(), pd, Attr_Accessor);
if (!ok)
THROW_TYPE_ERROR();
RETURN_UNDEFINED();