diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-06-22 15:34:57 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-07-02 19:29:25 +0000 |
commit | 98263a01373f5b225d64da216537165ae27d7ff1 (patch) | |
tree | 60980c16c6cc6f6658355bcd428245819b4b732a /src/qml/jsruntime/qv4arrayobject.cpp | |
parent | d21ef386ece52490d428daacb8f7f4658e9f78e5 (diff) |
Unify put and putIndexed
Pass an Identifier through those virtual methods to unify
the string and integer based versions.
Also add the receiver that's required in ES7
Change-Id: I4e7f01b4c97cc80bcb3c485f6343f28213dc9e6b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4arrayobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4arrayobject.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/qml/jsruntime/qv4arrayobject.cpp b/src/qml/jsruntime/qv4arrayobject.cpp index 481dfd22c6..9efb315b50 100644 --- a/src/qml/jsruntime/qv4arrayobject.cpp +++ b/src/qml/jsruntime/qv4arrayobject.cpp @@ -385,7 +385,7 @@ ReturnedValue ArrayPrototype::method_concat(const FunctionObject *b, const Value for (int i = 0, len = eltAsObj->getLength(); i < len; ++i) { entry = eltAsObj->getIndexed(i); // spec says not to throw if this fails - result->putIndexed(startIndex + i, entry); + result->put(startIndex + i, entry); } } else { result->arraySet(result->getLength(), argv[i]); @@ -675,7 +675,7 @@ ReturnedValue ArrayPrototype::method_push(const FunctionObject *b, const Value * len = instance->arrayData()->length(); } else { for (int i = 0, ei = argc; i < ei; ++i) { - if (!instance->putIndexed(len + i, argv[i])) + if (!instance->put(len + i, argv[i])) return scope.engine->throwTypeError(); } len += argc; @@ -713,12 +713,12 @@ ReturnedValue ArrayPrototype::method_reverse(const FunctionObject *b, const Valu CHECK_EXCEPTION(); bool ok; if (hiExists) - ok = instance->putIndexed(lo, hval); + ok = instance->put(lo, hval); else ok = instance->deleteProperty(Identifier::fromArrayIndex(lo)); if (ok) { if (loExists) - ok = instance->putIndexed(hi, lval); + ok = instance->put(hi, lval); else ok = instance->deleteProperty(Identifier::fromArrayIndex(hi)); } @@ -761,7 +761,7 @@ ReturnedValue ArrayPrototype::method_shift(const FunctionObject *b, const Value CHECK_EXCEPTION(); bool ok; if (exists) - ok = instance->putIndexed(k - 1, v); + ok = instance->put(k - 1, v); else ok = instance->deleteProperty(Identifier::fromArrayIndex(k - 1)); if (!ok) @@ -889,7 +889,7 @@ ReturnedValue ArrayPrototype::method_splice(const FunctionObject *b, const Value CHECK_EXCEPTION(); bool ok; if (exists) - ok = instance->putIndexed(k + itemCount, v); + ok = instance->put(k + itemCount, v); else ok = instance->deleteProperty(Identifier::fromArrayIndex(k + itemCount)); if (!ok) @@ -907,7 +907,7 @@ ReturnedValue ArrayPrototype::method_splice(const FunctionObject *b, const Value CHECK_EXCEPTION(); bool ok; if (exists) - ok = instance->putIndexed(k + itemCount - 1, v); + ok = instance->put(k + itemCount - 1, v); else ok = instance->deleteProperty(Identifier::fromArrayIndex(k + itemCount - 1)); if (!ok) @@ -917,7 +917,7 @@ ReturnedValue ArrayPrototype::method_splice(const FunctionObject *b, const Value } for (uint i = 0; i < itemCount; ++i) - instance->putIndexed(start + i, argv[i + 2]); + instance->put(start + i, argv[i + 2]); if (!instance->put(scope.engine->id_length(), ScopedValue(scope, Primitive::fromDouble(len - deleteCount + itemCount)))) return scope.engine->throwTypeError(); @@ -947,14 +947,14 @@ ReturnedValue ArrayPrototype::method_unshift(const FunctionObject *b, const Valu v = instance->getIndexed(k - 1, &exists); bool ok; if (exists) - ok = instance->putIndexed(k + argc - 1, v); + ok = instance->put(k + argc - 1, v); else ok = instance->deleteProperty(Identifier::fromArrayIndex(k + argc - 1)); if (!ok) return scope.engine->throwTypeError(); } for (int i = 0, ei = argc; i < ei; ++i) { - bool ok = instance->putIndexed(i, argv[i]); + bool ok = instance->put(i, argv[i]); if (!ok) return scope.engine->throwTypeError(); } |