2011-01-18  Darin Adler  <darin@apple.com>

        Reviewed by Geoffrey Garen.

        Stack overflow when converting an Error object to string
        https://bugs.webkit.org/show_bug.cgi?id=46410

        * fast/js/script-tests/toString-recursion.js: Added.
        * fast/js/toString-recursion-expected.txt: Added.
        * fast/js/toString-recursion.html: Added.
2011-01-18  Darin Adler  <darin@apple.com>

        Reviewed by Geoffrey Garen.

        Stack overflow when converting an Error object to string
        https://bugs.webkit.org/show_bug.cgi?id=46410

        * Android.mk: Added StringRecursionChecker.cpp and
        StringRecursionChecker.h.
        * CMakeLists.txt: Ditto.
        * GNUmakefile.am: Ditto.
        * JavaScriptCore.gypi: Ditto.
        * JavaScriptCore.pro: Ditto.
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
        * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.

        * runtime/ArrayPrototype.cpp:
        (JSC::arrayProtoFuncToString): Use StringRecursionChecker instead
        of the older hand-written code to do the same thing.
        (JSC::arrayProtoFuncToLocaleString): Ditto.
        (JSC::arrayProtoFuncJoin): Ditto.

        * runtime/ErrorPrototype.cpp:
        (JSC::errorProtoFuncToString): Use StringRecursionChecker.

        * runtime/JSGlobalData.h: Renamed arrayVisitedElements to
        stringRecursionCheckVisitedObjects.

        * runtime/RegExpPrototype.cpp:
        (JSC::regExpProtoFuncToString): Use StringRecursionChecker.

        * runtime/StringRecursionChecker.cpp: Added.
        * runtime/StringRecursionChecker.h: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76185 268f45cc-cd09-0410-ab3c-d52691b4dbfc
18 files changed