diff options
Diffstat (limited to 'src/3rdparty/v8/test/mjsunit/escape.js')
-rw-r--r-- | src/3rdparty/v8/test/mjsunit/escape.js | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/src/3rdparty/v8/test/mjsunit/escape.js b/src/3rdparty/v8/test/mjsunit/escape.js deleted file mode 100644 index 5732ce3..0000000 --- a/src/3rdparty/v8/test/mjsunit/escape.js +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2008 the V8 project authors. All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -/** - * @fileoverview Check that the global escape and unescape functions work - * right. - */ - -// Section B.2.1 of ECMAScript 3 -var unescaped = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@*_+-./"; - -// Check the unescape chars are not escaped -assertEquals(unescaped, escape(unescaped)); -// Check spaces are escaped -assertEquals("%20/%20", escape(" / ")); -// Check that null chars are escaped and do not terminate the string -assertEquals("%000", escape("\0" + "0")); -// Check a unicode escape -assertEquals("A%20B%u1234%00%20C", escape(String.fromCharCode(0x41, 0x20, 0x42, 0x1234, 0, 0x20, 0x43))); -// Check unicode escapes have a leading zero to pad to 4 digits -assertEquals("%u0123", escape(String.fromCharCode(0x123))); -// Check escapes are upper case -assertEquals("%uABCD", escape(String.fromCharCode(0xabcd))); -assertEquals("%AB", escape(String.fromCharCode(0xab))); -assertEquals("%0A", escape("\n")); - -// Check first 1000 chars individually for escaped/not escaped -for (var i = 0; i < 1000; i++) { - var s = String.fromCharCode(i); - if (unescaped.indexOf(s, 0) == -1) { - assertFalse(s == escape(s)); - } else { - assertTrue(s == escape(s)); - } -} - -// Check all chars up to 1000 in groups of 10 using unescape as a check -for (var i = 0; i < 1000; i += 10) { - var s = String.fromCharCode(i, i+1, i+2, i+3, i+4, i+5, i+6, i+7, i+8, i+9); - assertEquals(s, unescape(escape(s))); -} - -// Benchmark -var example = "Now is the time for all good men to come to the aid of the party."; -example = example + String.fromCharCode(267, 0x1234, 0x6667, 0xabcd); -example = example + " The quick brown fox jumps over the lazy dog." -example = example + String.fromCharCode(171, 172, 173, 174, 175, 176, 178, 179); - -for (var i = 0; i < 3000; i++) { - assertEquals(example, unescape(escape(example))); -} - -// Check unescape can cope with upper and lower case -assertEquals(unescape("%41%4A%4a"), "AJJ"); - -// Check upper case U -assertEquals("%U1234", unescape("%U1234")); - -// Check malformed unescapes -assertEquals("%", unescape("%")); -assertEquals("%4", unescape("%4")); -assertEquals("%u", unescape("%u")); -assertEquals("%u4", unescape("%u4")); -assertEquals("%u44", unescape("%u44")); -assertEquals("%u444", unescape("%u444")); -assertEquals("%4z", unescape("%4z")); -assertEquals("%uzzzz", unescape("%uzzzz")); -assertEquals("%u4zzz", unescape("%u4zzz")); -assertEquals("%u44zz", unescape("%u44zz")); -assertEquals("%u444z", unescape("%u444z")); -assertEquals("%4<", unescape("%4<")); -assertEquals("%u<<<<", unescape("%u<<<<")); -assertEquals("%u4<<<", unescape("%u4<<<")); -assertEquals("%u44<<", unescape("%u44<<")); -assertEquals("%u444<", unescape("%u444<")); -assertEquals("foo%4<", unescape("foo%4<")); -assertEquals("foo%u<<<<", unescape("foo%u<<<<")); -assertEquals("foo%u4<<<", unescape("foo%u4<<<")); -assertEquals("foo%u44<<", unescape("foo%u44<<")); -assertEquals("foo%u444<", unescape("foo%u444<")); -assertEquals("foo%4<bar", unescape("foo%4<bar")); -assertEquals("foo%u<<<<bar", unescape("foo%u<<<<bar")); -assertEquals("foo%u4<<<bar", unescape("foo%u4<<<bar")); -assertEquals("foo%u44<<bar", unescape("foo%u44<<bar")); -assertEquals("foo%u444<bar", unescape("foo%u444<bar")); -assertEquals("% ", unescape("%%20")); -assertEquals("%% ", unescape("%%%20")); - -// Unescape stress -var eexample = escape(example); - -for (var i = 1; i < 3000; i++) { - assertEquals(example, unescape(eexample)); -} |