diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-06-19 21:58:07 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-06-26 10:03:50 +0000 |
commit | d95b4826bdf94ad90ba90812cc07d18f3f37b9e9 (patch) | |
tree | 03aae1e5ff515b20fe5473f1bb143a436a7d4c36 /src/qml/jsruntime/qv4objectproto.cpp | |
parent | 53adb5bbc659f4ae78427b0b1925bf9732d8a6e5 (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.cpp | 10 |
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(); |