aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2017-09-14 14:54:42 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2017-09-19 09:44:33 +0000
commit042aa2eb0e55616fc754d0d71246efb531ca6dfe (patch)
treef48118a1f8564b4c4cbadc0ebf291d56d59dbb70 /src/qml/jsruntime
parentb7ddcdad876cf0a46aa14a0f78ee8b3e4f685c19 (diff)
Change CallData::argc to be a QV4::Value
Instead of mimicking a Value. This makes sure that argc now stays correct even when anything on Value changes. Most of the change is mechanical: replace callData->argc by callData->argc(). Change-Id: I521831ae1ffb3966bad6589c18d7a373e13439d7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r--src/qml/jsruntime/qv4argumentsobject.cpp2
-rw-r--r--src/qml/jsruntime/qv4arraybuffer.cpp6
-rw-r--r--src/qml/jsruntime/qv4arrayobject.cpp49
-rw-r--r--src/qml/jsruntime/qv4booleanobject.cpp4
-rw-r--r--src/qml/jsruntime/qv4context.cpp4
-rw-r--r--src/qml/jsruntime/qv4context_p.h21
-rw-r--r--src/qml/jsruntime/qv4dataview.cpp30
-rw-r--r--src/qml/jsruntime/qv4dateobject.cpp86
-rw-r--r--src/qml/jsruntime/qv4functionobject.cpp30
-rw-r--r--src/qml/jsruntime/qv4globalobject.cpp18
-rw-r--r--src/qml/jsruntime/qv4include.cpp4
-rw-r--r--src/qml/jsruntime/qv4jscall_p.h9
-rw-r--r--src/qml/jsruntime/qv4jsonobject.cpp2
-rw-r--r--src/qml/jsruntime/qv4mathobject.cpp40
-rw-r--r--src/qml/jsruntime/qv4numberobject.cpp20
-rw-r--r--src/qml/jsruntime/qv4objectproto.cpp24
-rw-r--r--src/qml/jsruntime/qv4qobjectwrapper.cpp20
-rw-r--r--src/qml/jsruntime/qv4regexpobject.cpp9
-rw-r--r--src/qml/jsruntime/qv4sequenceobject.cpp4
-rw-r--r--src/qml/jsruntime/qv4stringobject.cpp52
-rw-r--r--src/qml/jsruntime/qv4typedarray.cpp14
-rw-r--r--src/qml/jsruntime/qv4vme_moth.cpp2
22 files changed, 225 insertions, 225 deletions
diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp
index 1a60725d27..b86b616178 100644
--- a/src/qml/jsruntime/qv4argumentsobject.cpp
+++ b/src/qml/jsruntime/qv4argumentsobject.cpp
@@ -232,7 +232,7 @@ ReturnedValue ArgumentsSetterFunction::call(const Managed *setter, CallData *cal
return v4->throwTypeError();
Q_ASSERT(s->index() < static_cast<unsigned>(o->context()->argc()));
- o->context()->setArg(s->index(), (callData->argc ? callData->args[0] : Primitive::undefinedValue()));
+ o->context()->setArg(s->index(), (callData->argc() ? callData->args[0] : Primitive::undefinedValue()));
return Encode::undefined();
}
diff --git a/src/qml/jsruntime/qv4arraybuffer.cpp b/src/qml/jsruntime/qv4arraybuffer.cpp
index bd47d0bc77..e5388e714c 100644
--- a/src/qml/jsruntime/qv4arraybuffer.cpp
+++ b/src/qml/jsruntime/qv4arraybuffer.cpp
@@ -80,7 +80,7 @@ ReturnedValue ArrayBufferCtor::call(const Managed *that, CallData *callData)
ReturnedValue ArrayBufferCtor::method_isView(const BuiltinFunction *, CallData *callData)
{
- if (callData->argc < 1)
+ if (callData->argc() < 1)
return Encode(false);
if (callData->args[0].as<TypedArray>() ||
@@ -173,8 +173,8 @@ ReturnedValue ArrayBufferPrototype::method_slice(const BuiltinFunction *b, CallD
if (!a)
return v4->throwTypeError();
- double start = callData->argc > 0 ? callData->args[0].toInteger() : 0;
- double end = (callData->argc < 2 || callData->args[1].isUndefined()) ?
+ double start = callData->argc() > 0 ? callData->args[0].toInteger() : 0;
+ double end = (callData->argc() < 2 || callData->args[1].isUndefined()) ?
a->d()->data->size : callData->args[1].toInteger();
if (v4->hasException)
return QV4::Encode::undefined();
diff --git a/src/qml/jsruntime/qv4arrayobject.cpp b/src/qml/jsruntime/qv4arrayobject.cpp
index 7796da5c70..5abfe3f8ae 100644
--- a/src/qml/jsruntime/qv4arrayobject.cpp
+++ b/src/qml/jsruntime/qv4arrayobject.cpp
@@ -61,7 +61,7 @@ ReturnedValue ArrayCtor::construct(const Managed *m, CallData *callData)
Scope scope(v4);
ScopedArrayObject a(scope, v4->newArrayObject());
uint len;
- if (callData->argc == 1 && callData->args[0].isNumber()) {
+ if (callData->argc() == 1 && callData->args[0].isNumber()) {
bool ok;
len = callData->args[0].asArrayLength(&ok);
@@ -71,7 +71,7 @@ ReturnedValue ArrayCtor::construct(const Managed *m, CallData *callData)
if (len < 0x1000)
a->arrayReserve(len);
} else {
- len = callData->argc;
+ len = callData->argc();
a->arrayReserve(len);
a->arrayPut(0, callData->args, len);
}
@@ -120,7 +120,7 @@ void ArrayPrototype::init(ExecutionEngine *engine, Object *ctor)
ReturnedValue ArrayPrototype::method_isArray(const BuiltinFunction *, CallData *callData)
{
- bool isArray = callData->argc && callData->args[0].as<ArrayObject>();
+ bool isArray = callData->argc() && callData->args[0].as<ArrayObject>();
return Encode(isArray);
}
@@ -163,7 +163,7 @@ ReturnedValue ArrayPrototype::method_concat(const BuiltinFunction *b, CallData *
ScopedArrayObject elt(scope);
ScopedObject eltAsObj(scope);
ScopedValue entry(scope);
- for (int i = 0; i < callData->argc; ++i) {
+ for (int i = 0, ei = callData->argc(); i < ei; ++i) {
eltAsObj = callData->args[i];
elt = callData->args[i];
if (elt) {
@@ -359,16 +359,16 @@ ReturnedValue ArrayPrototype::method_push(const BuiltinFunction *b, CallData *ca
uint len = instance->getLength();
- if (len + callData->argc < len) {
+ if (len + callData->argc() < len) {
// ughh... this goes beyond UINT_MAX
double l = len;
ScopedString s(scope);
- for (int i = 0; i < callData->argc; ++i) {
+ for (int i = 0, ei = callData->argc(); i < ei; ++i) {
s = Primitive::fromDouble(l + i).toString(scope.engine);
if (!instance->put(s, callData->args[i]))
return scope.engine->throwTypeError();
}
- double newLen = l + callData->argc;
+ double newLen = l + callData->argc();
if (!instance->isArrayObject()) {
if (!instance->put(scope.engine->id_length(), ScopedValue(scope, Primitive::fromDouble(newLen))))
return scope.engine->throwTypeError();
@@ -379,16 +379,17 @@ ReturnedValue ArrayPrototype::method_push(const BuiltinFunction *b, CallData *ca
return Encode(newLen);
}
- if (!callData->argc)
+ if (!callData->argc())
;
else if (!instance->protoHasArray() && instance->arrayData()->length() <= len && instance->arrayData()->type == Heap::ArrayData::Simple) {
- instance->arrayData()->vtable()->putArray(instance, len, callData->args, callData->argc);
+ instance->arrayData()->vtable()->putArray(instance, len, callData->args, callData->argc());
len = instance->arrayData()->length();
} else {
- for (int i = 0; i < callData->argc; ++i)
+ for (int i = 0, ei = callData->argc(); i < ei; ++i) {
if (!instance->putIndexed(len + i, callData->args[i]))
return scope.engine->throwTypeError();
- len += callData->argc;
+ }
+ len += callData->argc();
}
if (instance->isArrayObject())
instance->setArrayLengthUnchecked(len);
@@ -508,7 +509,7 @@ ReturnedValue ArrayPrototype::method_slice(const BuiltinFunction *b, CallData *c
else
start = (uint) s;
uint end = len;
- if (callData->argc > 1 && !callData->args[1].isUndefined()) {
+ if (callData->argc() > 1 && !callData->args[1].isUndefined()) {
double e = callData->args[1].toInteger();
if (e < 0)
end = (uint)qMax(len + e, 0.);
@@ -576,7 +577,7 @@ ReturnedValue ArrayPrototype::method_splice(const BuiltinFunction *b, CallData *
}
newArray->setArrayLengthUnchecked(deleteCount);
- uint itemCount = callData->argc < 2 ? 0 : callData->argc - 2;
+ uint itemCount = callData->argc() < 2 ? 0 : callData->argc() - 2;
if (itemCount < deleteCount) {
for (uint k = start; k < len - deleteCount; ++k) {
@@ -635,7 +636,7 @@ ReturnedValue ArrayPrototype::method_unshift(const BuiltinFunction *b, CallData
if (!instance->protoHasArray() && !instance->arrayData()->attrs && instance->arrayData()->length() <= len &&
instance->arrayData()->type != Heap::ArrayData::Custom) {
- instance->arrayData()->vtable()->push_front(instance, callData->args, callData->argc);
+ instance->arrayData()->vtable()->push_front(instance, callData->args, callData->argc());
} else {
ScopedValue v(scope);
for (uint k = len; k > 0; --k) {
@@ -643,20 +644,20 @@ ReturnedValue ArrayPrototype::method_unshift(const BuiltinFunction *b, CallData
v = instance->getIndexed(k - 1, &exists);
bool ok;
if (exists)
- ok = instance->putIndexed(k + callData->argc - 1, v);
+ ok = instance->putIndexed(k + callData->argc() - 1, v);
else
- ok = instance->deleteIndexedProperty(k + callData->argc - 1);
+ ok = instance->deleteIndexedProperty(k + callData->argc() - 1);
if (!ok)
return scope.engine->throwTypeError();
}
- for (int i = 0; i < callData->argc; ++i) {
+ for (int i = 0, ei = callData->argc(); i < ei; ++i) {
bool ok = instance->putIndexed(i, callData->args[i]);
if (!ok)
return scope.engine->throwTypeError();
}
}
- uint newLen = len + callData->argc;
+ uint newLen = len + callData->argc();
if (instance->isArrayObject())
instance->setArrayLengthUnchecked(newLen);
else {
@@ -681,7 +682,7 @@ ReturnedValue ArrayPrototype::method_indexOf(const BuiltinFunction *b, CallData
ScopedValue searchValue(scope, callData->argument(0));
uint fromIndex = 0;
- if (callData->argc >= 2) {
+ if (callData->argc() >= 2) {
double f = callData->args[1].toInteger();
CHECK_EXCEPTION();
if (f >= len)
@@ -747,12 +748,12 @@ ReturnedValue ArrayPrototype::method_lastIndexOf(const BuiltinFunction *b, CallD
ScopedValue searchValue(scope);
uint fromIndex = len;
- if (callData->argc >= 1)
+ if (callData->argc() >= 1)
searchValue = callData->argument(0);
else
searchValue = Primitive::undefinedValue();
- if (callData->argc >= 2) {
+ if (callData->argc() >= 2) {
double f = callData->args[1].toInteger();
CHECK_EXCEPTION();
if (f > 0)
@@ -970,7 +971,7 @@ ReturnedValue ArrayPrototype::method_reduce(const BuiltinFunction *b, CallData *
ScopedValue acc(scope);
ScopedValue v(scope);
- if (callData->argc > 1) {
+ if (callData->argc() > 1) {
acc = callData->argument(1);
} else {
bool kPresent = false;
@@ -1015,7 +1016,7 @@ ReturnedValue ArrayPrototype::method_reduceRight(const BuiltinFunction *b, CallD
THROW_TYPE_ERROR();
if (len == 0) {
- if (callData->argc == 1)
+ if (callData->argc() == 1)
THROW_TYPE_ERROR();
return callData->argument(1);
}
@@ -1023,7 +1024,7 @@ ReturnedValue ArrayPrototype::method_reduceRight(const BuiltinFunction *b, CallD
uint k = len;
ScopedValue acc(scope);
ScopedValue v(scope);
- if (callData->argc > 1) {
+ if (callData->argc() > 1) {
acc = callData->argument(1);
} else {
bool kPresent = false;
diff --git a/src/qml/jsruntime/qv4booleanobject.cpp b/src/qml/jsruntime/qv4booleanobject.cpp
index d74750fa8c..d4e02e0356 100644
--- a/src/qml/jsruntime/qv4booleanobject.cpp
+++ b/src/qml/jsruntime/qv4booleanobject.cpp
@@ -52,13 +52,13 @@ void Heap::BooleanCtor::init(QV4::ExecutionContext *scope)
ReturnedValue BooleanCtor::construct(const Managed *that, CallData *callData)
{
- bool n = callData->argc ? callData->args[0].toBoolean() : false;
+ bool n = callData->argc() ? callData->args[0].toBoolean() : false;
return Encode(that->engine()->newBooleanObject(n));
}
ReturnedValue BooleanCtor::call(const Managed *, CallData *callData)
{
- bool value = callData->argc ? callData->args[0].toBoolean() : 0;
+ bool value = callData->argc() ? callData->args[0].toBoolean() : 0;
return Encode(value);
}
diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp
index b4edd34380..2598c079b8 100644
--- a/src/qml/jsruntime/qv4context.cpp
+++ b/src/qml/jsruntime/qv4context.cpp
@@ -57,7 +57,7 @@ DEFINE_MANAGED_VTABLE(CatchContext);
Heap::CallContext *ExecutionContext::newCallContext(Heap::ExecutionContext *outer, Function *function, CallData *callData)
{
- uint nFormals = qMax(static_cast<uint>(callData->argc), function->nFormals);
+ uint nFormals = qMax(static_cast<uint>(callData->argc()), function->nFormals);
uint localsAndFormals = function->compiledFunction->nLocals + nFormals;
size_t requiredMemory = sizeof(CallContext::Data) - sizeof(Value) + sizeof(Value) * (localsAndFormals);
@@ -83,7 +83,7 @@ Heap::CallContext *ExecutionContext::newCallContext(Heap::ExecutionContext *oute
#endif
::memcpy(c->locals.values + nLocals, &callData->args[0], nFormals * sizeof(Value));
- c->nArgs = callData->argc;
+ c->nArgs = callData->argc();
return c;
}
diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h
index ec027c9fd3..7ed3320f8a 100644
--- a/src/qml/jsruntime/qv4context_p.h
+++ b/src/qml/jsruntime/qv4context_p.h
@@ -86,17 +86,20 @@ struct CallData
Value context;
Value accumulator;
Value thisObject;
+ Value _argc;
+
+ int argc() const {
+ Q_ASSERT(_argc.isInteger());
+ return _argc.int_32();
+ }
+
+ void setArgc(int argc) {
+ Q_ASSERT(argc >= 0);
+ _argc.setInt_32(argc);
+ }
- // below is to be compatible with Value. Initialize tag to 0
-#if Q_BYTE_ORDER != Q_LITTLE_ENDIAN
- uint tag;
-#endif
- int argc;
-#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
- uint tag;
-#endif
inline ReturnedValue argument(int i) const {
- return i < argc ? args[i].asReturnedValue() : Primitive::undefinedValue().asReturnedValue();
+ return i < argc() ? args[i].asReturnedValue() : Primitive::undefinedValue().asReturnedValue();
}
Value args[1];
diff --git a/src/qml/jsruntime/qv4dataview.cpp b/src/qml/jsruntime/qv4dataview.cpp
index 57b5045f57..73163a9e32 100644
--- a/src/qml/jsruntime/qv4dataview.cpp
+++ b/src/qml/jsruntime/qv4dataview.cpp
@@ -61,10 +61,10 @@ ReturnedValue DataViewCtor::construct(const Managed *m, CallData *callData)
if (!buffer)
return scope.engine->throwTypeError();
- double bo = callData->argc > 1 ? callData->args[1].toNumber() : 0;
+ double bo = callData->argc() > 1 ? callData->args[1].toNumber() : 0;
uint byteOffset = (uint)bo;
uint bufferLength = buffer->d()->data->size;
- double bl = callData->argc < 3 || callData->args[2].isUndefined() ? (bufferLength - bo) : callData->args[2].toNumber();
+ double bl = callData->argc() < 3 || callData->args[2].isUndefined() ? (bufferLength - bo) : callData->args[2].toNumber();
uint byteLength = (uint)bl;
if (bo != byteOffset || bl != byteLength || byteOffset + byteLength > bufferLength)
return scope.engine->throwRangeError(QStringLiteral("DataView: constructor arguments out of range"));
@@ -150,7 +150,7 @@ template <typename T>
ReturnedValue DataViewPrototype::method_getChar(const BuiltinFunction *b, CallData *callData)
{
DataView *v = callData->thisObject.as<DataView>();
- if (!v || callData->argc < 1)
+ if (!v || callData->argc() < 1)
return b->engine()->throwTypeError();
double l = callData->args[0].toNumber();
uint idx = (uint)l;
@@ -167,7 +167,7 @@ template <typename T>
ReturnedValue DataViewPrototype::method_get(const BuiltinFunction *b, CallData *callData)
{
DataView *v = callData->thisObject.as<DataView>();
- if (!v || callData->argc < 1)
+ if (!v || callData->argc() < 1)
return b->engine()->throwTypeError();
double l = callData->args[0].toNumber();
uint idx = (uint)l;
@@ -175,7 +175,7 @@ ReturnedValue DataViewPrototype::method_get(const BuiltinFunction *b, CallData *
return b->engine()->throwTypeError();
idx += v->d()->byteOffset;
- bool littleEndian = callData->argc < 2 ? false : callData->args[1].toBoolean();
+ bool littleEndian = callData->argc() < 2 ? false : callData->args[1].toBoolean();
T t = littleEndian
? qFromLittleEndian<T>((uchar *)v->d()->buffer->data->data() + idx)
@@ -188,7 +188,7 @@ template <typename T>
ReturnedValue DataViewPrototype::method_getFloat(const BuiltinFunction *b, CallData *callData)
{
DataView *v = callData->thisObject.as<DataView>();
- if (!v || callData->argc < 1)
+ if (!v || callData->argc() < 1)
return b->engine()->throwTypeError();
double l = callData->args[0].toNumber();
uint idx = (uint)l;
@@ -196,7 +196,7 @@ ReturnedValue DataViewPrototype::method_getFloat(const BuiltinFunction *b, CallD
return b->engine()->throwTypeError();
idx += v->d()->byteOffset;
- bool littleEndian = callData->argc < 2 ? false : callData->args[1].toBoolean();
+ bool littleEndian = callData->argc() < 2 ? false : callData->args[1].toBoolean();
if (sizeof(T) == 4) {
// float
@@ -225,7 +225,7 @@ template <typename T>
ReturnedValue DataViewPrototype::method_setChar(const BuiltinFunction *b, CallData *callData)
{
DataView *v = callData->thisObject.as<DataView>();
- if (!v || callData->argc < 1)
+ if (!v || callData->argc() < 1)
return b->engine()->throwTypeError();
double l = callData->args[0].toNumber();
uint idx = (uint)l;
@@ -233,7 +233,7 @@ ReturnedValue DataViewPrototype::method_setChar(const BuiltinFunction *b, CallDa
return b->engine()->throwTypeError();
idx += v->d()->byteOffset;
- int val = callData->argc >= 2 ? callData->args[1].toInt32() : 0;
+ int val = callData->argc() >= 2 ? callData->args[1].toInt32() : 0;
v->d()->buffer->data->data()[idx] = (char)val;
RETURN_UNDEFINED();
@@ -243,7 +243,7 @@ template <typename T>
ReturnedValue DataViewPrototype::method_set(const BuiltinFunction *b, CallData *callData)
{
DataView *v = callData->thisObject.as<DataView>();
- if (!v || callData->argc < 1)
+ if (!v || callData->argc() < 1)
return b->engine()->throwTypeError();
double l = callData->args[0].toNumber();
uint idx = (uint)l;
@@ -251,9 +251,9 @@ ReturnedValue DataViewPrototype::method_set(const BuiltinFunction *b, CallData *
return b->engine()->throwTypeError();
idx += v->d()->byteOffset;
- int val = callData->argc >= 2 ? callData->args[1].toInt32() : 0;
+ int val = callData->argc() >= 2 ? callData->args[1].toInt32() : 0;
- bool littleEndian = callData->argc < 3 ? false : callData->args[2].toBoolean();
+ bool littleEndian = callData->argc() < 3 ? false : callData->args[2].toBoolean();
if (littleEndian)
qToLittleEndian<T>(val, (uchar *)v->d()->buffer->data->data() + idx);
@@ -267,7 +267,7 @@ template <typename T>
ReturnedValue DataViewPrototype::method_setFloat(const BuiltinFunction *b, CallData *callData)
{
DataView *v = callData->thisObject.as<DataView>();
- if (!v || callData->argc < 1)
+ if (!v || callData->argc() < 1)
return b->engine()->throwTypeError();
double l = callData->args[0].toNumber();
uint idx = (uint)l;
@@ -275,8 +275,8 @@ ReturnedValue DataViewPrototype::method_setFloat(const BuiltinFunction *b, CallD
return b->engine()->throwTypeError();
idx += v->d()->byteOffset;
- double val = callData->argc >= 2 ? callData->args[1].toNumber() : qt_qnan();
- bool littleEndian = callData->argc < 3 ? false : callData->args[2].toBoolean();
+ double val = callData->argc() >= 2 ? callData->args[1].toNumber() : qt_qnan();
+ bool littleEndian = callData->argc() < 3 ? false : callData->args[2].toBoolean();
if (sizeof(T) == 4) {
// float
diff --git a/src/qml/jsruntime/qv4dateobject.cpp b/src/qml/jsruntime/qv4dateobject.cpp
index 64aecfe352..36ba36f2d3 100644
--- a/src/qml/jsruntime/qv4dateobject.cpp
+++ b/src/qml/jsruntime/qv4dateobject.cpp
@@ -682,10 +682,10 @@ ReturnedValue DateCtor::construct(const Managed *that, CallData *callData)
{
double t = 0;
- if (callData->argc == 0)
+ if (callData->argc() == 0)
t = currentTime();
- else if (callData->argc == 1) {
+ else if (callData->argc() == 1) {
Scope scope(that->engine());
ScopedValue arg(scope, callData->args[0]);
if (DateObject *d = arg->as<DateObject>()) {
@@ -703,11 +703,11 @@ ReturnedValue DateCtor::construct(const Managed *that, CallData *callData)
else { // d.argc > 1
double year = callData->args[0].toNumber();
double month = callData->args[1].toNumber();
- double day = callData->argc >= 3 ? callData->args[2].toNumber() : 1;
- double hours = callData->argc >= 4 ? callData->args[3].toNumber() : 0;
- double mins = callData->argc >= 5 ? callData->args[4].toNumber() : 0;
- double secs = callData->argc >= 6 ? callData->args[5].toNumber() : 0;
- double ms = callData->argc >= 7 ? callData->args[6].toNumber() : 0;
+ double day = callData->argc() >= 3 ? callData->args[2].toNumber() : 1;
+ double hours = callData->argc() >= 4 ? callData->args[3].toNumber() : 0;
+ double mins = callData->argc() >= 5 ? callData->args[4].toNumber() : 0;
+ double secs = callData->argc() >= 6 ? callData->args[5].toNumber() : 0;
+ double ms = callData->argc() >= 7 ? callData->args[6].toNumber() : 0;
if (year >= 0 && year <= 99)
year += 1900;
t = MakeDate(MakeDay(year, month, day), MakeTime(hours, mins, secs, ms));
@@ -809,7 +809,7 @@ double DatePrototype::getThisDate(ExecutionEngine *v4, CallData *callData)
ReturnedValue DatePrototype::method_parse(const BuiltinFunction *, CallData *callData)
{
- if (!callData->argc)
+ if (!callData->argc())
return Encode(qt_qnan());
else
return Encode(ParseString(callData->args[0].toQString()));
@@ -817,7 +817,7 @@ ReturnedValue DatePrototype::method_parse(const BuiltinFunction *, CallData *cal
ReturnedValue DatePrototype::method_UTC(const BuiltinFunction *, CallData *callData)
{
- const int numArgs = callData->argc;
+ const int numArgs = callData->argc();
if (numArgs >= 2) {
double year = callData->args[0].toNumber();
double month = callData->args[1].toNumber();
@@ -1066,7 +1066,7 @@ ReturnedValue DatePrototype::method_setTime(const BuiltinFunction *b, CallData *
if (!self)
return v4->throwTypeError();
- double t = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double t = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
self->setDate(TimeClip(t));
@@ -1083,7 +1083,7 @@ ReturnedValue DatePrototype::method_setMilliseconds(const BuiltinFunction *b, Ca
double t = LocalTime(self->date());
if (v4->hasException)
return QV4::Encode::undefined();
- double ms = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double ms = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
self->setDate(TimeClip(UTC(MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), ms)))));
@@ -1100,7 +1100,7 @@ ReturnedValue DatePrototype::method_setUTCMilliseconds(const BuiltinFunction *b,
double t = self->date();
if (v4->hasException)
return QV4::Encode::undefined();
- double ms = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double ms = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
self->setDate(TimeClip(MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), ms))));
@@ -1117,10 +1117,10 @@ ReturnedValue DatePrototype::method_setSeconds(const BuiltinFunction *b, CallDat
double t = LocalTime(self->date());
if (v4->hasException)
return QV4::Encode::undefined();
- double sec = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double sec = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
- double ms = (callData->argc < 2) ? msFromTime(t) : callData->args[1].toNumber();
+ double ms = (callData->argc() < 2) ? msFromTime(t) : callData->args[1].toNumber();
if (v4->hasException)
return QV4::Encode::undefined();
t = TimeClip(UTC(MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), sec, ms))));
@@ -1136,8 +1136,8 @@ ReturnedValue DatePrototype::method_setUTCSeconds(const BuiltinFunction *b, Call
return v4->throwTypeError();
double t = self->date();
- double sec = callData->argc ? callData->args[0].toNumber() : qt_qnan();
- double ms = (callData->argc < 2) ? msFromTime(t) : callData->args[1].toNumber();
+ double sec = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
+ double ms = (callData->argc() < 2) ? msFromTime(t) : callData->args[1].toNumber();
t = TimeClip(MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), sec, ms)));
self->setDate(t);
return Encode(self->date());
@@ -1153,13 +1153,13 @@ ReturnedValue DatePrototype::method_setMinutes(const BuiltinFunction *b, CallDat
double t = LocalTime(self->date());
if (v4->hasException)
return QV4::Encode::undefined();
- double min = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double min = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
- double sec = (callData->argc < 2) ? SecFromTime(t) : callData->args[1].toNumber();
+ double sec = (callData->argc() < 2) ? SecFromTime(t) : callData->args[1].toNumber();
if (v4->hasException)
return QV4::Encode::undefined();
- double ms = (callData->argc < 3) ? msFromTime(t) : callData->args[2].toNumber();
+ double ms = (callData->argc() < 3) ? msFromTime(t) : callData->args[2].toNumber();
if (v4->hasException)
return QV4::Encode::undefined();
t = TimeClip(UTC(MakeDate(Day(t), MakeTime(HourFromTime(t), min, sec, ms))));
@@ -1175,9 +1175,9 @@ ReturnedValue DatePrototype::method_setUTCMinutes(const BuiltinFunction *b, Call
return v4->throwTypeError();
double t = self->date();
- double min = callData->argc ? callData->args[0].toNumber() : qt_qnan();
- double sec = (callData->argc < 2) ? SecFromTime(t) : callData->args[1].toNumber();
- double ms = (callData->argc < 3) ? msFromTime(t) : callData->args[2].toNumber();
+ double min = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
+ double sec = (callData->argc() < 2) ? SecFromTime(t) : callData->args[1].toNumber();
+ double ms = (callData->argc() < 3) ? msFromTime(t) : callData->args[2].toNumber();
t = TimeClip(MakeDate(Day(t), MakeTime(HourFromTime(t), min, sec, ms)));
self->setDate(t);
return Encode(self->date());
@@ -1193,16 +1193,16 @@ ReturnedValue DatePrototype::method_setHours(const BuiltinFunction *b, CallData
double t = LocalTime(self->date());
if (v4->hasException)
return QV4::Encode::undefined();
- double hour = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double hour = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
- double min = (callData->argc < 2) ? MinFromTime(t) : callData->args[1].toNumber();
+ double min = (callData->argc() < 2) ? MinFromTime(t) : callData->args[1].toNumber();
if (v4->hasException)
return QV4::Encode::undefined();
- double sec = (callData->argc < 3) ? SecFromTime(t) : callData->args[2].toNumber();
+ double sec = (callData->argc() < 3) ? SecFromTime(t) : callData->args[2].toNumber();
if (v4->hasException)
return QV4::Encode::undefined();
- double ms = (callData->argc < 4) ? msFromTime(t) : callData->args[3].toNumber();
+ double ms = (callData->argc() < 4) ? msFromTime(t) : callData->args[3].toNumber();
if (v4->hasException)
return QV4::Encode::undefined();
t = TimeClip(UTC(MakeDate(Day(t), MakeTime(hour, min, sec, ms))));
@@ -1218,10 +1218,10 @@ ReturnedValue DatePrototype::method_setUTCHours(const BuiltinFunction *b, CallDa
return v4->throwTypeError();
double t = self->date();
- double hour = callData->argc ? callData->args[0].toNumber() : qt_qnan();
- double min = (callData->argc < 2) ? MinFromTime(t) : callData->args[1].toNumber();
- double sec = (callData->argc < 3) ? SecFromTime(t) : callData->args[2].toNumber();
- double ms = (callData->argc < 4) ? msFromTime(t) : callData->args[3].toNumber();
+ double hour = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
+ double min = (callData->argc() < 2) ? MinFromTime(t) : callData->args[1].toNumber();
+ double sec = (callData->argc() < 3) ? SecFromTime(t) : callData->args[2].toNumber();
+ double ms = (callData->argc() < 4) ? msFromTime(t) : callData->args[3].toNumber();
t = TimeClip(MakeDate(Day(t), MakeTime(hour, min, sec, ms)));
self->setDate(t);
return Encode(self->date());
@@ -1237,7 +1237,7 @@ ReturnedValue DatePrototype::method_setDate(const BuiltinFunction *b, CallData *
double t = LocalTime(self->date());
if (v4->hasException)
return QV4::Encode::undefined();
- double date = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double date = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
t = TimeClip(UTC(MakeDate(MakeDay(YearFromTime(t), MonthFromTime(t), date), TimeWithinDay(t))));
@@ -1255,7 +1255,7 @@ ReturnedValue DatePrototype::method_setUTCDate(const BuiltinFunction *b, CallDat
double t = self->date();
if (v4->hasException)
return QV4::Encode::undefined();
- double date = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double date = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
t = TimeClip(MakeDate(MakeDay(YearFromTime(t), MonthFromTime(t), date), TimeWithinDay(t)));
@@ -1273,10 +1273,10 @@ ReturnedValue DatePrototype::method_setMonth(const BuiltinFunction *b, CallData
double t = LocalTime(self->date());
if (v4->hasException)
return QV4::Encode::undefined();
- double month = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double month = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
- double date = (callData->argc < 2) ? DateFromTime(t) : callData->args[1].toNumber();
+ double date = (callData->argc() < 2) ? DateFromTime(t) : callData->args[1].toNumber();
if (v4->hasException)
return QV4::Encode::undefined();
t = TimeClip(UTC(MakeDate(MakeDay(YearFromTime(t), month, date), TimeWithinDay(t))));
@@ -1292,8 +1292,8 @@ ReturnedValue DatePrototype::method_setUTCMonth(const BuiltinFunction *b, CallDa
return v4->throwTypeError();
double t = self->date();
- double month = callData->argc ? callData->args[0].toNumber() : qt_qnan();
- double date = (callData->argc < 2) ? DateFromTime(t) : callData->args[1].toNumber();
+ double month = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
+ double date = (callData->argc() < 2) ? DateFromTime(t) : callData->args[1].toNumber();
t = TimeClip(MakeDate(MakeDay(YearFromTime(t), month, date), TimeWithinDay(t)));
self->setDate(t);
return Encode(self->date());
@@ -1311,7 +1311,7 @@ ReturnedValue DatePrototype::method_setYear(const BuiltinFunction *b, CallData *
t = 0;
else
t = LocalTime(t);
- double year = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double year = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
double r;
if (std::isnan(year)) {
r = qt_qnan();
@@ -1334,9 +1334,9 @@ ReturnedValue DatePrototype::method_setUTCFullYear(const BuiltinFunction *b, Cal
return v4->throwTypeError();
double t = self->date();
- double year = callData->argc ? callData->args[0].toNumber() : qt_qnan();
- double month = (callData->argc < 2) ? MonthFromTime(t) : callData->args[1].toNumber();
- double date = (callData->argc < 3) ? DateFromTime(t) : callData->args[2].toNumber();
+ double year = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
+ double month = (callData->argc() < 2) ? MonthFromTime(t) : callData->args[1].toNumber();
+ double date = (callData->argc() < 3) ? DateFromTime(t) : callData->args[2].toNumber();
t = TimeClip(MakeDate(MakeDay(year, month, date), TimeWithinDay(t)));
self->setDate(t);
return Encode(self->date());
@@ -1354,13 +1354,13 @@ ReturnedValue DatePrototype::method_setFullYear(const BuiltinFunction *b, CallDa
return QV4::Encode::undefined();
if (std::isnan(t))
t = 0;
- double year = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double year = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v4->hasException)
return QV4::Encode::undefined();
- double month = (callData->argc < 2) ? MonthFromTime(t) : callData->args[1].toNumber();
+ double month = (callData->argc() < 2) ? MonthFromTime(t) : callData->args[1].toNumber();
if (v4->hasException)
return QV4::Encode::undefined();
- double date = (callData->argc < 3) ? DateFromTime(t) : callData->args[2].toNumber();
+ double date = (callData->argc() < 3) ? DateFromTime(t) : callData->args[2].toNumber();
if (v4->hasException)
return QV4::Encode::undefined();
t = TimeClip(UTC(MakeDate(MakeDay(year, month, date), TimeWithinDay(t))));
diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp
index 3f971fcca5..98b3766242 100644
--- a/src/qml/jsruntime/qv4functionobject.cpp
+++ b/src/qml/jsruntime/qv4functionobject.cpp
@@ -185,13 +185,13 @@ ReturnedValue FunctionCtor::construct(const Managed *that, CallData *callData)
QString arguments;
QString body;
- if (callData->argc > 0) {
- for (int i = 0; i < callData->argc - 1; ++i) {
+ if (callData->argc() > 0) {
+ for (int i = 0, ei = callData->argc() - 1; i < ei; ++i) {
if (i)
arguments += QLatin1String(", ");
arguments += callData->args[i].toQString();
}
- body = callData->args[callData->argc - 1].toQString();
+ body = callData->args[callData->argc() - 1].toQString();
}
if (scope.engine->hasException)
return Encode::undefined();
@@ -321,10 +321,10 @@ ReturnedValue FunctionPrototype::method_call(const BuiltinFunction *b, CallData
return e->throwTypeError();
}
callData->function = callData->thisObject;
- callData->thisObject = callData->argc ? callData->args[0] : Primitive::undefinedValue();
- if (callData->argc) {
- --callData->argc;
- for (int i = 0; i < callData->argc; ++i)
+ callData->thisObject = callData->argc() ? callData->args[0] : Primitive::undefinedValue();
+ if (callData->argc()) {
+ callData->setArgc(callData->argc() - 1);
+ for (int i = 0, ei = callData->argc(); i < ei; ++i)
callData->args[i] = callData->args[i + 1];
}
return static_cast<FunctionObject &>(callData->function).call(callData);
@@ -339,10 +339,10 @@ ReturnedValue FunctionPrototype::method_bind(const BuiltinFunction *b, CallData
ScopedValue boundThis(scope, callData->argument(0));
Scoped<MemberData> boundArgs(scope, (Heap::MemberData *)0);
- if (callData->argc > 1) {
- boundArgs = MemberData::allocate(scope.engine, callData->argc - 1);
- boundArgs->d()->values.size = callData->argc - 1;
- for (uint i = 0; i < static_cast<uint>(callData->argc - 1); ++i)
+ if (callData->argc() > 1) {
+ boundArgs = MemberData::allocate(scope.engine, callData->argc() - 1);
+ boundArgs->d()->values.size = callData->argc() - 1;
+ for (uint i = 0, ei = static_cast<uint>(callData->argc() - 1); i < ei; ++i)
boundArgs->set(scope.engine, i, callData->args[i + 1]);
}
@@ -487,14 +487,14 @@ ReturnedValue BoundFunction::call(const Managed *that, CallData *dd)
return Encode::undefined();
Scoped<MemberData> boundArgs(scope, f->boundArgs());
- JSCall jsCall(scope, f->target(), (boundArgs ? boundArgs->size() : 0) + dd->argc);
+ JSCall jsCall(scope, f->target(), (boundArgs ? boundArgs->size() : 0) + dd->argc());
jsCall->thisObject = f->boundThis();
Value *argp = jsCall->args;
if (boundArgs) {
memcpy(argp, boundArgs->data(), boundArgs->size()*sizeof(Value));
argp += boundArgs->size();
}
- memcpy(argp, dd->args, dd->argc*sizeof(Value));
+ memcpy(argp, dd->args, dd->argc()*sizeof(Value));
return jsCall.call();
}
@@ -507,12 +507,12 @@ ReturnedValue BoundFunction::construct(const Managed *that, CallData *dd)
return Encode::undefined();
Scoped<MemberData> boundArgs(scope, f->boundArgs());
- JSCall jsCall(scope, f->target(), (boundArgs ? boundArgs->size() : 0) + dd->argc);
+ JSCall jsCall(scope, f->target(), (boundArgs ? boundArgs->size() : 0) + dd->argc());
Value *argp = jsCall->args;
if (boundArgs) {
memcpy(argp, boundArgs->data(), boundArgs->size()*sizeof(Value));
argp += boundArgs->size();
}
- memcpy(argp, dd->args, dd->argc*sizeof(Value));
+ memcpy(argp, dd->args, dd->argc()*sizeof(Value));
return jsCall.callAsConstructor();
}
diff --git a/src/qml/jsruntime/qv4globalobject.cpp b/src/qml/jsruntime/qv4globalobject.cpp
index 11105dfdcb..668fea25e7 100644
--- a/src/qml/jsruntime/qv4globalobject.cpp
+++ b/src/qml/jsruntime/qv4globalobject.cpp
@@ -340,7 +340,7 @@ void Heap::EvalFunction::init(QV4::ExecutionContext *scope)
ReturnedValue EvalFunction::evalCall(CallData *callData, bool directCall) const
{
- if (callData->argc < 1)
+ if (callData->argc() < 1)
return Encode::undefined();
ExecutionEngine *v4 = engine();
@@ -528,7 +528,7 @@ ReturnedValue GlobalFunctions::method_parseFloat(const BuiltinFunction *b, CallD
/// isNaN [15.1.2.4]
ReturnedValue GlobalFunctions::method_isNaN(const BuiltinFunction *, CallData *callData)
{
- if (!callData->argc)
+ if (!callData->argc())
// undefined gets converted to NaN
RETURN_RESULT(Encode(true));
@@ -542,7 +542,7 @@ ReturnedValue GlobalFunctions::method_isNaN(const BuiltinFunction *, CallData *c
/// isFinite [15.1.2.5]
ReturnedValue GlobalFunctions::method_isFinite(const BuiltinFunction *, CallData *callData)
{
- if (!callData->argc)
+ if (!callData->argc())
// undefined gets converted to NaN
RETURN_RESULT(Encode(false));
@@ -556,7 +556,7 @@ ReturnedValue GlobalFunctions::method_isFinite(const BuiltinFunction *, CallData
/// decodeURI [15.1.3.1]
ReturnedValue GlobalFunctions::method_decodeURI(const BuiltinFunction *b, CallData *callData)
{
- if (callData->argc == 0)
+ if (callData->argc() == 0)
RETURN_UNDEFINED();
ExecutionEngine *v4 = b->engine();
@@ -575,7 +575,7 @@ ReturnedValue GlobalFunctions::method_decodeURI(const BuiltinFunction *b, CallDa
/// decodeURIComponent [15.1.3.2]
ReturnedValue GlobalFunctions::method_decodeURIComponent(const BuiltinFunction *b, CallData *callData)
{
- if (callData->argc == 0)
+ if (callData->argc() == 0)
RETURN_UNDEFINED();
ExecutionEngine *v4 = b->engine();
@@ -594,7 +594,7 @@ ReturnedValue GlobalFunctions::method_decodeURIComponent(const BuiltinFunction *
/// encodeURI [15.1.3.3]
ReturnedValue GlobalFunctions::method_encodeURI(const BuiltinFunction *b, CallData *callData)
{
- if (callData->argc == 0)
+ if (callData->argc() == 0)
RETURN_UNDEFINED();
ExecutionEngine *v4 = b->engine();
@@ -613,7 +613,7 @@ ReturnedValue GlobalFunctions::method_encodeURI(const BuiltinFunction *b, CallDa
/// encodeURIComponent [15.1.3.4]
ReturnedValue GlobalFunctions::method_encodeURIComponent(const BuiltinFunction *b, CallData *callData)
{
- if (callData->argc == 0)
+ if (callData->argc() == 0)
RETURN_UNDEFINED();
ExecutionEngine *v4 = b->engine();
@@ -632,7 +632,7 @@ ReturnedValue GlobalFunctions::method_encodeURIComponent(const BuiltinFunction *
ReturnedValue GlobalFunctions::method_escape(const BuiltinFunction *b, CallData *callData)
{
ExecutionEngine *v4 = b->engine();
- if (!callData->argc)
+ if (!callData->argc())
RETURN_RESULT(v4->newString(QStringLiteral("undefined")));
QString str = callData->args[0].toQString();
@@ -642,7 +642,7 @@ ReturnedValue GlobalFunctions::method_escape(const BuiltinFunction *b, CallData
ReturnedValue GlobalFunctions::method_unescape(const BuiltinFunction *b, CallData *callData)
{
ExecutionEngine *v4 = b->engine();
- if (!callData->argc)
+ if (!callData->argc())
RETURN_RESULT(v4->newString(QStringLiteral("undefined")));
QString str = callData->args[0].toQString();
diff --git a/src/qml/jsruntime/qv4include.cpp b/src/qml/jsruntime/qv4include.cpp
index 8983bea1a8..8122f61a5e 100644
--- a/src/qml/jsruntime/qv4include.cpp
+++ b/src/qml/jsruntime/qv4include.cpp
@@ -199,7 +199,7 @@ void QV4Include::finished()
QV4::ReturnedValue QV4Include::method_include(const QV4::BuiltinFunction *b, QV4::CallData *callData)
{
QV4::Scope scope(b);
- if (!callData->argc)
+ if (!callData->argc())
RETURN_UNDEFINED();
QQmlContextData *context = scope.engine->callingQmlContext();
@@ -208,7 +208,7 @@ QV4::ReturnedValue QV4Include::method_include(const QV4::BuiltinFunction *b, QV4
RETURN_RESULT(scope.engine->throwError(QString::fromUtf8("Qt.include(): Can only be called from JavaScript files")));
QV4::ScopedValue callbackFunction(scope, QV4::Primitive::undefinedValue());
- if (callData->argc >= 2 && callData->args[1].as<QV4::FunctionObject>())
+ if (callData->argc() >= 2 && callData->args[1].as<QV4::FunctionObject>())
callbackFunction = callData->args[1];
#if QT_CONFIG(qml_network)
diff --git a/src/qml/jsruntime/qv4jscall_p.h b/src/qml/jsruntime/qv4jscall_p.h
index 78201a0ba8..8fd6119102 100644
--- a/src/qml/jsruntime/qv4jscall_p.h
+++ b/src/qml/jsruntime/qv4jscall_p.h
@@ -65,23 +65,20 @@ struct JSCall {
{
int size = int(offsetof(QV4::CallData, args)/sizeof(QV4::Value)) + qMax(argc , int(QV4::Global::ReservedArgumentCount));
ptr = reinterpret_cast<CallData *>(scope.alloc(size));
- ptr->tag = quint32(QV4::Value::ValueTypeInternal::Integer);
- ptr->argc = argc;
+ ptr->setArgc(argc);
}
JSCall(const Scope &scope, const FunctionObject *function, int argc = 0)
{
int size = int(offsetof(QV4::CallData, args)/sizeof(QV4::Value)) + qMax(argc , int(QV4::Global::ReservedArgumentCount));
ptr = reinterpret_cast<CallData *>(scope.alloc(size));
- ptr->tag = quint32(QV4::Value::ValueTypeInternal::Integer);
- ptr->argc = argc;
+ ptr->setArgc(argc);
ptr->function = *function;
}
JSCall(const Scope &scope, Heap::FunctionObject *function, int argc = 0)
{
int size = int(offsetof(QV4::CallData, args)/sizeof(QV4::Value)) + qMax(argc , int(QV4::Global::ReservedArgumentCount));
ptr = reinterpret_cast<CallData *>(scope.alloc(size));
- ptr->tag = quint32(QV4::Value::ValueTypeInternal::Integer);
- ptr->argc = argc;
+ ptr->setArgc(argc);
ptr->function = function;
}
diff --git a/src/qml/jsruntime/qv4jsonobject.cpp b/src/qml/jsruntime/qv4jsonobject.cpp
index 83cfb434dc..fb1f4abbfc 100644
--- a/src/qml/jsruntime/qv4jsonobject.cpp
+++ b/src/qml/jsruntime/qv4jsonobject.cpp
@@ -888,7 +888,7 @@ ReturnedValue JsonObject::method_parse(const BuiltinFunction *b, CallData *callD
{
ExecutionEngine *v4 = b->engine();
QString jtext;
- if (callData->argc > 0)
+ if (callData->argc() > 0)
jtext = callData->args[0].toQString();
DEBUG << "parsing source = " << jtext;
diff --git a/src/qml/jsruntime/qv4mathobject.cpp b/src/qml/jsruntime/qv4mathobject.cpp
index cdf5c3117c..5419e45038 100644
--- a/src/qml/jsruntime/qv4mathobject.cpp
+++ b/src/qml/jsruntime/qv4mathobject.cpp
@@ -95,7 +95,7 @@ static Q_ALWAYS_INLINE double copySign(double x, double y)
ReturnedValue MathObject::method_abs(const BuiltinFunction *, CallData *callData)
{
- if (!callData->argc)
+ if (!callData->argc())
RETURN_RESULT(Encode(qt_qnan()));
if (callData->args[0].isInteger()) {
@@ -112,7 +112,7 @@ ReturnedValue MathObject::method_abs(const BuiltinFunction *, CallData *callData
ReturnedValue MathObject::method_acos(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : 2;
+ double v = callData->argc() ? callData->args[0].toNumber() : 2;
if (v > 1)
RETURN_RESULT(Encode(qt_qnan()));
@@ -121,7 +121,7 @@ ReturnedValue MathObject::method_acos(const BuiltinFunction *, CallData *callDat
ReturnedValue MathObject::method_asin(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : 2;
+ double v = callData->argc() ? callData->args[0].toNumber() : 2;
if (v > 1)
RETURN_RESULT(Encode(qt_qnan()));
else
@@ -130,7 +130,7 @@ ReturnedValue MathObject::method_asin(const BuiltinFunction *, CallData *callDat
ReturnedValue MathObject::method_atan(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v == 0.0)
RETURN_RESULT(Encode(v));
else
@@ -139,8 +139,8 @@ ReturnedValue MathObject::method_atan(const BuiltinFunction *, CallData *callDat
ReturnedValue MathObject::method_atan2(const BuiltinFunction *, CallData *callData)
{
- double v1 = callData->argc ? callData->args[0].toNumber() : qt_qnan();
- double v2 = callData->argc > 1 ? callData->args[1].toNumber() : qt_qnan();
+ double v1 = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
+ double v2 = callData->argc() > 1 ? callData->args[1].toNumber() : qt_qnan();
if ((v1 < 0) && qt_is_finite(v1) && qt_is_inf(v2) && (copySign(1.0, v2) == 1.0))
RETURN_RESULT(Encode(copySign(0, -1.0)));
@@ -157,7 +157,7 @@ ReturnedValue MathObject::method_atan2(const BuiltinFunction *, CallData *callDa
ReturnedValue MathObject::method_ceil(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v < 0.0 && v > -1.0)
RETURN_RESULT(Encode(copySign(0, -1.0)));
else
@@ -166,13 +166,13 @@ ReturnedValue MathObject::method_ceil(const BuiltinFunction *, CallData *callDat
ReturnedValue MathObject::method_cos(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
RETURN_RESULT(Encode(std::cos(v)));
}
ReturnedValue MathObject::method_exp(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (qt_is_inf(v)) {
if (copySign(1.0, v) == -1.0)
RETURN_RESULT(Encode(0));
@@ -185,7 +185,7 @@ ReturnedValue MathObject::method_exp(const BuiltinFunction *, CallData *callData
ReturnedValue MathObject::method_floor(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
Value result = Primitive::fromDouble(std::floor(v));
result.isInt32();
RETURN_RESULT(result);
@@ -193,7 +193,7 @@ ReturnedValue MathObject::method_floor(const BuiltinFunction *, CallData *callDa
ReturnedValue MathObject::method_log(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v < 0)
RETURN_RESULT(Encode(qt_qnan()));
else
@@ -203,7 +203,7 @@ ReturnedValue MathObject::method_log(const BuiltinFunction *, CallData *callData
ReturnedValue MathObject::method_max(const BuiltinFunction *, CallData *callData)
{
double mx = -qt_inf();
- for (int i = 0; i < callData->argc; ++i) {
+ for (int i = 0, ei = callData->argc(); i < ei; ++i) {
double x = callData->args[i].toNumber();
if (x > mx || std::isnan(x))
mx = x;
@@ -214,7 +214,7 @@ ReturnedValue MathObject::method_max(const BuiltinFunction *, CallData *callData
ReturnedValue MathObject::method_min(const BuiltinFunction *, CallData *callData)
{
double mx = qt_inf();
- for (int i = 0; i < callData->argc; ++i) {
+ for (int i = 0, ei = callData->argc(); i < ei; ++i) {
double x = callData->args[i].toNumber();
if ((x == 0 && mx == x && copySign(1.0, x) == -1.0)
|| (x < mx) || std::isnan(x)) {
@@ -226,8 +226,8 @@ ReturnedValue MathObject::method_min(const BuiltinFunction *, CallData *callData
ReturnedValue MathObject::method_pow(const BuiltinFunction *, CallData *callData)
{
- double x = callData->argc > 0 ? callData->args[0].toNumber() : qt_qnan();
- double y = callData->argc > 1 ? callData->args[1].toNumber() : qt_qnan();
+ double x = callData->argc() > 0 ? callData->args[0].toNumber() : qt_qnan();
+ double y = callData->argc() > 1 ? callData->args[1].toNumber() : qt_qnan();
if (std::isnan(y))
RETURN_RESULT(Encode(qt_qnan()));
@@ -281,14 +281,14 @@ ReturnedValue MathObject::method_random(const BuiltinFunction *, CallData *)
ReturnedValue MathObject::method_round(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
v = copySign(std::floor(v + 0.5), v);
RETURN_RESULT(Encode(v));
}
ReturnedValue MathObject::method_sign(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (std::isnan(v))
RETURN_RESULT(Encode(qt_qnan()));
@@ -301,19 +301,19 @@ ReturnedValue MathObject::method_sign(const BuiltinFunction *, CallData *callDat
ReturnedValue MathObject::method_sin(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
RETURN_RESULT(Encode(std::sin(v)));
}
ReturnedValue MathObject::method_sqrt(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
RETURN_RESULT(Encode(std::sqrt(v)));
}
ReturnedValue MathObject::method_tan(const BuiltinFunction *, CallData *callData)
{
- double v = callData->argc ? callData->args[0].toNumber() : qt_qnan();
+ double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan();
if (v == 0.0)
RETURN_RESULT(Encode(v));
else
diff --git a/src/qml/jsruntime/qv4numberobject.cpp b/src/qml/jsruntime/qv4numberobject.cpp
index 1db5079355..173a869c3d 100644
--- a/src/qml/jsruntime/qv4numberobject.cpp
+++ b/src/qml/jsruntime/qv4numberobject.cpp
@@ -80,13 +80,13 @@ void Heap::NumberCtor::init(QV4::ExecutionContext *scope)
ReturnedValue NumberCtor::construct(const Managed *m, CallData *callData)
{
- double dbl = callData->argc ? callData->args[0].toNumber() : 0.;
+ double dbl = callData->argc() ? callData->args[0].toNumber() : 0.;
return Encode(m->engine()->newNumberObject(dbl));
}
ReturnedValue NumberCtor::call(const Managed *, CallData *callData)
{
- double dbl = callData->argc ? callData->args[0].toNumber() : 0.;
+ double dbl = callData->argc() ? callData->args[0].toNumber() : 0.;
return Encode(dbl);
}
@@ -150,7 +150,7 @@ inline double thisNumber(ExecutionEngine *engine, CallData *callData)
ReturnedValue NumberPrototype::method_isFinite(const BuiltinFunction *, CallData *callData)
{
- if (!callData->argc)
+ if (!callData->argc())
return Encode(false);
double v = callData->args[0].toNumber();
@@ -159,7 +159,7 @@ ReturnedValue NumberPrototype::method_isFinite(const BuiltinFunction *, CallData
ReturnedValue NumberPrototype::method_isInteger(const BuiltinFunction *, CallData *callData)
{
- if (!callData->argc)
+ if (!callData->argc())
return Encode(false);
const Value &v = callData->args[0];
@@ -176,7 +176,7 @@ ReturnedValue NumberPrototype::method_isInteger(const BuiltinFunction *, CallDat
ReturnedValue NumberPrototype::method_isSafeInteger(const BuiltinFunction *, CallData *callData)
{
- if (!callData->argc)
+ if (!callData->argc())
return Encode(false);
const Value &v = callData->args[0];
@@ -193,7 +193,7 @@ ReturnedValue NumberPrototype::method_isSafeInteger(const BuiltinFunction *, Cal
ReturnedValue NumberPrototype::method_isNaN(const BuiltinFunction *, CallData *callData)
{
- if (!callData->argc)
+ if (!callData->argc())
return Encode(false);
double v = callData->args[0].toNumber();
@@ -207,7 +207,7 @@ ReturnedValue NumberPrototype::method_toString(const BuiltinFunction *b, CallDat
if (v4->hasException)
return QV4::Encode::undefined();
- if (callData->argc && !callData->args[0].isUndefined()) {
+ if (callData->argc() && !callData->args[0].isUndefined()) {
int radix = callData->args[0].toInt32();
if (radix < 2 || radix > 36) {
return v4->throwError(QStringLiteral("Number.prototype.toString: %0 is not a valid radix").arg(radix));
@@ -274,7 +274,7 @@ ReturnedValue NumberPrototype::method_toFixed(const BuiltinFunction *b, CallData
double fdigits = 0;
- if (callData->argc > 0)
+ if (callData->argc() > 0)
fdigits = callData->args[0].toInteger();
if (std::isnan(fdigits))
@@ -306,7 +306,7 @@ ReturnedValue NumberPrototype::method_toExponential(const BuiltinFunction *b, Ca
int fdigits = NumberLocale::instance()->defaultDoublePrecision;
- if (callData->argc && !callData->args[0].isUndefined()) {
+ if (callData->argc() && !callData->args[0].isUndefined()) {
fdigits = callData->args[0].toInt32();
if (fdigits < 0 || fdigits > 20) {
Scope scope(v4);
@@ -327,7 +327,7 @@ ReturnedValue NumberPrototype::method_toPrecision(const BuiltinFunction *b, Call
return QV4::Encode::undefined();
- if (!callData->argc || callData->args[0].isUndefined())
+ if (!callData->argc() || callData->args[0].isUndefined())
return Encode(v->toString(scope.engine));
int precision = callData->args[0].toInt32();
diff --git a/src/qml/jsruntime/qv4objectproto.cpp b/src/qml/jsruntime/qv4objectproto.cpp
index 0f60881db1..9010faf0b2 100644
--- a/src/qml/jsruntime/qv4objectproto.cpp
+++ b/src/qml/jsruntime/qv4objectproto.cpp
@@ -65,7 +65,7 @@ ReturnedValue ObjectCtor::construct(const Managed *m, CallData *callData)
{
ExecutionEngine *v4 = m->engine();
const ObjectCtor *ctor = static_cast<const ObjectCtor *>(m);
- if (!callData->argc || callData->args[0].isUndefined() || callData->args[0].isNull()) {
+ if (!callData->argc() || callData->args[0].isUndefined() || callData->args[0].isNull()) {
Scope scope(v4);
ScopedObject obj(scope, scope.engine->newObject());
ScopedObject proto(scope, ctor->get(scope.engine->id_prototype()));
@@ -80,7 +80,7 @@ ReturnedValue ObjectCtor::construct(const Managed *m, CallData *callData)
ReturnedValue ObjectCtor::call(const Managed *m, CallData *callData)
{
ExecutionEngine *v4 = m->engine();
- if (!callData->argc || callData->args[0].isUndefined() || callData->args[0].isNull()) {
+ if (!callData->argc() || callData->args[0].isUndefined() || callData->args[0].isNull()) {
return v4->newObject()->asReturnedValue();
} else {
return callData->args[0].toObject(v4)->asReturnedValue();
@@ -129,7 +129,7 @@ void ObjectPrototype::init(ExecutionEngine *v4, Object *ctor)
ReturnedValue ObjectPrototype::method_getPrototypeOf(const BuiltinFunction *b, CallData *callData)
{
Scope scope(b);
- if (callData->argc < 1)
+ if (callData->argc() < 1)
return scope.engine->throwTypeError();
ScopedObject o(scope, callData->args[0].toObject(scope.engine));
@@ -143,7 +143,7 @@ ReturnedValue ObjectPrototype::method_getPrototypeOf(const BuiltinFunction *b, C
ReturnedValue ObjectPrototype::method_getOwnPropertyDescriptor(const BuiltinFunction *b, CallData *callData)
{
Scope scope(b);
- if (callData->argc < 1)
+ if (callData->argc() < 1)
return scope.engine->throwTypeError();
ScopedObject O(scope, callData->args[0].toObject(scope.engine));
@@ -167,7 +167,7 @@ ReturnedValue ObjectPrototype::method_getOwnPropertyDescriptor(const BuiltinFunc
ReturnedValue ObjectPrototype::method_getOwnPropertyNames(const BuiltinFunction *b, CallData *callData)
{
Scope scope(b);
- if (callData->argc < 1)
+ if (callData->argc() < 1)
return scope.engine->throwTypeError();
ScopedObject O(scope, callData->args[0].toObject(scope.engine));
@@ -181,17 +181,17 @@ ReturnedValue ObjectPrototype::method_getOwnPropertyNames(const BuiltinFunction
ReturnedValue ObjectPrototype::method_assign(const BuiltinFunction *b, CallData *callData)
{
Scope scope(b);
- if (callData->argc < 1)
+ if (callData->argc() < 1)
return scope.engine->throwTypeError();
ScopedObject to(scope, callData->args[0].toObject(scope.engine));
if (scope.engine->hasException)
return QV4::Encode::undefined();
- if (callData->argc == 1)
+ if (callData->argc() == 1)
return to.asReturnedValue();
- for (int i = 1; i < callData->argc; ++i) {
+ for (int i = 1, ei = callData->argc(); i < ei; ++i) {
if (callData->args[i].isUndefined() || callData->args[i].isNull())
continue;
@@ -236,7 +236,7 @@ ReturnedValue ObjectPrototype::method_create(const BuiltinFunction *builtin, Cal
ScopedObject newObject(scope, scope.engine->newObject());
newObject->setPrototype(O->as<Object>());
- if (callData->argc > 1 && !callData->args[1].isUndefined()) {
+ if (callData->argc() > 1 && !callData->args[1].isUndefined()) {
callData->args[0] = newObject;
return method_defineProperties(builtin, callData);
}
@@ -541,7 +541,7 @@ ReturnedValue ObjectPrototype::method_propertyIsEnumerable(const BuiltinFunction
ReturnedValue ObjectPrototype::method_defineGetter(const BuiltinFunction *b, CallData *callData)
{
Scope scope(b);
- if (callData->argc < 2)
+ if (callData->argc() < 2)
THROW_TYPE_ERROR();
ScopedFunctionObject f(scope, callData->argument(1));
@@ -571,7 +571,7 @@ ReturnedValue ObjectPrototype::method_defineGetter(const BuiltinFunction *b, Cal
ReturnedValue ObjectPrototype::method_defineSetter(const BuiltinFunction *b, CallData *callData)
{
Scope scope(b);
- if (callData->argc < 2)
+ if (callData->argc() < 2)
THROW_TYPE_ERROR();
ScopedFunctionObject f(scope, callData->argument(1));
@@ -612,7 +612,7 @@ ReturnedValue ObjectPrototype::method_set_proto(const BuiltinFunction *b, CallDa
{
Scope scope(b);
ScopedObject o(scope, callData->thisObject);
- if (!o || !callData->argc)
+ if (!o || !callData->argc())
THROW_TYPE_ERROR();
if (callData->args[0].isNull()) {
diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp
index 40dfeefdcc..400d0f8cb2 100644
--- a/src/qml/jsruntime/qv4qobjectwrapper.cpp
+++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp
@@ -904,7 +904,7 @@ ReturnedValue QObjectWrapper::method_connect(const BuiltinFunction *b, CallData
{
QV4::Scope scope(b);
- if (callData->argc == 0)
+ if (callData->argc() == 0)
THROW_GENERIC_ERROR("Function.prototype.connect: no arguments given");
QPair<QObject *, int> signalInfo = extractQtSignal(callData->thisObject);
@@ -923,9 +923,9 @@ ReturnedValue QObjectWrapper::method_connect(const BuiltinFunction *b, CallData
QV4::ScopedFunctionObject f(scope);
QV4::ScopedValue thisObject (scope, QV4::Encode::undefined());
- if (callData->argc == 1) {
+ if (callData->argc() == 1) {
f = callData->args[0];
- } else if (callData->argc >= 2) {
+ } else if (callData->argc() >= 2) {
thisObject = callData->args[0];
f = callData->args[1];
}
@@ -956,7 +956,7 @@ ReturnedValue QObjectWrapper::method_disconnect(const BuiltinFunction *b, CallDa
{
QV4::Scope scope(b);
- if (callData->argc == 0)
+ if (callData->argc() == 0)
THROW_GENERIC_ERROR("Function.prototype.disconnect: no arguments given");
QPair<QObject *, int> signalInfo = extractQtSignal(callData->thisObject);
@@ -975,9 +975,9 @@ ReturnedValue QObjectWrapper::method_disconnect(const BuiltinFunction *b, CallDa
QV4::ScopedFunctionObject functionValue(scope);
QV4::ScopedValue functionThisValue(scope, QV4::Encode::undefined());
- if (callData->argc == 1) {
+ if (callData->argc() == 1) {
functionValue = callData->args[0];
- } else if (callData->argc >= 2) {
+ } else if (callData->argc() >= 2) {
functionThisValue = callData->args[0];
functionValue = callData->args[1];
}
@@ -1413,7 +1413,7 @@ static QV4::ReturnedValue CallPrecise(const QQmlObjectOrGadget &object, const QQ
+ QLatin1String(unknownTypeError));
}
- if (args[0] > callArgs->argc) {
+ if (args[0] > callArgs->argc()) {
QString error = QLatin1String("Insufficient arguments");
return engine->throwError(error);
}
@@ -1444,7 +1444,7 @@ static QV4::ReturnedValue CallOverloaded(const QQmlObjectOrGadget &object, const
QV4::ExecutionEngine *engine, QV4::CallData *callArgs, const QQmlPropertyCache *propertyCache,
QMetaObject::Call callType = QMetaObject::InvokeMetaMethod)
{
- int argumentCount = callArgs->argc;
+ int argumentCount = callArgs->argc();
QQmlPropertyData best;
int bestParameterScore = INT_MAX;
@@ -1900,7 +1900,7 @@ ReturnedValue QObjectMethod::callInternal(CallData *callData) const
{
ExecutionEngine *v4 = engine();
if (d()->index == DestroyMethod)
- return method_destroy(v4, callData->args, callData->argc);
+ return method_destroy(v4, callData->args, callData->argc());
else if (d()->index == ToStringMethod)
return method_toString(v4);
@@ -2061,7 +2061,7 @@ ReturnedValue QMetaObjectWrapper::callConstructor(const QQmlPropertyData &data,
ReturnedValue QMetaObjectWrapper::callOverloadedConstructor(QV4::ExecutionEngine *engine, QV4::CallData *callArgs) const {
const int numberOfConstructors = d()->constructorCount;
- const int argumentCount = callArgs->argc;
+ const int argumentCount = callArgs->argc();
const QQmlStaticMetaObject object(d()->metaObject);
QQmlPropertyData best;
diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp
index c3a4275cac..d4d646be3f 100644
--- a/src/qml/jsruntime/qv4regexpobject.cpp
+++ b/src/qml/jsruntime/qv4regexpobject.cpp
@@ -268,10 +268,9 @@ ReturnedValue RegExpCtor::construct(const Managed *m, CallData *callData)
ReturnedValue RegExpCtor::call(const Managed *that, CallData *callData)
{
- if (callData->argc > 0 && callData->args[0].as<RegExpObject>()) {
- if (callData->argc == 1 || callData->args[1].isUndefined()) {
+ if (callData->argc() > 0 && callData->args[0].as<RegExpObject>()) {
+ if (callData->argc() == 1 || callData->args[1].isUndefined())
return Encode(callData->args[0]);
- }
}
return construct(that, callData);
@@ -440,8 +439,8 @@ ReturnedValue RegExpPrototype::method_compile(const BuiltinFunction *b, CallData
if (!r)
return scope.engine->throwTypeError();
- JSCall jsCall(scope, scope.engine->regExpCtor(), callData->argc);
- memcpy(jsCall->args, callData->args, callData->argc*sizeof(Value));
+ JSCall jsCall(scope, scope.engine->regExpCtor(), callData->argc());
+ memcpy(jsCall->args, callData->args, callData->argc()*sizeof(Value));
Scoped<RegExpObject> re(scope, jsCall.callAsConstructor());
diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp
index 28b20169d9..7373e07340 100644
--- a/src/qml/jsruntime/qv4sequenceobject.cpp
+++ b/src/qml/jsruntime/qv4sequenceobject.cpp
@@ -441,7 +441,7 @@ public:
loadReference();
}
- if (callData->argc == 1 && callData->args[0].as<FunctionObject>()) {
+ if (callData->argc() == 1 && callData->args[0].as<FunctionObject>()) {
CompareFunctor cf(scope.engine, callData->args[0]);
std::sort(d()->container->begin(), d()->container->end(), cf);
} else {
@@ -664,7 +664,7 @@ ReturnedValue SequencePrototype::method_sort(const BuiltinFunction *b, CallData
if (!o || !o->isListType())
THROW_TYPE_ERROR();
- if (callData->argc >= 2)
+ if (callData->argc() >= 2)
return o.asReturnedValue();
#define CALL_SORT(SequenceElementType, SequenceElementTypeName, SequenceType, DefaultValue) \
diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp
index 2fc05e4f56..d6dbeacb2d 100644
--- a/src/qml/jsruntime/qv4stringobject.cpp
+++ b/src/qml/jsruntime/qv4stringobject.cpp
@@ -148,7 +148,7 @@ ReturnedValue StringCtor::construct(const Managed *m, CallData *callData)
ExecutionEngine *v4 = static_cast<const Object *>(m)->engine();
Scope scope(v4);
ScopedString value(scope);
- if (callData->argc)
+ if (callData->argc())
value = callData->args[0].toString(v4);
else
value = v4->newString();
@@ -158,7 +158,7 @@ ReturnedValue StringCtor::construct(const Managed *m, CallData *callData)
ReturnedValue StringCtor::call(const Managed *m, CallData *callData)
{
ExecutionEngine *v4 = m->engine();
- if (callData->argc)
+ if (callData->argc())
return callData->args[0].toString(v4)->asReturnedValue();
else
return v4->newString()->asReturnedValue();
@@ -234,7 +234,7 @@ ReturnedValue StringPrototype::method_charAt(const BuiltinFunction *b, CallData
return QV4::Encode::undefined();
int pos = 0;
- if (callData->argc > 0)
+ if (callData->argc() > 0)
pos = (int) callData->args[0].toInteger();
QString result;
@@ -252,7 +252,7 @@ ReturnedValue StringPrototype::method_charCodeAt(const BuiltinFunction *b, CallD
return QV4::Encode::undefined();
int pos = 0;
- if (callData->argc > 0)
+ if (callData->argc() > 0)
pos = (int) callData->args[0].toInteger();
@@ -271,7 +271,7 @@ ReturnedValue StringPrototype::method_concat(const BuiltinFunction *b, CallData
Scope scope(v4);
ScopedString s(scope);
- for (int i = 0; i < callData->argc; ++i) {
+ for (int i = 0; i < callData->argc(); ++i) {
s = callData->args[i].toString(scope.engine);
if (v4->hasException)
return QV4::Encode::undefined();
@@ -291,14 +291,14 @@ ReturnedValue StringPrototype::method_endsWith(const BuiltinFunction *b, CallDat
return QV4::Encode::undefined();
QString searchString;
- if (callData->argc) {
+ if (callData->argc()) {
if (callData->args[0].as<RegExpObject>())
return v4->throwTypeError();
searchString = callData->args[0].toQString();
}
int pos = value.length();
- if (callData->argc > 1)
+ if (callData->argc() > 1)
pos = (int) callData->args[1].toInteger();
if (pos == value.length())
@@ -316,11 +316,11 @@ ReturnedValue StringPrototype::method_indexOf(const BuiltinFunction *b, CallData
return QV4::Encode::undefined();
QString searchString;
- if (callData->argc)
+ if (callData->argc())
searchString = callData->args[0].toQString();
int pos = 0;
- if (callData->argc > 1)
+ if (callData->argc() > 1)
pos = (int) callData->args[1].toInteger();
int index = -1;
@@ -338,14 +338,14 @@ ReturnedValue StringPrototype::method_includes(const BuiltinFunction *b, CallDat
return QV4::Encode::undefined();
QString searchString;
- if (callData->argc) {
+ if (callData->argc()) {
if (callData->args[0].as<RegExpObject>())
return v4->throwTypeError();
searchString = callData->args[0].toQString();
}
int pos = 0;
- if (callData->argc > 1) {
+ if (callData->argc() > 1) {
Value &posArg = callData->args[1];
pos = (int) posArg.toInteger();
if (!posArg.isInteger() && posArg.isNumber() && qIsInf(posArg.toNumber()))
@@ -367,10 +367,10 @@ ReturnedValue StringPrototype::method_lastIndexOf(const BuiltinFunction *b, Call
return QV4::Encode::undefined();
QString searchString;
- if (callData->argc)
+ if (callData->argc())
searchString = callData->args[0].toQString();
- double position = callData->argc > 1 ? RuntimeHelpers::toNumber(callData->args[1]) : +qInf();
+ double position = callData->argc() > 1 ? RuntimeHelpers::toNumber(callData->args[1]) : +qInf();
if (std::isnan(position))
position = +qInf();
else
@@ -392,7 +392,7 @@ ReturnedValue StringPrototype::method_localeCompare(const BuiltinFunction *b, Ca
if (v4->hasException)
return QV4::Encode::undefined();
- if (callData->argc < 1)
+ if (callData->argc() < 1)
callData->args[0] = Encode::undefined();
const QString that = callData->args[0].toQString();
@@ -410,9 +410,9 @@ ReturnedValue StringPrototype::method_match(const BuiltinFunction *b, CallData *
if (v4->hasException)
return Encode::undefined();
- if (!callData->argc)
+ if (!callData->argc())
callData->args[0] = Encode::undefined();
- callData->argc = 1;
+ callData->setArgc(1);
if (!callData->args[0].as<RegExpObject>()) {
// convert args[0] to a regexp
@@ -668,8 +668,8 @@ ReturnedValue StringPrototype::method_slice(const BuiltinFunction *b, CallData *
const double length = text.length();
- double start = callData->argc ? callData->args[0].toInteger() : 0;
- double end = (callData->argc < 2 || callData->args[1].isUndefined())
+ double start = callData->argc() ? callData->args[0].toInteger() : 0;
+ double end = (callData->argc() < 2 || callData->args[1].isUndefined())
? length : callData->args[1].toInteger();
if (start < 0)
@@ -780,14 +780,14 @@ ReturnedValue StringPrototype::method_startsWith(const BuiltinFunction *b, CallD
return QV4::Encode::undefined();
QString searchString;
- if (callData->argc) {
+ if (callData->argc()) {
if (callData->args[0].as<RegExpObject>())
return v4->throwTypeError();
searchString = callData->args[0].toQString();
}
int pos = 0;
- if (callData->argc > 1)
+ if (callData->argc() > 1)
pos = (int) callData->args[1].toInteger();
if (pos == 0)
@@ -805,11 +805,11 @@ ReturnedValue StringPrototype::method_substr(const BuiltinFunction *b, CallData
return QV4::Encode::undefined();
double start = 0;
- if (callData->argc > 0)
+ if (callData->argc() > 0)
start = callData->args[0].toInteger();
double length = +qInf();
- if (callData->argc > 1)
+ if (callData->argc() > 1)
length = callData->args[1].toInteger();
double count = value.length();
@@ -835,10 +835,10 @@ ReturnedValue StringPrototype::method_substring(const BuiltinFunction *b, CallDa
double start = 0;
double end = length;
- if (callData->argc > 0)
+ if (callData->argc() > 0)
start = callData->args[0].toInteger();
- if (callData->argc > 1 && !callData->args[1].isUndefined())
+ if (callData->argc() > 1 && !callData->args[1].isUndefined())
end = callData->args[1].toInteger();
if (std::isnan(start) || start < 0)
@@ -896,9 +896,9 @@ ReturnedValue StringPrototype::method_toLocaleUpperCase(const BuiltinFunction *b
ReturnedValue StringPrototype::method_fromCharCode(const BuiltinFunction *b, CallData *callData)
{
- QString str(callData->argc, Qt::Uninitialized);
+ QString str(callData->argc(), Qt::Uninitialized);
QChar *ch = str.data();
- for (int i = 0; i < callData->argc; ++i) {
+ for (int i = 0, ei = callData->argc(); i < ei; ++i) {
*ch = QChar(callData->args[i].toUInt16());
++ch;
}
diff --git a/src/qml/jsruntime/qv4typedarray.cpp b/src/qml/jsruntime/qv4typedarray.cpp
index 5bec5046fe..247e04f5f5 100644
--- a/src/qml/jsruntime/qv4typedarray.cpp
+++ b/src/qml/jsruntime/qv4typedarray.cpp
@@ -214,9 +214,9 @@ ReturnedValue TypedArrayCtor::construct(const Managed *m, CallData *callData)
Scope scope(m->engine());
Scoped<TypedArrayCtor> that(scope, static_cast<const TypedArrayCtor *>(m));
- if (!callData->argc || !callData->args[0].isObject()) {
+ if (!callData->argc() || !callData->args[0].isObject()) {
// ECMA 6 22.2.1.1
- double l = callData->argc ? callData->args[0].toNumber() : 0;
+ double l = callData->argc() ? callData->args[0].toNumber() : 0;
if (scope.engine->hasException)
return Encode::undefined();
uint len = (uint)l;
@@ -276,14 +276,14 @@ ReturnedValue TypedArrayCtor::construct(const Managed *m, CallData *callData)
if (!!buffer) {
// ECMA 6 22.2.1.4
- double dbyteOffset = callData->argc > 1 ? callData->args[1].toInteger() : 0;
+ double dbyteOffset = callData->argc() > 1 ? callData->args[1].toInteger() : 0;
uint byteOffset = (uint)dbyteOffset;
uint elementSize = operations[that->d()->type].bytesPerElement;
if (dbyteOffset < 0 || (byteOffset % elementSize) || dbyteOffset > buffer->byteLength())
return scope.engine->throwRangeError(QStringLiteral("new TypedArray: invalid byteOffset"));
uint byteLength;
- if (callData->argc < 3 || callData->args[2].isUndefined()) {
+ if (callData->argc() < 3 || callData->args[2].isUndefined()) {
byteLength = buffer->byteLength() - byteOffset;
if (buffer->byteLength() < byteOffset || byteLength % elementSize)
return scope.engine->throwRangeError(QStringLiteral("new TypedArray: invalid length"));
@@ -459,7 +459,7 @@ ReturnedValue TypedArrayPrototype::method_set(const BuiltinFunction *b, CallData
if (!buffer)
scope.engine->throwTypeError();
- double doffset = callData->argc >= 2 ? callData->args[1].toInteger() : 0;
+ double doffset = callData->argc() >= 2 ? callData->args[1].toInteger() : 0;
if (scope.engine->hasException)
RETURN_UNDEFINED();
@@ -551,12 +551,12 @@ ReturnedValue TypedArrayPrototype::method_subarray(const BuiltinFunction *builti
return scope.engine->throwTypeError();
int len = a->length();
- double b = callData->argc > 0 ? callData->args[0].toInteger() : 0;
+ double b = callData->argc() > 0 ? callData->args[0].toInteger() : 0;
if (b < 0)
b = len + b;
uint begin = (uint)qBound(0., b, (double)len);
- double e = callData->argc < 2 || callData->args[1].isUndefined() ? len : callData->args[1].toInteger();
+ double e = callData->argc() < 2 || callData->args[1].isUndefined() ? len : callData->args[1].toInteger();
if (e < 0)
e = len + e;
uint end = (uint)qBound(0., e, (double)len);
diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp
index 0531238024..6a897cbf08 100644
--- a/src/qml/jsruntime/qv4vme_moth.cpp
+++ b/src/qml/jsruntime/qv4vme_moth.cpp
@@ -516,7 +516,7 @@ QV4::ReturnedValue VME::exec(CallData *callData, QV4::Function *function)
engine->jsStackTop = reinterpret_cast<QV4::Value *>(callData) + function->compiledFunction->nRegisters + 1;
// clear out remaining arguments and local registers
- for (Value *v = callData->args + callData->argc; v < jsStackTop; ++v)
+ for (Value *v = callData->args + callData->argc(); v < jsStackTop; ++v)
*v = Encode::undefined();
QV4::Value *stack = reinterpret_cast<QV4::Value *>(callData);