summaryrefslogtreecommitdiffstats
path: root/tests/auto/qscriptengine
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2009-08-11 11:53:04 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2009-08-12 13:15:23 (GMT)
commit45e2a19b4b75fe94a78161f26862bf3c6f727d74 (patch)
treea6e698eee514ad28815519f3b2ba5ac592941de3 /tests/auto/qscriptengine
parente806a4e887b6584f1115ced3cb489bb0e9a2de36 (diff)
downloadQt-45e2a19b4b75fe94a78161f26862bf3c6f727d74.zip
Qt-45e2a19b4b75fe94a78161f26862bf3c6f727d74.tar.gz
Qt-45e2a19b4b75fe94a78161f26862bf3c6f727d74.tar.bz2
Refactor the way the JS stack are created for native function
The original JavaScriptCore doesn't create stack frame or scope for native function. JSC has been patched to support that. This commit revert our patches to JSC, and implement create the stack frame from QScript Reviewed-by: Kent Hansen
Diffstat (limited to 'tests/auto/qscriptengine')
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp
index 5947814..f15ebdf 100644
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp
@@ -1872,26 +1872,27 @@ static QScriptValue recurse2(QScriptContext *ctx, QScriptEngine *eng)
void tst_QScriptEngine::infiniteRecursion()
{
- QSKIP("Can cause C stack overflow (task 241294)", SkipAll);
-
+ const QString stackOverflowError = QString::fromLatin1("RangeError: Maximum call stack size exceeded.");
QScriptEngine eng;
{
QScriptValue ret = eng.evaluate("function foo() { foo(); }; foo();");
QCOMPARE(ret.isError(), true);
- QCOMPARE(ret.toString(), QLatin1String("Error: call stack overflow"));
+ QCOMPARE(ret.toString(), stackOverflowError);
}
+#if 0 //The native C++ stack overflow before the JS stack
{
QScriptValue fun = eng.newFunction(recurse);
QScriptValue ret = fun.call();
QCOMPARE(ret.isError(), true);
- QCOMPARE(ret.toString(), QLatin1String("Error: call stack overflow"));
+ QCOMPARE(ret.toString(), stackOverflowError);
}
{
QScriptValue fun = eng.newFunction(recurse2);
QScriptValue ret = fun.construct();
QCOMPARE(ret.isError(), true);
- QCOMPARE(ret.toString(), QLatin1String("Error: call stack overflow"));
+ QCOMPARE(ret.toString(), stackOverflowError);
}
+#endif
}
struct Bar {