From 939465f65549953c77ffd3ea11df6d165a8289e0 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 22 May 2013 22:45:45 +0200 Subject: [PATCH] Fix another failing assertion when running qqmlecmascript tests Value::IsUInt32() and friends are not implemented. Port this built-in stringArg() function over to QV4::Value. Change-Id: I48674892c238473f1d70b2184249b0db377ae399 Reviewed-by: Lars Knoll --- src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index 88f7d28..31d89b7 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -313,17 +313,15 @@ QV4::Value stringArg(const v8::Arguments &args) if (args.Length() != 1) V4THROW_ERROR("String.arg(): Invalid arguments"); - v8::Handle arg = args[0]; - if (arg->IsUint32()) - return V8ENGINE()->toString(value.arg(arg->Uint32Value())); - else if (arg->IsInt32()) - return V8ENGINE()->toString(value.arg(arg->Int32Value())); - else if (arg->IsNumber()) - return V8ENGINE()->toString(value.arg(arg->NumberValue())); - else if (arg->IsBoolean()) - return V8ENGINE()->toString(value.arg(arg->BooleanValue())); - - return V8ENGINE()->toString(value.arg(arg->v4Value().toQString())); + QV4::Value arg = args[0]->v4Value(); + if (arg.isInteger()) + return V8ENGINE()->toString(value.arg(arg.integerValue())); + else if (arg.isDouble()) + return V8ENGINE()->toString(value.arg(arg.doubleValue())); + else if (arg.isBoolean()) + return V8ENGINE()->toString(value.arg(arg.booleanValue())); + + return V8ENGINE()->toString(value.arg(arg.toQString())); } /*! -- 2.7.4