summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/parseInt
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /js/src/tests/test262/built-ins/parseInt
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/built-ins/parseInt')
-rw-r--r--js/src/tests/test262/built-ins/parseInt/15.1.2.2-2-1.js13
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T1.js13
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T2.js15
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T3.js13
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T4.js13
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T5.js20
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T6.js21
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T7.js129
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T1.js26
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10.js30
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js32
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T2.js24
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T3.js16
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T4.js16
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T5.js16
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T6.js16
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T7.js16
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T8.js16
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T9.js25
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T1.js15
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T2.js14
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T3.js17
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T4.js19
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T5.js21
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T6.js23
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T7.js139
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T1.js26
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T2.js26
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T3.js29
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T1.js24
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T2.js24
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T1.js23
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T2.js23
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.1_T1.js16
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T1.js36
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T2.js31
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T1.js18
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T2.js19
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T3.js19
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T4.js23
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T5.js23
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T6.js28
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T1.js15
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T2.js16
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T1.js36
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T2.js35
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T3.js80
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T1.js37
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T2.js36
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T3.js71
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A8.js60
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.1.js26
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.2.js17
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.3.js14
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.4.js12
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.5.js26
-rw-r--r--js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.6.js12
-rw-r--r--js/src/tests/test262/built-ins/parseInt/browser.js0
-rw-r--r--js/src/tests/test262/built-ins/parseInt/name.js28
-rw-r--r--js/src/tests/test262/built-ins/parseInt/not-a-constructor.js31
-rw-r--r--js/src/tests/test262/built-ins/parseInt/prop-desc.js18
-rw-r--r--js/src/tests/test262/built-ins/parseInt/shell.js52
62 files changed, 1728 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/parseInt/15.1.2.2-2-1.js b/js/src/tests/test262/built-ins/parseInt/15.1.2.2-2-1.js
new file mode 100644
index 0000000000..d259cb8b93
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/15.1.2.2-2-1.js
@@ -0,0 +1,13 @@
+// Copyright (c) 2012 Ecma International. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-parseint-string-radix
+description: >
+ parseInt - 'S' is the empty string when inputString does not
+ contain any such characters
+---*/
+
+assert.sameValue(parseInt(""), NaN, 'parseInt("") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T1.js
new file mode 100644
index 0000000000..acbaa83a0f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T1.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToString
+esid: sec-parseint-string-radix
+description: Checking for boolean primitive
+---*/
+
+assert.sameValue(parseInt(true), NaN, 'parseInt(true) must return NaN');
+assert.sameValue(parseInt(false), NaN, 'parseInt(false) must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T2.js
new file mode 100644
index 0000000000..67610f34dc
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToString
+esid: sec-parseint-string-radix
+description: Checking for number primitive
+---*/
+
+assert.sameValue(parseInt(-1), parseInt("-1"), 'parseInt(-1) must return the same value returned by parseInt("-1")');
+assert.sameValue(String(parseInt(Infinity)), "NaN", 'String(parseInt(Infinity)) must return "NaN"');
+assert.sameValue(String(parseInt(NaN)), "NaN", 'String(parseInt(NaN)) must return "NaN"');
+assert.sameValue(parseInt(-0), 0, 'parseInt(-0) must return 0');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T3.js
new file mode 100644
index 0000000000..c291124ad0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T3.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToString
+esid: sec-parseint-string-radix
+description: Checking for undefined and null
+---*/
+
+assert.sameValue(parseInt(undefined), NaN, 'parseInt(undefined) must return NaN');
+assert.sameValue(parseInt(null), NaN, 'parseInt(null) must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T4.js
new file mode 100644
index 0000000000..90cd08c981
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T4.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToString
+esid: sec-parseint-string-radix
+description: Checking for Boolean object
+---*/
+
+assert.sameValue(parseInt(new Boolean(true)), NaN, 'parseInt(new Boolean(true)) must return NaN');
+assert.sameValue(parseInt(new Boolean(false)), NaN, 'parseInt(new Boolean(false)) must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T5.js
new file mode 100644
index 0000000000..48d8ae51bc
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T5.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToString
+esid: sec-parseint-string-radix
+description: Checking for Number object
+---*/
+
+assert.sameValue(parseInt(new Number(-1)), parseInt("-1"), 'parseInt(new Number(-1)) must return the same value returned by parseInt("-1")');
+
+assert.sameValue(
+ String(parseInt(new Number(Infinity))),
+ "NaN",
+ 'String(parseInt(new Number(Infinity))) must return "NaN"'
+);
+
+assert.sameValue(String(parseInt(new Number(NaN))), "NaN", 'String(parseInt(new Number(NaN))) must return "NaN"');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T6.js
new file mode 100644
index 0000000000..3ec5a743a3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T6.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToString
+esid: sec-parseint-string-radix
+description: Checking for String object
+---*/
+
+assert.sameValue(parseInt(new String("-1")), parseInt("-1"), 'parseInt(new String("-1")) must return the same value returned by parseInt("-1")');
+
+assert.sameValue(
+ String(parseInt(new String("Infinity"))),
+ "NaN",
+ 'String(parseInt(new String("Infinity"))) must return "NaN"'
+);
+
+assert.sameValue(String(parseInt(new String("NaN"))), "NaN", 'String(parseInt(new String("NaN"))) must return "NaN"');
+assert.sameValue(String(parseInt(new String("false"))), "NaN", 'String(parseInt(new String("false"))) must return "NaN"');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T7.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T7.js
new file mode 100644
index 0000000000..7a66642cc8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A1_T7.js
@@ -0,0 +1,129 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToString
+esid: sec-parseint-string-radix
+description: If Type(value) is Object, evaluate ToPrimitive(value, String)
+---*/
+
+//CHECK#1
+var object = {
+ valueOf: function() {
+ return 1
+ }
+};
+assert.sameValue(parseInt(object), NaN, 'parseInt({valueOf: function() {return 1}}) must return NaN');
+
+//CHECK#2
+var object = {
+ valueOf: function() {
+ return 1
+ },
+ toString: function() {
+ return 0
+ }
+};
+
+assert.sameValue(
+ parseInt(object),
+ 0,
+ 'parseInt({valueOf: function() {return 1}, toString: function() {return 0}}) must return 0'
+);
+
+//CHECK#3
+var object = {
+ valueOf: function() {
+ return 1
+ },
+ toString: function() {
+ return {}
+ }
+};
+
+assert.sameValue(
+ parseInt(object),
+ 1,
+ 'parseInt({valueOf: function() {return 1}, toString: function() {return {}}}) must return 1'
+);
+
+//CHECK#4
+try {
+ var object = {
+ valueOf: function() {
+ throw "error"
+ },
+ toString: function() {
+ return 1
+ }
+ };
+
+ assert.sameValue(
+ parseInt(object),
+ 1,
+ 'parseInt({valueOf: function() {throw \\"error\\"}, toString: function() {return 1}}) must return 1'
+ );
+}
+catch (e) {
+ assert.notSameValue(e, "error", 'The value of `e` is not "error"');
+}
+
+//CHECK#5
+var object = {
+ toString: function() {
+ return 1
+ }
+};
+assert.sameValue(parseInt(object), 1, 'parseInt({toString: function() {return 1}}) must return 1');
+
+//CHECK#6
+var object = {
+ valueOf: function() {
+ return {}
+ },
+ toString: function() {
+ return 1
+ }
+}
+
+assert.sameValue(
+ parseInt(object),
+ 1,
+ 'parseInt({valueOf: function() {return {}}, toString: function() {return 1}}) must return 1'
+);
+
+//CHECK#7
+try {
+ var object = {
+ valueOf: function() {
+ return 1
+ },
+ toString: function() {
+ throw "error"
+ }
+ };
+ parseInt(object);
+ Test262Error.thrower('#7.1: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; parseInt(object) throw "error". Actual: ' + (parseInt(object)));
+}
+catch (e) {
+ assert.sameValue(e, "error", 'The value of `e` is "error"');
+}
+
+//CHECK#8
+try {
+ var object = {
+ valueOf: function() {
+ return {}
+ },
+ toString: function() {
+ return {}
+ }
+ };
+ parseInt(object);
+ Test262Error.thrower('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; parseInt(object) throw TypeError. Actual: ' + (parseInt(object)));
+}
+catch (e) {
+ assert.sameValue(e instanceof TypeError, true, 'The result of `(e instanceof TypeError)` is true');
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T1.js
new file mode 100644
index 0000000000..e0051362d5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T1.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: TAB (U+0009)"
+---*/
+
+assert.sameValue(parseInt("\u00091"), parseInt("1"), 'parseInt("\\u00091") must return the same value returned by parseInt("1")');
+
+assert.sameValue(parseInt("\u0009\u0009-1"), parseInt("-1"), 'parseInt("\\u0009\\u0009-1") must return the same value returned by parseInt("-1")');
+
+assert.sameValue(parseInt(" 1"), parseInt("1"), 'parseInt(" 1") must return the same value returned by parseInt("1")');
+
+assert.sameValue(parseInt(" 1"), parseInt("1"), 'parseInt(" 1") must return the same value returned by parseInt("1")');
+
+assert.sameValue(
+ parseInt(" \u0009 \u0009-1"),
+ parseInt("-1"),
+ 'parseInt(" \\u0009 \\u0009-1") must return the same value returned by parseInt("-1")'
+);
+
+assert.sameValue(parseInt("\u0009"), NaN, 'parseInt("\\u0009") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10.js
new file mode 100644
index 0000000000..5a137aeacb
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: USP"
+---*/
+
+var uspU = ["\u1680", "\u2000", "\u2001", "\u2002", "\u2003", "\u2004", "\u2005", "\u2006", "\u2007", "\u2008", "\u2009", "\u200A", "\u202F", "\u205F", "\u3000"];
+var uspS = ["1680", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "200A", "202F", "205F", "3000"];
+
+for (var index = 0; index < uspU.length; index++) {
+ assert.sameValue(
+ parseInt(uspU[index] + "1"),
+ parseInt("1"),
+ 'parseInt(uspU[index] + "1") must return the same value returned by parseInt("1")'
+ );
+
+ assert.sameValue(
+ parseInt(uspU[index] + uspU[index] + uspU[index] + "1"),
+ parseInt("1"),
+ 'parseInt(uspU[index] + uspU[index] + uspU[index] + "1") must return the same value returned by parseInt("1")'
+ );
+
+ let n = parseInt(uspU[index]);
+ assert(n !== n, 'The result of `(n !== n)` is true');
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js
new file mode 100644
index 0000000000..b25a4c6310
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2016 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-parseint-string-radix
+description: >
+ Leading U+180E is not recognized as whitespace
+info: |
+ 18.2.5 parseInt (string , radix)
+
+ ...
+ 3. Let S be a newly created substring of inputString consisting of the
+ first code unit that is not a StrWhiteSpaceChar and all code units
+ following that code unit. (In other words, remove leading white
+ space.) If inputString does not contain any such code unit, let S
+ be the empty string
+ ...
+ 13. If S contains a code unit that is not a radix-R digit, let Z be
+ the substring of S consisting of all code units before the first
+ such code unit; otherwise, let Z be S.
+ 14. If Z is empty, return NaN.
+ ...
+features: [u180e]
+---*/
+
+var mongolianVowelSeparator = "\u180E";
+
+assert.sameValue(parseInt(mongolianVowelSeparator + "1"), NaN, 'parseInt(mongolianVowelSeparator + "1") must return NaN');
+assert.sameValue(parseInt(mongolianVowelSeparator + mongolianVowelSeparator + mongolianVowelSeparator + "1"), NaN, 'parseInt( mongolianVowelSeparator + mongolianVowelSeparator + mongolianVowelSeparator + "1" ) must return NaN');
+assert.sameValue(parseInt(mongolianVowelSeparator), NaN, 'parseInt("\\"\\\\u180E\\"") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T2.js
new file mode 100644
index 0000000000..8b98a4e845
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T2.js
@@ -0,0 +1,24 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: SP (U+0020)"
+---*/
+
+assert.sameValue(parseInt("\u00201"), parseInt("1"), 'parseInt("\\u00201") must return the same value returned by parseInt("1")');
+assert.sameValue(parseInt("\u0020\u0020-1"), parseInt("-1"), 'parseInt("\\u0020\\u0020-1") must return the same value returned by parseInt("-1")');
+assert.sameValue(parseInt(" 1"), parseInt("1"), 'parseInt(" 1") must return the same value returned by parseInt("1")');
+assert.sameValue(parseInt(" 1"), parseInt("1"), 'parseInt(" 1") must return the same value returned by parseInt("1")');
+
+assert.sameValue(
+ parseInt(" \u0020 \u0020-1"),
+ parseInt("-1"),
+ 'parseInt(" \\u0020 \\u0020-1") must return the same value returned by parseInt("-1")'
+);
+
+//CHECK#6
+assert.sameValue(parseInt("\u0020"), NaN, 'parseInt("\\u0020") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T3.js
new file mode 100644
index 0000000000..87eea3876a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T3.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: NBSB (U+00A0)"
+---*/
+
+assert.sameValue(parseInt("\u00A01"), parseInt("1"), 'parseInt("\\u00A01") must return the same value returned by parseInt("1")');
+assert.sameValue(parseInt("\u00A0\u00A0-1"), parseInt("-1"), 'parseInt("\\u00A0\\u00A0-1") must return the same value returned by parseInt("-1")');
+
+//CHECK#3
+assert.sameValue(parseInt("\u00A0"), NaN, 'parseInt("\\u00A0") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T4.js
new file mode 100644
index 0000000000..e9e4897390
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T4.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: FF (U+000C)"
+---*/
+
+assert.sameValue(parseInt("\u000C1"), parseInt("1"), 'parseInt("\\u000C1") must return the same value returned by parseInt("1")');
+assert.sameValue(parseInt("\u000C\u000C-1"), parseInt("-1"), 'parseInt("\\u000C\\u000C-1") must return the same value returned by parseInt("-1")');
+
+//CHECK#3
+assert.sameValue(parseInt("\u000C"), NaN, 'parseInt("\\u000C") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T5.js
new file mode 100644
index 0000000000..5a85b23d0f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T5.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: VT (U+000B)"
+---*/
+
+assert.sameValue(parseInt("\u000B1"), parseInt("1"), 'parseInt("\\u000B1") must return the same value returned by parseInt("1")');
+assert.sameValue(parseInt("\u000B\u000B-1"), parseInt("-1"), 'parseInt("\\u000B\\u000B-1") must return the same value returned by parseInt("-1")');
+
+//CHECK#3
+assert.sameValue(parseInt("\u000B"), NaN, 'parseInt("\\u000B") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T6.js
new file mode 100644
index 0000000000..509fb0672f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T6.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: CR (U+000D)"
+---*/
+
+assert.sameValue(parseInt("\u000D1"), parseInt("1"), 'parseInt("\\u000D1") must return the same value returned by parseInt("1")');
+assert.sameValue(parseInt("\u000D\u000D-1"), parseInt("-1"), 'parseInt("\\u000D\\u000D-1") must return the same value returned by parseInt("-1")');
+
+//CHECK#3
+assert.sameValue(parseInt("\u000D"), NaN, 'parseInt("\\u000D") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T7.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T7.js
new file mode 100644
index 0000000000..8ea26297ff
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T7.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: LF (U+000A)"
+---*/
+
+assert.sameValue(parseInt("\u000A1"), parseInt("1"), 'parseInt("\\u000A1") must return the same value returned by parseInt("1")');
+assert.sameValue(parseInt("\u000A\u000A-1"), parseInt("-1"), 'parseInt("\\u000A\\u000A-1") must return the same value returned by parseInt("-1")');
+
+//CHECK#3
+assert.sameValue(parseInt("\u000A"), NaN, 'parseInt("\\u000A") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T8.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T8.js
new file mode 100644
index 0000000000..37b13b0938
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T8.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: LS (U+2028)"
+---*/
+
+assert.sameValue(parseInt("\u20281"), parseInt("1"), 'parseInt("\\u20281") must return the same value returned by parseInt("1")');
+assert.sameValue(parseInt("\u2028\u2028-1"), parseInt("-1"), 'parseInt("\\u2028\\u2028-1") must return the same value returned by parseInt("-1")');
+
+//CHECK#3
+assert.sameValue(parseInt("\u2028"), NaN, 'parseInt("\\u2028") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T9.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T9.js
new file mode 100644
index 0000000000..d809b1cd38
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A2_T9.js
@@ -0,0 +1,25 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator remove leading StrWhiteSpaceChar
+esid: sec-parseint-string-radix
+description: "StrWhiteSpaceChar :: PS (U+2029)"
+---*/
+
+assert.sameValue(
+ parseInt("\u20291"),
+ parseInt("1"),
+ 'parseInt("\\u20291") must return the same value returned by parseInt("1")'
+);
+
+assert.sameValue(
+ parseInt("\u2029\u2029-1"),
+ parseInt("-1"),
+ 'parseInt("\\u2029\\u2029-1") must return the same value returned by parseInt("-1")'
+);
+
+//CHECK#3
+assert.sameValue(parseInt("\u2029"), NaN, 'parseInt("\\u2029") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T1.js
new file mode 100644
index 0000000000..3b830fa139
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToNumber
+esid: sec-parseint-string-radix
+description: Checking for boolean primitive
+---*/
+
+assert.sameValue(parseInt("11", false), parseInt("11", 10), 'parseInt("11", false) must return the same value returned by parseInt("11", 10)');
+
+//CHECK#2
+assert.sameValue(parseInt("11", true), NaN, 'parseInt("11", true) must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T2.js
new file mode 100644
index 0000000000..4d7d8e339b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T2.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToNumber
+esid: sec-parseint-string-radix
+description: Checking for string primitive
+---*/
+
+assert.sameValue(parseInt("11", "2"), parseInt("11", 2), 'parseInt("11", "2") must return the same value returned by parseInt("11", 2)');
+assert.sameValue(parseInt("11", "0"), parseInt("11", 10), 'parseInt("11", "0") must return the same value returned by parseInt("11", 10)');
+assert.sameValue(parseInt("11", ""), parseInt("11", 10), 'parseInt("11", "") must return the same value returned by parseInt("11", 10)');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T3.js
new file mode 100644
index 0000000000..95753742f2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T3.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToNumber
+esid: sec-parseint-string-radix
+description: Checking for undefined and null
+---*/
+
+assert.sameValue(
+ parseInt("11", undefined),
+ parseInt("11", 10),
+ 'parseInt("11", undefined) must return the same value returned by parseInt("11", 10)'
+);
+assert.sameValue(parseInt("11", null), parseInt("11", 10), 'parseInt("11", null) must return the same value returned by parseInt("11", 10)');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T4.js
new file mode 100644
index 0000000000..976cba3fb9
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T4.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToNumber
+esid: sec-parseint-string-radix
+description: Checking for Boolean object
+---*/
+
+assert.sameValue(
+ parseInt("11", new Boolean(false)),
+ parseInt("11", false),
+ 'parseInt("11", new Boolean(false)) must return the same value returned by parseInt("11", false)'
+);
+
+//CHECK#2
+assert.sameValue(parseInt("11", new Boolean(true)), NaN, 'parseInt("11", new Boolean(true)) must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T5.js
new file mode 100644
index 0000000000..cee375512d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T5.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+info: Operator use ToNumber
+esid: sec-parseint-string-radix
+description: Checking for Number object
+---*/
+
+assert.sameValue(
+ parseInt("11", new Number(2)),
+ parseInt("11", 2),
+ 'parseInt("11", new Number(2)) must return the same value returned by parseInt("11", 2)'
+);
+
+assert.sameValue(
+ parseInt("11", new Number(Infinity)),
+ parseInt("11", Infinity),
+ 'parseInt("11", new Number(Infinity)) must return the same value returned by parseInt("11", Infinity)'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T6.js
new file mode 100644
index 0000000000..54ba3b142f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T6.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToNumber
+es5id: 15.1.2.2_A3.1_T6
+description: Checking for String object
+esid: sec-parseint-string-radix
+---*/
+
+assert.sameValue(
+ parseInt("11", new String("2")),
+ parseInt("11", 2),
+ 'parseInt("11", new String("2")) must return the same value returned by parseInt("11", 2)'
+);
+
+assert.sameValue(
+ parseInt("11", new String("Infinity")),
+ parseInt("11", Infinity),
+ 'parseInt("11", new String("Infinity")) must return the same value returned by parseInt("11", Infinity)'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T7.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T7.js
new file mode 100644
index 0000000000..7fcf36d644
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.1_T7.js
@@ -0,0 +1,139 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToNumber
+esid: sec-parseint-string-radix
+description: If Type(value) is Object, evaluate ToPrimitive(value, Number)
+---*/
+
+//CHECK#1
+var object = {
+ valueOf: function() {
+ return 2
+ }
+};
+
+assert.sameValue(
+ parseInt("11", object),
+ parseInt("11", 2),
+ 'parseInt("11", {valueOf: function() {return 2}}) must return the same value returned by parseInt("11", 2)'
+);
+
+//CHECK#2
+var object = {
+ valueOf: function() {
+ return 2
+ },
+ toString: function() {
+ return 1
+ }
+};
+
+assert.sameValue(
+ parseInt("11", object),
+ parseInt("11", 2),
+ 'parseInt("11", {valueOf: function() {return 2}, toString: function() {return 1}}) must return the same value returned by parseInt("11", 2)'
+);
+
+//CHECK#3
+var object = {
+ valueOf: function() {
+ return 2
+ },
+ toString: function() {
+ return {}
+ }
+};
+
+assert.sameValue(
+ parseInt("11", object),
+ parseInt("11", 2),
+ 'parseInt("11", {valueOf: function() {return 2}, toString: function() {return {}}}) must return the same value returned by parseInt("11", 2)'
+);
+
+//CHECK#4
+try {
+ var object = {
+ valueOf: function() {
+ return 2
+ },
+ toString: function() {
+ throw "error"
+ }
+ };
+
+ assert.sameValue(
+ parseInt("11", object),
+ parseInt("11", 2),
+ 'parseInt( "11", {valueOf: function() {return 2}, toString: function() {throw \\"error\\"}} ) must return the same value returned by parseInt("11", 2)'
+ );
+}
+catch (e) {
+ assert.notSameValue(e, "error", 'The value of `e` is not "error"');
+}
+
+//CHECK#5
+var object = {
+ toString: function() {
+ return 2
+ }
+};
+
+assert.sameValue(
+ parseInt("11", object),
+ parseInt("11", 2),
+ 'parseInt("11", {toString: function() {return 2}}) must return the same value returned by parseInt("11", 2)'
+);
+
+//CHECK#6
+var object = {
+ valueOf: function() {
+ return {}
+ },
+ toString: function() {
+ return 2
+ }
+}
+
+assert.sameValue(
+ parseInt("11", object),
+ parseInt("11", 2),
+ 'parseInt("11", {valueOf: function() {return {}}, toString: function() {return 2}}) must return the same value returned by parseInt("11", 2)'
+);
+
+//CHECK#7
+try {
+ var object = {
+ valueOf: function() {
+ throw "error"
+ },
+ toString: function() {
+ return 2
+ }
+ };
+ parseInt("11", object);
+ Test262Error.thrower('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return 2}}; parseInt("11", object) throw "error". Actual: ' + (parseInt("11", object)));
+}
+catch (e) {
+ assert.sameValue(e, "error", 'The value of `e` is "error"');
+}
+
+//CHECK#8
+try {
+ var object = {
+ valueOf: function() {
+ return {}
+ },
+ toString: function() {
+ return {}
+ }
+ };
+ parseInt("11", object);
+ Test262Error.thrower('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; parseInt("11", object) throw TypeError. Actual: ' + (parseInt("11", object)));
+}
+catch (e) {
+ assert.sameValue(e instanceof TypeError, true, 'The result of `(e instanceof TypeError)` is true');
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T1.js
new file mode 100644
index 0000000000..ceb40d836f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T1.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToInt32
+esid: sec-parseint-string-radix
+description: If radix is NaN, +0, -0, +Infinity, -Infinity, return radix = +0
+---*/
+
+assert.sameValue(parseInt("11", NaN), parseInt("11", 10), 'parseInt("11", NaN) must return the same value returned by parseInt("11", 10)');
+assert.sameValue(parseInt("11", +0), parseInt("11", 10), 'parseInt("11", +0) must return the same value returned by parseInt("11", 10)');
+assert.sameValue(parseInt("11", -0), parseInt("11", 10), 'parseInt("11", -0) must return the same value returned by parseInt("11", 10)');
+
+assert.sameValue(
+ parseInt("11", Number.POSITIVE_INFINITY),
+ parseInt("11", 10),
+ 'parseInt("11", Number.POSITIVE_INFINITY) must return the same value returned by parseInt("11", 10)'
+);
+
+assert.sameValue(
+ parseInt("11", Number.NEGATIVE_INFINITY),
+ parseInt("11", 10),
+ 'parseInt("11", Number.NEGATIVE_INFINITY) must return the same value returned by parseInt("11", 10)'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T2.js
new file mode 100644
index 0000000000..cbfdf8119d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T2.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToInt32
+esid: sec-parseint-string-radix
+description: ToInt32 use floor
+---*/
+
+assert.sameValue(parseInt("11", 2.1), parseInt("11", 2), 'parseInt("11", 2.1) must return the same value returned by parseInt("11", 2)');
+assert.sameValue(parseInt("11", 2.5), parseInt("11", 2), 'parseInt("11", 2.5) must return the same value returned by parseInt("11", 2)');
+assert.sameValue(parseInt("11", 2.9), parseInt("11", 2), 'parseInt("11", 2.9) must return the same value returned by parseInt("11", 2)');
+
+assert.sameValue(
+ parseInt("11", 2.000000000001),
+ parseInt("11", 2),
+ 'parseInt("11", 2.000000000001) must return the same value returned by parseInt("11", 2)'
+);
+
+assert.sameValue(
+ parseInt("11", 2.999999999999),
+ parseInt("11", 2),
+ 'parseInt("11", 2.999999999999) must return the same value returned by parseInt("11", 2)'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T3.js
new file mode 100644
index 0000000000..21008b91ef
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A3.2_T3.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Operator use ToInt32
+esid: sec-parseint-string-radix
+description: ToInt32 use modulo
+---*/
+
+assert.sameValue(
+ parseInt("11", 4294967298),
+ parseInt("11", 2),
+ 'parseInt("11", 4294967298) must return the same value returned by parseInt("11", 2)'
+);
+assert.sameValue(
+ parseInt("11", 4294967296),
+ parseInt("11", 10),
+ 'parseInt("11", 4294967296) must return the same value returned by parseInt("11", 10)'
+);
+
+assert.sameValue(parseInt("11", -2147483650), NaN, 'parseInt("11", -2147483650) must return NaN');
+
+assert.sameValue(
+ parseInt("11", -4294967294),
+ parseInt("11", 2),
+ 'parseInt("11", -4294967294) must return the same value returned by parseInt("11", 2)'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T1.js
new file mode 100644
index 0000000000..188f895c95
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T1.js
@@ -0,0 +1,24 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: If R = 0 or R = undefined, then R = 10
+esid: sec-parseint-string-radix
+description: R = 0
+---*/
+
+assert.sameValue(parseInt("0", 0), parseInt("0", 10), 'parseInt("0", 0) must return the same value returned by parseInt("0", 10)');
+assert.sameValue(parseInt("1", 0), parseInt("1", 10), 'parseInt("1", 0) must return the same value returned by parseInt("1", 10)');
+assert.sameValue(parseInt("2", 0), parseInt("2", 10), 'parseInt("2", 0) must return the same value returned by parseInt("2", 10)');
+assert.sameValue(parseInt("3", 0), parseInt("3", 10), 'parseInt("3", 0) must return the same value returned by parseInt("3", 10)');
+assert.sameValue(parseInt("4", 0), parseInt("4", 10), 'parseInt("4", 0) must return the same value returned by parseInt("4", 10)');
+assert.sameValue(parseInt("5", 0), parseInt("5", 10), 'parseInt("5", 0) must return the same value returned by parseInt("5", 10)');
+assert.sameValue(parseInt("6", 0), parseInt("6", 10), 'parseInt("6", 0) must return the same value returned by parseInt("6", 10)');
+assert.sameValue(parseInt("7", 0), parseInt("7", 10), 'parseInt("7", 0) must return the same value returned by parseInt("7", 10)');
+assert.sameValue(parseInt("8", 0), parseInt("8", 10), 'parseInt("8", 0) must return the same value returned by parseInt("8", 10)');
+assert.sameValue(parseInt("9", 0), parseInt("9", 10), 'parseInt("9", 0) must return the same value returned by parseInt("9", 10)');
+assert.sameValue(parseInt("10", 0), parseInt("10", 10), 'parseInt("10", 0) must return the same value returned by parseInt("10", 10)');
+assert.sameValue(parseInt("11", 0), parseInt("11", 10), 'parseInt("11", 0) must return the same value returned by parseInt("11", 10)');
+assert.sameValue(parseInt("9999", 0), parseInt("9999", 10), 'parseInt("9999", 0) must return the same value returned by parseInt("9999", 10)');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T2.js
new file mode 100644
index 0000000000..9d09d91ead
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.1_T2.js
@@ -0,0 +1,24 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: If R = 0 or R = undefined, then R = 10
+esid: sec-parseint-string-radix
+description: R = undefined
+---*/
+
+assert.sameValue(parseInt("0"), parseInt("0", 10), 'parseInt("0") must return the same value returned by parseInt("0", 10)');
+assert.sameValue(parseInt("1"), parseInt("1", 10), 'parseInt("1") must return the same value returned by parseInt("1", 10)');
+assert.sameValue(parseInt("2"), parseInt("2", 10), 'parseInt("2") must return the same value returned by parseInt("2", 10)');
+assert.sameValue(parseInt("3"), parseInt("3", 10), 'parseInt("3") must return the same value returned by parseInt("3", 10)');
+assert.sameValue(parseInt("4"), parseInt("4", 10), 'parseInt("4") must return the same value returned by parseInt("4", 10)');
+assert.sameValue(parseInt("5"), parseInt("5", 10), 'parseInt("5") must return the same value returned by parseInt("5", 10)');
+assert.sameValue(parseInt("6"), parseInt("6", 10), 'parseInt("6") must return the same value returned by parseInt("6", 10)');
+assert.sameValue(parseInt("7"), parseInt("7", 10), 'parseInt("7") must return the same value returned by parseInt("7", 10)');
+assert.sameValue(parseInt("8"), parseInt("8", 10), 'parseInt("8") must return the same value returned by parseInt("8", 10)');
+assert.sameValue(parseInt("9"), parseInt("9", 10), 'parseInt("9") must return the same value returned by parseInt("9", 10)');
+assert.sameValue(parseInt("10"), parseInt("10", 10), 'parseInt("10") must return the same value returned by parseInt("10", 10)');
+assert.sameValue(parseInt("11"), parseInt("11", 10), 'parseInt("11") must return the same value returned by parseInt("11", 10)');
+assert.sameValue(parseInt("9999"), parseInt("9999", 10), 'parseInt("9999") must return the same value returned by parseInt("9999", 10)');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T1.js
new file mode 100644
index 0000000000..4e98632bb0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T1.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: If R < 2 or R > 36, then return NaN
+esid: sec-parseint-string-radix
+description: R = 1
+---*/
+
+assert.sameValue(parseInt("0", 1), NaN, 'parseInt("0", 1) must return NaN');
+assert.sameValue(parseInt("1", 1), NaN, 'parseInt("1", 1) must return NaN');
+assert.sameValue(parseInt("2", 1), NaN, 'parseInt("2", 1) must return NaN');
+assert.sameValue(parseInt("3", 1), NaN, 'parseInt("3", 1) must return NaN');
+assert.sameValue(parseInt("4", 1), NaN, 'parseInt("4", 1) must return NaN');
+assert.sameValue(parseInt("5", 1), NaN, 'parseInt("5", 1) must return NaN');
+assert.sameValue(parseInt("6", 1), NaN, 'parseInt("6", 1) must return NaN');
+assert.sameValue(parseInt("7", 1), NaN, 'parseInt("7", 1) must return NaN');
+assert.sameValue(parseInt("8", 1), NaN, 'parseInt("8", 1) must return NaN');
+assert.sameValue(parseInt("9", 1), NaN, 'parseInt("9", 1) must return NaN');
+assert.sameValue(parseInt("10", 1), NaN, 'parseInt("10", 1) must return NaN');
+assert.sameValue(parseInt("11", 1), NaN, 'parseInt("11", 1) must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T2.js
new file mode 100644
index 0000000000..82d2be2d51
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A4.2_T2.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: If R < 2 or R > 36, then return NaN
+esid: sec-parseint-string-radix
+description: R = 37
+---*/
+
+assert.sameValue(parseInt("0", 37), NaN, 'parseInt("0", 37) must return NaN');
+assert.sameValue(parseInt("1", 37), NaN, 'parseInt("1", 37) must return NaN');
+assert.sameValue(parseInt("2", 37), NaN, 'parseInt("2", 37) must return NaN');
+assert.sameValue(parseInt("3", 37), NaN, 'parseInt("3", 37) must return NaN');
+assert.sameValue(parseInt("4", 37), NaN, 'parseInt("4", 37) must return NaN');
+assert.sameValue(parseInt("5", 37), NaN, 'parseInt("5", 37) must return NaN');
+assert.sameValue(parseInt("6", 37), NaN, 'parseInt("6", 37) must return NaN');
+assert.sameValue(parseInt("7", 37), NaN, 'parseInt("7", 37) must return NaN');
+assert.sameValue(parseInt("8", 37), NaN, 'parseInt("8", 37) must return NaN');
+assert.sameValue(parseInt("9", 37), NaN, 'parseInt("9", 37) must return NaN');
+assert.sameValue(parseInt("10", 37), NaN, 'parseInt("10", 37) must return NaN');
+assert.sameValue(parseInt("11", 37), NaN, 'parseInt("11", 37) must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.1_T1.js
new file mode 100644
index 0000000000..4f093ab097
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.1_T1.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ parseInt is no longer allowed to treat a leading zero as indicating
+ octal. "If radix is undefined or 0, it is assumed to be 10 except
+ when the number begins with the character pairs 0x or 0X, in which
+ case a radix of 16 is assumed."
+esid: sec-parseint-string-radix
+description: Check if parseInt still accepts octal
+---*/
+
+assert.sameValue(parseInt('010'), 10, 'parseInt(\'010\') must return 10');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T1.js
new file mode 100644
index 0000000000..9420440f4e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T1.js
@@ -0,0 +1,36 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+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
+esid: sec-parseint-string-radix
+description: ": 0x"
+---*/
+
+assert.sameValue(parseInt("0x0", 0), parseInt("0", 16), 'parseInt("0x0", 0) must return the same value returned by parseInt("0", 16)');
+assert.sameValue(parseInt("0x1", 0), parseInt("1", 16), 'parseInt("0x1", 0) must return the same value returned by parseInt("1", 16)');
+assert.sameValue(parseInt("0x2", 0), parseInt("2", 16), 'parseInt("0x2", 0) must return the same value returned by parseInt("2", 16)');
+assert.sameValue(parseInt("0x3", 0), parseInt("3", 16), 'parseInt("0x3", 0) must return the same value returned by parseInt("3", 16)');
+assert.sameValue(parseInt("0x4", 0), parseInt("4", 16), 'parseInt("0x4", 0) must return the same value returned by parseInt("4", 16)');
+assert.sameValue(parseInt("0x5", 0), parseInt("5", 16), 'parseInt("0x5", 0) must return the same value returned by parseInt("5", 16)');
+assert.sameValue(parseInt("0x6", 0), parseInt("6", 16), 'parseInt("0x6", 0) must return the same value returned by parseInt("6", 16)');
+assert.sameValue(parseInt("0x7", 0), parseInt("7", 16), 'parseInt("0x7", 0) must return the same value returned by parseInt("7", 16)');
+assert.sameValue(parseInt("0x8", 0), parseInt("8", 16), 'parseInt("0x8", 0) must return the same value returned by parseInt("8", 16)');
+assert.sameValue(parseInt("0x9", 0), parseInt("9", 16), 'parseInt("0x9", 0) must return the same value returned by parseInt("9", 16)');
+assert.sameValue(parseInt("0xA", 0), parseInt("A", 16), 'parseInt("0xA", 0) must return the same value returned by parseInt("A", 16)');
+assert.sameValue(parseInt("0xB", 0), parseInt("B", 16), 'parseInt("0xB", 0) must return the same value returned by parseInt("B", 16)');
+assert.sameValue(parseInt("0xC", 0), parseInt("C", 16), 'parseInt("0xC", 0) must return the same value returned by parseInt("C", 16)');
+assert.sameValue(parseInt("0xD", 0), parseInt("D", 16), 'parseInt("0xD", 0) must return the same value returned by parseInt("D", 16)');
+assert.sameValue(parseInt("0xE", 0), parseInt("E", 16), 'parseInt("0xE", 0) must return the same value returned by parseInt("E", 16)');
+assert.sameValue(parseInt("0xF", 0), parseInt("F", 16), 'parseInt("0xF", 0) must return the same value returned by parseInt("F", 16)');
+assert.sameValue(parseInt("0xE", 0), parseInt("E", 16), 'parseInt("0xE", 0) must return the same value returned by parseInt("E", 16)');
+
+assert.sameValue(
+ parseInt("0xABCDEF", 0),
+ parseInt("ABCDEF", 16),
+ 'parseInt("0xABCDEF", 0) must return the same value returned by parseInt("ABCDEF", 16)'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T2.js
new file mode 100644
index 0000000000..6005e1853c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A5.2_T2.js
@@ -0,0 +1,31 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+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
+esid: sec-parseint-string-radix
+description: ": 0X"
+---*/
+
+assert.sameValue(parseInt("0X0", 0), parseInt("0", 16), 'parseInt("0X0", 0) must return the same value returned by parseInt("0", 16)');
+assert.sameValue(parseInt("0X1"), parseInt("1", 16), 'parseInt("0X1") must return the same value returned by parseInt("1", 16)');
+assert.sameValue(parseInt("0X2"), parseInt("2", 16), 'parseInt("0X2") must return the same value returned by parseInt("2", 16)');
+assert.sameValue(parseInt("0X3"), parseInt("3", 16), 'parseInt("0X3") must return the same value returned by parseInt("3", 16)');
+assert.sameValue(parseInt("0X4"), parseInt("4", 16), 'parseInt("0X4") must return the same value returned by parseInt("4", 16)');
+assert.sameValue(parseInt("0X5"), parseInt("5", 16), 'parseInt("0X5") must return the same value returned by parseInt("5", 16)');
+assert.sameValue(parseInt("0X6"), parseInt("6", 16), 'parseInt("0X6") must return the same value returned by parseInt("6", 16)');
+assert.sameValue(parseInt("0X7"), parseInt("7", 16), 'parseInt("0X7") must return the same value returned by parseInt("7", 16)');
+assert.sameValue(parseInt("0X8"), parseInt("8", 16), 'parseInt("0X8") must return the same value returned by parseInt("8", 16)');
+assert.sameValue(parseInt("0X9"), parseInt("9", 16), 'parseInt("0X9") must return the same value returned by parseInt("9", 16)');
+assert.sameValue(parseInt("0XA"), parseInt("A", 16), 'parseInt("0XA") must return the same value returned by parseInt("A", 16)');
+assert.sameValue(parseInt("0XB"), parseInt("B", 16), 'parseInt("0XB") must return the same value returned by parseInt("B", 16)');
+assert.sameValue(parseInt("0XC"), parseInt("C", 16), 'parseInt("0XC") must return the same value returned by parseInt("C", 16)');
+assert.sameValue(parseInt("0XD"), parseInt("D", 16), 'parseInt("0XD") must return the same value returned by parseInt("D", 16)');
+assert.sameValue(parseInt("0XE"), parseInt("E", 16), 'parseInt("0XE") must return the same value returned by parseInt("E", 16)');
+assert.sameValue(parseInt("0XF"), parseInt("F", 16), 'parseInt("0XF") must return the same value returned by parseInt("F", 16)');
+assert.sameValue(parseInt("0XE"), parseInt("E", 16), 'parseInt("0XE") must return the same value returned by parseInt("E", 16)');
+assert.sameValue(parseInt("0XABCDEF"), parseInt("ABCDEF", 16), 'parseInt("0XABCDEF") must return the same value returned by parseInt("ABCDEF", 16)');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T1.js
new file mode 100644
index 0000000000..5dae09a943
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T1.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ If S contains any character that is not a radix-R digit,
+ then let Z be the substring of S consisting of all characters before
+ the first such character; otherwise, let Z be S
+esid: sec-parseint-string-radix
+description: Complex test. R in [2, 36]
+---*/
+
+//CHECK#
+for (var i = 2; i <= 36; i++) {
+ assert.sameValue(parseInt("10$1", i), i, 'parseInt("10$1", i) must return the value of i');
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T2.js
new file mode 100644
index 0000000000..911f178e14
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T2.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ If S contains any character that is not a radix-R digit,
+ then let Z be the substring of S consisting of all characters before
+ the first such character; otherwise, let Z be S
+esid: sec-parseint-string-radix
+description: Complex test. Radix-R notation in [0..9, A-Z]
+---*/
+
+//CHECK#
+var R_digit = ["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++) {
+ assert.sameValue(parseInt(R_digit[i - 2] + "$", i), i - 1, 'parseInt(R_digit[i - 2] + "$", 2) must return i - 1');
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T3.js
new file mode 100644
index 0000000000..efe0fca72b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T3.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ If S contains any character that is not a radix-R digit,
+ then let Z be the substring of S consisting of all characters before
+ the first such character; otherwise, let Z be S
+esid: sec-parseint-string-radix
+description: Complex test. Radix-R notation in [0..9, a-z]
+---*/
+
+//CHECK#
+var R_digit = ["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++) {
+ assert.sameValue(parseInt(R_digit[i - 2] + "$", i), i - 1, 'parseInt(R_digit[i - 2] + "$", i) must return i - 1');
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T4.js
new file mode 100644
index 0000000000..e67187d75e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T4.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ If S contains any character that is not a radix-R digit,
+ then let Z be the substring of S consisting of all characters before
+ the first such character; otherwise, let Z be S
+esid: sec-parseint-string-radix
+description: Complex test. Radix-R notation in [0..9, A-Z]
+---*/
+
+//CHECK#
+var R_digit = ["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 <= 35; i++) {
+ assert.sameValue(
+ parseInt(R_digit[i - 2] + R_digit[i - 1], i),
+ i - 1,
+ 'parseInt(R_digit[i - 2] + R_digit[i - 1], i) must return i - 1'
+ );
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T5.js
new file mode 100644
index 0000000000..abe5a8831d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T5.js
@@ -0,0 +1,23 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ If S contains any character that is not a radix-R digit,
+ then let Z be the substring of S consisting of all characters before
+ the first such character; otherwise, let Z be S
+esid: sec-parseint-string-radix
+description: Complex test. Radix-R notation in [0..9, a-z]
+---*/
+
+//CHECK#
+var R_digit = ["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 <= 35; i++) {
+ assert.sameValue(
+ parseInt(R_digit[i - 2] + R_digit[i - 1], i),
+ i - 1,
+ 'parseInt(R_digit[i - 2] + R_digit[i - 1], i) must return i - 1'
+ );
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T6.js
new file mode 100644
index 0000000000..3942540f0e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A6.1_T6.js
@@ -0,0 +1,28 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ If S contains any character that is not a radix-R digit,
+ then let Z be the substring of S consisting of all characters before
+ the first such character; otherwise, let Z be S
+esid: sec-parseint-string-radix
+description: Complex test. Radix-R notation in [0..9]
+---*/
+
+assert.sameValue(parseInt("0123456789", 2), 1, 'parseInt("0123456789", 2) must return 1');
+assert.sameValue(parseInt("01234567890", 3), 5, 'parseInt("01234567890", 3) must return 5');
+assert.sameValue(parseInt("01234567890", 4), 27, 'parseInt("01234567890", 4) must return 27');
+assert.sameValue(parseInt("01234567890", 5), 194, 'parseInt("01234567890", 5) must return 194');
+assert.sameValue(parseInt("01234567890", 6), 1865, 'parseInt("01234567890", 6) must return 1865');
+assert.sameValue(parseInt("01234567890", 7), 22875, 'parseInt("01234567890", 7) must return 22875');
+assert.sameValue(parseInt("01234567890", 8), 342391, 'parseInt("01234567890", 8) must return 342391');
+assert.sameValue(parseInt("01234567890", 9), 6053444, 'parseInt("01234567890", 9) must return 6053444');
+
+assert.sameValue(
+ parseInt("01234567890", 10),
+ Number(1234567890),
+ 'parseInt("01234567890", 10) must return the same value returned by Number(1234567890)'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T1.js
new file mode 100644
index 0000000000..d262481edb
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: If Z is empty, return NaN
+esid: sec-parseint-string-radix
+description: Complex test. R in [2, 36]
+---*/
+
+//CHECK#
+for (var i = 2; i <= 36; i++) {
+ assert.sameValue(parseInt("$string", i), NaN, 'parseInt("$string", i) must return NaN');
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T2.js
new file mode 100644
index 0000000000..3ee68cc1df
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.1_T2.js
@@ -0,0 +1,16 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: If Z is empty, return NaN
+esid: sec-parseint-string-radix
+description: x is not a radix-R digit
+---*/
+
+assert.sameValue(parseInt("$0x"), NaN, 'parseInt("$0x") must return NaN');
+assert.sameValue(parseInt("$0X"), NaN, 'parseInt("$0X") must return NaN');
+assert.sameValue(parseInt("$$$"), NaN, 'parseInt("$$$") must return NaN');
+assert.sameValue(parseInt(""), NaN, 'parseInt("") must return NaN');
+assert.sameValue(parseInt(" "), NaN, 'parseInt(" ") must return NaN');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T1.js
new file mode 100644
index 0000000000..1e0aa7d45c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T1.js
@@ -0,0 +1,36 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ Compute the mathematical integer value
+ that is represented by Z in radix-R notation, using the
+ letters A-Z and a-z for digits with values 10 through 35.
+ Compute the number value for Result(16)
+esid: sec-parseint-string-radix
+description: Complex test. Check algorithm
+---*/
+
+//CHECK#
+var R_digit1 = ["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"];
+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 num = 0;
+ var pow = 1;
+ var k0 = Math.max(2, i - j);
+ for (var k = k0; k <= i; k++) {
+ if (k % 2 === 0) {
+ str = str + R_digit1[k - 2];
+ } else {
+ str = str + R_digit2[k - 2];
+ }
+ num = num + (i + (k0 - k) - 1) * pow;
+ pow = pow * i;
+ }
+ assert.sameValue(parseInt(str, i), num, 'parseInt("str + R_digit2[k - 2], i) must return the value of num');
+ }
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T2.js
new file mode 100644
index 0000000000..2a5f10d14f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T2.js
@@ -0,0 +1,35 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ Compute the mathematical integer value
+ that is represented by Z in radix-R notation, using the
+ letters A-Z and a-z for digits with values 10 through 35.
+ Compute the number value for Result(16)
+esid: sec-parseint-string-radix
+description: Checking algorithm for R = 2
+---*/
+
+assert.sameValue(parseInt("1", 2), 1, 'parseInt("1", 2) must return 1');
+assert.sameValue(parseInt("11", 2), 3, 'parseInt("11", 2) must return 3');
+assert.sameValue(parseInt("111", 2), 7, 'parseInt("111", 2) must return 7');
+assert.sameValue(parseInt("1111", 2), 15, 'parseInt("1111", 2) must return 15');
+assert.sameValue(parseInt("11111", 2), 31, 'parseInt("11111", 2) must return 31');
+assert.sameValue(parseInt("111111", 2), 63, 'parseInt("111111", 2) must return 63');
+assert.sameValue(parseInt("1111111", 2), 127, 'parseInt("1111111", 2) must return 127');
+assert.sameValue(parseInt("11111111", 2), 255, 'parseInt("11111111", 2) must return 255');
+assert.sameValue(parseInt("111111111", 2), 511, 'parseInt("111111111", 2) must return 511');
+assert.sameValue(parseInt("1111111111", 2), 1023, 'parseInt("1111111111", 2) must return 1023');
+assert.sameValue(parseInt("11111111111", 2), 2047, 'parseInt("11111111111", 2) must return 2047');
+assert.sameValue(parseInt("111111111111", 2), 4095, 'parseInt("111111111111", 2) must return 4095');
+assert.sameValue(parseInt("1111111111111", 2), 8191, 'parseInt("1111111111111", 2) must return 8191');
+assert.sameValue(parseInt("11111111111111", 2), 16383, 'parseInt("11111111111111", 2) must return 16383');
+assert.sameValue(parseInt("111111111111111", 2), 32767, 'parseInt("111111111111111", 2) must return 32767');
+assert.sameValue(parseInt("1111111111111111", 2), 65535, 'parseInt("1111111111111111", 2) must return 65535');
+assert.sameValue(parseInt("11111111111111111", 2), 131071, 'parseInt("11111111111111111", 2) must return 131071');
+assert.sameValue(parseInt("111111111111111111", 2), 262143, 'parseInt("111111111111111111", 2) must return 262143');
+assert.sameValue(parseInt("1111111111111111111", 2), 524287, 'parseInt("1111111111111111111", 2) must return 524287');
+assert.sameValue(parseInt("11111111111111111111", 2), 1048575, 'parseInt("11111111111111111111", 2) must return 1048575');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T3.js
new file mode 100644
index 0000000000..8c5a765b29
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.2_T3.js
@@ -0,0 +1,80 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ Compute the mathematical integer value
+ that is represented by Z in radix-R notation, using the
+ letters A-Z and a-z for digits with values 10 through 35.
+ Compute the number value for Result(16)
+esid: sec-parseint-string-radix
+description: Checking algorithm for R = 16
+---*/
+
+assert.sameValue(parseInt("0x1", 16), 1, 'parseInt("0x1", 16) must return 1');
+assert.sameValue(parseInt("0X10", 16), 16, 'parseInt("0X10", 16) must return 16');
+assert.sameValue(parseInt("0x100", 16), 256, 'parseInt("0x100", 16) must return 256');
+assert.sameValue(parseInt("0X1000", 16), 4096, 'parseInt("0X1000", 16) must return 4096');
+assert.sameValue(parseInt("0x10000", 16), 65536, 'parseInt("0x10000", 16) must return 65536');
+assert.sameValue(parseInt("0X100000", 16), 1048576, 'parseInt("0X100000", 16) must return 1048576');
+assert.sameValue(parseInt("0x1000000", 16), 16777216, 'parseInt("0x1000000", 16) must return 16777216');
+assert.sameValue(parseInt("0x10000000", 16), 268435456, 'parseInt("0x10000000", 16) must return 268435456');
+assert.sameValue(parseInt("0x100000000", 16), 4294967296, 'parseInt("0x100000000", 16) must return 4294967296');
+assert.sameValue(parseInt("0x1000000000", 16), 68719476736, 'parseInt("0x1000000000", 16) must return 68719476736');
+assert.sameValue(parseInt("0x10000000000", 16), 1099511627776, 'parseInt("0x10000000000", 16) must return 1099511627776');
+
+assert.sameValue(
+ parseInt("0x100000000000", 16),
+ 17592186044416,
+ 'parseInt("0x100000000000", 16) must return 17592186044416'
+);
+
+assert.sameValue(
+ parseInt("0x1000000000000", 16),
+ 281474976710656,
+ 'parseInt("0x1000000000000", 16) must return 281474976710656'
+);
+
+assert.sameValue(
+ parseInt("0x10000000000000", 16),
+ 4503599627370496,
+ 'parseInt("0x10000000000000", 16) must return 4503599627370496'
+);
+
+assert.sameValue(
+ parseInt("0x100000000000000", 16),
+ 72057594037927936,
+ 'parseInt("0x100000000000000", 16) must return 72057594037927936'
+);
+
+assert.sameValue(
+ parseInt("0x1000000000000000", 16),
+ 1152921504606846976,
+ 'parseInt("0x1000000000000000", 16) must return 1152921504606846976'
+);
+
+assert.sameValue(
+ parseInt("0x10000000000000000", 16),
+ 18446744073709551616,
+ 'parseInt("0x10000000000000000", 16) must return 18446744073709551616'
+);
+
+assert.sameValue(
+ parseInt("0x100000000000000000", 16),
+ 295147905179352825856,
+ 'parseInt("0x100000000000000000", 16) must return 295147905179352825856'
+);
+
+assert.sameValue(
+ parseInt("0x1000000000000000000", 16),
+ 4722366482869645213696,
+ 'parseInt("0x1000000000000000000", 16) must return 4722366482869645213696'
+);
+
+assert.sameValue(
+ parseInt("0x10000000000000000000", 16),
+ 75557863725914323419136,
+ 'parseInt("0x10000000000000000000", 16) must return 75557863725914323419136'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T1.js
new file mode 100644
index 0000000000..758f846b47
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T1.js
@@ -0,0 +1,37 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Return sign * Result(17)
+esid: sec-parseint-string-radix
+description: Complex test. Check algorithm
+---*/
+
+//CHECK#
+var R_digit1 = ["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"];
+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 sign = 1;
+ 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) {
+ str = str + R_digit1[k - 2];
+ } else {
+ str = str + R_digit2[k - 2];
+ }
+ num = num + (i + (k0 - k) - 1) * pow;
+ pow = pow * i;
+ }
+ assert.sameValue(parseInt(str, i), num * sign, 'parseInt("str + R_digit2[k - 2], i) must return num * sign');
+ }
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T2.js
new file mode 100644
index 0000000000..2198498818
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T2.js
@@ -0,0 +1,36 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Return sign * Result(17)
+esid: sec-parseint-string-radix
+description: Checking algorithm for R = 2
+---*/
+
+assert.sameValue(parseInt("-1", 2), -1, 'parseInt("-1", 2) must return -1');
+assert.sameValue(parseInt("-11", 2), -3, 'parseInt("-11", 2) must return -3');
+assert.sameValue(parseInt("-111", 2), -7, 'parseInt("-111", 2) must return -7');
+assert.sameValue(parseInt("-1111", 2), -15, 'parseInt("-1111", 2) must return -15');
+assert.sameValue(parseInt("-11111", 2), -31, 'parseInt("-11111", 2) must return -31');
+assert.sameValue(parseInt("-111111", 2), -63, 'parseInt("-111111", 2) must return -63');
+assert.sameValue(parseInt("-1111111", 2), -127, 'parseInt("-1111111", 2) must return -127');
+assert.sameValue(parseInt("-11111111", 2), -255, 'parseInt("-11111111", 2) must return -255');
+assert.sameValue(parseInt("-111111111", 2), -511, 'parseInt("-111111111", 2) must return -511');
+assert.sameValue(parseInt("-1111111111", 2), -1023, 'parseInt("-1111111111", 2) must return -1023');
+assert.sameValue(parseInt("-11111111111", 2), -2047, 'parseInt("-11111111111", 2) must return -2047');
+assert.sameValue(parseInt("-111111111111", 2), -4095, 'parseInt("-111111111111", 2) must return -4095');
+assert.sameValue(parseInt("-1111111111111", 2), -8191, 'parseInt("-1111111111111", 2) must return -8191');
+assert.sameValue(parseInt("-11111111111111", 2), -16383, 'parseInt("-11111111111111", 2) must return -16383');
+assert.sameValue(parseInt("-111111111111111", 2), -32767, 'parseInt("-111111111111111", 2) must return -32767');
+assert.sameValue(parseInt("-1111111111111111", 2), -65535, 'parseInt("-1111111111111111", 2) must return -65535');
+assert.sameValue(parseInt("-11111111111111111", 2), -131071, 'parseInt("-11111111111111111", 2) must return -131071');
+assert.sameValue(parseInt("-111111111111111111", 2), -262143, 'parseInt("-111111111111111111", 2) must return -262143');
+assert.sameValue(parseInt("-1111111111111111111", 2), -524287, 'parseInt("-1111111111111111111", 2) must return -524287');
+
+assert.sameValue(
+ parseInt("-11111111111111111111", 2),
+ -1048575,
+ 'parseInt("-11111111111111111111", 2) must return -1048575'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T3.js
new file mode 100644
index 0000000000..dd6aefd7f3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A7.3_T3.js
@@ -0,0 +1,71 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Return sign * Result(17)
+esid: sec-parseint-string-radix
+description: Checking algorithm for R = 10
+---*/
+
+assert.sameValue(parseInt("-1", 10), -1, 'parseInt("-1", 10) must return -1');
+assert.sameValue(parseInt("-10", 10), -10, 'parseInt("-10", 10) must return -10');
+assert.sameValue(parseInt("-100", 10), -100, 'parseInt("-100", 10) must return -100');
+assert.sameValue(parseInt("-1000", 10), -1000, 'parseInt("-1000", 10) must return -1000');
+assert.sameValue(parseInt("-10000", 10), -10000, 'parseInt("-10000", 10) must return -10000');
+assert.sameValue(parseInt("-100000", 10), -100000, 'parseInt("-100000", 10) must return -100000');
+assert.sameValue(parseInt("-1000000", 10), -1000000, 'parseInt("-1000000", 10) must return -1000000');
+assert.sameValue(parseInt("-10000000", 10), -10000000, 'parseInt("-10000000", 10) must return -10000000');
+assert.sameValue(parseInt("-100000000", 10), -100000000, 'parseInt("-100000000", 10) must return -100000000');
+assert.sameValue(parseInt("-1000000000", 10), -1000000000, 'parseInt("-1000000000", 10) must return -1000000000');
+assert.sameValue(parseInt("-10000000000", 10), -10000000000, 'parseInt("-10000000000", 10) must return -10000000000');
+assert.sameValue(parseInt("-100000000000", 10), -100000000000, 'parseInt("-100000000000", 10) must return -100000000000');
+
+assert.sameValue(
+ parseInt("-1000000000000", 10),
+ -1000000000000,
+ 'parseInt("-1000000000000", 10) must return -1000000000000'
+);
+
+assert.sameValue(
+ parseInt("-10000000000000", 10),
+ -10000000000000,
+ 'parseInt("-10000000000000", 10) must return -10000000000000'
+);
+
+assert.sameValue(
+ parseInt("-100000000000000", 10),
+ -100000000000000,
+ 'parseInt("-100000000000000", 10) must return -100000000000000'
+);
+
+assert.sameValue(
+ parseInt("-1000000000000000", 10),
+ -1000000000000000,
+ 'parseInt("-1000000000000000", 10) must return -1000000000000000'
+);
+
+assert.sameValue(
+ parseInt("-10000000000000000", 10),
+ -10000000000000000,
+ 'parseInt("-10000000000000000", 10) must return -10000000000000000'
+);
+
+assert.sameValue(
+ parseInt("-100000000000000000", 10),
+ -100000000000000000,
+ 'parseInt("-100000000000000000", 10) must return -100000000000000000'
+);
+
+assert.sameValue(
+ parseInt("-1000000000000000000", 10),
+ -1000000000000000000,
+ 'parseInt("-1000000000000000000", 10) must return -1000000000000000000'
+);
+
+assert.sameValue(
+ parseInt("-10000000000000000000", 10),
+ -10000000000000000000,
+ 'parseInt("-10000000000000000000", 10) must return -10000000000000000000'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A8.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A8.js
new file mode 100644
index 0000000000..dd1892a869
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A8.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ parseInt may interpret only a leading portion of the string as
+ a number value; it ignores any characters that cannot be interpreted as part
+ of the notation of an decimal literal, and no indication is given that any such
+ characters were ignored.
+esid: sec-parseint-string-radix
+description: Complex test without eval
+includes: [decimalToHexString.js]
+---*/
+
+//CHECK
+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)) {
+ if (parseInt("1Z" + String.fromCharCode(index), 36) !== 71) {
+ if (indexO === 0) {
+ indexO = index;
+ } else {
+ if ((index - indexP) !== 1) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ throw new Test262Error('#' + hexO + '-' + hexP + ' ');
+ }
+ else {
+ var hexP = decimalToHexString(indexP);
+ throw new Test262Error('#' + hexP + ' ');
+ }
+ indexO = index;
+ }
+ }
+ indexP = index;
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ throw new Test262Error('#' + hexO + '-' + hexP + ' ');
+ } else {
+ var hexP = decimalToHexString(indexP);
+ throw new Test262Error('#' + hexP + ' ');
+ }
+ throw new Test262Error('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.1.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.1.js
new file mode 100644
index 0000000000..06f41bacc5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.1.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: The length property of parseInt has the attribute DontEnum
+esid: sec-parseint-string-radix
+description: Checking use propertyIsEnumerable, for-in
+---*/
+
+assert.sameValue(
+ parseInt.propertyIsEnumerable('length'),
+ false,
+ 'parseInt.propertyIsEnumerable(\'length\') must return false'
+);
+
+//CHECK#2
+var result = true;
+for (var p in parseInt) {
+ if (p === "length") {
+ result = false;
+ }
+}
+
+assert.sameValue(result, true, 'The value of `result` is true');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.2.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.2.js
new file mode 100644
index 0000000000..579e0e2438
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.2.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: The length property of parseInt does not have the attribute DontDelete
+esid: sec-parseint-string-radix
+description: Checking use hasOwnProperty, delete
+---*/
+
+assert.sameValue(parseInt.hasOwnProperty('length'), true, 'parseInt.hasOwnProperty(\'length\') must return true');
+
+delete parseInt.length;
+
+assert.sameValue(parseInt.hasOwnProperty('length'), false, 'parseInt.hasOwnProperty(\'length\') must return false');
+assert.notSameValue(parseInt.length, undefined, 'The value of parseInt.length is expected to not equal ``undefined``');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.3.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.3.js
new file mode 100644
index 0000000000..13c6b3d6a8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.3.js
@@ -0,0 +1,14 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: The length property of parseInt has the attribute ReadOnly
+esid: sec-parseint-string-radix
+description: Checking if varying the length property fails
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(parseInt.length, 2, 'The value of parseInt.length is 2');
+verifyNotWritable(parseInt, "length", null, Infinity);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.4.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.4.js
new file mode 100644
index 0000000000..59397bf745
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.4.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: The length property of parseInt is 2
+esid: sec-parseint-string-radix
+description: parseInt.length === 2
+---*/
+
+assert.sameValue(parseInt.length, 2, 'The value of parseInt.length is 2');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.5.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.5.js
new file mode 100644
index 0000000000..574a0d0e28
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.5.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: The parseInt property has the attribute DontEnum
+esid: sec-parseint-string-radix
+description: Checking use propertyIsEnumerable, for-in
+---*/
+
+assert.sameValue(
+ this.propertyIsEnumerable('parseInt'),
+ false,
+ 'this.propertyIsEnumerable(\'parseInt\') must return false'
+);
+
+//CHECK#2
+var result = true;
+for (var p in this) {
+ if (p === "parseInt") {
+ result = false;
+ }
+}
+
+assert.sameValue(result, true, 'The value of `result` is true');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.6.js b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.6.js
new file mode 100644
index 0000000000..e1c1a194c1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/S15.1.2.2_A9.6.js
@@ -0,0 +1,12 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: The parseInt property has not prototype property
+esid: sec-parseint-string-radix
+description: Checking parseInt.prototype
+---*/
+
+assert.sameValue(Object.prototype.hasOwnProperty.call(parseInt, "prototype"), false, 'Object.prototype.hasOwnProperty.call(parseInt, "prototype") must return false');
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/browser.js b/js/src/tests/test262/built-ins/parseInt/browser.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/browser.js
diff --git a/js/src/tests/test262/built-ins/parseInt/name.js b/js/src/tests/test262/built-ins/parseInt/name.js
new file mode 100644
index 0000000000..973b0707da
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-parseint-string-radix
+description: >
+ parseInt.name is "parseInt".
+info: |
+ parseInt (string , radix)
+
+ 17 ECMAScript Standard Built-in Objects:
+ Every built-in Function object, including constructors, that is not
+ identified as an anonymous function has a name property whose value
+ is a String.
+
+ Unless otherwise specified, the name property of a built-in Function
+ object, if it exists, has the attributes { [[Writable]]: false,
+ [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(parseInt.name, "parseInt", 'The value of parseInt.name is "parseInt"');
+
+verifyNotEnumerable(parseInt, "name");
+verifyNotWritable(parseInt, "name");
+verifyConfigurable(parseInt, "name");
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/not-a-constructor.js b/js/src/tests/test262/built-ins/parseInt/not-a-constructor.js
new file mode 100644
index 0000000000..db318e6a34
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/not-a-constructor.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-ecmascript-standard-built-in-objects
+description: >
+ parseInt does not implement [[Construct]], is not new-able
+info: |
+ ECMAScript Function Objects
+
+ Built-in function objects that are not identified as constructors do not
+ implement the [[Construct]] internal method unless otherwise specified in
+ the description of a particular function.
+
+ sec-evaluatenew
+
+ ...
+ 7. If IsConstructor(constructor) is false, throw a TypeError exception.
+ ...
+includes: [isConstructor.js]
+features: [Reflect.construct, arrow-function]
+---*/
+
+assert.sameValue(isConstructor(parseInt), false, 'isConstructor(parseInt) must return false');
+
+assert.throws(TypeError, () => {
+ new parseInt(1);
+}, '`new parseInt(1)` throws TypeError');
+
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/prop-desc.js b/js/src/tests/test262/built-ins/parseInt/prop-desc.js
new file mode 100644
index 0000000000..2bdb00add7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/prop-desc.js
@@ -0,0 +1,18 @@
+// Copyright (C) 2019 Bocoup. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-parseint-string-radix
+description: Property descriptor for parseInt
+info: |
+ Every other data property described in clauses 18 through 26 and in Annex B.2
+ has the attributes { [[Writable]]: true, [[Enumerable]]: false,
+ [[Configurable]]: true } unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+verifyNotEnumerable(this, "parseInt");
+verifyWritable(this, "parseInt");
+verifyConfigurable(this, "parseInt");
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/parseInt/shell.js b/js/src/tests/test262/built-ins/parseInt/shell.js
new file mode 100644
index 0000000000..a9bb766df3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/parseInt/shell.js
@@ -0,0 +1,52 @@
+// GENERATED, DO NOT EDIT
+// file: decimalToHexString.js
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+description: |
+ Collection of functions used to assert the correctness of various encoding operations.
+defines: [decimalToHexString, decimalToPercentHexString]
+---*/
+
+function decimalToHexString(n) {
+ var hex = "0123456789ABCDEF";
+ n >>>= 0;
+ var s = "";
+ while (n) {
+ s = hex[n & 0xf] + s;
+ n >>>= 4;
+ }
+ while (s.length < 4) {
+ s = "0" + s;
+ }
+ return s;
+}
+
+function decimalToPercentHexString(n) {
+ var hex = "0123456789ABCDEF";
+ return "%" + hex[(n >> 4) & 0xf] + hex[n & 0xf];
+}
+
+// file: isConstructor.js
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+description: |
+ Test if a given function is a constructor function.
+defines: [isConstructor]
+features: [Reflect.construct]
+---*/
+
+function isConstructor(f) {
+ if (typeof f !== "function") {
+ throw new Test262Error("isConstructor invoked with a non-function value");
+ }
+
+ try {
+ Reflect.construct(function(){}, [], f);
+ } catch (e) {
+ return false;
+ }
+ return true;
+}