|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 |
|
7 /** |
|
8 File Name: 15.5.4.5.1.js |
|
9 ECMA Section: 15.5.4.5 String.prototype.charCodeAt(pos) |
|
10 Description: Returns a number (a nonnegative integer less than 2^16) |
|
11 representing the Unicode encoding of the character at |
|
12 position pos in this string. If there is no character |
|
13 at that position, the number is NaN. |
|
14 |
|
15 When the charCodeAt method is called with one argument |
|
16 pos, the following steps are taken: |
|
17 1. Call ToString, giving it the theis value as its |
|
18 argument |
|
19 2. Call ToInteger(pos) |
|
20 3. Compute the number of characters in result(1). |
|
21 4. If Result(2) is less than 0 or is not less than |
|
22 Result(3), return NaN. |
|
23 5. Return a value of Number type, of positive sign, whose |
|
24 magnitude is the Unicode encoding of one character |
|
25 from result 1, namely the characer at position Result |
|
26 (2), where the first character in Result(1) is |
|
27 considered to be at position 0. |
|
28 |
|
29 Note that the charCodeAt function is intentionally |
|
30 generic; it does not require that its this value be a |
|
31 String object. Therefore it can be transferred to other |
|
32 kinds of objects for use as a method. |
|
33 |
|
34 Author: christine@netscape.com |
|
35 Date: 2 october 1997 |
|
36 */ |
|
37 var SECTION = "15.5.4.5-1"; |
|
38 var VERSION = "ECMA_1"; |
|
39 startTest(); |
|
40 var TITLE = "String.prototype.charCodeAt"; |
|
41 |
|
42 writeHeaderToLog( SECTION + " "+ TITLE); |
|
43 |
|
44 var TEST_STRING = new String( " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" ); |
|
45 |
|
46 for ( j = 0, i = 0x0020; i < 0x007e; i++, j++ ) { |
|
47 new TestCase( SECTION, "TEST_STRING.charCodeAt("+j+")", i, TEST_STRING.charCodeAt( j ) ); |
|
48 } |
|
49 |
|
50 new TestCase( SECTION, 'TEST_STRING.charCodeAt('+i+')', NaN, TEST_STRING.charCodeAt( i ) ); |
|
51 |
|
52 |
|
53 test(); |