Fix another failing assertion when running qqmlecmascript tests
authorSimon Hausmann <simon.hausmann@digia.com>
Wed, 22 May 2013 20:45:45 +0000 (22:45 +0200)
committerLars Knoll <lars.knoll@digia.com>
Thu, 23 May 2013 11:11:29 +0000 (13:11 +0200)
Value::IsUInt32() and friends are not implemented. Port this built-in
stringArg() function over to QV4::Value.

Change-Id: I48674892c238473f1d70b2184249b0db377ae399
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
src/qml/qml/v8/qqmlbuiltinfunctions.cpp

index 88f7d28..31d89b7 100644 (file)
@@ -313,17 +313,15 @@ QV4::Value stringArg(const v8::Arguments &args)
     if (args.Length() != 1)
         V4THROW_ERROR("String.arg(): Invalid arguments");
 
-    v8::Handle<v8::Value> 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()));
 }
 
 /*!