| Index: test/webkit/fast/js/toString-overrides.js
|
| diff --git a/test/webkit/parser-high-byte-character.js b/test/webkit/fast/js/toString-overrides.js
|
| similarity index 51%
|
| copy from test/webkit/parser-high-byte-character.js
|
| copy to test/webkit/fast/js/toString-overrides.js
|
| index 4e500fa2f67d5faff2a0317fdff547f770784e5b..cf277139bb45c58f2dffc1773753fb5b7b9ffef1 100644
|
| --- a/test/webkit/parser-high-byte-character.js
|
| +++ b/test/webkit/fast/js/toString-overrides.js
|
| @@ -21,27 +21,45 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
| // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| +// 15.4 Array Objects
|
| +// (c) 2001 Harri Porten <porten@kde.org>
|
| +
|
| description(
|
| -"This test checks that high-byte characters in comments do not crash or cause parser errors."
|
| +'This test checks for regression against <a href="https://bugs.webkit.org/show_bug.cgi?id=4147">4147: Array.toString() and toLocaleString() improvements from KDE KJS</a>.'
|
| );
|
|
|
| -// Some high-byte characters: ¸´Ñ¡»ò²»¸´Ñ¡ËùÓеÄÁбí¶àÑ¡¿ò
|
| -function runTest(_a, throws)
|
| -{
|
| - testPassed();
|
| +// backup
|
| +var backupNumberToString = Number.prototype.toString;
|
| +var backupNumberToLocaleString = Number.prototype.toLocaleString;
|
| +var backupRegExpToString = RegExp.prototype.toString;
|
| +var backupRegExpToLocaleString = RegExp.prototype.toLocaleString;
|
| +
|
| +// change functions
|
| +Number.prototype.toString = function() { return "toString"; }
|
| +Number.prototype.toLocaleString = function() { return "toLocaleString"; }
|
| +RegExp.prototype.toString = function() { return "toString2"; }
|
| +RegExp.prototype.toLocaleString = function() { return "toLocaleString2"; }
|
| +
|
| +// the tests
|
| +shouldBe("[1].toString()", "'1'");
|
| +shouldBe("[1].toLocaleString()", "'toLocaleString'");
|
| +Number.prototype.toLocaleString = "invalid";
|
| +shouldBe("[1].toLocaleString()", "'1'");
|
| +shouldBe("[/r/].toString()", "'toString2'");
|
| +shouldBe("[/r/].toLocaleString()", "'toLocaleString2'");
|
| +RegExp.prototype.toLocaleString = "invalid";
|
| +shouldBe("[/r/].toLocaleString()", "'toString2'");
|
| +
|
| +var caught = false;
|
| +try {
|
| +[{ toString : 0 }].toString();
|
| +} catch (e) {
|
| +caught = true;
|
| }
|
| +shouldBeTrue("caught");
|
|
|
| -/*
|
| -Over 1024 bytes to ensure precompilation caching is triggered.
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
| -XXXXXXXXXXXXXXXXXXXXXXXX
|
| -*/
|
| +// restore
|
| +Number.prototype.toString = backupNumberToString;
|
| +Number.prototype.toLocaleString = backupNumberToLocaleString;
|
| +RegExp.prototype.toString = backupRegExpToString;
|
| +RegExp.prototype.toLocaleString = backupRegExpToLocaleString;
|
|
|