aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/parserstress/tests/ecma/GlobalObject/15.1.2.2-1.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/declarative/parserstress/tests/ecma/GlobalObject/15.1.2.2-1.js')
-rw-r--r--tests/auto/declarative/parserstress/tests/ecma/GlobalObject/15.1.2.2-1.js410
1 files changed, 0 insertions, 410 deletions
diff --git a/tests/auto/declarative/parserstress/tests/ecma/GlobalObject/15.1.2.2-1.js b/tests/auto/declarative/parserstress/tests/ecma/GlobalObject/15.1.2.2-1.js
deleted file mode 100644
index a4bf1c7de6..0000000000
--- a/tests/auto/declarative/parserstress/tests/ecma/GlobalObject/15.1.2.2-1.js
+++ /dev/null
@@ -1,410 +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.1.2.2-1.js';
-
-/**
- File Name: 15.1.2.2-1.js
- ECMA Section: 15.1.2.2 Function properties of the global object
- parseInt( string, radix )
-
- Description:
-
- The parseInt function produces an integer value dictated by intepretation
- of the contents of the string argument according to the specified radix.
-
- When the parseInt function is called, the following steps are taken:
-
- 1. Call ToString(string).
- 2. Compute a substring of Result(1) consisting of the leftmost character
- that is not a StrWhiteSpaceChar and all characters to the right of
- that character. (In other words, remove leading whitespace.)
- 3. Let sign be 1.
- 4. If Result(2) is not empty and the first character of Result(2) is a
- minus sign -, let sign be -1.
- 5. If Result(2) is not empty and the first character of Result(2) is a
- plus sign + or a minus sign -, then Result(5) is the substring of
- Result(2) produced by removing the first character; otherwise, Result(5)
- is Result(2).
- 6. If the radix argument is not supplied, go to step 12.
- 7. Call ToInt32(radix).
- 8. If Result(7) is zero, go to step 12; otherwise, if Result(7) < 2 or
- Result(7) > 36, return NaN.
- 9. Let R be Result(7).
- 10. If R = 16 and the length of Result(5) is at least 2 and the first two
- characters of Result(5) are either "0x" or "0X", let S be the substring
- of Result(5) consisting of all but the first two characters; otherwise,
- let S be Result(5).
- 11. Go to step 22.
- 12. If Result(5) is empty or the first character of Result(5) is not 0,
- go to step 20.
- 13. If the length of Result(5) is at least 2 and the second character of
- Result(5) is x or X, go to step 17.
- 14. Let R be 8.
- 15. Let S be Result(5).
- 16. Go to step 22.
- 17. Let R be 16.
- 18. Let S be the substring of Result(5) consisting of all but the first
- two characters.
- 19. Go to step 22.
- 20. Let R be 10.
- 21. Let S be Result(5).
- 22. If S contains any character that is not a radix-R digit, then let Z be
- the substring of S consisting of all characters to the left of the
- leftmost such character; otherwise, let Z be S.
- 23. If Z is empty, return NaN.
- 24. Compute the mathematical integer value that is represented by Z in
- radix-R notation. (But if R is 10 and Z contains more than 20
- significant digits, every digit after the 20th may be replaced by a 0
- digit, at the option of the implementation; and if R is not 2, 4, 8,
- 10, 16, or 32, then Result(24) may be an implementation-dependent
- approximation to the mathematical integer value that is represented
- by Z in radix-R notation.)
- 25. Compute the number value for Result(24).
- 26. Return sign Result(25).
-
- Note that parseInt may interpret only a leading portion of the string as
- an integer value; it ignores any characters that cannot be interpreted as
- part of the notation of an integer, and no indication is given that any
- such characters were ignored.
-
- Author: christine@netscape.com
- Date: 28 october 1997
-
-*/
-var SECTION = "15.1.2.2-1";
-var VERSION = "ECMA_1";
-var TITLE = "parseInt(string, radix)";
-var BUGNUMBER = "none";
-
-startTest();
-
-writeHeaderToLog( SECTION + " "+ TITLE);
-
-var HEX_STRING = "0x0";
-var HEX_VALUE = 0;
-
-new TestCase( SECTION,
- "parseInt.length",
- 2,
- parseInt.length );
-
-new TestCase( SECTION,
- "parseInt.length = 0; parseInt.length",
- 2,
- eval("parseInt.length = 0; parseInt.length") );
-
-new TestCase( SECTION,
- "var PROPS=''; for ( var p in parseInt ) { PROPS += p; }; PROPS", "prototype",
- eval("var PROPS=''; for ( var p in parseInt ) { PROPS += p; }; PROPS") );
-
-new TestCase( SECTION,
- "delete parseInt.length",
- false,
- delete parseInt.length );
-
-new TestCase( SECTION,
- "delete parseInt.length; parseInt.length",
- 2,
- eval("delete parseInt.length; parseInt.length") );
-
-new TestCase( SECTION,
- "parseInt.length = null; parseInt.length",
- 2,
- eval("parseInt.length = null; parseInt.length") );
-
-new TestCase( SECTION,
- "parseInt()",
- NaN,
- parseInt() );
-
-new TestCase( SECTION,
- "parseInt('')",
- NaN,
- parseInt("") );
-
-new TestCase( SECTION,
- "parseInt('','')",
- NaN,
- parseInt("","") );
-
-new TestCase( SECTION,
- "parseInt(\" 0xabcdef ",
- 11259375,
- parseInt( " 0xabcdef " ));
-
-new TestCase( SECTION,
- "parseInt(\" 0XABCDEF ",
- 11259375,
- parseInt( " 0XABCDEF " ) );
-
-new TestCase( SECTION,
- "parseInt( 0xabcdef )",
- 11259375,
- parseInt( "0xabcdef") );
-
-new TestCase( SECTION,
- "parseInt( 0XABCDEF )",
- 11259375,
- parseInt( "0XABCDEF") );
-
-for ( HEX_STRING = "0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+")", HEX_VALUE, parseInt(HEX_STRING) );
- HEX_VALUE += Math.pow(16,POWER)*15;
-}
-for ( HEX_STRING = "0X0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+")", HEX_VALUE, parseInt(HEX_STRING) );
- HEX_VALUE += Math.pow(16,POWER)*15;
-}
-for ( HEX_STRING = "0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+",16)", HEX_VALUE, parseInt(HEX_STRING,16) );
- HEX_VALUE += Math.pow(16,POWER)*15;
-}
-for ( HEX_STRING = "0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+",16)", HEX_VALUE, parseInt(HEX_STRING,16) );
- HEX_VALUE += Math.pow(16,POWER)*15;
-}
-for ( HEX_STRING = "0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+",null)", HEX_VALUE, parseInt(HEX_STRING,null) );
- HEX_VALUE += Math.pow(16,POWER)*15;
-}
-for ( HEX_STRING = "0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+", void 0)", HEX_VALUE, parseInt(HEX_STRING, void 0) );
- HEX_VALUE += Math.pow(16,POWER)*15;
-}
-
-// a few tests with spaces
-
-for ( var space = " ", HEX_STRING = "0x0", HEX_VALUE = 0, POWER = 0;
- POWER < 15;
- POWER++, HEX_STRING = HEX_STRING +"f", space += " ")
-{
- new TestCase( SECTION, "parseInt("+space+HEX_STRING+space+", void 0)", HEX_VALUE, parseInt(space+HEX_STRING+space, void 0) );
- HEX_VALUE += Math.pow(16,POWER)*15;
-}
-
-// a few tests with negative numbers
-for ( HEX_STRING = "-0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+")", HEX_VALUE, parseInt(HEX_STRING) );
- HEX_VALUE -= Math.pow(16,POWER)*15;
-}
-
-// we should stop parsing when we get to a value that is not a numeric literal for the type we expect
-
-for ( HEX_STRING = "0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+"g,16)", HEX_VALUE, parseInt(HEX_STRING+"g",16) );
- HEX_VALUE += Math.pow(16,POWER)*15;
-}
-for ( HEX_STRING = "0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+"g,16)", HEX_VALUE, parseInt(HEX_STRING+"G",16) );
- HEX_VALUE += Math.pow(16,POWER)*15;
-}
-
-for ( HEX_STRING = "-0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+")", HEX_VALUE, parseInt(HEX_STRING) );
- HEX_VALUE -= Math.pow(16,POWER)*15;
-}
-for ( HEX_STRING = "-0X0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+")", HEX_VALUE, parseInt(HEX_STRING) );
- HEX_VALUE -= Math.pow(16,POWER)*15;
-}
-for ( HEX_STRING = "-0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+",16)", HEX_VALUE, parseInt(HEX_STRING,16) );
- HEX_VALUE -= Math.pow(16,POWER)*15;
-}
-for ( HEX_STRING = "-0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
- new TestCase( SECTION, "parseInt("+HEX_STRING+",16)", HEX_VALUE, parseInt(HEX_STRING,16) );
- HEX_VALUE -= Math.pow(16,POWER)*15;
-}
-
-// let us do some octal tests. numbers that start with 0 and do not provid a radix should
-// default to using "0" as a radix.
-
-var OCT_STRING = "0";
-var OCT_VALUE = 0;
-
-for ( OCT_STRING = "0", OCT_VALUE = 0, POWER = 0; POWER < 15; POWER++, OCT_STRING = OCT_STRING +"7" ) {
- new TestCase( SECTION, "parseInt("+OCT_STRING+")", OCT_VALUE, parseInt(OCT_STRING) );
- OCT_VALUE += Math.pow(8,POWER)*7;
-}
-
-for ( OCT_STRING = "-0", OCT_VALUE = 0, POWER = 0; POWER < 15; POWER++, OCT_STRING = OCT_STRING +"7" ) {
- new TestCase( SECTION, "parseInt("+OCT_STRING+")", OCT_VALUE, parseInt(OCT_STRING) );
- OCT_VALUE -= Math.pow(8,POWER)*7;
-}
-
-// should get the same results as above if we provid the radix of 8 (or 010)
-
-for ( OCT_STRING = "0", OCT_VALUE = 0, POWER = 0; POWER < 15; POWER++, OCT_STRING = OCT_STRING +"7" ) {
- new TestCase( SECTION, "parseInt("+OCT_STRING+",8)", OCT_VALUE, parseInt(OCT_STRING,8) );
- OCT_VALUE += Math.pow(8,POWER)*7;
-}
-for ( OCT_STRING = "-0", OCT_VALUE = 0, POWER = 0; POWER < 15; POWER++, OCT_STRING = OCT_STRING +"7" ) {
- new TestCase( SECTION, "parseInt("+OCT_STRING+",010)", OCT_VALUE, parseInt(OCT_STRING,010) );
- OCT_VALUE -= Math.pow(8,POWER)*7;
-}
-
-// we shall stop parsing digits when we get one that isn't a numeric literal of the type we think
-// it should be.
-for ( OCT_STRING = "0", OCT_VALUE = 0, POWER = 0; POWER < 15; POWER++, OCT_STRING = OCT_STRING +"7" ) {
- new TestCase( SECTION, "parseInt("+OCT_STRING+"8,8)", OCT_VALUE, parseInt(OCT_STRING+"8",8) );
- OCT_VALUE += Math.pow(8,POWER)*7;
-}
-for ( OCT_STRING = "-0", OCT_VALUE = 0, POWER = 0; POWER < 15; POWER++, OCT_STRING = OCT_STRING +"7" ) {
- new TestCase( SECTION, "parseInt("+OCT_STRING+"8,010)", OCT_VALUE, parseInt(OCT_STRING+"8",010) );
- OCT_VALUE -= Math.pow(8,POWER)*7;
-}
-
-new TestCase( SECTION,
- "parseInt( '0x' )",
- NaN,
- parseInt("0x") );
-
-new TestCase( SECTION,
- "parseInt( '0X' )",
- NaN,
- parseInt("0X") );
-
-new TestCase( SECTION,
- "parseInt( '11111111112222222222' )",
- 11111111112222222222,
- parseInt("11111111112222222222") );
-
-new TestCase( SECTION,
- "parseInt( '111111111122222222223' )",
- 111111111122222222220,
- parseInt("111111111122222222223") );
-
-new TestCase( SECTION,
- "parseInt( '11111111112222222222',10 )",
- 11111111112222222222,
- parseInt("11111111112222222222",10) );
-
-new TestCase( SECTION,
- "parseInt( '111111111122222222223',10 )",
- 111111111122222222220,
- parseInt("111111111122222222223",10) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', -1 )",
- Number.NaN,
- parseInt("01234567890",-1) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 0 )",
- Number.NaN,
- parseInt("01234567890",1) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 1 )",
- Number.NaN,
- parseInt("01234567890",1) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 2 )",
- 1,
- parseInt("01234567890",2) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 3 )",
- 5,
- parseInt("01234567890",3) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 4 )",
- 27,
- parseInt("01234567890",4) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 5 )",
- 194,
- parseInt("01234567890",5) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 6 )",
- 1865,
- parseInt("01234567890",6) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 7 )",
- 22875,
- parseInt("01234567890",7) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 8 )",
- 342391,
- parseInt("01234567890",8) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 9 )",
- 6053444,
- parseInt("01234567890",9) );
-
-new TestCase( SECTION,
- "parseInt( '01234567890', 10 )",
- 1234567890,
- parseInt("01234567890",10) );
-
-// need more test cases with hex radix
-
-new TestCase( SECTION,
- "parseInt( '1234567890', '0xa')",
- 1234567890,
- parseInt("1234567890","0xa") );
-
-new TestCase( SECTION,
- "parseInt( '012345', 11 )",
- 17715,
- parseInt("012345",11) );
-
-new TestCase( SECTION,
- "parseInt( '012345', 35 )",
- 1590195,
- parseInt("012345",35) );
-
-new TestCase( SECTION,
- "parseInt( '012345', 36 )",
- 1776965,
- parseInt("012345",36) );
-
-new TestCase( SECTION,
- "parseInt( '012345', 37 )",
- Number.NaN,
- parseInt("012345",37) );
-
-test();