summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/ch09/9.3/9.3.1
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/ch09/9.3/9.3.1')
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A1.js19
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A10.js17
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A11.js23
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A12.js22
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A13.js26
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A14.js15
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A15.js15
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A16.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A17.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A18.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A19.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A2.js289
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A20.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A21.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A22.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A23.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A24.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A25.js25
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A26.js30
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A27.js30
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A28.js30
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A29.js30
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A30.js30
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A31.js30
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A32.js38
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A3_T1.js30
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A3_T2.js34
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A4_T1.js50
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A4_T2.js54
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T1.js61
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T2.js146
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T3.js65
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A6_T1.js31
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A6_T2.js36
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A7.js17
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A8.js21
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A9.js24
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/browser.js0
-rw-r--r--js/src/tests/test262/ch09/9.3/9.3.1/shell.js0
39 files changed, 1463 insertions, 0 deletions
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A1.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A1.js
new file mode 100644
index 000000000..35b235fa3
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A1.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.
+
+/**
+ * The MV of StringNumericLiteral ::: [empty] is 0
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A1.js
+ * @description Number('') convert to Number by explicit transformation
+ */
+
+// CHECK#1
+if (Number("") !== 0) {
+ $ERROR('#1.1: Number("") === 0. Actual: ' + (Number("")));
+} else {
+ if (1/Number("") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#1.2: Number("") == +0. Actual: -0');
+ }
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A10.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A10.js
new file mode 100644
index 000000000..1f7d3f958
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A10.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.
+
+/**
+ * The MV of StrUnsignedDecimalLiteral:::. DecimalDigits is the
+ * MV of DecimalDigits times 10<sup><small>-n</small></sup>, where n is the
+ * number of characters in DecimalDigits
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A10.js
+ * @description Compare Number('.12345') with +('12345')*1e-5
+ */
+
+// CHECK#1
+if (Number(".12345") !== +("12345")*1e-5) {
+ $ERROR('#1: Number(".12345") === +("12345")*1e-5');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A11.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A11.js
new file mode 100644
index 000000000..9f58e16f2
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A11.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.
+
+/**
+ * The MV of StrUnsignedDecimalLiteral:::. DecimalDigits ExponentPart
+ * is the MV of DecimalDigits times 10<sup><small>e-n</small></sup>, where n is
+ * the number of characters in DecimalDigits and e is the MV of ExponentPart
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A11.js
+ * @description Compare Number('.12345e6') with +('12345')*1e1,
+ * and Number('.12345e-3') !== Number('12345')*1e-8
+ */
+
+// CHECK#1
+if (Number(".12345e6") !== +("12345")*1e1) {
+ $ERROR('#1: Number(".12345e6") === +("12345")*1e1');
+}
+
+// CHECK#2
+if (Number(".12345e-3") !== Number("12345")*1e-8) {
+ $ERROR('#2: Number(".12345e-3") === Number("12345")*1e-8');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A12.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A12.js
new file mode 100644
index 000000000..201040946
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A12.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The MV of StrUnsignedDecimalLiteral::: DecimalDigits ExponentPart
+ * is the MV of DecimalDigits times 10<sup><small>e</small></sup>, where e is the MV of ExponentPart
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A12.js
+ * @description Compare Number('12345e6') with +('12345')*1e1,
+ * and Number('12345e-6') !== Number('12345')*1e-6
+ */
+
+// CHECK#1
+if (Number("12345e6") !== +("12345")*1e6) {
+ $ERROR('#1: Number("12345e6") === +("12345")*1e6');
+}
+
+// CHECK#2
+if (Number("12345e-6") !== Number("12345")*1e-6) {
+ $ERROR('#2: Number("12345e-6") === Number("12345")*1e-6');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A13.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A13.js
new file mode 100644
index 000000000..8d51f4b02
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A13.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.
+
+/**
+ * The MV of DecimalDigits ::: DecimalDigits DecimalDigit is
+ * (the MV of DecimalDigits times 10) plus the MV of DecimalDigit
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A13.js
+ * @description Compare '12' with Number("1")*10+Number("2") and analogous
+ */
+
+// CHECK#1
+if (+("12") !== Number("1")*10+Number("2")) {
+ $ERROR('#1: +("12") === Number("1")*10+Number("2")');
+}
+
+// CHECK#2
+if (Number("123") !== Number("12")*10+Number("3")) {
+ $ERROR('#2: Number("123") === Number("12")*10+Number("3")');
+}
+
+// CHECK#2
+if (Number("1234") !== Number("123")*10+Number("4")) {
+ $ERROR('#2: Number("1234") === Number("123")*10+Number("4")');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A14.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A14.js
new file mode 100644
index 000000000..4ed80b082
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A14.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.
+
+/**
+ * The MV of SignedInteger ::: + DecimalDigits is the MV of DecimalDigits
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A14.js
+ * @description Compare Number('+1234567890') with +('1234567890')
+ */
+
+// CHECK#1
+if (Number("+1234567890") !== +("1234567890")) {
+ $ERROR('#1: Number("+1234567890") === +("1234567890")');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A15.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A15.js
new file mode 100644
index 000000000..d0ba80b6e
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A15.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.
+
+/**
+ * The MV of SignedInteger ::: - DecimalDigits is the negative of the MV of DecimalDigits
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A15.js
+ * @description Compare -Number('1234567890') with ('-1234567890')
+ */
+
+// CHECK#1
+if (+("-1234567890") !== -Number("1234567890")) {
+ $ERROR('#1: +("-1234567890") === -Number("1234567890")');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A16.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A16.js
new file mode 100644
index 000000000..6163fbb4a
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A16.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.
+
+/**
+ * The MV of DecimalDigit ::: 0 or of HexDigit ::: 0 is 0
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A16.js
+ * @description Compare Number('0x0') and Number('0X0') with 0
+ */
+
+// CHECK#1
+if (Number("0") !== 0) {
+ $ERROR('#1: Number("0") === 0. Actual: ' + (Number("0")));
+}
+
+// CHECK#2
+if (+("0x0") !== 0) {
+ $ERROR('#2: +("0x0") === 0. Actual: ' + (+("0x0")));
+}
+
+// CHECK#3
+if (Number("0X0") !== 0) {
+ $ERROR('#3: Number("0X0") === 0. Actual: ' + (Number("0X0")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A17.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A17.js
new file mode 100644
index 000000000..d4b72bbf5
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A17.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.
+
+/**
+ * The MV of DecimalDigit ::: 1 or of HexDigit ::: 1 is 1
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A17.js
+ * @description Compare Number('0x1') and Number('0X1') with 1
+ */
+
+// CHECK#1
+if (Number("1") !== 1) {
+ $ERROR('#1: Number("1") === 1. Actual: ' + (Number("1")));
+}
+
+// CHECK#2
+if (Number("0x1") !== 1) {
+ $ERROR('#2: Number("0x1") === 1. Actual: ' + (Number("0x1")));
+}
+
+// CHECK#3
+if (+("0X1") !== 1) {
+ $ERROR('#3: +("0X1") === 1. Actual: ' + (+("0X1")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A18.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A18.js
new file mode 100644
index 000000000..b4375494c
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A18.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.
+
+/**
+ * The MV of DecimalDigit ::: 2 or of HexDigit ::: 2 is 2
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A18.js
+ * @description Compare Number('0x2') and Number('0X2') with 2
+ */
+
+// CHECK#1
+if (+("2") !== 2) {
+ $ERROR('#1: +("2") === 2. Actual: ' + (+("2")));
+}
+
+// CHECK#2
+if (Number("0x2") !== 2) {
+ $ERROR('#2: Number("0x2") === 2. Actual: ' + (Number("0x2")));
+}
+
+// CHECK#3
+if (Number("0X2") !== 2) {
+ $ERROR('#3: Number("0X2") === 2. Actual: ' + (Number("0X2")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A19.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A19.js
new file mode 100644
index 000000000..0abc0200a
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A19.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.
+
+/**
+ * The MV of DecimalDigit ::: 3 or of HexDigit ::: 3 is 3
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A19.js
+ * @description Compare Number('0x3') and Number('0X3') with 3
+ */
+
+// CHECK#1
+if (Number("3") !== 3) {
+ $ERROR('#1: Number("3") === 3. Actual: ' + (Number("3")));
+}
+
+// CHECK#2
+if (+("0x3") !== 3) {
+ $ERROR('#2: +("0x3") === 3. Actual: ' + (+("0x3")));
+}
+
+// CHECK#3
+if (Number("0X3") !== 3) {
+ $ERROR('#3: Number("0X3") === 3. Actual: ' + (Number("0X3")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A2.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A2.js
new file mode 100644
index 000000000..f9bb01465
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A2.js
@@ -0,0 +1,289 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The MV of StringNumericLiteral ::: StrWhiteSpace is 0
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A2.js
+ * @description Strings with various WhiteSpaces convert to Number by explicit transformation
+ */
+
+// CHECK#1
+if (Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== 0) {
+ $ERROR('#1.1: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === 0. Actual: ' + (Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")));
+} else {
+ if (1/Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#1.2: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === +0. Actual: -0');
+ }
+}
+
+// CHECK#2
+if (Number(" ") !== 0) {
+ $ERROR('#2.1: Number(" ") === 0. Actual: ' + (Number(" ")));
+} else {
+ if (1/Number(" ") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#2.2: Number(" ") === +0. Actual: -0');
+ }
+}
+
+// CHECK#3
+if (Number("\t") !== 0) {
+ $ERROR('#3.1: Number("\\t") === 0. Actual: ' + (Number("\t")));
+} else {
+ if (1/Number("\t") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#3.2: Number("\\t") === +0. Actual: -0');
+ }
+}
+
+// CHECK#4
+if (Number("\r") !== 0) {
+ $ERROR('#4.1: Number("\\r") === 0. Actual: ' + (Number("\r")));
+} else {
+ if (1/Number("\r") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#4.2: Number("\\r") === +0. Actual: -0');
+ }
+}
+
+// CHECK#5
+if (Number("\n") !== 0) {
+ $ERROR('#5.1: Number("\\n") === 0. Actual: ' + (Number("\n")));
+} else {
+ if (1/Number("\n") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#5.2: Number("\\n") === +0. Actual: -0');
+ }
+}
+
+// CHECK#6
+if (Number("\f") !== 0) {
+ $ERROR('#6.1: Number("\\f") === 0. Actual: ' + (Number("\f")));
+} else {
+ if (1/Number("\f") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#6.2: Number("\\f") === +0. Actual: -0');
+ }
+}
+
+// CHECK#7
+if (Number("\u0009") !== 0) {
+ $ERROR('#7.1: Number("\\u0009") === 0. Actual: ' + (Number("\u0009")));
+} else {
+ if (1/Number("\u0009") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#7.2: Number("\\u0009") === +0. Actual: -0');
+ }
+}
+
+// CHECK#8
+if (Number("\u000A") !== 0) {
+ $ERROR('#8.1: Number("\\u000A") === 0. Actual: ' + (Number("\u000A")));
+} else {
+ if (1/Number("\u000A") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#8.2: Number("\\u000A") === +0. Actual: -0');
+ }
+}
+
+// CHECK#9
+if (Number("\u000B") !== 0) {
+ $ERROR('#9.1: Number("\\u000B") === 0. Actual: ' + (Number("\u000B")));
+} else {
+ if (1/Number("\u000B") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#9.1.2: Number("\\u000B") === +0. Actual: -0');
+ }
+}
+
+// CHECK#10
+if (Number("\u000C") !== 0) {
+ $ERROR('#10.1: Number("\\u000C") === 0. Actual: ' + (Number("\u000C")));
+} else {
+ if (1/Number("\u000C") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#10.2: Number("\\u000C") === +0. Actual: -0');
+ }
+}
+
+// CHECK#11
+if (Number("\u000D") !== 0) {
+ $ERROR('#11.1: Number("\\u000D") === 0. Actual: ' + (Number("\u000D")));
+} else {
+ if (1/Number("\u000D") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#11.2: Number("\\u000D") === +0. Actual: -0');
+ }
+}
+
+// CHECK#12
+if (Number("\u00A0") !== 0) {
+ $ERROR('#12.1: Number("\\u00A0") === 0. Actual: ' + (Number("\u00A0")));
+} else {
+ if (1/Number("\u00A0") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#12.2: Number("\\u00A0") === +0. Actual: -0');
+ }
+}
+
+// CHECK#13
+if (Number("\u0020") !== 0) {
+ $ERROR('#13.1: Number("\\u0020") === 0. Actual: ' + (Number("\u0020")));
+} else {
+ if (1/Number("\u0020") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#13.2: Number("\\u0020") === +0. Actual: -0');
+ }
+}
+
+// CHECK#14
+if (Number("\u2028") !== 0) {
+ $ERROR('#14.1: Number("\\u2028") === 0. Actual: ' + (Number("\u2028")));
+} else {
+ if (1/Number("\u2028") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#14.2: Number("\\u2028") === +0. Actual: -0');
+ }
+}
+
+// CHECK#15
+if (Number("\u2029") !== 0) {
+ $ERROR('#15.1: Number("\\u2029") === 0. Actual: ' + (Number("\u2029")));
+} else {
+ if (1/Number("\u2029") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#15.2: Number("\\u2029") === +0. Actual: -0');
+ }
+}
+
+// CHECK#16
+if (Number("\u1680") !== 0) {
+ $ERROR('#16.1: Number("\\u1680") === 0. Actual: ' + (Number("\u1680")));
+} else {
+ if (1/Number("\u1680") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#16.2: Number("\\u1680") === +0. Actual: -0');
+ }
+}
+
+// CHECK#17
+if (Number("\u180E") !== 0) {
+ $ERROR('#17.1: Number("\\u180E") === 0. Actual: ' + (Number("\u180E")));
+} else {
+ if (1/Number("\u180E") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#17.2: Number("\\u180E") === +0. Actual: -0');
+ }
+}
+
+// CHECK#18
+if (Number("\u2000") !== 0) {
+ $ERROR('#18.1: Number("\\u2000") === 0. Actual: ' + (Number("\u2000")));
+} else {
+ if (1/Number("\u2000") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#18.2: Number("\\u2000") === +0. Actual: -0');
+ }
+}
+
+// CHECK#19
+if (Number("\u2001") !== 0) {
+ $ERROR('#19.1: Number("\\u2001") === 0. Actual: ' + (Number("\u2001")));
+} else {
+ if (1/Number("\u2001") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#19.2: Number("\\u2001") === +0. Actual: -0');
+ }
+}
+
+// CHECK#20
+if (Number("\u2002") !== 0) {
+ $ERROR('#20.1: Number("\\u2002") === 0. Actual: ' + (Number("\u2002")));
+} else {
+ if (1/Number("\u2002") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#20.2: Number("\\u2002") === +0. Actual: -0');
+ }
+}
+
+// CHECK#21
+if (Number("\u2003") !== 0) {
+ $ERROR('#21.1: Number("\\u2003") === 0. Actual: ' + (Number("\u2003")));
+} else {
+ if (1/Number("\u2003") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#21.2: Number("\\u2003") === +0. Actual: -0');
+ }
+}
+
+// CHECK#22
+if (Number("\u2004") !== 0) {
+ $ERROR('#22.1: Number("\\u2004") === 0. Actual: ' + (Number("\u2004")));
+} else {
+ if (1/Number("\u2004") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#22.2: Number("\\u2004") === +0. Actual: -0');
+ }
+}
+
+// CHECK#23
+if (Number("\u2005") !== 0) {
+ $ERROR('#23.1: Number("\\u2005") === 0. Actual: ' + (Number("\u2005")));
+} else {
+ if (1/Number("\u2005") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#23.2: Number("\\u2005") === +0. Actual: -0');
+ }
+}
+
+// CHECK#24
+if (Number("\u2006") !== 0) {
+ $ERROR('#24.1: Number("\\u2006") === 0. Actual: ' + (Number("\u2006")));
+} else {
+ if (1/Number("\u2006") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#24.2: Number("\\u2006") === +0. Actual: -0');
+ }
+}
+
+// CHECK#25
+if (Number("\u2007") !== 0) {
+ $ERROR('#25.1: Number("\\u2007") === 0. Actual: ' + (Number("\u2007")));
+} else {
+ if (1/Number("\u2007") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#25.2: Number("\\u2007") === +0. Actual: -0');
+ }
+}
+
+// CHECK#26
+if (Number("\u2008") !== 0) {
+ $ERROR('#26.1: Number("\\u2008") === 0. Actual: ' + (Number("\u2008")));
+} else {
+ if (1/Number("\u2008") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#26.2: Number("\\u2008") === +0. Actual: -0');
+ }
+}
+
+// CHECK#27
+if (Number("\u2009") !== 0) {
+ $ERROR('#27.1: Number("\\u2009") === 0. Actual: ' + (Number("\u2009")));
+} else {
+ if (1/Number("\u2009") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#27.2: Number("\\u2009") === +0. Actual: -0');
+ }
+}
+
+// CHECK#28
+if (Number("\u200A") !== 0) {
+ $ERROR('#28.1: Number("\\u200A") === 0. Actual: ' + (Number("\u200A")));
+} else {
+ if (1/Number("\u200A") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#28.2: Number("\\u200A") === +0. Actual: -0');
+ }
+}
+
+// CHECK#29
+if (Number("\u202F") !== 0) {
+ $ERROR('#29.1: Number("\\u202F") === 0. Actual: ' + (Number("\u202F")));
+} else {
+ if (1/Number("\u202F") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#29.2: Number("\\u202F") === +0. Actual: -0');
+ }
+}
+
+// CHECK#30
+if (Number("\u205F") !== 0) {
+ $ERROR('#30.1: Number("\\u205F") === 0. Actual: ' + (Number("\u205F")));
+} else {
+ if (1/Number("\u205F") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#30.2: Number("\\u205F") === +0. Actual: -0');
+ }
+}
+
+// CHECK#31
+if (Number("\u3000") !== 0) {
+ $ERROR('#31.1: Number("\\u3000") === 0. Actual: ' + (Number("\u3000")));
+} else {
+ if (1/Number("\u3000") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#31.2: Number("\\u3000") === +0. Actual: -0');
+ }
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A20.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A20.js
new file mode 100644
index 000000000..78689d42d
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A20.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.
+
+/**
+ * The MV of DecimalDigit ::: 4 or of HexDigit ::: 4 is 4
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A20.js
+ * @description Compare Number('0x4') and Number('0X4') with 4
+ */
+
+// CHECK#1
+if (Number("4") !== 4) {
+ $ERROR('#1: Number("4") === 4. Actual: ' + (Number("4")));
+}
+
+// CHECK#2
+if (Number("0x4") !== 4) {
+ $ERROR('#2: Number("0x4") === 4. Actual: ' + (Number("0x4")));
+}
+
+// CHECK#3
+if (+("0X4") !== 4) {
+ $ERROR('#3: +("0X4") === 4. Actual: ' + (+("0X4")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A21.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A21.js
new file mode 100644
index 000000000..de8fe9fe1
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A21.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.
+
+/**
+ * The MV of DecimalDigit ::: 5 or of HexDigit ::: 5 is 5
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A21.js
+ * @description Compare Number('0x5') and Number('0X5') with 5
+ */
+
+// CHECK#1
+if (+("5") !== 5) {
+ $ERROR('#1: +("5") === 5. Actual: ' + (+("5")));
+}
+
+// CHECK#2
+if (Number("0x5") !== 5) {
+ $ERROR('#2: Number("0x5") === 5. Actual: ' + (Number("0x5")));
+}
+
+// CHECK#3
+if (Number("0X5") !== 5) {
+ $ERROR('#3: Number("0X5") === 5. Actual: ' + (Number("0X5")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A22.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A22.js
new file mode 100644
index 000000000..02aa703a3
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A22.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.
+
+/**
+ * The MV of DecimalDigit ::: 6 or of HexDigit ::: 6 is 6
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A22.js
+ * @description Compare Number('0x6') and Number('0X6') with 6
+ */
+
+// CHECK#1
+if (Number("6") !== 6) {
+ $ERROR('#1: Number("6") === 6. Actual: ' + (Number("6")));
+}
+
+// CHECK#2
+if (+("0x6") !== 6) {
+ $ERROR('#2: +("0x6") === 6. Actual: ' + (+("0x6")));
+}
+
+// CHECK#3
+if (Number("0X6") !== 6) {
+ $ERROR('#3: Number("0X6") === 6. Actual: ' + (Number("0X6")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A23.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A23.js
new file mode 100644
index 000000000..d1745156d
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A23.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.
+
+/**
+ * The MV of DecimalDigit ::: 7 or of HexDigit ::: 7 is 7
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A23.js
+ * @description Compare Number('0x7') and Number('0X7') with 7
+ */
+
+// CHECK#1
+if (Number("7") !== 7) {
+ $ERROR('#1: Number("7") === 7. Actual: ' + (Number("7")));
+}
+
+// CHECK#2
+if (Number("0x7") !== 7) {
+ $ERROR('#2: Number("0x7") === 7. Actual: ' + (Number("0x7")));
+}
+
+// CHECK#3
+if (+("0X7") !== 7) {
+ $ERROR('#3: +("0X7") === 7. Actual: ' + (+("0X7")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A24.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A24.js
new file mode 100644
index 000000000..91409bead
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A24.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.
+
+/**
+ * The MV of DecimalDigit ::: 8 or of HexDigit ::: 8 is 8
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A24.js
+ * @description Compare Number('0x8') and Number('0X8') with 8
+ */
+
+// CHECK#1
+if (+("8") !== 8) {
+ $ERROR('#1: +("8") === 8. Actual: ' + (+("8")));
+}
+
+// CHECK#2
+if (Number("0x8") !== 8) {
+ $ERROR('#2: Number("0x8") === 8. Actual: ' + (Number("0x8")));
+}
+
+// CHECK#3
+if (Number("0X8") !== 8) {
+ $ERROR('#3: Number("0X8") === 8. Actual: ' + (Number("0X8")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A25.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A25.js
new file mode 100644
index 000000000..761ceb443
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A25.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.
+
+/**
+ * The MV of DecimalDigit ::: 9 or of HexDigit ::: 9 is 9
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A25.js
+ * @description Compare Number('0x9') and Number('0X9') with 9
+ */
+
+// CHECK#1
+if (Number("9") !== 9) {
+ $ERROR('#1: Number("9") === 9. Actual: ' + (Number("9")));
+}
+
+// CHECK#2
+if (+("0x9") !== 9) {
+ $ERROR('#2: +("0x9") === 9. Actual: ' + (+("0x9")));
+}
+
+// CHECK#3
+if (Number("0X9") !== 9) {
+ $ERROR('#3: Number("0X9") === 9. Actual: ' + (Number("0X9")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A26.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A26.js
new file mode 100644
index 000000000..404203f59
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A26.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.
+
+/**
+ * The MV of HexDigit ::: a or of HexDigit ::: A is 10
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A26.js
+ * @description Compare Number('0xA'), Number('0XA'), Number('0xa') and Number('0Xa') with 10
+ */
+
+// CHECK#1
+if (Number("0xa") !== 10) {
+ $ERROR('#1: Number("0xa") === 10. Actual: ' + (Number("0xa")));
+}
+
+// CHECK#2
+if (Number("0xA") !== 10) {
+ $ERROR('#2: Number("0xA") === 10. Actual: ' + (Number("0xA")));
+}
+
+// CHECK#3
+if (Number("0Xa") !== 10) {
+ $ERROR('#3: Number("0Xa") === 10. Actual: ' + (Number("0Xa")));
+}
+
+// CHECK#4
+if (+("0XA") !== 10) {
+ $ERROR('#4: +("0XA") === 10. Actual: ' + (+("0XA")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A27.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A27.js
new file mode 100644
index 000000000..67e6a6e5f
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A27.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.
+
+/**
+ * The MV of HexDigit ::: b or of HexDigit ::: B is 11
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A27.js
+ * @description Compare Number('0xB'), Number('0XB'), Number('0xb') and Number('0Xb') with 11
+ */
+
+// CHECK#1
+if (Number("0xb") !== 11) {
+ $ERROR('#1: Number("0xb") === 11. Actual: ' + (Number("0xb")));
+}
+
+// CHECK#2
+if (Number("0xB") !== 11) {
+ $ERROR('#2: Number("0xB") === 11. Actual: ' + (Number("0xB")));
+}
+
+// CHECK#3
+if (+("0Xb") !== 11) {
+ $ERROR('#3: +("0Xb") === 11. Actual: ' + (+("0Xb")));
+}
+
+// CHECK#4
+if (Number("0XB") !== 11) {
+ $ERROR('#4: Number("0XB") === 11. Actual: ' + (Number("0XB")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A28.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A28.js
new file mode 100644
index 000000000..d29b8c289
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A28.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.
+
+/**
+ * The MV of HexDigit ::: c or of HexDigit ::: C is 12
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A28.js
+ * @description Compare Number('0xC'), Number('0XC'), Number('0xc') and Number('0Xc') with 12
+ */
+
+// CHECK#1
+if (Number("0xc") !== 12) {
+ $ERROR('#1: Number("0xc") === 12. Actual: ' + (Number("0xc")));
+}
+
+// CHECK#2
+if (+("0xC") !== 12) {
+ $ERROR('#2: +("0xC") === 12. Actual: ' + (+("0xC")));
+}
+
+// CHECK#3
+if (Number("0Xc") !== 12) {
+ $ERROR('#3: Number("0Xc") === 12. Actual: ' + (Number("0Xc")));
+}
+
+// CHECK#4
+if (Number("0XC") !== 12) {
+ $ERROR('#4: Number("0XC") === 12. Actual: ' + (Number("0XC")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A29.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A29.js
new file mode 100644
index 000000000..88473af85
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A29.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.
+
+/**
+ * The MV of HexDigit ::: d or of HexDigit ::: D is 13
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A29.js
+ * @description Compare Number('0xD'), Number('0XD'), Number('0xd') and Number('0Xd') with 13
+ */
+
+// CHECK#1
+if (+("0xd") !== 13) {
+ $ERROR('#1: +("0xd") === 13. Actual: ' + (+("0xd")));
+}
+
+// CHECK#2
+if (Number("0xD") !== 13) {
+ $ERROR('#2: Number("0xD") === 13. Actual: ' + (Number("0xD")));
+}
+
+// CHECK#3
+if (Number("0Xd") !== 13) {
+ $ERROR('#3: Number("0Xd") === 13. Actual: ' + (Number("0Xd")));
+}
+
+// CHECK#4
+if (Number("0XD") !== 13) {
+ $ERROR('#4: Number("0XD") === 13. Actual: ' + (Number("0XD")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A30.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A30.js
new file mode 100644
index 000000000..b94bacbd7
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A30.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.
+
+/**
+ * The MV of HexDigit ::: e or of HexDigit ::: E is 14
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A30.js
+ * @description Compare Number('0xE'), Number('0XE'), Number('0xe') and Number('0Xe') with 14
+ */
+
+// CHECK#1
+if (Number("0xe") !== 14) {
+ $ERROR('#1: Number("0xe") === 14. Actual: ' + (Number("0xe")));
+}
+
+// CHECK#2
+if (Number("0xE") !== 14) {
+ $ERROR('#2: Number("0xE") === 14. Actual: ' + (Number("0xE")));
+}
+
+// CHECK#3
+if (Number("0Xe") !== 14) {
+ $ERROR('#3: Number("0Xe") === 14. Actual: ' + (Number("0Xe")));
+}
+
+// CHECK#4
+if (+("0XE") !== 14) {
+ $ERROR('#4: +("0XE") === 14. Actual: ' + (+("0XE")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A31.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A31.js
new file mode 100644
index 000000000..f5f151b76
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A31.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.
+
+/**
+ * The MV of HexDigit ::: f or of HexDigit ::: F is 15
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A31.js
+ * @description Compare Number('0xF'), Number('0XF'), Number('0xf') and Number('0Xf') with 15
+ */
+
+// CHECK#1
+if (Number("0xf") !== 15) {
+ $ERROR('#1: Number("0xf") === 15. Actual: ' + (Number("0xf")));
+}
+
+// CHECK#2
+if (Number("0xF") !== 15) {
+ $ERROR('#2: Number("0xF") === 15. Actual: ' + (Number("0xF")));
+}
+
+// CHECK#3
+if (+("0Xf") !== 15) {
+ $ERROR('#3: +("0Xf") === 15. Actual: ' + (+("0Xf")));
+}
+
+// CHECK#4
+if (Number("0XF") !== 15) {
+ $ERROR('#4: Number("0XF") === 15. Actual: ' + (Number("0XF")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A32.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A32.js
new file mode 100644
index 000000000..700feb717
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A32.js
@@ -0,0 +1,38 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Once the exact MV for a string numeric literal has been
+ * determined, it is then rounded to a value of the Number type with 20
+ * significant digits by replacing each significant digit after the 20th
+ * with a 0 digit or the number value
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A32.js
+ * @description Use various long numbers, for example, 1234567890.1234567890
+ */
+
+// CHECK#1
+if (Number("1234567890.1234567890") !== 1234567890.1234567890) {
+ $ERROR('#1: Number("1234567890.1234567890") === 1234567890.1234567890. Actual: ' + (Number("1234567890.1234567890")));
+}
+
+// CHECK#2
+if (Number("1234567890.1234567890") !== 1234567890.1234567000) {
+ $ERROR('#2: Number("1234567890.1234567890") === 1234567890.1234567000. Actual: ' + (Number("1234567890.1234567890")));
+}
+
+// CHECK#3
+if (+("1234567890.1234567890") === 1234567890.123456) {
+ $ERROR('#3: +("1234567890.1234567890") !== 1234567890.123456');
+}
+
+// CHECK#4
+if (Number("0.12345678901234567890") !== 0.123456789012345678) {
+ $ERROR('#4: Number("0.12345678901234567890") === 0.123456789012345678. Actual: ' + (Number("0.12345678901234567890")));
+}
+
+// CHECK#4
+if (Number("00.12345678901234567890") !== 0.123456789012345678) {
+ $ERROR('#4: Number("00.12345678901234567890") === 0.123456789012345678. Actual: ' + (Number("00.12345678901234567890")));
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A3_T1.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A3_T1.js
new file mode 100644
index 000000000..304f5ba4e
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A3_T1.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.
+
+/**
+ * The MV of StringNumericLiteral ::: StrWhiteSpaceopt StrNumericLiteral StrWhiteSpaceopt is the MV of StrNumericLiteral, no matter whether white space is present or not
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A3_T1.js
+ * @description static string
+ */
+
+// CHECK#1
+if (Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== Number("")) {
+ $ERROR('#1: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("")');
+}
+
+// CHECK#2
+if (Number("\u0009\u000C\u0020\u00A0\u000A\u000D\u2028\u2029\u000B\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u30001234567890\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== Number("1234567890")) {
+ $ERROR('#2: Number("\\u0009\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029\\u000B\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u30001234567890\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("1234567890")');
+}
+
+// CHECK#3
+if (!(+("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000Infinity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") == Number("Infinity"))) {
+ $ERROR('#3: +("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000Infinity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("Infinity")');
+}
+
+// CHECK#4
+if (!(Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000-Infinity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") == Number(-"Infinity"))) {
+ $ERROR('#4: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000-Infinity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("-Infinity")');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A3_T2.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A3_T2.js
new file mode 100644
index 000000000..0969dd9bb
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A3_T2.js
@@ -0,0 +1,34 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The MV of StringNumericLiteral ::: StrWhiteSpaceopt StrNumericLiteral StrWhiteSpaceopt is the MV of StrNumericLiteral, no matter whether white space is present or not
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A3_T2.js
+ * @description dynamic string
+ */
+
+function dynaString(s1, s2){
+ return String(s1)+String(s2);
+}
+
+// CHECK#1
+if (Number(dynaString("\u0009\u000C\u0020\u00A0\u000B", "\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) !== Number("")) {
+ $ERROR('#1: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B"+"\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("")');
+}
+
+// CHECK#2
+if (+(dynaString("\u0009\u000C\u0020\u00A0\u000A\u000D\u2028\u2029\u000B12345", "67890\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) !== Number("1234567890")) {
+ $ERROR('#2: +("\\u0009\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029\\u000B12345"+"67890\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("1234567890")');
+}
+
+// CHECK#3
+if (!(Number(dynaString("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029Infi", "nity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) == Number("Infinity"))) {
+ $ERROR('#3: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029Infi"+"nity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("Infinity")');
+}
+
+// CHECK#4
+if (!(Number(dynaString("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029-Infi", "nity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) == Number(-"Infinity"))) {
+ $ERROR('#4: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029-Infi"+"nity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("-Infinity")');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A4_T1.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A4_T1.js
new file mode 100644
index 000000000..8d2051140
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A4_T1.js
@@ -0,0 +1,50 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The MV of StrDecimalLiteral::: + StrUnsignedDecimalLiteral is the MV of StrUnsignedDecimalLiteral
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A4_T1.js
+ * @description Compare Number('+any_number') with Number('any_number')
+ */
+
+// CHECK#1
+if (Number("+0") !== Number("0")) {
+ $ERROR('#1.1: Number("+0") === Number("0")');
+} else {
+ // CHECK#2
+ if (1/Number("+0") !== 1/Number("0")) {
+ $ERROR('#2.2: 1/Number("+0") === 1/Number("0")');
+ }
+}
+
+// CHECK#3
+if (Number("+Infinity") !== Number("Infinity")) {
+ $ERROR('#3: Number("+Infinity") === Number("Infinity")');
+}
+
+// CHECK#4
+if (Number("+1234.5678") !== Number("1234.5678")) {
+ $ERROR('#4: Number("+1234.5678") === Number("1234.5678")');
+}
+
+// CHECK#5
+if (Number("+1234.5678e90") !== Number("1234.5678e90")) {
+ $ERROR('#5: Number("+1234.5678e90") === Number("1234.5678e90")');
+}
+
+// CHECK#6
+if (Number("+1234.5678E90") !== Number("1234.5678E90")) {
+ $ERROR('#6: Number("+1234.5678E90") === Number("1234.5678E90")');
+}
+
+// CHECK#7
+if (Number("+1234.5678e-90") !== Number("1234.5678e-90")) {
+ $ERROR('#7: Number("+1234.5678e-90") === Number("1234.5678e-90")');
+}
+
+// CHECK#8
+if (Number("+1234.5678E-90") !== Number("1234.5678E-90")) {
+ $ERROR('#8: Number("+1234.5678E-90") === Number("1234.5678E-90")');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A4_T2.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A4_T2.js
new file mode 100644
index 000000000..e10d517ce
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A4_T2.js
@@ -0,0 +1,54 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The MV of StrDecimalLiteral::: + StrUnsignedDecimalLiteral is the MV of StrUnsignedDecimalLiteral
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A4_T2.js
+ * @description Compare Number('+' + 'any_number') with Number('any_number')
+ */
+
+function dynaString(s1, s2){
+ return String(s1)+String(s2);
+}
+
+// CHECK#1
+if (Number(dynaString("+", "0")) !== Number("0")) {
+ $ERROR('#1: Number("+"+"0") === Number("0")');
+} else {
+ // CHECK#2
+ if (1/Number(dynaString("+", "0")) !== 1/Number("0")) {
+ $ERROR('#2: 1/Number("+"+"0") === 1/Number("0")');
+ }
+}
+
+// CHECK#3
+if (Number(dynaString("+Infi", "nity")) !== Number("Infinity")) {
+ $ERROR('#3: Number("+Infin"+"ity") === Number("Infinity")');
+}
+
+// CHECK#4
+if (Number(dynaString("+1234.", "5678")) !== Number("1234.5678")) {
+ $ERROR('#4: Number("+1234."+"5678") === Number("1234.5678")');
+}
+
+// CHECK#5
+if (Number(dynaString("+1234.", "5678e90")) !== Number("1234.5678e90")) {
+ $ERROR('#5: Number("+1234."+"5678e90") === Number("1234.5678e90")');
+}
+
+// CHECK#6
+if (Number(dynaString("+1234.", "5678E90")) !== Number("1234.5678E90")) {
+ $ERROR('#6: Number("+1234."+"5678E90") === Number("1234.5678E90")');
+}
+
+// CHECK#7
+if (Number(dynaString("+1234.", "5678e-90")) !== Number("1234.5678e-90")) {
+ $ERROR('#7: Number("+1234."+"5678e-90") === Number("1234.5678e-90")');
+}
+
+// CHECK#8
+if (Number(dynaString("+1234.", "5678E-90")) !== Number("1234.5678E-90")) {
+ $ERROR('#8: Number("+1234."+"5678E-90") === Number("1234.5678E-90")');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T1.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T1.js
new file mode 100644
index 000000000..b6bb8137d
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T1.js
@@ -0,0 +1,61 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The MV of StrDecimalLiteral::: - StrUnsignedDecimalLiteral is the negative
+ * of the MV of StrUnsignedDecimalLiteral. (the negative of this 0 is also 0)
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A5_T1.js
+ * @description Compare Number('-any_number') with -Number('any_number')
+ */
+
+// CHECK#1
+if (Number("-0") !== -Number("0")) {
+ $ERROR('#1: Number("-0") === -Number("0")');
+} else {
+ // CHECK#2
+ if (1/Number("-0") !== -1/Number("0")) {
+ $ERROR('#2: 1/Number("-0") === -1/Number("0")');
+ }
+}
+
+// CHECK#3
+if (Number("-Infinity") !== -Number("Infinity")) {
+ $ERROR('#3: Number("-Infinity") === -Number("Infinity")');
+}
+
+// CHECK#4
+if (Number("-1234567890") !== -Number("1234567890")) {
+ $ERROR('#4: Number("-1234567890") === -Number("1234567890")');
+}
+
+// CHECK#5
+if (Number("-1234.5678") !== -Number("1234.5678")) {
+ $ERROR('#5: Number("-1234.5678") === -Number("1234.5678")');
+}
+
+// CHECK#6
+if (Number("-1234.5678e90") !== -Number("1234.5678e90")) {
+ $ERROR('#6: Number("-1234.5678e90") === -Number("1234.5678e90")');
+}
+
+// CHECK#7
+if (Number("-1234.5678E90") !== -Number("1234.5678E90")) {
+ $ERROR('#6: Number("-1234.5678E90") === -Number("1234.5678E90")');
+}
+
+// CHECK#8
+if (Number("-1234.5678e-90") !== -Number("1234.5678e-90")) {
+ $ERROR('#6: Number("-1234.5678e-90") === -Number("1234.5678e-90")');
+}
+
+// CHECK#9
+if (Number("-1234.5678E-90") !== -Number("1234.5678E-90")) {
+ $ERROR('#6: Number("-1234.5678E-90") === -Number("1234.5678E-90")');
+}
+
+// CHECK#10
+if (Number("-Infinity") !== Number.NEGATIVE_INFINITY) {
+ $ERROR('#3: Number("-Infinity") === Number.NEGATIVE_INFINITY');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T2.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T2.js
new file mode 100644
index 000000000..47bc6549e
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T2.js
@@ -0,0 +1,146 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The MV of StrDecimalLiteral::: - StrUnsignedDecimalLiteral is the negative
+ * of the MV of StrUnsignedDecimalLiteral. (the negative of this 0 is also 0)
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A5_T2.js
+ * @description Compare Number('-[or +]any_number') with -[or without -]any_number)
+ */
+
+// CHECK#1
+if (Number("1") !== 1) {
+ $ERROR('#1: Number("1") === 1');
+}
+
+// CHECK#2
+if (Number("+1") !== 1) {
+ $ERROR('#3: Number("+1") === 1');
+}
+
+// CHECK#3
+if (Number("-1") !== -1) {
+ $ERROR('#3: Number("-1") === -1');
+}
+
+// CHECK#4
+if (Number("2") !== 2) {
+ $ERROR('#4: Number("2") === 2');
+}
+
+// CHECK#5
+if (Number("+2") !== 2) {
+ $ERROR('#5: Number("+2") === 2');
+}
+
+// CHECK#6
+if (Number("-2") !== -2) {
+ $ERROR('#6: Number("-2") === -2');
+}
+
+// CHECK#7
+if (Number("3") !== 3) {
+ $ERROR('#7: Number("3") === 3');
+}
+
+// CHECK#8
+if (Number("+3") !== 3) {
+ $ERROR('#8: Number("+3") === 3');
+}
+
+// CHECK#9
+if (Number("-3") !== -3) {
+ $ERROR('#9: Number("-3") === -3');
+}
+
+// CHECK#10
+if (Number("4") !== 4) {
+ $ERROR('#10: Number("4") === 4');
+}
+
+// CHECK#11
+if (Number("+4") !== 4) {
+ $ERROR('#11: Number("+4") === 4');
+}
+
+// CHECK#12
+if (Number("-4") !== -4) {
+ $ERROR('#12: Number("-4") === -4');
+}
+
+// CHECK#13
+if (Number("5") !== 5) {
+ $ERROR('#13: Number("5") === 5');
+}
+
+// CHECK#14
+if (Number("+5") !== 5) {
+ $ERROR('#14: Number("+5") === 5');
+}
+
+// CHECK#15
+if (Number("-5") !== -5) {
+ $ERROR('#15: Number("-5") === -5');
+}
+
+// CHECK#16
+if (Number("6") !== 6) {
+ $ERROR('#16: Number("6") === 6');
+}
+
+// CHECK#17
+if (Number("+6") !== 6) {
+ $ERROR('#17: Number("+6") === 6');
+}
+
+// CHECK#18
+if (Number("-6") !== -6) {
+ $ERROR('#18: Number("-6") === -6');
+}
+
+// CHECK#19
+if (Number("7") !== 7) {
+ $ERROR('#19: Number("7") === 7');
+}
+
+// CHECK#20
+if (Number("+7") !== 7) {
+ $ERROR('#20: Number("+7") === 7');
+}
+
+// CHECK#21
+if (Number("-7") !== -7) {
+ $ERROR('#21: Number("-7") === -7');
+}
+
+// CHECK#22
+if (Number("8") !== 8) {
+ $ERROR('#22: Number("8") === 8');
+}
+
+// CHECK#23
+if (Number("+8") !== 8) {
+ $ERROR('#23: Number("+8") === 8');
+}
+
+// CHECK#24
+if (Number("-8") !== -8) {
+ $ERROR('#24: Number("-8") === -8');
+}
+
+// CHECK#25
+if (Number("9") !== 9) {
+ $ERROR('#25: Number("9") === 9');
+}
+
+// CHECK#26
+if (Number("+9") !== 9) {
+ $ERROR('#26: Number("+9") === 9');
+}
+
+// CHECK#27
+if (Number("-9") !== -9) {
+ $ERROR('#27: Number("-9") === -9');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T3.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T3.js
new file mode 100644
index 000000000..c062e198f
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A5_T3.js
@@ -0,0 +1,65 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * The MV of StrDecimalLiteral::: - StrUnsignedDecimalLiteral is the negative
+ * of the MV of StrUnsignedDecimalLiteral. (the negative of this 0 is also 0)
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A5_T3.js
+ * @description Compare Number('-' + 'any_number') with -Number('any_number')
+ */
+
+function dynaString(s1, s2){
+ return String(s1)+String(s2);
+}
+
+// CHECK#1
+if (Number(dynaString("-", "0")) !== -Number("0")) {
+ $ERROR('#1: Number("-"+"0") === -Number("0")');
+} else {
+ // CHECK#2
+ if (1/Number(dynaString("-", "0")) !== -1/Number("0")) {
+ $ERROR('#2: 1/Number("-"+"0") === -1/Number("0")');
+ }
+}
+
+// CHECK#3
+if (Number(dynaString("-Infi", "nity")) !== -Number("Infinity")) {
+ $ERROR('#3: Number("-Infi"+"nity") === -Number("Infinity")');
+}
+
+// CHECK#4
+if (Number(dynaString("-12345", "67890")) !== -Number("1234567890")) {
+ $ERROR('#4: Number("-12345"+"67890") === -Number("1234567890")');
+}
+
+// CHECK#5
+if (Number(dynaString("-1234.", "5678")) !== -Number("1234.5678")) {
+ $ERROR('#5: Number("-1234."+"5678") === -Number("1234.5678")');
+}
+
+// CHECK#6
+if (Number(dynaString("-1234.", "5678e90")) !== -Number("1234.5678e90")) {
+ $ERROR('#6: Number("-1234."+"5678e90") === -Number("1234.5678e90")');
+}
+
+// CHECK#7
+if (Number(dynaString("-1234.", "5678E90")) !== -Number("1234.5678E90")) {
+ $ERROR('#6: Number("-1234."+"5678E90") === -Number("1234.5678E90")');
+}
+
+// CHECK#8
+if (Number(dynaString("-1234.", "5678e-90")) !== -Number("1234.5678e-90")) {
+ $ERROR('#6: Number("-1234."+"5678e-90") === -Number("1234.5678e-90")');
+}
+
+// CHECK#9
+if (Number(dynaString("-1234.", "5678E-90")) !== -Number("1234.5678E-90")) {
+ $ERROR('#6: Number("-1234."+"5678E-90") === -Number("1234.5678E-90")');
+}
+
+// CHECK#10
+if (Number(dynaString("-Infi", "nity")) !== Number.NEGATIVE_INFINITY) {
+ $ERROR('#3: Number("-Infi"+"nity") === Number.NEGATIVE_INFINITY');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A6_T1.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A6_T1.js
new file mode 100644
index 000000000..6aeeef242
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A6_T1.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.
+
+/**
+ * The MV of StrUnsignedDecimalLiteral::: Infinity is 10<sup><small>10000</small></sup>
+ * (a value so large that it will round to <b><tt>+&infin;</tt></b>)
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A6_T1.js
+ * @description Compare Number('Infinity') with Number.POSITIVE_INFINITY, 10e10000, 10E10000 and Number("10e10000")
+ */
+
+// CHECK#1
+if (Number("Infinity") !== Number.POSITIVE_INFINITY) {
+ $ERROR('#1: Number("Infinity") === Number.POSITIVE_INFINITY');
+}
+
+// CHECK#2
+if (Number("Infinity") !== 10e10000) {
+ $ERROR('#2: Number("Infinity") === 10e10000');
+}
+
+// CHECK#3
+if (Number("Infinity") !== 10E10000) {
+ $ERROR('#3: Number("Infinity") === 10E10000');
+}
+
+// CHECK#4
+if (Number("Infinity") !== Number("10e10000")) {
+ $ERROR('#4: Number("Infinity") === Number("10e10000")');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A6_T2.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A6_T2.js
new file mode 100644
index 000000000..9e4659873
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A6_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.
+
+/**
+ * The MV of StrUnsignedDecimalLiteral::: Infinity is 10<sup><small>10000</small></sup>
+ * (a value so large that it will round to <b><tt>+&infin;</tt></b>)
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A6_T2.js
+ * @description Compare Number('Infi'+'nity') with Number.POSITIVE_INFINITY, 10e10000, 10E10000 and Number("10e10000")
+ */
+
+function dynaString(s1, s2){
+ return String(s1)+String(s2);
+}
+
+
+// CHECK#1
+if (Number(dynaString("Infi", "nity")) !== Number.POSITIVE_INFINITY) {
+ $ERROR('#1: Number("Infi"+"nity") === Number.POSITIVE_INFINITY');
+}
+
+// CHECK#2
+if (Number(dynaString("Infi", "nity")) !== 10e10000) {
+ $ERROR('#2: Number("Infi"+"nity") === 10e10000');
+}
+
+// CHECK#3
+if (Number(dynaString("Infi", "nity")) !== 10E10000) {
+ $ERROR('#3: Number("Infi"+"nity") === 10E10000');
+}
+
+// CHECK#4
+if (Number(dynaString("Infi", "nity")) !== Number("10e10000")) {
+ $ERROR('#4: Number("Infi"+"nity") === Number("10e10000")');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A7.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A7.js
new file mode 100644
index 000000000..50a7f357f
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A7.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.
+
+/**
+ * The MV of StrUnsignedDecimalLiteral::: DecimalDigits. DecimalDigits
+ * is the MV of the first DecimalDigits plus the MV of the second DecimalDigits times
+ * 10<sup><small>-n</small></sup>, where n is the number of characters in the second DecimalDigits
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A7.js
+ * @description Compare Number('1234.5678') with Number('1234')+(+('5678')*1e-4)
+ */
+
+// CHECK#1
+if (Number("1234.5678") !== Number("1234")+(+("5678")*1e-4)) {
+ $ERROR('#1: Number("1234.5678") === Number("1234")+(+("5678")*1e-4)');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A8.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A8.js
new file mode 100644
index 000000000..6b7a5d4a3
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A8.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.
+
+/**
+ * The MV of StrUnsignedDecimalLiteral::: DecimalDigits. ExponentPart
+ * is the MV of DecimalDigits times 10<sup><small>e</small></sup> , where e is the MV of ExponentPart
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A8.js
+ * @description Compare Number('1234e5') and Number('1234.e5') with Number('1234')*1e5
+ */
+
+// CHECK#1
+if (Number("1234e5") !== Number("1234")*1e5) {
+ $ERROR('#1: Number("1234e5") === Number("1234")*1e5');
+}
+
+// CHECK#2
+if (Number("1234.e5") !== +("1234")*1e5) {
+ $ERROR('#2: Number("1234.e5") === +("1234")*1e5');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A9.js b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A9.js
new file mode 100644
index 000000000..1c88a5322
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/S9.3.1_A9.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.
+
+/**
+ * The MV of StrUnsignedDecimalLiteral::: DecimalDigits. DecimalDigits ExponentPart
+ * is (the MV of the first DecimalDigits plus (the MV of the second DecimalDigits times
+ * 10<sup><small>-n</small></sup>)) times 10<sup><small>e</small></sup>, where n is the number
+ * of characters in the second DecimalDigits and e is the MV of ExponentPart
+ *
+ * @path ch09/9.3/9.3.1/S9.3.1_A9.js
+ * @description Compare Number('1234.5678e9') with (Number('1234')+(Number('5678')*1e-4))*1e9,
+ * and +('1234.5678e-9') with (Number('1234')+(Number('5678')*1e-4))*1e-9
+ */
+
+// CHECK#1
+if (Number("1234.5678e9") !== (Number("1234")+(Number("5678")*1e-4))*1e9) {
+ $ERROR('#1: Number("1234.5678e9") === (Number("1234")+(Number("5678")*1e-4))*1e9');
+}
+
+// CHECK#2
+if (+("1234.5678e-9") !== (Number("1234")+(Number("5678")*1e-4))*1e-9) {
+ $ERROR('#2: +("1234.5678e-9") === (Number("1234")+(Number("5678")*1e-4))*1e-9');
+}
+
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/browser.js b/js/src/tests/test262/ch09/9.3/9.3.1/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/browser.js
diff --git a/js/src/tests/test262/ch09/9.3/9.3.1/shell.js b/js/src/tests/test262/ch09/9.3/9.3.1/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch09/9.3/9.3.1/shell.js