This commit is contained in:
Lyza Danger Gardner 2017-06-29 11:10:43 -04:00 committed by Rick Waldron
parent e6712e0d16
commit e26c66bfff
59 changed files with 195 additions and 79 deletions

View File

@ -3,6 +3,8 @@
/*---
es5id: 15.1.2.2-2-1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: >
pareseInt - 'S' is the empty string when inputString does not
contain any such characters

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToString
es5id: 15.1.2.2_A1_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for boolean primitive
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToString
es5id: 15.1.2.2_A1_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for number primitive
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToString
es5id: 15.1.2.2_A1_T3
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for undefined and null
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToString
es5id: 15.1.2.2_A1_T4
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for Boolean object
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToString
es5id: 15.1.2.2_A1_T5
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for Number object
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToString
es5id: 15.1.2.2_A1_T6
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for String object
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToString
es5id: 15.1.2.2_A1_T7
es6id: 18.2.5
esid: sec-parseint-string-radix
description: If Type(value) is Object, evaluate ToPrimitive(value, String)
---*/
@ -15,7 +17,7 @@ assert.sameValue(parseInt(object), NaN, "{valueOf: function() {return 1}}");
var object = {valueOf: function() {return 1}, toString: function() {return 0}};
if (parseInt(object) !== 0) {
$ERROR('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; parseInt(object) === 0. Actual: ' + (parseInt(object)));
}
}
//CHECK#3
var object = {valueOf: function() {return 1}, toString: function() {return {}}};
@ -55,11 +57,11 @@ try {
var object = {valueOf: function() {return 1}, toString: function() {throw "error"}};
parseInt(object);
$ERROR('#7.1: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; parseInt(object) throw "error". Actual: ' + (parseInt(object)));
}
}
catch (e) {
if (e !== "error") {
$ERROR('#7.2: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; parseInt(object) throw "error". Actual: ' + (e));
}
}
}
//CHECK#8
@ -67,9 +69,9 @@ try {
var object = {valueOf: function() {return {}}, toString: function() {return {}}};
parseInt(object);
$ERROR('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; parseInt(object) throw TypeError. Actual: ' + (parseInt(object)));
}
}
catch (e) {
if ((e instanceof TypeError) !== true) {
$ERROR('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; parseInt(object) throw TypeError. Actual: ' + (e));
}
}
}

View File

@ -4,6 +4,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: TAB (U+0009)"
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T10
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: USP"
---*/

View File

@ -2,6 +2,8 @@
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 15.1.2.2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: >
Leading U+180E is not recognized as whitespace

View File

@ -4,6 +4,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: SP (U+0020)"
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T3
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: NBSB (U+00A0)"
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T4
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: FF (U+000C)"
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T5
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: VT (U+000B)"
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T6
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: CR (U+000D)"
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T7
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: LF (U+000A)"
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T8
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: LS (U+2028)"
---*/

View File

@ -3,7 +3,8 @@
/*---
info: Operator remove leading StrWhiteSpaceChar
es5id: 15.1.2.2_A2_T9
es6id: 18.2.5
esid: sec-parseint-string-radix
description: "StrWhiteSpaceChar :: PS (U+2029)"
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToNumber
es5id: 15.1.2.2_A3.1_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for boolean primitive
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToNumber
es5id: 15.1.2.2_A3.1_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for string primitive
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToNumber
es5id: 15.1.2.2_A3.1_T3
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for undefined and null
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToNumber
es5id: 15.1.2.2_A3.1_T4
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for Boolean object
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToNumber
es5id: 15.1.2.2_A3.1_T5
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking for Number object
---*/

View File

@ -5,6 +5,8 @@
info: Operator use ToNumber
es5id: 15.1.2.2_A3.1_T6
description: Checking for String object
es6id: 18.2.5
esid: sec-parseint-string-radix
---*/
//CHECK#1

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToNumber
es5id: 15.1.2.2_A3.1_T7
es6id: 18.2.5
esid: sec-parseint-string-radix
description: If Type(value) is Object, evaluate ToPrimitive(value, Number)
---*/
@ -17,7 +19,7 @@ if (parseInt("11", object) !== parseInt("11", 2)) {
var object = {valueOf: function() {return 2}, toString: function() {return 1}};
if (parseInt("11", object) !== parseInt("11", 2)) {
$ERROR('#2: var object = {valueOf: function() {return 2}, toString: function() {return 1}}; parseInt("11", object) === parseInt("11", 2). Actual: ' + (parseInt("11", object)));
}
}
//CHECK#3
var object = {valueOf: function() {return 2}, toString: function() {return {}}};
@ -57,11 +59,11 @@ try {
var object = {valueOf: function() {throw "error"}, toString: function() {return 2}};
parseInt("11", object);
$ERROR('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return 2}}; parseInt("11", object) throw "error". Actual: ' + (parseInt("11", object)));
}
}
catch (e) {
if (e !== "error") {
$ERROR('#7.2: var object = {valueOf: function() {throw "error"}, toString: function() {return 2}}; parseInt("11", object) throw "error". Actual: ' + (e));
}
}
}
//CHECK#8
@ -69,9 +71,9 @@ try {
var object = {valueOf: function() {return {}}, toString: function() {return {}}};
parseInt("11", object);
$ERROR('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; parseInt("11", object) throw TypeError. Actual: ' + (parseInt("11", object)));
}
}
catch (e) {
if ((e instanceof TypeError) !== true) {
$ERROR('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; parseInt("11", object) throw TypeError. Actual: ' + (e));
}
}
}

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToInt32
es5id: 15.1.2.2_A3.2_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: If radix is NaN, +0, -0, +Infinity, -Infinity, return radix = +0
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToInt32
es5id: 15.1.2.2_A3.2_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: ToInt32 use floor
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Operator use ToInt32
es5id: 15.1.2.2_A3.2_T3
es6id: 18.2.5
esid: sec-parseint-string-radix
description: ToInt32 use modulo
---*/

View File

@ -4,68 +4,70 @@
/*---
info: If R = 0 or R = undefined, then R = 10
es5id: 15.1.2.2_A4.1_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: R = 0
---*/
//CHECK#0
if (parseInt("0", 0) !== parseInt("0", 10)) {
$ERROR('#0: parseInt("0", 0) === parseInt("0", 10). Actual: ' + (parseInt("0", 0)));
}
}
//CHECK#1
if (parseInt("1", 0) !== parseInt("1", 10)) {
$ERROR('#1: parseInt("1", 0) === parseInt("01", 10). Actual: ' + (parseInt("1", 0)));
}
}
//CHECK#2
if (parseInt("2", 0) !== parseInt("2", 10)) {
$ERROR('#2: parseInt("2", 0) === parseInt("2", 10). Actual: ' + (parseInt("2", 0)));
}
}
//CHECK#3
if (parseInt("3", 0) !== parseInt("3", 10)) {
$ERROR('#3: parseInt("3", 0) === parseInt("3", 10). Actual: ' + (parseInt("3", 0)));
}
}
//CHECK#4
if (parseInt("4", 0) !== parseInt("4", 10)) {
$ERROR('#4: parseInt("4", 0) === parseInt(4", 10). Actual: ' + (parseInt("4", 0)));
}
}
//CHECK#5
if (parseInt("5", 0) !== parseInt("5", 10)) {
$ERROR('#5: parseInt("5", 0) === parseInt("5", 10). Actual: ' + (parseInt("5", 0)));
}
}
//CHECK#6
if (parseInt("6", 0) !== parseInt("6", 10)) {
$ERROR('#6: parseInt("6", 0) === parseInt("6", 10). Actual: ' + (parseInt("6", 0)));
}
}
//CHECK#7
if (parseInt("7", 0) !== parseInt("7", 10)) {
$ERROR('#7: parseInt("7", 0) === parseInt("7", 10). Actual: ' + (parseInt("7", 0)));
}
}
//CHECK#8
if (parseInt("8", 0) !== parseInt("8", 10)) {
$ERROR('#8: parseInt("8", 0) === parseInt("8", 10). Actual: ' + (parseInt("8", 0)));
}
}
//CHECK#9
if (parseInt("9", 0) !== parseInt("9", 10)) {
$ERROR('#9: parseInt("9", 0) === parseInt("9", 10). Actual: ' + (parseInt("9", 0)));
}
}
//CHECK#10
if (parseInt("10", 0) !== parseInt("10", 10)) {
$ERROR('#10: parseInt("10", 0) === parseInt("10", 10). Actual: ' + (parseInt("10", 0)));
}
}
//CHECK#11
if (parseInt("11", 0) !== parseInt("11", 10)) {
$ERROR('#11: parseInt("11", 0) === parseInt("11", 10). Actual: ' + (parseInt("11", 0)));
}
}
//CHECK#12
if (parseInt("9999", 0) !== parseInt("9999", 10)) {

View File

@ -4,68 +4,70 @@
/*---
info: If R = 0 or R = undefined, then R = 10
es5id: 15.1.2.2_A4.1_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: R = undefined
---*/
//CHECK#0
if (parseInt("0") !== parseInt("0", 10)) {
$ERROR('#0: parseInt("0") === parseInt("0", 10). Actual: ' + (parseInt("0")));
}
}
//CHECK#1
if (parseInt("1") !== parseInt("1", 10)) {
$ERROR('#1: parseInt("1") === parseInt("01", 10). Actual: ' + (parseInt("1")));
}
}
//CHECK#2
if (parseInt("2") !== parseInt("2", 10)) {
$ERROR('#2: parseInt("2") === parseInt("2", 10). Actual: ' + (parseInt("2")));
}
}
//CHECK#3
if (parseInt("3") !== parseInt("3", 10)) {
$ERROR('#3: parseInt("3") === parseInt("3", 10). Actual: ' + (parseInt("3")));
}
}
//CHECK#4
if (parseInt("4") !== parseInt("4", 10)) {
$ERROR('#4: parseInt("4") === parseInt(4", 10). Actual: ' + (parseInt("4")));
}
}
//CHECK#5
if (parseInt("5") !== parseInt("5", 10)) {
$ERROR('#5: parseInt("5") === parseInt("5", 10). Actual: ' + (parseInt("5")));
}
}
//CHECK#6
if (parseInt("6") !== parseInt("6", 10)) {
$ERROR('#6: parseInt("6") === parseInt("6", 10). Actual: ' + (parseInt("6")));
}
}
//CHECK#7
if (parseInt("7") !== parseInt("7", 10)) {
$ERROR('#7: parseInt("7") === parseInt("7", 10). Actual: ' + (parseInt("7")));
}
}
//CHECK#8
if (parseInt("8") !== parseInt("8", 10)) {
$ERROR('#8: parseInt("8") === parseInt("8", 10). Actual: ' + (parseInt("8")));
}
}
//CHECK#9
if (parseInt("9") !== parseInt("9", 10)) {
$ERROR('#9: parseInt("9") === parseInt("9", 10). Actual: ' + (parseInt("9")));
}
}
//CHECK#10
if (parseInt("10") !== parseInt("10", 10)) {
$ERROR('#10: parseInt("10") === parseInt("10", 10). Actual: ' + (parseInt("10")));
}
}
//CHECK#11
if (parseInt("11") !== parseInt("11", 10)) {
$ERROR('#11: parseInt("11") === parseInt("11", 10). Actual: ' + (parseInt("11")));
}
}
//CHECK#12
if (parseInt("9999") !== parseInt("9999", 10)) {

View File

@ -4,6 +4,8 @@
/*---
info: If R < 2 or R > 36, then return NaN
es5id: 15.1.2.2_A4.2_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: R = 1
---*/

View File

@ -4,6 +4,8 @@
/*---
info: If R < 2 or R > 36, then return NaN
es5id: 15.1.2.2_A4.2_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: R = 37
---*/

View File

@ -8,6 +8,8 @@ info: >
when the number begins with the character pairs 0x or 0X, in which
case a radix of 16 is assumed."
es5id: 15.1.2.2_A5.1_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Check if parseInt still accepts octal
---*/

View File

@ -6,6 +6,8 @@ info: >
If the length of S is at least 2 and the first two characters of S
are either 0x or 0X, then remove the first two characters from S and let R = 16
es5id: 15.1.2.2_A5.2_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: ": 0x"
---*/

View File

@ -6,6 +6,8 @@ info: >
If the length of S is at least 2 and the first two characters of S
are either 0x or 0X, then remove the first two characters from S and let R = 16
es5id: 15.1.2.2_A5.2_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: ": 0X"
---*/

View File

@ -7,6 +7,8 @@ info: >
then let Z be the substring of S consisting of all characters before
the first such character; otherwise, let Z be S
es5id: 15.1.2.2_A6.1_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test. R in [2, 36]
---*/

View File

@ -7,6 +7,8 @@ info: >
then let Z be the substring of S consisting of all characters before
the first such character; otherwise, let Z be S
es5id: 15.1.2.2_A6.1_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test. Radix-R notation in [0..9, A-Z]
---*/

View File

@ -7,6 +7,8 @@ info: >
then let Z be the substring of S consisting of all characters before
the first such character; otherwise, let Z be S
es5id: 15.1.2.2_A6.1_T3
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test. Radix-R notation in [0..9, a-z]
---*/

View File

@ -7,6 +7,8 @@ info: >
then let Z be the substring of S consisting of all characters before
the first such character; otherwise, let Z be S
es5id: 15.1.2.2_A6.1_T4
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test. Radix-R notation in [0..9, A-Z]
---*/

View File

@ -7,6 +7,8 @@ info: >
then let Z be the substring of S consisting of all characters before
the first such character; otherwise, let Z be S
es5id: 15.1.2.2_A6.1_T5
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test. Radix-R notation in [0..9, a-z]
---*/

View File

@ -7,48 +7,50 @@ info: >
then let Z be the substring of S consisting of all characters before
the first such character; otherwise, let Z be S
es5id: 15.1.2.2_A6.1_T6
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test. Radix-R notation in [0..9]
---*/
//CHECK#2
if (parseInt("0123456789", 2) !== 1) {
$ERROR('#2: parseInt("0123456789", 2) === 1. Actual: ' + (parseInt("0123456789", 2)));
}
}
//CHECK#3
if (parseInt("01234567890", 3) !== 5) {
$ERROR('#3: parseInt("01234567890", 3) === 5. Actual: ' + (parseInt("01234567890", 3)));
}
}
//CHECK#4
if (parseInt("01234567890", 4) !== 27) {
$ERROR('#4: parseInt("01234567890", 4) === 27. Actual: ' + (parseInt("01234567890", 4)));
}
}
//CHECK#5
if (parseInt("01234567890", 5) !== 194) {
$ERROR('#5: parseInt("01234567890", 5) === 194. Actual: ' + (parseInt("01234567890", 5)));
}
}
//CHECK#6
if (parseInt("01234567890", 6) !== 1865) {
$ERROR('#6: parseInt("01234567890", 6) === 1865. Actual: ' + (parseInt("01234567890", 6)));
}
}
//CHECK#7
if (parseInt("01234567890", 7) !== 22875) {
$ERROR('#7: parseInt("01234567890", 7) === 22875. Actual: ' + (parseInt("01234567890", 7)));
}
}
//CHECK#8
if (parseInt("01234567890", 8) !== 342391) {
$ERROR('#8: parseInt("01234567890", 8) === 342391. Actual: ' + (parseInt("01234567890", 8)));
}
}
//CHECK#9
if (parseInt("01234567890", 9) !== 6053444) {
$ERROR('#9: parseInt("01234567890", 9) === 6053444. Actual: ' + (parseInt("01234567890", 9)));
}
}
//CHECK#10
if (parseInt("01234567890", 10) !== Number(1234567890)) {

View File

@ -4,6 +4,8 @@
/*---
info: If Z is empty, return NaN
es5id: 15.1.2.2_A7.1_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test. R in [2, 36]
---*/

View File

@ -4,6 +4,8 @@
/*---
info: If Z is empty, return NaN
es5id: 15.1.2.2_A7.1_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: x is not a radix-R digit
---*/

View File

@ -8,6 +8,8 @@ info: >
letters A-Z and a-z for digits with values 10 through 35.
Compute the number value for Result(16)
es5id: 15.1.2.2_A7.2_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test. Check algorithm
---*/
@ -16,21 +18,21 @@ var R_digit1 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D",
var R_digit2 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
for (var i = 2; i <= 36; i++) {
for (var j = 0; j < 10; j++) {
var str = "";
var str = "";
var num = 0;
var pow = 1;
var k0 = Math.max(2, i - j);
for (var k = k0; k <= i; k++) {
if (k % 2 === 0) {
for (var k = k0; k <= i; k++) {
if (k % 2 === 0) {
str = str + R_digit1[k - 2];
} else {
} else {
str = str + R_digit2[k - 2];
}
num = num + (i + (k0 - k) - 1) * pow;
pow = pow * i;
}
if (parseInt(str, i) !== num) {
$ERROR('#' + i + '.' + j + ' : ');
pow = pow * i;
}
}
if (parseInt(str, i) !== num) {
$ERROR('#' + i + '.' + j + ' : ');
}
}
}

View File

@ -8,6 +8,8 @@ info: >
letters A-Z and a-z for digits with values 10 through 35.
Compute the number value for Result(16)
es5id: 15.1.2.2_A7.2_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking algorithm for R = 2
---*/

View File

@ -8,6 +8,8 @@ info: >
letters A-Z and a-z for digits with values 10 through 35.
Compute the number value for Result(16)
es5id: 15.1.2.2_A7.2_T3
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking algorithm for R = 16
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Return sign * Result(17)
es5id: 15.1.2.2_A7.3_T1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test. Check algorithm
---*/
@ -12,26 +14,26 @@ var R_digit1 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D",
var R_digit2 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
for (var i = 2; i <= 36; i++) {
for (var j = 0; j < 10; j++) {
var str = "+";
var str = "+";
var sign = 1;
if (j % 2 !== 0) {
if (j % 2 !== 0) {
str = "-";
sign= -1;
}
}
var num = 0;
var pow = 1;
var k0 = Math.max(2, i - j);
for (var k = k0; k <= i; k++) {
if (k % 2 === 0) {
for (var k = k0; k <= i; k++) {
if (k % 2 === 0) {
str = str + R_digit1[k - 2];
} else {
} else {
str = str + R_digit2[k - 2];
}
num = num + (i + (k0 - k) - 1) * pow;
pow = pow * i;
}
if (parseInt(str, i) !== num * sign) {
$ERROR('#' + i + '.' + j + ' : ');
pow = pow * i;
}
}
if (parseInt(str, i) !== num * sign) {
$ERROR('#' + i + '.' + j + ' : ');
}
}
}

View File

@ -4,6 +4,8 @@
/*---
info: Return sign * Result(17)
es5id: 15.1.2.2_A7.3_T2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking algorithm for R = 2
---*/

View File

@ -4,6 +4,8 @@
/*---
info: Return sign * Result(17)
es5id: 15.1.2.2_A7.3_T3
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking algorithm for R = 10
---*/

View File

@ -8,6 +8,8 @@ info: >
of the notation of an decimal literal, and no indication is given that any such
characters were ignored.
es5id: 15.1.2.2_A8
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Complex test without eval
includes: [decimalToHexString.js]
---*/
@ -17,33 +19,33 @@ var errorCount = 0;
var count = 0;
var indexP;
var indexO = 0;
for (var index = 0; index <= 65535; index++) {
if ((index < 0x0030) || (index > 0x0039) &&
(index < 0x0041) || (index > 0x005A) &&
(index < 0x0061) || (index > 0x007A)) {
for (var index = 0; index <= 65535; index++) {
if ((index < 0x0030) || (index > 0x0039) &&
(index < 0x0041) || (index > 0x005A) &&
(index < 0x0061) || (index > 0x007A)) {
var hex = decimalToHexString(index);
if (parseInt("1Z" + String.fromCharCode(index), 36) !== 71) {
if (indexO === 0) {
if (parseInt("1Z" + String.fromCharCode(index), 36) !== 71) {
if (indexO === 0) {
indexO = index;
} else {
if ((index - indexP) !== 1) {
if ((index - indexP) !== 1) {
if ((indexP - indexO) !== 0) {
var hexP = decimalToHexString(indexP);
var hexO = decimalToHexString(indexO);
$ERROR('#' + hexO + '-' + hexP + ' ');
}
}
else {
var hexP = decimalToHexString(indexP);
$ERROR('#' + hexP + ' ');
}
}
indexO = index;
}
}
}
indexP = index;
errorCount++;
}
errorCount++;
}
count++;
}
}
}
if (errorCount > 0) {
@ -54,6 +56,6 @@ if (errorCount > 0) {
} else {
var hexP = decimalToHexString(indexP);
$ERROR('#' + hexP + ' ');
}
}
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
}

View File

@ -4,6 +4,8 @@
/*---
info: The length property of parseInt has the attribute DontEnum
es5id: 15.1.2.2_A9.1
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking use propertyIsEnumerable, for-in
---*/
@ -17,7 +19,7 @@ var result = true;
for (var p in parseInt){
if (p === "length") {
result = false;
}
}
}
if (result !== true) {

View File

@ -4,6 +4,8 @@
/*---
info: The length property of parseInt does not have the attribute DontDelete
es5id: 15.1.2.2_A9.2
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking use hasOwnProperty, delete
---*/

View File

@ -4,6 +4,8 @@
/*---
info: The length property of parseInt has the attribute ReadOnly
es5id: 15.1.2.2_A9.3
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking if varying the length property fails
includes: [propertyHelper.js]
---*/

View File

@ -4,6 +4,8 @@
/*---
info: The length property of parseInt is 2
es5id: 15.1.2.2_A9.4
es6id: 18.2.5
esid: sec-parseint-string-radix
description: parseInt.length === 2
---*/

View File

@ -4,6 +4,8 @@
/*---
info: The parseInt property has the attribute DontEnum
es5id: 15.1.2.2_A9.5
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking use propertyIsEnumerable, for-in
---*/
@ -17,7 +19,7 @@ var result = true;
for (var p in this){
if (p === "parseInt") {
result = false;
}
}
}
if (result !== true) {

View File

@ -4,6 +4,8 @@
/*---
info: The parseInt property has not prototype property
es5id: 15.1.2.2_A9.6
es6id: 18.2.5
esid: sec-parseint-string-radix
description: Checking parseInt.prototype
---*/

View File

@ -4,6 +4,8 @@
/*---
info: The parseInt property can't be used as constructor
es5id: 15.1.2.2_A9.7
es6id: 18.2.5
esid: sec-parseint-string-radix
description: >
If property does not implement the internal [[Construct]] method,
throw a TypeError exception

View File

@ -3,6 +3,7 @@
/*---
es6id: 18.2.5
esid: sec-parseint-string-radix
description: >
parseInt.name is "parseInt".
info: >