diff options
Diffstat (limited to 'tests/auto/declarative/parserstress/tests/ecma/String/15.5.4.12-4.js')
-rw-r--r-- | tests/auto/declarative/parserstress/tests/ecma/String/15.5.4.12-4.js | 515 |
1 files changed, 0 insertions, 515 deletions
diff --git a/tests/auto/declarative/parserstress/tests/ecma/String/15.5.4.12-4.js b/tests/auto/declarative/parserstress/tests/ecma/String/15.5.4.12-4.js deleted file mode 100644 index caf5663f07..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma/String/15.5.4.12-4.js +++ /dev/null @@ -1,515 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -gTestfile = '15.5.4.12-4.js'; - -/** - File Name: 15.5.4.12-1.js - ECMA Section: 15.5.4.12 String.prototype.toUpperCase() - Description: - - Returns a string equal in length to the length of the result of converting - this object to a string. The result is a string value, not a String object. - - Every character of the result is equal to the corresponding character of the - string, unless that character has a Unicode 2.0 uppercase equivalent, in which - case the uppercase equivalent is used instead. (The canonical Unicode 2.0 case - mapping shall be used, which does not depend on implementation or locale.) - - Note that the toUpperCase function is intentionally generic; it does not require - that its this value be a String object. Therefore it can be transferred to other - kinds of objects for use as a method. - - Author: christine@netscape.com - Date: 12 november 1997 -*/ - -var SECTION = "15.5.4.12-1"; -var VERSION = "ECMA_1"; -startTest(); -var TITLE = "String.prototype.toUpperCase()"; - -writeHeaderToLog( SECTION + " "+ TITLE); - -// Cyrillic (part) -// Range: U+0400 to U+04FF -for ( var i = 0x0400; i <= 0x047F; i++ ) { - var U =new Unicode( i ); -/* - new TestCase( SECTION, - "var s = new String( String.fromCharCode("+i+") ); s.toUpperCase()", - U.upper, - eval("var s = new String( String.fromCharCode("+i+") ); s.toUpperCase()") ); -*/ - new TestCase( SECTION, - "var s = new String( String.fromCharCode("+i+") ); s.toUpperCase().charCodeAt(0)", - U.upper, - eval("var s = new String( String.fromCharCode(i) ); s.toUpperCase().charCodeAt(0)") ); - -} - -test(); - -function MyObject( value ) { - this.value = value; - this.substring = String.prototype.substring; - this.toString = new Function ( "return this.value+''" ); -} -function Unicode( c ) { - u = GetUnicodeValues( c ); - this.upper = u[0]; - this.lower = u[1] - return this; -} -function GetUnicodeValues( c ) { - u = new Array(); - - u[0] = c; - u[1] = c; - - // upper case Basic Latin - - if ( c >= 0x0041 && c <= 0x005A) { - u[0] = c; - u[1] = c + 32; - return u; - } - - // lower case Basic Latin - if ( c >= 0x0061 && c <= 0x007a ) { - u[0] = c - 32; - u[1] = c; - return u; - } - - // upper case Latin-1 Supplement - if ( (c >= 0x00C0 && c <= 0x00D6) || (c >= 0x00D8 && c<=0x00DE) ) { - u[0] = c; - u[1] = c + 32; - return u; - } - - // lower case Latin-1 Supplement - if ( (c >= 0x00E0 && c <= 0x00F6) || (c >= 0x00F8 && c <= 0x00FE) ) { - u[0] = c - 32; - u[1] = c; - return u; - } - if ( c == 0x00FF ) { - u[0] = 0x0178; - u[1] = c; - return u; - } - // Latin Extended A - if ( (c >= 0x0100 && c < 0x0138) || (c > 0x0149 && c < 0x0178) ) { - // special case for capital I - if ( c == 0x0130 ) { - u[0] = c; - u[1] = 0x0069; - return u; - } - if ( c == 0x0131 ) { - u[0] = 0x0049; - u[1] = c; - return u; - } - - if ( c % 2 == 0 ) { - // if it's even, it's a capital and the lower case is c +1 - u[0] = c; - u[1] = c+1; - } else { - // if it's odd, it's a lower case and upper case is c-1 - u[0] = c-1; - u[1] = c; - } - return u; - } - if ( c == 0x0178 ) { - u[0] = c; - u[1] = 0x00FF; - return u; - } - - if ( (c >= 0x0139 && c < 0x0149) || (c > 0x0178 && c < 0x017F) ) { - if ( c % 2 == 1 ) { - // if it's odd, it's a capital and the lower case is c +1 - u[0] = c; - u[1] = c+1; - } else { - // if it's even, it's a lower case and upper case is c-1 - u[0] = c-1; - u[1] = c; - } - return u; - } - if ( c == 0x017F ) { - u[0] = 0x0053; - u[1] = c; - } - - // Latin Extended B - // need to improve this set - - if ( c >= 0x0200 && c <= 0x0217 ) { - if ( c % 2 == 0 ) { - u[0] = c; - u[1] = c+1; - } else { - u[0] = c-1; - u[1] = c; - } - return u; - } - - // Latin Extended Additional - // Range: U+1E00 to U+1EFF - // http://www.unicode.org/Unicode.charts/glyphless/U1E00.html - - // Spacing Modifier Leters - // Range: U+02B0 to U+02FF - - // Combining Diacritical Marks - // Range: U+0300 to U+036F - - // skip Greek for now - // Greek - // Range: U+0370 to U+03FF - - // Cyrillic - // Range: U+0400 to U+04FF - - if ( (c >= 0x0401 && c <= 0x040C) || ( c>= 0x040E && c <= 0x040F ) ) { - u[0] = c; - u[1] = c + 80; - return u; - } - - - if ( c >= 0x0410 && c <= 0x042F ) { - u[0] = c; - u[1] = c + 32; - return u; - } - - if ( c >= 0x0430 && c<= 0x044F ) { - u[0] = c - 32; - u[1] = c; - return u; - - } - if ( (c >= 0x0451 && c <= 0x045C) || (c >=0x045E && c<= 0x045F) ) { - u[0] = c -80; - u[1] = c; - return u; - } - - if ( c >= 0x0460 && c <= 0x047F ) { - if ( c % 2 == 0 ) { - u[0] = c; - u[1] = c +1; - } else { - u[0] = c - 1; - u[1] = c; - } - return u; - } - - // Armenian - // Range: U+0530 to U+058F - if ( c >= 0x0531 && c <= 0x0556 ) { - u[0] = c; - u[1] = c + 48; - return u; - } - if ( c >= 0x0561 && c < 0x0587 ) { - u[0] = c - 48; - u[1] = c; - return u; - } - - // Hebrew - // Range: U+0590 to U+05FF - - - // Arabic - // Range: U+0600 to U+06FF - - // Devanagari - // Range: U+0900 to U+097F - - - // Bengali - // Range: U+0980 to U+09FF - - - // Gurmukhi - // Range: U+0A00 to U+0A7F - - - // Gujarati - // Range: U+0A80 to U+0AFF - - - // Oriya - // Range: U+0B00 to U+0B7F - // no capital / lower case - - - // Tamil - // Range: U+0B80 to U+0BFF - // no capital / lower case - - - // Telugu - // Range: U+0C00 to U+0C7F - // no capital / lower case - - - // Kannada - // Range: U+0C80 to U+0CFF - // no capital / lower case - - - // Malayalam - // Range: U+0D00 to U+0D7F - - // Thai - // Range: U+0E00 to U+0E7F - - - // Lao - // Range: U+0E80 to U+0EFF - - - // Tibetan - // Range: U+0F00 to U+0FBF - - // Georgian - // Range: U+10A0 to U+10F0 - if ( c >= 0x10A0 && c <= 0x10C5 ) { - u[0] = c; - u[1] = c + 48; - return u; - } - if ( c >= 0x10D0 && c <= 0x10F5 ) { - u[0] = c; - u[1] = c; - return u; - } - - // Hangul Jamo - // Range: U+1100 to U+11FF - - // Greek Extended - // Range: U+1F00 to U+1FFF - // skip for now - - - // General Punctuation - // Range: U+2000 to U+206F - - // Superscripts and Subscripts - // Range: U+2070 to U+209F - - // Currency Symbols - // Range: U+20A0 to U+20CF - - - // Combining Diacritical Marks for Symbols - // Range: U+20D0 to U+20FF - // skip for now - - - // Number Forms - // Range: U+2150 to U+218F - // skip for now - - - // Arrows - // Range: U+2190 to U+21FF - - // Mathematical Operators - // Range: U+2200 to U+22FF - - // Miscellaneous Technical - // Range: U+2300 to U+23FF - - // Control Pictures - // Range: U+2400 to U+243F - - // Optical Character Recognition - // Range: U+2440 to U+245F - - // Enclosed Alphanumerics - // Range: U+2460 to U+24FF - - // Box Drawing - // Range: U+2500 to U+257F - - // Block Elements - // Range: U+2580 to U+259F - - // Geometric Shapes - // Range: U+25A0 to U+25FF - - // Miscellaneous Symbols - // Range: U+2600 to U+26FF - - // Dingbats - // Range: U+2700 to U+27BF - - // CJK Symbols and Punctuation - // Range: U+3000 to U+303F - - // Hiragana - // Range: U+3040 to U+309F - - // Katakana - // Range: U+30A0 to U+30FF - - // Bopomofo - // Range: U+3100 to U+312F - - // Hangul Compatibility Jamo - // Range: U+3130 to U+318F - - // Kanbun - // Range: U+3190 to U+319F - - - // Enclosed CJK Letters and Months - // Range: U+3200 to U+32FF - - // CJK Compatibility - // Range: U+3300 to U+33FF - - // Hangul Syllables - // Range: U+AC00 to U+D7A3 - - // High Surrogates - // Range: U+D800 to U+DB7F - - // Private Use High Surrogates - // Range: U+DB80 to U+DBFF - - // Low Surrogates - // Range: U+DC00 to U+DFFF - - // Private Use Area - // Range: U+E000 to U+F8FF - - // CJK Compatibility Ideographs - // Range: U+F900 to U+FAFF - - // Alphabetic Presentation Forms - // Range: U+FB00 to U+FB4F - - // Arabic Presentation Forms-A - // Range: U+FB50 to U+FDFF - - // Combining Half Marks - // Range: U+FE20 to U+FE2F - - // CJK Compatibility Forms - // Range: U+FE30 to U+FE4F - - // Small Form Variants - // Range: U+FE50 to U+FE6F - - // Arabic Presentation Forms-B - // Range: U+FE70 to U+FEFF - - // Halfwidth and Fullwidth Forms - // Range: U+FF00 to U+FFEF - - if ( c >= 0xFF21 && c <= 0xFF3A ) { - u[0] = c; - u[1] = c + 32; - return u; - } - - if ( c >= 0xFF41 && c <= 0xFF5A ) { - u[0] = c - 32; - u[1] = c; - return u; - } - - // Specials - // Range: U+FFF0 to U+FFFF - - return u; -} - -function DecimalToHexString( n ) { - n = Number( n ); - var h = "0x"; - - for ( var i = 3; i >= 0; i-- ) { - if ( n >= Math.pow(16, i) ){ - var t = Math.floor( n / Math.pow(16, i)); - n -= t * Math.pow(16, i); - if ( t >= 10 ) { - if ( t == 10 ) { - h += "A"; - } - if ( t == 11 ) { - h += "B"; - } - if ( t == 12 ) { - h += "C"; - } - if ( t == 13 ) { - h += "D"; - } - if ( t == 14 ) { - h += "E"; - } - if ( t == 15 ) { - h += "F"; - } - } else { - h += String( t ); - } - } else { - h += "0"; - } - } - - return h; -} |