Написал небольшой тестовый пример с использованием qscript
C++ (Qt)
#include <QtCore>
#include <QtGui>
#include <QtScript>
 
class Test : public QObject
{
    Q_OBJECT
public slots:
    void test()
    {
#ifdef ERROR
	qDebug() << "test1";
	QString sFunction = QString("a+b");
	QString sScript = QString("function(a,b){return %1;}").arg(sFunction);
#else
	qDebug() << "test2";
	QString sScript = QString("function(a,b) { return a+b; }");
#endif
	QScriptEngine scriptEngine;
	QScriptValue svFun = scriptEngine.evaluate(sScript);
	if (scriptEngine.hasUncaughtException()) {
	    qDebug() << QString("Script error: %1").arg(sScript);
	    qDebug() << svFun.toString();
	} else {
	    qDebug() << QString("Script Ok!: %1").arg(sScript);
	}
	QScriptValueList args;
	args << 1 << 2;
	QScriptValue res = svFun.call(QScriptValue(), args);
	qDebug() << res.toInt32();
    }
};
 
#include "main.moc"
 
int main (int argc, char ** argv)
{
	QApplication app(argc, argv);
 
	QPushButton * button = new QPushButton("evaluate");
	Test * test = new Test();
	QObject::connect(button, SIGNAL(clicked()), test, SLOT(test()));
 
	button->resize(100, 30);
	button->show();
 
	return app.exec();
}
Этот пример прекрасно работает с версией qt4.5.3
Этот же пример скомпилированный с qt 4.6.0 (qtsdk-2009.05)не работает
"Script error: function(a,b) { return a+b; }" 
"SyntaxError: Parse error"  
 В чем может быть проблема?