aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/jsruntime/qv4functionobject.cpp20
-rw-r--r--src/qml/jsruntime/qv4functionobject_p.h4
-rw-r--r--src/qml/jsruntime/qv4globalobject.cpp62
-rw-r--r--src/qml/jsruntime/qv4globalobject_p.h20
4 files changed, 53 insertions, 53 deletions
diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp
index 56b62bcad2..e6073425d8 100644
--- a/src/qml/jsruntime/qv4functionobject.cpp
+++ b/src/qml/jsruntime/qv4functionobject.cpp
@@ -277,10 +277,10 @@ void FunctionPrototype::init(ExecutionEngine *engine, Object *ctor)
}
-ReturnedValue FunctionPrototype::method_toString(const BuiltinFunction *b, CallData *callData)
+ReturnedValue FunctionPrototype::method_toString(const FunctionObject *b, const Value *thisObject, const Value *, int)
{
ExecutionEngine *v4 = b->engine();
- FunctionObject *fun = callData->thisObject.as<FunctionObject>();
+ const FunctionObject *fun = thisObject->as<FunctionObject>();
if (!fun)
return v4->throwTypeError();
@@ -345,20 +345,20 @@ ReturnedValue FunctionPrototype::method_call(const QV4::FunctionObject *b, const
return f->call(thisObject, argv, argc);
}
-ReturnedValue FunctionPrototype::method_bind(const BuiltinFunction *b, CallData *callData)
+ReturnedValue FunctionPrototype::method_bind(const FunctionObject *b, const Value *thisObject, const Value *argv, int argc)
{
QV4::Scope scope(b);
- FunctionObject *target = callData->thisObject.as<FunctionObject>();
+ ScopedFunctionObject target(scope, thisObject);
if (!target)
return scope.engine->throwTypeError();
- ScopedValue boundThis(scope, callData->argument(0));
+ ScopedValue boundThis(scope, argc ? argv[0] : Primitive::undefinedValue());
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, ei = static_cast<uint>(callData->argc() - 1); i < ei; ++i)
- boundArgs->set(scope.engine, i, callData->args[i + 1]);
+ if (argc > 1) {
+ boundArgs = MemberData::allocate(scope.engine, argc - 1);
+ boundArgs->d()->values.size = argc - 1;
+ for (uint i = 0, ei = static_cast<uint>(argc - 1); i < ei; ++i)
+ boundArgs->set(scope.engine, i, argv[i + 1]);
}
ExecutionContext *global = scope.engine->rootContext();
diff --git a/src/qml/jsruntime/qv4functionobject_p.h b/src/qml/jsruntime/qv4functionobject_p.h
index 86137e8e6e..6f787b3e38 100644
--- a/src/qml/jsruntime/qv4functionobject_p.h
+++ b/src/qml/jsruntime/qv4functionobject_p.h
@@ -197,10 +197,10 @@ struct FunctionPrototype: FunctionObject
void init(ExecutionEngine *engine, Object *ctor);
- static ReturnedValue method_toString(const BuiltinFunction *, CallData *callData);
+ static ReturnedValue method_toString(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
static ReturnedValue method_apply(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
static ReturnedValue method_call(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
- static ReturnedValue method_bind(const BuiltinFunction *, CallData *callData);
+ static ReturnedValue method_bind(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
};
struct Q_QML_EXPORT BuiltinFunction : FunctionObject {
diff --git a/src/qml/jsruntime/qv4globalobject.cpp b/src/qml/jsruntime/qv4globalobject.cpp
index 1049c5d3fa..3214a716e8 100644
--- a/src/qml/jsruntime/qv4globalobject.cpp
+++ b/src/qml/jsruntime/qv4globalobject.cpp
@@ -408,11 +408,11 @@ static inline int toInt(const QChar &qc, int R)
}
// parseInt [15.1.2.2]
-ReturnedValue GlobalFunctions::method_parseInt(const BuiltinFunction *b, CallData *callData)
+ReturnedValue GlobalFunctions::method_parseInt(const FunctionObject *b, const Value *, const Value *argv, int argc)
{
Scope scope(b);
- ScopedValue inputString(scope, callData->argument(0));
- ScopedValue radix(scope, callData->argument(1));
+ ScopedValue inputString(scope, argc ? argv[0] : Primitive::undefinedValue());
+ ScopedValue radix(scope, argc > 1 ? argv[1] : Primitive::undefinedValue());
int R = radix->isUndefined() ? 0 : radix->toInt32();
// [15.1.2.2] step by step:
@@ -489,11 +489,11 @@ ReturnedValue GlobalFunctions::method_parseInt(const BuiltinFunction *b, CallDat
}
// parseFloat [15.1.2.3]
-ReturnedValue GlobalFunctions::method_parseFloat(const BuiltinFunction *b, CallData *callData)
+ReturnedValue GlobalFunctions::method_parseFloat(const FunctionObject *b, const Value *, const Value *argv, int argc)
{
Scope scope(b);
// [15.1.2.3] step by step:
- ScopedString inputString(scope, callData->argument(0), ScopedString::Convert);
+ ScopedString inputString(scope, argc ? argv[0] : Primitive::undefinedValue(), ScopedString::Convert);
CHECK_EXCEPTION();
QString trimmed = inputString->toQString().trimmed(); // 2
@@ -516,41 +516,41 @@ ReturnedValue GlobalFunctions::method_parseFloat(const BuiltinFunction *b, CallD
}
/// isNaN [15.1.2.4]
-ReturnedValue GlobalFunctions::method_isNaN(const BuiltinFunction *, CallData *callData)
+ReturnedValue GlobalFunctions::method_isNaN(const FunctionObject *, const Value *, const Value *argv, int argc)
{
- if (!callData->argc())
+ if (!argc)
// undefined gets converted to NaN
RETURN_RESULT(Encode(true));
- if (callData->args[0].integerCompatible())
+ if (argv[0].integerCompatible())
RETURN_RESULT(Encode(false));
- double d = callData->args[0].toNumber();
+ double d = argv[0].toNumber();
RETURN_RESULT(Encode((bool)std::isnan(d)));
}
/// isFinite [15.1.2.5]
-ReturnedValue GlobalFunctions::method_isFinite(const BuiltinFunction *, CallData *callData)
+ReturnedValue GlobalFunctions::method_isFinite(const FunctionObject *, const Value *, const Value *argv, int argc)
{
- if (!callData->argc())
+ if (!argc)
// undefined gets converted to NaN
RETURN_RESULT(Encode(false));
- if (callData->args[0].integerCompatible())
+ if (argv[0].integerCompatible())
RETURN_RESULT(Encode(true));
- double d = callData->args[0].toNumber();
+ double d = argv[0].toNumber();
RETURN_RESULT(Encode((bool)std::isfinite(d)));
}
/// decodeURI [15.1.3.1]
-ReturnedValue GlobalFunctions::method_decodeURI(const BuiltinFunction *b, CallData *callData)
+ReturnedValue GlobalFunctions::method_decodeURI(const FunctionObject *b, const Value *, const Value *argv, int argc)
{
- if (callData->argc() == 0)
+ if (argc == 0)
RETURN_UNDEFINED();
ExecutionEngine *v4 = b->engine();
- QString uriString = callData->args[0].toQString();
+ QString uriString = argv[0].toQString();
bool ok;
QString out = decode(uriString, DecodeNonReserved, &ok);
if (!ok) {
@@ -563,13 +563,13 @@ ReturnedValue GlobalFunctions::method_decodeURI(const BuiltinFunction *b, CallDa
}
/// decodeURIComponent [15.1.3.2]
-ReturnedValue GlobalFunctions::method_decodeURIComponent(const BuiltinFunction *b, CallData *callData)
+ReturnedValue GlobalFunctions::method_decodeURIComponent(const FunctionObject *b, const Value *, const Value *argv, int argc)
{
- if (callData->argc() == 0)
+ if (argc == 0)
RETURN_UNDEFINED();
ExecutionEngine *v4 = b->engine();
- QString uriString = callData->args[0].toQString();
+ QString uriString = argv[0].toQString();
bool ok;
QString out = decode(uriString, DecodeAll, &ok);
if (!ok) {
@@ -582,13 +582,13 @@ ReturnedValue GlobalFunctions::method_decodeURIComponent(const BuiltinFunction *
}
/// encodeURI [15.1.3.3]
-ReturnedValue GlobalFunctions::method_encodeURI(const BuiltinFunction *b, CallData *callData)
+ReturnedValue GlobalFunctions::method_encodeURI(const FunctionObject *b, const Value *, const Value *argv, int argc)
{
- if (callData->argc() == 0)
+ if (argc == 0)
RETURN_UNDEFINED();
ExecutionEngine *v4 = b->engine();
- QString uriString = callData->args[0].toQString();
+ QString uriString = argv[0].toQString();
bool ok;
QString out = encode(uriString, uriUnescapedReserved, &ok);
if (!ok) {
@@ -601,13 +601,13 @@ ReturnedValue GlobalFunctions::method_encodeURI(const BuiltinFunction *b, CallDa
}
/// encodeURIComponent [15.1.3.4]
-ReturnedValue GlobalFunctions::method_encodeURIComponent(const BuiltinFunction *b, CallData *callData)
+ReturnedValue GlobalFunctions::method_encodeURIComponent(const FunctionObject *b, const Value *, const Value *argv, int argc)
{
- if (callData->argc() == 0)
+ if (argc == 0)
RETURN_UNDEFINED();
ExecutionEngine *v4 = b->engine();
- QString uriString = callData->args[0].toQString();
+ QString uriString = argv[0].toQString();
bool ok;
QString out = encode(uriString, uriUnescaped, &ok);
if (!ok) {
@@ -619,22 +619,22 @@ ReturnedValue GlobalFunctions::method_encodeURIComponent(const BuiltinFunction *
RETURN_RESULT(v4->newString(out));
}
-ReturnedValue GlobalFunctions::method_escape(const BuiltinFunction *b, CallData *callData)
+ReturnedValue GlobalFunctions::method_escape(const FunctionObject *b, const Value *, const Value *argv, int argc)
{
ExecutionEngine *v4 = b->engine();
- if (!callData->argc())
+ if (!argc)
RETURN_RESULT(v4->newString(QStringLiteral("undefined")));
- QString str = callData->args[0].toQString();
+ QString str = argv[0].toQString();
RETURN_RESULT(v4->newString(escape(str)));
}
-ReturnedValue GlobalFunctions::method_unescape(const BuiltinFunction *b, CallData *callData)
+ReturnedValue GlobalFunctions::method_unescape(const FunctionObject *b, const Value *, const Value *argv, int argc)
{
ExecutionEngine *v4 = b->engine();
- if (!callData->argc())
+ if (!argc)
RETURN_RESULT(v4->newString(QStringLiteral("undefined")));
- QString str = callData->args[0].toQString();
+ QString str = argv[0].toQString();
RETURN_RESULT(v4->newString(unescape(str)));
}
diff --git a/src/qml/jsruntime/qv4globalobject_p.h b/src/qml/jsruntime/qv4globalobject_p.h
index af72d3af2f..fd1820c23c 100644
--- a/src/qml/jsruntime/qv4globalobject_p.h
+++ b/src/qml/jsruntime/qv4globalobject_p.h
@@ -76,16 +76,16 @@ struct Q_QML_EXPORT EvalFunction : FunctionObject
struct GlobalFunctions
{
- static ReturnedValue method_parseInt(const BuiltinFunction *, CallData *callData);
- static ReturnedValue method_parseFloat(const BuiltinFunction *, CallData *callData);
- static ReturnedValue method_isNaN(const BuiltinFunction *, CallData *callData);
- static ReturnedValue method_isFinite(const BuiltinFunction *, CallData *callData);
- static ReturnedValue method_decodeURI(const BuiltinFunction *, CallData *callData);
- static ReturnedValue method_decodeURIComponent(const BuiltinFunction *, CallData *callData);
- static ReturnedValue method_encodeURI(const BuiltinFunction *, CallData *callData);
- static ReturnedValue method_encodeURIComponent(const BuiltinFunction *, CallData *callData);
- static ReturnedValue method_escape(const BuiltinFunction *, CallData *callData);
- static ReturnedValue method_unescape(const BuiltinFunction *, CallData *callData);
+ static ReturnedValue method_parseInt(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
+ static ReturnedValue method_parseFloat(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
+ static ReturnedValue method_isNaN(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
+ static ReturnedValue method_isFinite(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
+ static ReturnedValue method_decodeURI(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
+ static ReturnedValue method_decodeURIComponent(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
+ static ReturnedValue method_encodeURI(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
+ static ReturnedValue method_encodeURIComponent(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
+ static ReturnedValue method_escape(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
+ static ReturnedValue method_unescape(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
};
}