src/script/bridge/qscriptvariant.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
--- a/src/script/bridge/qscriptvariant.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/src/script/bridge/qscriptvariant.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -29,6 +29,8 @@
 
 #include "Error.h"
 #include "PrototypeFunction.h"
+#include "JSFunction.h"
+#include "NativeFunctionWrapper.h"
 #include "JSString.h"
 
 namespace JSC
@@ -119,11 +121,8 @@
     JSC::JSValue value = variantProtoFuncValueOf(exec, callee, thisValue, args);
     if (value.isObject()) {
         result = v.toString();
-        if (result.isEmpty() && !v.canConvert(QVariant::String)) {
-            result = "QVariant(";
-            result += v.typeName();
-            result += ")";
-        }
+        if (result.isEmpty() && !v.canConvert(QVariant::String))
+            result = QString::fromLatin1("QVariant(%0)").arg(QString::fromLatin1(v.typeName()));
     } else {
         result = value.toString(exec);
     }
@@ -133,7 +132,7 @@
 bool QVariantDelegate::compareToObject(QScriptObject *, JSC::ExecState *exec, JSC::JSObject *o2)
 {
     const QVariant &variant1 = value();
-    return variant1 == scriptEngineFromExec(exec)->scriptValueFromJSCValue(o2).toVariant();
+    return variant1 == QScriptEnginePrivate::toVariant(exec, o2);
 }
 
 QVariantPrototype::QVariantPrototype(JSC::ExecState* exec, WTF::PassRefPtr<JSC::Structure> structure,
@@ -142,8 +141,8 @@
 {
     setDelegate(new QVariantDelegate(QVariant()));
 
-    putDirectFunction(exec, new (exec) JSC::PrototypeFunction(exec, prototypeFunctionStructure, 0, exec->propertyNames().toString, variantProtoFuncToString), JSC::DontEnum);
-    putDirectFunction(exec, new (exec) JSC::PrototypeFunction(exec, prototypeFunctionStructure, 0, exec->propertyNames().valueOf, variantProtoFuncValueOf), JSC::DontEnum);
+    putDirectFunction(exec, new (exec) JSC::NativeFunctionWrapper(exec, prototypeFunctionStructure, 0, exec->propertyNames().toString, variantProtoFuncToString), JSC::DontEnum);
+    putDirectFunction(exec, new (exec) JSC::NativeFunctionWrapper(exec, prototypeFunctionStructure, 0, exec->propertyNames().valueOf, variantProtoFuncValueOf), JSC::DontEnum);
 }