diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/test262/language/literals/numeric | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/language/literals/numeric')
161 files changed, 6413 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/literals/numeric/7.8.3-1gs-strict.js b/js/src/tests/test262/language/literals/numeric/7.8.3-1gs-strict.js new file mode 100644 index 0000000000..9c5671cc7e --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/7.8.3-1gs-strict.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.8.3-1gs +description: Strict Mode - octal extension(010) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError +flags: [onlyStrict] +---*/ + +$DONOTEVALUATE(); + +var y = 010; diff --git a/js/src/tests/test262/language/literals/numeric/7.8.3-2gs-strict.js b/js/src/tests/test262/language/literals/numeric/7.8.3-2gs-strict.js new file mode 100644 index 0000000000..dfb364fb41 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/7.8.3-2gs-strict.js @@ -0,0 +1,21 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.8.3-2gs +description: > + Strict Mode - octal extension is forbidden in strict mode (after a + hex number is assigned to a variable) +negative: + phase: parse + type: SyntaxError +flags: [onlyStrict] +---*/ + +$DONOTEVALUATE(); + +var a; +a = 0x1; +a = 01; diff --git a/js/src/tests/test262/language/literals/numeric/7.8.3-3gs-strict.js b/js/src/tests/test262/language/literals/numeric/7.8.3-3gs-strict.js new file mode 100644 index 0000000000..36cb6278ae --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/7.8.3-3gs-strict.js @@ -0,0 +1,18 @@ +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.8.3-3gs +description: > + Strict Mode - octal extension is forbidden in strict mode (after a + hex number is assigned to a variable from an eval) +flags: [onlyStrict] +---*/ + +var a; +assert.throws(SyntaxError, function() { + eval("a = 0x1;a = 01;"); +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.1_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.1_T1.js new file mode 100644 index 0000000000..65b517d786 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.1_T1.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: "DecimalLiteral :: DecimalIntegerLiteral" +es5id: 7.8.3_A1.1_T1 +description: "DecimalIntegerLiteral :: 0, NoNZeroDigit" +---*/ + +//CHECK#0 +if (0 !== 0) { + throw new Test262Error('#0: 0 === 0'); +} + +//CHECK#1 +if (1 !== 1) { + throw new Test262Error('#1: 1 === 1'); +} + +//CHECK#2 +if (2 !== 2) { + throw new Test262Error('#2: 2 === 2'); +} + +//CHECK#3 +if (3 !== 3) { + throw new Test262Error('#3: 3 === 3'); +} + +//CHECK#4 +if (4 !== 4) { + throw new Test262Error('#4: 4 === 4'); +} + +//CHECK#5 +if (5 !== 5) { + throw new Test262Error('#5: 5 === 5'); +} + +//CHECK#6 +if (6 !== 6) { + throw new Test262Error('#6: 6 === 6'); +} + +//CHECK#7 +if (7 !== 7) { + throw new Test262Error('#7: 7 === 7'); +} + +//CHECK#8 +if (8 !== 8) { + throw new Test262Error('#8: 8 === 8'); +} + +//CHECK#9 +if (9 !== 9) { + throw new Test262Error('#9: 9 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.1_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.1_T2.js new file mode 100644 index 0000000000..3d5c404867 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.1_T2.js @@ -0,0 +1,55 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: DecimalIntegerLiteral" +es5id: 7.8.3_A1.1_T2 +description: "DecimalIntegerLiteral :: NoNZeroDigit DecimalDigits" +---*/ + +//CHECK#1 +if (11 !== 11) { + throw new Test262Error('#1: 11 === 11'); +} + +//CHECK#2 +if (22 !== 22) { + throw new Test262Error('#2: 22 === 22'); +} + +//CHECK#3 +if (33 !== 33) { + throw new Test262Error('#3: 33 === 33'); +} + +//CHECK#4 +if (44 !== 44) { + throw new Test262Error('#4: 44 === 44'); +} + +//CHECK#5 +if (55 !== 55) { + throw new Test262Error('#5: 55 === 55'); +} + +//CHECK#6 +if (66 !== 66) { + throw new Test262Error('#6: 66 === 66'); +} + +//CHECK#7 +if (77 !== 77) { + throw new Test262Error('#7: 77 === 77'); +} + +//CHECK#8 +if (88 !== 88) { + throw new Test262Error('#8: 88 === 88'); +} + +//CHECK#9 +if (99 !== 99) { + throw new Test262Error('#9: 99 === 99'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T1.js new file mode 100644 index 0000000000..985682c62b --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T1.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: "DecimalLiteral :: DecimalIntegerLiteral ExponentPart" +es5id: 7.8.3_A1.2_T1 +description: "ExponentPart :: e DecimalDigits" +---*/ + +//CHECK#0 +if (0e1 !== 0) { + throw new Test262Error('#0: 0e1 === 0'); +} + +//CHECK#1 +if (1e1 !== 10) { + throw new Test262Error('#1: 1e1 === 10'); +} + +//CHECK#2 +if (2e1 !== 20) { + throw new Test262Error('#2: 2e1 === 20'); +} + +//CHECK#3 +if (3e1 !== 30) { + throw new Test262Error('#3: 3e1 === 30'); +} + +//CHECK#4 +if (4e1 !== 40) { + throw new Test262Error('#4: 4e1 === 40'); +} + +//CHECK#5 +if (5e1 !== 50) { + throw new Test262Error('#5: 5e1 === 50'); +} + +//CHECK#6 +if (6e1 !== 60) { + throw new Test262Error('#6: 6e1 === 60'); +} + +//CHECK#7 +if (7e1 !== 70) { + throw new Test262Error('#7: 7e1 === 70'); +} + +//CHECK#8 +if (8e1 !== 80) { + throw new Test262Error('#8: 8e1 === 80'); +} + +//CHECK#9 +if (9e1 !== 90) { + throw new Test262Error('#9: 9e1 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T2.js new file mode 100644 index 0000000000..4c06951f87 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T2.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: "DecimalLiteral :: DecimalIntegerLiteral ExponentPart" +es5id: 7.8.3_A1.2_T2 +description: "ExponentPart :: E DecimalDigits" +---*/ + +//CHECK#0 +if (0E1 !== 0) { + throw new Test262Error('#0: 0E1 === 0'); +} + +//CHECK#1 +if (1E1 !== 10) { + throw new Test262Error('#1: 1E1 === 1'); +} + +//CHECK#2 +if (2E1 !== 20) { + throw new Test262Error('#2: 2E1 === 20'); +} + +//CHECK#3 +if (3E1 !== 30) { + throw new Test262Error('#3: 3E1 === 30'); +} + +//CHECK#4 +if (4E1 !== 40) { + throw new Test262Error('#4: 4E1 === 40'); +} + +//CHECK#5 +if (5E1 !== 50) { + throw new Test262Error('#5: 5E1 === 50'); +} + +//CHECK#6 +if (6E1 !== 60) { + throw new Test262Error('#6: 6E1 === 60'); +} + +//CHECK#7 +if (7E1 !== 70) { + throw new Test262Error('#7: 7E1 === 70'); +} + +//CHECK#8 +if (8E1 !== 80) { + throw new Test262Error('#8: 8E1 === 80'); +} + +//CHECK#9 +if (9E1 !== 90) { + throw new Test262Error('#9: 9E1 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T3.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T3.js new file mode 100644 index 0000000000..643666e171 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T3.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: "DecimalLiteral :: DecimalIntegerLiteral ExponentPart" +es5id: 7.8.3_A1.2_T3 +description: "ExponentPart :: e -DecimalDigits" +---*/ + +//CHECK#0 +if (0e-1 !== 0) { + throw new Test262Error('#0: 0e-1 === 0'); +} + +//CHECK#1 +if (1e-1 !== 0.1) { + throw new Test262Error('#1: 1e-1 === 0.1'); +} + +//CHECK#2 +if (2e-1 !== 0.2) { + throw new Test262Error('#2: 2e-1 === 0.2'); +} + +//CHECK#3 +if (3e-1 !== 0.3) { + throw new Test262Error('#3: 3e-1 === 0.3'); +} + +//CHECK#4 +if (4e-1 !== 0.4) { + throw new Test262Error('#4: 4e-1 === 0.4'); +} + +//CHECK#5 +if (5e-1 !== 0.5) { + throw new Test262Error('#5: 5e-1 === 0.5'); +} + +//CHECK#6 +if (6e-1 !== 0.6) { + throw new Test262Error('#6: 6e-1 === 0.6'); +} + +//CHECK#7 +if (7e-1 !== 0.7) { + throw new Test262Error('#7: 7e-1 === 0.7'); +} + +//CHECK#8 +if (8e-1 !== 0.8) { + throw new Test262Error('#8: 8e-1 === 0.8'); +} + +//CHECK#9 +if (9e-1 !== 0.9) { + throw new Test262Error('#9: 9e-1 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T4.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T4.js new file mode 100644 index 0000000000..34a32c2110 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T4.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: "DecimalLiteral :: DecimalIntegerLiteral ExponentPart" +es5id: 7.8.3_A1.2_T4 +description: "ExponentPart :: E -DecimalDigits" +---*/ + +//CHECK#0 +if (0E-1 !== 0) { + throw new Test262Error('#0: 0E-1 === 0'); +} + +//CHECK#1 +if (1E-1 !== 0.1) { + throw new Test262Error('#1: 1E-1 === 0.1'); +} + +//CHECK#2 +if (2E-1 !== 0.2) { + throw new Test262Error('#2: 2E-1 === 0.2'); +} + +//CHECK#3 +if (3E-1 !== 0.3) { + throw new Test262Error('#3: 3E-1 === 0.3'); +} + +//CHECK#4 +if (4E-1 !== 0.4) { + throw new Test262Error('#4: 4E-1 === 0.4'); +} + +//CHECK#5 +if (5E-1 !== 0.5) { + throw new Test262Error('#5: 5E-1 === 0.5'); +} + +//CHECK#6 +if (6E-1 !== 0.6) { + throw new Test262Error('#6: 6E-1 === 0.6'); +} + +//CHECK#7 +if (7E-1 !== 0.7) { + throw new Test262Error('#7: 7E-1 === 0.7'); +} + +//CHECK#8 +if (8E-1 !== 0.8) { + throw new Test262Error('#8: 8E-1 === 0.8'); +} + +//CHECK#9 +if (9E-1 !== 0.9) { + throw new Test262Error('#9: 9E-1 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T5.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T5.js new file mode 100644 index 0000000000..4cbffa4890 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T5.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: "DecimalLiteral :: DecimalIntegerLiteral ExponentPart" +es5id: 7.8.3_A1.2_T5 +description: "ExponentPart :: e +DecimalDigits" +---*/ + +//CHECK#0 +if (0e+1 !== 0) { + throw new Test262Error('#0: 0e+1 === 0'); +} + +//CHe+CK#1 +if (1e+1 !== 10) { + throw new Test262Error('#1: 1e+1 === 10'); +} + +//CHe+CK#2 +if (2e+1 !== 20) { + throw new Test262Error('#2: 2e+1 === 20'); +} + +//CHe+CK#3 +if (3e+1 !== 30) { + throw new Test262Error('#3: 3e+1 === 30'); +} + +//CHe+CK#4 +if (4e+1 !== 40) { + throw new Test262Error('#4: 4e+1 === 40'); +} + +//CHe+CK#5 +if (5e+1 !== 50) { + throw new Test262Error('#5: 5e+1 === 50'); +} + +//CHe+CK#6 +if (6e+1 !== 60) { + throw new Test262Error('#6: 6e+1 === 60'); +} + +//CHe+CK#7 +if (7e+1 !== 70) { + throw new Test262Error('#7: 7e+1 === 70'); +} + +//CHe+CK#8 +if (8e+1 !== 80) { + throw new Test262Error('#8: 8e+1 === 80'); +} + +//CHe+CK#9 +if (9e+1 !== 90) { + throw new Test262Error('#9: 9e+1 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T6.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T6.js new file mode 100644 index 0000000000..c79dd26fbc --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T6.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: "DecimalLiteral :: DecimalIntegerLiteral ExponentPart" +es5id: 7.8.3_A1.2_T6 +description: "ExponentPart :: E +DecimalDigits" +---*/ + +//CHECK#0 +if (0E+1 !== 0) { + throw new Test262Error('#0: 0E+1 === 0'); +} + +//CHE+CK#1 +if (1E+1 !== 10) { + throw new Test262Error('#1: 1E+1 === 10'); +} + +//CHE+CK#2 +if (2E+1 !== 20) { + throw new Test262Error('#2: 2E+1 === 20'); +} + +//CHE+CK#3 +if (3E+1 !== 30) { + throw new Test262Error('#3: 3E+1 === 30'); +} + +//CHE+CK#4 +if (4E+1 !== 40) { + throw new Test262Error('#4: 4E+1 === 40'); +} + +//CHE+CK#5 +if (5E+1 !== 50) { + throw new Test262Error('#5: 5E+1 === 50'); +} + +//CHE+CK#6 +if (6E+1 !== 60) { + throw new Test262Error('#6: 6E+1 === 60'); +} + +//CHE+CK#7 +if (7E+1 !== 70) { + throw new Test262Error('#7: 7E+1 === 70'); +} + +//CHE+CK#8 +if (8E+1 !== 80) { + throw new Test262Error('#8: 8E+1 === 80'); +} + +//CHE+CK#9 +if (9E+1 !== 90) { + throw new Test262Error('#9: 9E+1 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T7.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T7.js new file mode 100644 index 0000000000..076e396a7f --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T7.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: "DecimalLiteral :: DecimalIntegerLiteral ExponentPart" +es5id: 7.8.3_A1.2_T7 +description: "ExponentPart :: e 0" +---*/ + +//CHECK#0 +if (0e0 !== 0) { + throw new Test262Error('#0: 0e0 === 0'); +} + +//CHECK#1 +if (1e0 !== 1) { + throw new Test262Error('#1: 1e0 === 1'); +} + +//CHECK#2 +if (2e0 !== 2) { + throw new Test262Error('#2: 2e0 === 2'); +} + +//CHECK#3 +if (3e0 !== 3) { + throw new Test262Error('#3: 3e0 === 3'); +} + +//CHECK#4 +if (4e0 !== 4) { + throw new Test262Error('#4: 4e0 === 4'); +} + +//CHECK#5 +if (5e0 !== 5) { + throw new Test262Error('#5: 5e0 === 5'); +} + +//CHECK#6 +if (6e0 !== 6) { + throw new Test262Error('#6: 6e0 === 6'); +} + +//CHECK#7 +if (7e0 !== 7) { + throw new Test262Error('#7: 7e0 === 7'); +} + +//CHECK#8 +if (8e0 !== 8) { + throw new Test262Error('#8: 8e0 === 8'); +} + +//CHECK#9 +if (9e0 !== 9) { + throw new Test262Error('#9: 9e0 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T8.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T8.js new file mode 100644 index 0000000000..cd051db657 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A1.2_T8.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: "DecimalLiteral :: DecimalIntegerLiteral ExponentPart" +es5id: 7.8.3_A1.2_T8 +description: "ExponentPart :: E 0" +---*/ + +//CHECK#0 +if (0E0 !== 0) { + throw new Test262Error('#0: 0E0 === 0'); +} + +//CHECK#1 +if (1E0 !== 1) { + throw new Test262Error('#1: 1E0 === 1'); +} + +//CHECK#2 +if (2E0 !== 2) { + throw new Test262Error('#2: 2E0 === 2'); +} + +//CHECK#3 +if (3E0 !== 3) { + throw new Test262Error('#3: 3E0 === 3'); +} + +//CHECK#4 +if (4E0 !== 4) { + throw new Test262Error('#4: 4E0 === 4'); +} + +//CHECK#5 +if (5E0 !== 5) { + throw new Test262Error('#5: 5E0 === 5'); +} + +//CHECK#6 +if (6E0 !== 6) { + throw new Test262Error('#6: 6E0 === 6'); +} + +//CHECK#7 +if (7E0 !== 7) { + throw new Test262Error('#7: 7E0 === 7'); +} + +//CHECK#8 +if (8E0 !== 8) { + throw new Test262Error('#8: 8E0 === 8'); +} + +//CHECK#9 +if (9E0 !== 9) { + throw new Test262Error('#9: 9E0 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.1_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.1_T1.js new file mode 100644 index 0000000000..847e5e35d6 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.1_T1.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: "DecimalLiteral :: .DecimalDigits" +es5id: 7.8.3_A2.1_T1 +description: Use .DecimalDigit +---*/ + +//CHECK#0 +if (.0 !== 0.0) { + throw new Test262Error('#0: .0 === 0.0'); +} + +//CHECK#1 +if (.1 !== 0.1) { + throw new Test262Error('#1: .1 === 0.1'); +} + +//CHECK#2 +if (.2 !== 0.2) { + throw new Test262Error('#2: .2 === 0.2'); +} + +//CHECK#3 +if (.3 !== 0.3) { + throw new Test262Error('#3: .3 === 0.3'); +} + +//CHECK#4 +if (.4 !== 0.4) { + throw new Test262Error('#4: .4 === 0.4'); +} + +//CHECK#5 +if (.5 !== 0.5) { + throw new Test262Error('#5: .5 === 0.5'); +} + +//CHECK#6 +if (.6 !== 0.6) { + throw new Test262Error('#6: .6 === 0.6'); +} + +//CHECK#7 +if (.7 !== 0.7) { + throw new Test262Error('#7: .7 === 0.7'); +} + +//CHECK#8 +if (.8 !== 0.8) { + throw new Test262Error('#8: .8 === 0.8'); +} + +//CHECK#9 +if (.9 !== 0.9) { + throw new Test262Error('#9: .9 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.1_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.1_T2.js new file mode 100644 index 0000000000..46218eafbc --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.1_T2.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: "DecimalLiteral :: .DecimalDigits" +es5id: 7.8.3_A2.1_T2 +description: Use .DecimalDigits +---*/ + +//CHECK#0 +if (.00 !== 0.00) { + throw new Test262Error('#0: .00 === 0.00'); +} + +//CHECK#1 +if (.11 !== 0.11) { + throw new Test262Error('#1: .11 === 0.11'); +} + +//CHECK#2 +if (.22 !== 0.22) { + throw new Test262Error('#2: .22 === 0.22'); +} + +//CHECK#3 +if (.33 !== 0.33) { + throw new Test262Error('#3: .33 === 0.33'); +} + +//CHECK#4 +if (.44 !== 0.44) { + throw new Test262Error('#4: .44 === 0.44'); +} + +//CHECK#5 +if (.55 !== 0.55) { + throw new Test262Error('#5: .55 === 0.55'); +} + +//CHECK#6 +if (.66 !== 0.66) { + throw new Test262Error('#6: .66 === 0.66'); +} + +//CHECK#7 +if (.77 !== 0.77) { + throw new Test262Error('#7: .77 === 0.77'); +} + +//CHECK#8 +if (.88 !== 0.88) { + throw new Test262Error('#8: .88 === 0.88'); +} + +//CHECK#9 +if (.99 !== 0.99) { + throw new Test262Error('#9: .99 === 0.99'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.1_T3.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.1_T3.js new file mode 100644 index 0000000000..ef4cc60330 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.1_T3.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: "DecimalLiteral :: .DecimalDigits" +es5id: 7.8.3_A2.1_T3 +description: Use .DecimalDigits that have at the end zeros +---*/ + +//CHECK#0 +if (.00 !== 0.0) { + throw new Test262Error('#0: .0 === 0.0'); +} + +//CHECK#1 +if (.10 !== 0.1) { + throw new Test262Error('#1: .1 === 0.1'); +} + +//CHECK#2 +if (.20 !== 0.2) { + throw new Test262Error('#2: .2 === 0.2'); +} + +//CHECK#3 +if (.30 !== 0.3) { + throw new Test262Error('#3: .3 === 0.3'); +} + +//CHECK#4 +if (.40 !== 0.4) { + throw new Test262Error('#4: .4 === 0.4'); +} + +//CHECK#5 +if (.50 !== 0.5) { + throw new Test262Error('#5: .5 === 0.5'); +} + +//CHECK#6 +if (.60 !== 0.6) { + throw new Test262Error('#6: .6 === 0.6'); +} + +//CHECK#7 +if (.70 !== 0.7) { + throw new Test262Error('#7: .7 === 0.7'); +} + +//CHECK#8 +if (.80 !== 0.8) { + throw new Test262Error('#8: .8 === 0.8'); +} + +//CHECK#9 +if (.90 !== 0.9) { + throw new Test262Error('#9: .9 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T1.js new file mode 100644 index 0000000000..d11565b111 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T1.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: "DecimalLiteral :: .DecimalDigits ExponentPart" +es5id: 7.8.3_A2.2_T1 +description: "ExponentPart :: e DecimalDigits" +---*/ + +//CHECK#0 +if (.0e1 !== 0) { + throw new Test262Error('#0: .0e1 === 0'); +} + +//CHECK#1 +if (.1e1 !== 1) { + throw new Test262Error('#1: .1e1 === 1'); +} + +//CHECK#2 +if (.2e1 !== 2) { + throw new Test262Error('#2: .2e1 === 2'); +} + +//CHECK#3 +if (.3e1 !== 3) { + throw new Test262Error('#3: .3e1 === 3'); +} + +//CHECK#4 +if (.4e1 !== 4) { + throw new Test262Error('#4: .4e1 === 4'); +} + +//CHECK#5 +if (.5e1 !== 5) { + throw new Test262Error('#5: .5e1 === 5'); +} + +//CHECK#6 +if (.6e1 !== 6) { + throw new Test262Error('#6: .6e1 === 6'); +} + +//CHECK#7 +if (.7e1 !== 7) { + throw new Test262Error('#7: .7e1 === 7'); +} + +//CHECK#8 +if (.8e1 !== 8) { + throw new Test262Error('#8: .8e1 === 8'); +} + +//CHECK#9 +if (.9e1 !== 9) { + throw new Test262Error('#9: .9e1 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T2.js new file mode 100644 index 0000000000..6de53e7874 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T2.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: "DecimalLiteral :: .DecimalDigits ExponentPart" +es5id: 7.8.3_A2.2_T2 +description: "ExponentPart :: E DecimalDigits" +---*/ + +//CHECK#0 +if (.0E1 !== 0) { + throw new Test262Error('#0: .0E1 === 0'); +} + +//CHECK#1 +if (.1E1 !== 1) { + throw new Test262Error('#1: .1E1 === 1'); +} + +//CHECK#2 +if (.2E1 !== 2) { + throw new Test262Error('#2: .2E1 === 2'); +} + +//CHECK#3 +if (.3E1 !== 3) { + throw new Test262Error('#3: .3E1 === 3'); +} + +//CHECK#4 +if (.4E1 !== 4) { + throw new Test262Error('#4: .4E1 === 4'); +} + +//CHECK#5 +if (.5E1 !== 5) { + throw new Test262Error('#5: .5E1 === 5'); +} + +//CHECK#6 +if (.6E1 !== 6) { + throw new Test262Error('#6: .6E1 === 6'); +} + +//CHECK#7 +if (.7E1 !== 7) { + throw new Test262Error('#7: .7E1 === 7'); +} + +//CHECK#8 +if (.8E1 !== 8) { + throw new Test262Error('#8: .8E1 === 8'); +} + +//CHECK#9 +if (.9E1 !== 9) { + throw new Test262Error('#9: .9E1 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T3.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T3.js new file mode 100644 index 0000000000..7b750b0386 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T3.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: "DecimalLiteral :: .DecimalDigits ExponentPart" +es5id: 7.8.3_A2.2_T3 +description: "ExponentPart :: e +DecimalDigits" +---*/ + +//CHECK#0 +if (.0e-1 !== 0) { + throw new Test262Error('#0: .0e-1 === 0'); +} + +//CHECK#1 +if (.1e-1 !== 0.01) { + throw new Test262Error('#1: .1e-1 === 0.01'); +} + +//CHECK#2 +if (.2e-1 !== 0.02) { + throw new Test262Error('#2: .2e-1 === 0.02'); +} + +//CHECK#3 +if (.3e-1 !== 0.03) { + throw new Test262Error('#3: .3e-1 === 0.03'); +} + +//CHECK#4 +if (.4e-1 !== 0.04) { + throw new Test262Error('#4: .4e-1 === 0.04'); +} + +//CHECK#5 +if (.5e-1 !== 0.05) { + throw new Test262Error('#5: .5e-1 === 0.05'); +} + +//CHECK#6 +if (.6e-1 !== 0.06) { + throw new Test262Error('#6: .6e-1 === 0.06'); +} + +//CHECK#7 +if (.7e-1 !== 0.07) { + throw new Test262Error('#7: .7e-1 === 0.07'); +} + +//CHECK#8 +if (.8e-1 !== 0.08) { + throw new Test262Error('#8: .8e-1 === 0.08'); +} + +//CHECK#9 +if (.9e-1 !== 0.09) { + throw new Test262Error('#9: .9e-1 === 0.09'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T4.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T4.js new file mode 100644 index 0000000000..5e986f3ae2 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T4.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: "DecimalLiteral :: .DecimalDigits ExponentPart" +es5id: 7.8.3_A2.2_T4 +description: "ExponentPart :: E +DecimalDigits" +---*/ + +//CHECK#0 +if (.0E-1 !== 0) { + throw new Test262Error('#0: .0E-1 === 0'); +} + +//CHECK#1 +if (.1E-1 !== 0.01) { + throw new Test262Error('#1: .1E-1 === 0.01'); +} + +//CHECK#2 +if (.2E-1 !== 0.02) { + throw new Test262Error('#2: .2E-1 === 0.02'); +} + +//CHECK#3 +if (.3E-1 !== 0.03) { + throw new Test262Error('#3: .3E-1 === 0.03'); +} + +//CHECK#4 +if (.4E-1 !== 0.04) { + throw new Test262Error('#4: .4E-1 === 0.04'); +} + +//CHECK#5 +if (.5E-1 !== 0.05) { + throw new Test262Error('#5: .5E-1 === 0.05'); +} + +//CHECK#6 +if (.6E-1 !== 0.06) { + throw new Test262Error('#6: .6E-1 === 0.06'); +} + +//CHECK#7 +if (.7E-1 !== 0.07) { + throw new Test262Error('#7: .7E-1 === 0.07'); +} + +//CHECK#8 +if (.8E-1 !== 0.08) { + throw new Test262Error('#8: .8E-1 === 0.08'); +} + +//CHECK#9 +if (.9E-1 !== 0.09) { + throw new Test262Error('#9: .9E-1 === 0.09'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T5.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T5.js new file mode 100644 index 0000000000..54ef29a8d5 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T5.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: "DecimalLiteral :: .DecimalDigits ExponentPart" +es5id: 7.8.3_A2.2_T5 +description: "ExponentPart :: e +DecimalDigits" +---*/ + +//CHECK#0 +if (.0e+1 !== 0) { + throw new Test262Error('#0: .0e+1 === 0'); +} + +//CHECK#1 +if (.1e+1 !== 1) { + throw new Test262Error('#1: .1e+1 === 1'); +} + +//CHECK#2 +if (.2e+1 !== 2) { + throw new Test262Error('#2: .2e+1 === 2'); +} + +//CHECK#3 +if (.3e+1 !== 3) { + throw new Test262Error('#3: .3e+1 === 3'); +} + +//CHECK#4 +if (.4e+1 !== 4) { + throw new Test262Error('#4: .4e+1 === 4'); +} + +//CHECK#5 +if (.5e+1 !== 5) { + throw new Test262Error('#5: .5e+1 === 5'); +} + +//CHECK#6 +if (.6e+1 !== 6) { + throw new Test262Error('#6: .6e+1 === 6'); +} + +//CHECK#7 +if (.7e+1 !== 7) { + throw new Test262Error('#7: .7e+1 === 7'); +} + +//CHECK#8 +if (.8e+1 !== 8) { + throw new Test262Error('#8: .8e+1 === 8'); +} + +//CHECK#9 +if (.9e+1 !== 9) { + throw new Test262Error('#9: .9e+1 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T6.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T6.js new file mode 100644 index 0000000000..d922634c1d --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T6.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: "DecimalLiteral :: .DecimalDigits ExponentPart" +es5id: 7.8.3_A2.2_T6 +description: "ExponentPart :: E +DecimalDigits" +---*/ + +//CHECK#0 +if (.0E+1 !== 0) { + throw new Test262Error('#0: .0E+1 === 0'); +} + +//CHECK#1 +if (.1E+1 !== 1) { + throw new Test262Error('#1: .1E+1 === 1'); +} + +//CHECK#2 +if (.2E+1 !== 2) { + throw new Test262Error('#2: .2E+1 === 2'); +} + +//CHECK#3 +if (.3E+1 !== 3) { + throw new Test262Error('#3: .3E+1 === 3'); +} + +//CHECK#4 +if (.4E+1 !== 4) { + throw new Test262Error('#4: .4E+1 === 4'); +} + +//CHECK#5 +if (.5E+1 !== 5) { + throw new Test262Error('#5: .5E+1 === 5'); +} + +//CHECK#6 +if (.6E+1 !== 6) { + throw new Test262Error('#6: .6E+1 === 6'); +} + +//CHECK#7 +if (.7E+1 !== 7) { + throw new Test262Error('#7: .7E+1 === 7'); +} + +//CHECK#8 +if (.8E+1 !== 8) { + throw new Test262Error('#8: .8E+1 === 8'); +} + +//CHECK#9 +if (.9E+1 !== 9) { + throw new Test262Error('#9: .9E+1 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T7.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T7.js new file mode 100644 index 0000000000..9cb8eb7036 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T7.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: "DecimalLiteral :: .DecimalDigits ExponentPart" +es5id: 7.8.3_A2.2_T7 +description: "ExponentPart :: e 0" +---*/ + +//CHECK#0 +if (.0e0 !== 0.0) { + throw new Test262Error('#0: .0e0 === 0.0'); +} + +//CHECK#1 +if (.1e0 !== 0.1) { + throw new Test262Error('#1: .1e0 === 0.1'); +} + +//CHECK#2 +if (.2e0 !== 0.2) { + throw new Test262Error('#2: .2e0 === 0.2'); +} + +//CHECK#3 +if (.3e0 !== 0.3) { + throw new Test262Error('#3: .3e0 === 0.3'); +} + +//CHECK#4 +if (.4e0 !== 0.4) { + throw new Test262Error('#4: .4e0 === 0.4'); +} + +//CHECK#5 +if (.5e0 !== 0.5) { + throw new Test262Error('#5: .5e0 === 0.5'); +} + +//CHECK#6 +if (.6e0 !== 0.6) { + throw new Test262Error('#6: .6e0 === 0.6'); +} + +//CHECK#7 +if (.7e0 !== 0.7) { + throw new Test262Error('#7: .7e0 === 0.7'); +} + +//CHECK#8 +if (.8e0 !== 0.8) { + throw new Test262Error('#8: .8e0 === 0.8'); +} + +//CHECK#9 +if (.9e0 !== 0.9) { + throw new Test262Error('#9: .9e0 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T8.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T8.js new file mode 100644 index 0000000000..eca19e538d --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A2.2_T8.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: "DecimalLiteral :: .DecimalDigits ExponentPart" +es5id: 7.8.3_A2.2_T8 +description: "ExponentPart :: E 0" +---*/ + +//CHECK#0 +if (.0E0 !== 0.0) { + throw new Test262Error('#0: .0E0 === 0.0'); +} + +//CHECK#1 +if (.1E0 !== 0.1) { + throw new Test262Error('#1: .1E0 === 0.1'); +} + +//CHECK#2 +if (.2E0 !== 0.2) { + throw new Test262Error('#2: .2E0 === 0.2'); +} + +//CHECK#3 +if (.3E0 !== 0.3) { + throw new Test262Error('#3: .3E0 === 0.3'); +} + +//CHECK#4 +if (.4E0 !== 0.4) { + throw new Test262Error('#4: .4E0 === 0.4'); +} + +//CHECK#5 +if (.5E0 !== 0.5) { + throw new Test262Error('#5: .5E0 === 0.5'); +} + +//CHECK#6 +if (.6E0 !== 0.6) { + throw new Test262Error('#6: .6E0 === 0.6'); +} + +//CHECK#7 +if (.7E0 !== 0.7) { + throw new Test262Error('#7: .7E0 === 0.7'); +} + +//CHECK#8 +if (.8E0 !== 0.8) { + throw new Test262Error('#8: .8E0 === 0.8'); +} + +//CHECK#9 +if (.9E0 !== 0.9) { + throw new Test262Error('#9: .9E0 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.1_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.1_T1.js new file mode 100644 index 0000000000..b91bff9334 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.1_T1.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: "DecimalLiteral :: DecimalIntegerLiteral." +es5id: 7.8.3_A3.1_T1 +description: "DecimalIntegerLiteral :: 0, NoNZeroDigit" +---*/ + +//CHECK#0 +if (0. !== 0) { + throw new Test262Error('#0: 0. === 0'); +} + +//CHECK#1 +if (1. !== 1) { + throw new Test262Error('#1: 1. === 1'); +} + +//CHECK#2 +if (2. !== 2) { + throw new Test262Error('#2: 2. === 2'); +} + +//CHECK#3 +if (3. !== 3) { + throw new Test262Error('#3: 3. === 3'); +} + +//CHECK#4 +if (4. !== 4) { + throw new Test262Error('#4: 4. === 4'); +} + +//CHECK#5 +if (5. !== 5) { + throw new Test262Error('#5: 5. === 5'); +} + +//CHECK#6 +if (6. !== 6) { + throw new Test262Error('#6: 6. === 6'); +} + +//CHECK#7 +if (7. !== 7) { + throw new Test262Error('#7: 7. === 7'); +} + +//CHECK#8 +if (8. !== 8) { + throw new Test262Error('#8: 8. === 8'); +} + +//CHECK#9 +if (9. !== 9) { + throw new Test262Error('#9: 9. === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.1_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.1_T2.js new file mode 100644 index 0000000000..d9a968a685 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.1_T2.js @@ -0,0 +1,55 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: DecimalIntegerLiteral." +es5id: 7.8.3_A3.1_T2 +description: "DecimalIntegerLiteral :: NoNZeroDigit DecimalDigigts" +---*/ + +//CHECK#1 +if (11. !== 11) { + throw new Test262Error('#1: 11. === 11'); +} + +//CHECK#2 +if (22. !== 22) { + throw new Test262Error('#2: 22. === 22'); +} + +//CHECK#3 +if (33. !== 33) { + throw new Test262Error('#3: 33. === 33'); +} + +//CHECK#4 +if (44. !== 44) { + throw new Test262Error('#4: 44. === 44'); +} + +//CHECK#5 +if (55. !== 55) { + throw new Test262Error('#5: 55. === 55'); +} + +//CHECK#6 +if (66. !== 66) { + throw new Test262Error('#6: 66. === 66'); +} + +//CHECK#7 +if (77. !== 77) { + throw new Test262Error('#7: 77. === 77'); +} + +//CHECK#8 +if (88. !== 88) { + throw new Test262Error('#8: 88. === 88'); +} + +//CHECK#9 +if (99. !== 99) { + throw new Test262Error('#9: 99. === 99'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.2_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.2_T1.js new file mode 100644 index 0000000000..bd5f7582b9 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.2_T1.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigits" +es5id: 7.8.3_A3.2_T1 +description: After DecimalIntegerLiteral. used ZeroDigit +---*/ + +//CHECK#0 +if (0.0 !== 0) { + throw new Test262Error('#0: 0.0 === 0'); +} + +//CHECK#1 +if (1.0 !== 1) { + throw new Test262Error('#1: 1.0 === 1'); +} + +//CHECK#2 +if (2.0 !== 2) { + throw new Test262Error('#2: 2.0 === 2'); +} + +//CHECK#3 +if (3.0 !== 3) { + throw new Test262Error('#3: 3.0 === 3'); +} + +//CHECK#4 +if (4.0 !== 4) { + throw new Test262Error('#4: 4.0 === 4'); +} + +//CHECK#5 +if (5.0 !== 5) { + throw new Test262Error('#5: 5.0 === 5'); +} + +//CHECK#6 +if (6.0 !== 6) { + throw new Test262Error('#6: 6.0 === 6'); +} + +//CHECK#7 +if (7.0 !== 7) { + throw new Test262Error('#7: 7.0 === 7'); +} + +//CHECK#8 +if (8.0 !== 8) { + throw new Test262Error('#8: 8.0 === 8'); +} + +//CHECK#9 +if (9.0 !== 9) { + throw new Test262Error('#9: 9.0 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.2_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.2_T2.js new file mode 100644 index 0000000000..6243c7441a --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.2_T2.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigits" +es5id: 7.8.3_A3.2_T2 +description: After DecimalIntegerLiteral. used ZeroDigits +---*/ + +//CHECK#0 +if (0.00 !== 0) { + throw new Test262Error('#0: 0.00 === 0'); +} + +//CHECK#1 +if (1.00 !== 1) { + throw new Test262Error('#1: 1.00 === 1'); +} + +//CHECK#2 +if (2.00 !== 2) { + throw new Test262Error('#2: 2.00 === 2'); +} + +//CHECK#3 +if (3.00 !== 3) { + throw new Test262Error('#3: 3.00 === 3'); +} + +//CHECK#4 +if (4.00 !== 4) { + throw new Test262Error('#4: 4.00 === 4'); +} + +//CHECK#5 +if (5.00 !== 5) { + throw new Test262Error('#5: 5.00 === 5'); +} + +//CHECK#6 +if (6.00 !== 6) { + throw new Test262Error('#6: 6.00 === 6'); +} + +//CHECK#7 +if (7.00 !== 7) { + throw new Test262Error('#7: 7.00 === 7'); +} + +//CHECK#8 +if (8.00 !== 8) { + throw new Test262Error('#8: 8.00 === 8'); +} + +//CHECK#9 +if (9.00 !== 9) { + throw new Test262Error('#9: 9.00 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.2_T3.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.2_T3.js new file mode 100644 index 0000000000..71d65dffba --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.2_T3.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigits" +es5id: 7.8.3_A3.2_T3 +description: After DecimalIntegerLiteral. used NoNZeroDigit +---*/ + +//CHECK#0 +if (0.0 !== 0.0) { + throw new Test262Error('#0: 0.0 === 0.0'); +} + +//CHECK#1 +if (1.1 !== 1.1) { + throw new Test262Error('#1: 1.1 === 1.1'); +} + +//CHECK#2 +if (2.2 !== 2.2) { + throw new Test262Error('#2: 2.2 === 2.2'); +} + +//CHECK#3 +if (3.3 !== 3.3) { + throw new Test262Error('#3: 3.3 === 3.3'); +} + +//CHECK#4 +if (4.4 !== 4.4) { + throw new Test262Error('#4: 4.4 === 4.4'); +} + +//CHECK#5 +if (5.5 !== 5.5) { + throw new Test262Error('#5: 5.5 === 5.5'); +} + +//CHECK#6 +if (6.6 !== 6.6) { + throw new Test262Error('#6: 6.6 === 6.6'); +} + +//CHECK#7 +if (7.7 !== 7.7) { + throw new Test262Error('#7: 7.7 === 7.7'); +} + +//CHECK#8 +if (8.8 !== 8.8) { + throw new Test262Error('#8: 8..8 === 8.8'); +} + +//CHECK#9 +if (9.9 !== 9.9) { + throw new Test262Error('#9: 9.9 === 9.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T1.js new file mode 100644 index 0000000000..e083ac5563 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T1.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: "DecimalLiteral :: DecimalIntegerLiteral. ExponentPart" +es5id: 7.8.3_A3.3_T1 +description: "ExponentPart :: e DecimalDigits" +---*/ + +//CHECK#0 +if (0.e1 !== 0) { + throw new Test262Error('#0: 0.e1 === 0'); +} + +//CHECK#1 +if (1.e1 !== 10) { + throw new Test262Error('#1: 1.e1 === 10'); +} + +//CHECK#2 +if (2.e1 !== 20) { + throw new Test262Error('#2: 2.e1 === 20'); +} + +//CHECK#3 +if (3.e1 !== 30) { + throw new Test262Error('#3: 3.e1 === 30'); +} + +//CHECK#4 +if (4.e1 !== 40) { + throw new Test262Error('#4: 4.e1 === 40'); +} + +//CHECK#5 +if (5.e1 !== 50) { + throw new Test262Error('#5: 5.e1 === 50'); +} + +//CHECK#6 +if (6.e1 !== 60) { + throw new Test262Error('#6: 6.e1 === 60'); +} + +//CHECK#7 +if (7.e1 !== 70) { + throw new Test262Error('#7: 7.e1 === 70'); +} + +//CHECK#8 +if (8.e1 !== 80) { + throw new Test262Error('#8: 8.e1 === 80'); +} + +//CHECK#9 +if (9.e1 !== 90) { + throw new Test262Error('#9: 9.e1 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T2.js new file mode 100644 index 0000000000..10ee466d8b --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T2.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: "DecimalLiteral :: DecimalIntegerLiteral. ExponentPart" +es5id: 7.8.3_A3.3_T2 +description: "ExponentPart :: E DecimalDigits" +---*/ + +//CHECK#0 +if (0.E1 !== 0) { + throw new Test262Error('#0: 0.E1 === 0'); +} + +//CHECK#1 +if (1.E1 !== 10) { + throw new Test262Error('#1: 1.E1 === 10'); +} + +//CHECK#2 +if (2.E1 !== 20) { + throw new Test262Error('#2: 2.E1 === 20'); +} + +//CHECK#3 +if (3.E1 !== 30) { + throw new Test262Error('#3: 3.E1 === 30'); +} + +//CHECK#4 +if (4.E1 !== 40) { + throw new Test262Error('#4: 4.E1 === 40'); +} + +//CHECK#5 +if (5.E1 !== 50) { + throw new Test262Error('#5: 5.E1 === 50'); +} + +//CHECK#6 +if (6.E1 !== 60) { + throw new Test262Error('#6: 6.E1 === 60'); +} + +//CHECK#7 +if (7.E1 !== 70) { + throw new Test262Error('#7: 7.E1 === 70'); +} + +//CHECK#8 +if (8.E1 !== 80) { + throw new Test262Error('#8: 8.E1 === 80'); +} + +//CHECK#9 +if (9.E1 !== 90) { + throw new Test262Error('#9: 9.E1 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T3.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T3.js new file mode 100644 index 0000000000..ec6e50e55e --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T3.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: "DecimalLiteral :: DecimalIntegerLiteral. ExponentPart" +es5id: 7.8.3_A3.3_T3 +description: "ExponentPart :: e -DecimalDigits" +---*/ + +//CHECK#0 +if (0.e-1 !== 0) { + throw new Test262Error('#0: 0.e-1 === 0'); +} + +//CHECK#1 +if (1.e-1 !== 0.1) { + throw new Test262Error('#1: 1.e-1 === 0.1'); +} + +//CHECK#2 +if (2.e-1 !== 0.2) { + throw new Test262Error('#2: 2.e-1 === 0.2'); +} + +//CHECK#3 +if (3.e-1 !== 0.3) { + throw new Test262Error('#3: 3.e-1 === 0.3'); +} + +//CHECK#4 +if (4.e-1 !== 0.4) { + throw new Test262Error('#4: 4.e-1 === 0.4'); +} + +//CHECK#5 +if (5.e-1 !== 0.5) { + throw new Test262Error('#5: 5.e-1 === 0.5'); +} + +//CHECK#6 +if (6.e-1 !== 0.6) { + throw new Test262Error('#6: 6.e-1 === 0.6'); +} + +//CHECK#7 +if (7.e-1 !== 0.7) { + throw new Test262Error('#7: 7.e-1 === 0.7'); +} + +//CHECK#8 +if (8.e-1 !== 0.8) { + throw new Test262Error('#8: 8.e-1 === 0.8'); +} + +//CHECK#9 +if (9.e-1 !== 0.9) { + throw new Test262Error('#9: 9.e-1 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T4.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T4.js new file mode 100644 index 0000000000..4a70140810 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T4.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: "DecimalLiteral :: DecimalIntegerLiteral. ExponentPart" +es5id: 7.8.3_A3.3_T4 +description: "ExponentPart :: E -DecimalDigits" +---*/ + +//CHECK#0 +if (0.E-1 !== 0) { + throw new Test262Error('#0: 0.E-1 === 0'); +} + +//CHECK#1 +if (1.E-1 !== 0.1) { + throw new Test262Error('#1: 1.E-1 === 0.1'); +} + +//CHECK#2 +if (2.E-1 !== 0.2) { + throw new Test262Error('#2: 2.E-1 === 0.2'); +} + +//CHECK#3 +if (3.E-1 !== 0.3) { + throw new Test262Error('#3: 3.E-1 === 0.3'); +} + +//CHECK#4 +if (4.E-1 !== 0.4) { + throw new Test262Error('#4: 4.E-1 === 0.4'); +} + +//CHECK#5 +if (5.E-1 !== 0.5) { + throw new Test262Error('#5: 5.E-1 === 0.5'); +} + +//CHECK#6 +if (6.E-1 !== 0.6) { + throw new Test262Error('#6: 6.E-1 === 0.6'); +} + +//CHECK#7 +if (7.E-1 !== 0.7) { + throw new Test262Error('#7: 7.E-1 === 0.7'); +} + +//CHECK#8 +if (8.E-1 !== 0.8) { + throw new Test262Error('#8: 8.E-1 === 0.8'); +} + +//CHECK#9 +if (9.E-1 !== 0.9) { + throw new Test262Error('#9: 9.E-1 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T5.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T5.js new file mode 100644 index 0000000000..624c152890 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T5.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: "DecimalLiteral :: DecimalIntegerLiteral. ExponentPart" +es5id: 7.8.3_A3.3_T5 +description: "ExponentPart :: e +DecimalDigits" +---*/ + +//CHECK#0 +if (0.e+1 !== 0) { + throw new Test262Error('#0: 0.e+1 === 0'); +} + +//CHECK#1 +if (1.e+1 !== 10) { + throw new Test262Error('#1: 1.e+1 === 10'); +} + +//CHECK#2 +if (2.e+1 !== 20) { + throw new Test262Error('#2: 2.e+1 === 20'); +} + +//CHECK#3 +if (3.e+1 !== 30) { + throw new Test262Error('#3: 3.e+1 === 30'); +} + +//CHECK#4 +if (4.e+1 !== 40) { + throw new Test262Error('#4: 4.e+1 === 40'); +} + +//CHECK#5 +if (5.e+1 !== 50) { + throw new Test262Error('#5: 5.e+1 === 50'); +} + +//CHECK#6 +if (6.e+1 !== 60) { + throw new Test262Error('#6: 6.e+1 === 60'); +} + +//CHECK#7 +if (7.e+1 !== 70) { + throw new Test262Error('#7: 7.e+1 === 70'); +} + +//CHECK#8 +if (8.e+1 !== 80) { + throw new Test262Error('#8: 8.e+1 === 80'); +} + +//CHECK#9 +if (9.e+1 !== 90) { + throw new Test262Error('#9: 9.e+1 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T6.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T6.js new file mode 100644 index 0000000000..d016066531 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T6.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: "DecimalLiteral :: DecimalIntegerLiteral. ExponentPart" +es5id: 7.8.3_A3.3_T6 +description: "ExponentPart :: E +DecimalDigits" +---*/ + +//CHECK#0 +if (0.E+1 !== 0) { + throw new Test262Error('#0: 0.E+1 === 0'); +} + +//CHECK#1 +if (1.E+1 !== 10) { + throw new Test262Error('#1: 1.E+1 === 10'); +} + +//CHECK#2 +if (2.E+1 !== 20) { + throw new Test262Error('#2: 2.E+1 === 20'); +} + +//CHECK#3 +if (3.E+1 !== 30) { + throw new Test262Error('#3: 3.E+1 === 30'); +} + +//CHECK#4 +if (4.E+1 !== 40) { + throw new Test262Error('#4: 4.E+1 === 40'); +} + +//CHECK#5 +if (5.E+1 !== 50) { + throw new Test262Error('#5: 5.E+1 === 50'); +} + +//CHECK#6 +if (6.E+1 !== 60) { + throw new Test262Error('#6: 6.E+1 === 60'); +} + +//CHECK#7 +if (7.E+1 !== 70) { + throw new Test262Error('#7: 7.E+1 === 70'); +} + +//CHECK#8 +if (8.E+1 !== 80) { + throw new Test262Error('#8: 8.E+1 === 80'); +} + +//CHECK#9 +if (9.E+1 !== 90) { + throw new Test262Error('#9: 9.E+1 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T7.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T7.js new file mode 100644 index 0000000000..fec881e1d7 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T7.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: "DecimalLiteral :: DecimalIntegerLiteral. ExponentPart" +es5id: 7.8.3_A3.3_T7 +description: "ExponentPart :: e 0" +---*/ + +//CHECK#0 +if (0.e0 !== 0) { + throw new Test262Error('#0: 0.e0 === 0'); +} + +//CHECK#1 +if (1.e0 !== 1) { + throw new Test262Error('#1: 1.e0 === 1'); +} + +//CHECK#2 +if (2.e0 !== 2) { + throw new Test262Error('#2: 2.e0 === 2'); +} + +//CHECK#3 +if (3.e0 !== 3) { + throw new Test262Error('#3: 3.e0 === 3'); +} + +//CHECK#4 +if (4.e0 !== 4) { + throw new Test262Error('#4: 4.e0 === 4'); +} + +//CHECK#5 +if (5.e0 !== 5) { + throw new Test262Error('#5: 5.e0 === 5'); +} + +//CHECK#6 +if (6.e0 !== 6) { + throw new Test262Error('#6: 6.e0 === 6'); +} + +//CHECK#7 +if (7.e0 !== 7) { + throw new Test262Error('#7: 7.e0 === 7'); +} + +//CHECK#8 +if (8.e0 !== 8) { + throw new Test262Error('#8: 8.e0 === 8'); +} + +//CHECK#9 +if (9.e0 !== 9) { + throw new Test262Error('#9: 9.e0 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T8.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T8.js new file mode 100644 index 0000000000..8d69621ecb --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.3_T8.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: "DecimalLiteral :: DecimalIntegerLiteral. ExponentPart" +es5id: 7.8.3_A3.3_T8 +description: "ExponentPart :: E 0" +---*/ + +//CHECK#0 +if (0.E0 !== 0) { + throw new Test262Error('#0: 0.E0 === 0'); +} + +//CHECK#1 +if (1.E0 !== 1) { + throw new Test262Error('#1: 1.E0 === 1'); +} + +//CHECK#2 +if (2.E0 !== 2) { + throw new Test262Error('#2: 2.E0 === 2'); +} + +//CHECK#3 +if (3.E0 !== 3) { + throw new Test262Error('#3: 3.E0 === 3'); +} + +//CHECK#4 +if (4.E0 !== 4) { + throw new Test262Error('#4: 4.E0 === 4'); +} + +//CHECK#5 +if (5.E0 !== 5) { + throw new Test262Error('#5: 5.E0 === 5'); +} + +//CHECK#6 +if (6.E0 !== 6) { + throw new Test262Error('#6: 6.E0 === 6'); +} + +//CHECK#7 +if (7.E0 !== 7) { + throw new Test262Error('#7: 7.E0 === 7'); +} + +//CHECK#8 +if (8.E0 !== 8) { + throw new Test262Error('#8: 8.E0 === 8'); +} + +//CHECK#9 +if (9.E0 !== 9) { + throw new Test262Error('#9: 9.E0 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T1.js new file mode 100644 index 0000000000..865feec61c --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T1.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart" +es5id: 7.8.3_A3.4_T1 +description: "ExponentPart :: e DecimalDigits" +---*/ + +//CHECK#0 +if (0.0e1 !== 0) { + throw new Test262Error('#0: 0.0e1 === 0'); +} + +//CHECK#1 +if (1.1e1 !== 11) { + throw new Test262Error('#1: 1.1e1 === 11'); +} + +//CHECK#2 +if (2.2e1 !== 22) { + throw new Test262Error('#2: 2.2e1 === 22'); +} + +//CHECK#3 +if (3.3e1 !== 33) { + throw new Test262Error('#3: 3.3e1 === 33'); +} + +//CHECK#4 +if (4.4e1 !== 44) { + throw new Test262Error('#4: 4.4e1 === 44'); +} + +//CHECK#5 +if (5.5e1 !== 55) { + throw new Test262Error('#5: 5.5e1 === 55'); +} + +//CHECK#6 +if (6.6e1 !== 66) { + throw new Test262Error('#6: 6.e1 === 66'); +} + +//CHECK#7 +if (7.7e1 !== 77) { + throw new Test262Error('#7: 7.7e1 === 77'); +} + +//CHECK#8 +if (8.8e1 !== 88) { + throw new Test262Error('#8: 8.8e1 === 88'); +} + +//CHECK#9 +if (9.9e1 !== 99) { + throw new Test262Error('#9: 9.9e1 === 99'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T2.js new file mode 100644 index 0000000000..4d3b49af6b --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T2.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart" +es5id: 7.8.3_A3.4_T2 +description: "ExponentPart :: E DecimalDigits" +---*/ + +//CHECK#0 +if (0.0E1 !== 0) { + throw new Test262Error('#0: 0.0E1 === 0'); +} + +//CHECK#1 +if (1.1E1 !== 11) { + throw new Test262Error('#1: 1.1E1 === 11'); +} + +//CHECK#2 +if (2.2E1 !== 22) { + throw new Test262Error('#2: 2.2E1 === 22'); +} + +//CHECK#3 +if (3.3E1 !== 33) { + throw new Test262Error('#3: 3.3E1 === 33'); +} + +//CHECK#4 +if (4.4E1 !== 44) { + throw new Test262Error('#4: 4.4E1 === 44'); +} + +//CHECK#5 +if (5.5E1 !== 55) { + throw new Test262Error('#5: 5.5E1 === 55'); +} + +//CHECK#6 +if (6.6E1 !== 66) { + throw new Test262Error('#6: 6.E1 === 66'); +} + +//CHECK#7 +if (7.7E1 !== 77) { + throw new Test262Error('#7: 7.7E1 === 77'); +} + +//CHECK#8 +if (8.8E1 !== 88) { + throw new Test262Error('#8: 8.8E1 === 88'); +} + +//CHECK#9 +if (9.9E1 !== 99) { + throw new Test262Error('#9: 9.9E1 === 99'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T3.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T3.js new file mode 100644 index 0000000000..88f488ba7c --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T3.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart" +es5id: 7.8.3_A3.4_T3 +description: "ExponentPart :: e -DecimalDigits" +---*/ + +//CHECK#0 +if (0.0e-1 !== 0) { + throw new Test262Error('#0: 0.0e-1 === 0'); +} + +//CHECK#1 +if (1.1e-1 !== 0.11) { + throw new Test262Error('#1: 1.1e-1 === 0.11'); +} + +//CHECK#2 +if (2.2e-1 !== 0.22) { + throw new Test262Error('#2: 2.2e-1 === 0.22'); +} + +//CHECK#3 +if (3.3e-1 !== 0.33) { + throw new Test262Error('#3: 3.3e-1 === 0.33'); +} + +//CHECK#4 +if (4.4e-1 !== 0.44) { + throw new Test262Error('#4: 4.4e-1 === 0.44'); +} + +//CHECK#5 +if (5.5e-1 !== 0.55) { + throw new Test262Error('#5: 5.5e-1 === 0.55'); +} + +//CHECK#6 +if (6.6e-1 !== 0.66) { + throw new Test262Error('#6: 6.e-1 === 0.66'); +} + +//CHECK#7 +if (7.7e-1 !== 0.77) { + throw new Test262Error('#7: 7.7e-1 === 0.77'); +} + +//CHECK#8 +if (8.8e-1 !== 0.88) { + throw new Test262Error('#8: 8.8e-1 === 0.88'); +} + +//CHECK#9 +if (9.9e-1 !== 0.99) { + throw new Test262Error('#9: 9.9e-1 === 0.99'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T4.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T4.js new file mode 100644 index 0000000000..f4b5d75c10 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T4.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart" +es5id: 7.8.3_A3.4_T4 +description: "ExponentPart :: E -DecimalDigits" +---*/ + +//CHECK#0 +if (0.0E-1 !== 0) { + throw new Test262Error('#0: 0.0E-1 === 0'); +} + +//CHECK#1 +if (1.1E-1 !== 0.11) { + throw new Test262Error('#1: 1.1E-1 === 0.11'); +} + +//CHECK#2 +if (2.2E-1 !== 0.22) { + throw new Test262Error('#2: 2.2E-1 === 0.22'); +} + +//CHECK#3 +if (3.3E-1 !== 0.33) { + throw new Test262Error('#3: 3.3E-1 === 0.33'); +} + +//CHECK#4 +if (4.4E-1 !== 0.44) { + throw new Test262Error('#4: 4.4E-1 === 0.44'); +} + +//CHECK#5 +if (5.5E-1 !== 0.55) { + throw new Test262Error('#5: 5.5E-1 === 0.55'); +} + +//CHECK#6 +if (6.6E-1 !== 0.66) { + throw new Test262Error('#6: 6.E-1 === 0.66'); +} + +//CHECK#7 +if (7.7E-1 !== 0.77) { + throw new Test262Error('#7: 7.7E-1 === 0.77'); +} + +//CHECK#8 +if (8.8E-1 !== 0.88) { + throw new Test262Error('#8: 8.8E-1 === 0.88'); +} + +//CHECK#9 +if (9.9E-1 !== 0.99) { + throw new Test262Error('#9: 9.9E-1 === 0.99'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T5.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T5.js new file mode 100644 index 0000000000..f25d3fb008 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T5.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart" +es5id: 7.8.3_A3.4_T5 +description: "ExponentPart :: e +DecimalDigits" +---*/ + +//CHECK#0 +if (0.0e+1 !== 0) { + throw new Test262Error('#0: 0.0e+1 === 0'); +} + +//CHECK#1 +if (1.1e+1 !== 11) { + throw new Test262Error('#1: 1.1e+1 === 11'); +} + +//CHECK#2 +if (2.2e+1 !== 22) { + throw new Test262Error('#2: 2.2e+1 === 22'); +} + +//CHECK#3 +if (3.3e+1 !== 33) { + throw new Test262Error('#3: 3.3e+1 === 33'); +} + +//CHECK#4 +if (4.4e+1 !== 44) { + throw new Test262Error('#4: 4.4e+1 === 44'); +} + +//CHECK#5 +if (5.5e+1 !== 55) { + throw new Test262Error('#5: 5.5e+1 === 55'); +} + +//CHECK#6 +if (6.6e+1 !== 66) { + throw new Test262Error('#6: 6.e+1 === 66'); +} + +//CHECK#7 +if (7.7e+1 !== 77) { + throw new Test262Error('#7: 7.7e+1 === 77'); +} + +//CHECK#8 +if (8.8e+1 !== 88) { + throw new Test262Error('#8: 8.8e+1 === 88'); +} + +//CHECK#9 +if (9.9e+1 !== 99) { + throw new Test262Error('#9: 9.9e+1 === 99'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T6.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T6.js new file mode 100644 index 0000000000..e2f77e702c --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T6.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart" +es5id: 7.8.3_A3.4_T6 +description: "ExponentPart :: E +DecimalDigits" +---*/ + +//CHECK#0 +if (0.0E+1 !== 0) { + throw new Test262Error('#0: 0.0E+1 === 0'); +} + +//CHECK#1 +if (1.1E+1 !== 11) { + throw new Test262Error('#1: 1.1E+1 === 11'); +} + +//CHECK#2 +if (2.2E+1 !== 22) { + throw new Test262Error('#2: 2.2E+1 === 22'); +} + +//CHECK#3 +if (3.3E+1 !== 33) { + throw new Test262Error('#3: 3.3E+1 === 33'); +} + +//CHECK#4 +if (4.4E+1 !== 44) { + throw new Test262Error('#4: 4.4E+1 === 44'); +} + +//CHECK#5 +if (5.5E+1 !== 55) { + throw new Test262Error('#5: 5.5E+1 === 55'); +} + +//CHECK#6 +if (6.6E+1 !== 66) { + throw new Test262Error('#6: 6.E+1 === 66'); +} + +//CHECK#7 +if (7.7E+1 !== 77) { + throw new Test262Error('#7: 7.7E+1 === 77'); +} + +//CHECK#8 +if (8.8E+1 !== 88) { + throw new Test262Error('#8: 8.8E+1 === 88'); +} + +//CHECK#9 +if (9.9E+1 !== 99) { + throw new Test262Error('#9: 9.9E+1 === 99'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T7.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T7.js new file mode 100644 index 0000000000..8f474c8781 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T7.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart" +es5id: 7.8.3_A3.4_T7 +description: "ExponentPart :: e 0" +---*/ + +//CHECK#0 +if (0.0e0 !== 0.0) { + throw new Test262Error('#0: 0.0e0 === 0.0'); +} + +//CHECK#1 +if (1.1e0 !== 1.1) { + throw new Test262Error('#1: 1.1e0 === 1.1'); +} + +//CHECK#2 +if (2.2e0 !== 2.2) { + throw new Test262Error('#2: 2.2e0 === 2.2'); +} + +//CHECK#3 +if (3.3e0 !== 3.3) { + throw new Test262Error('#3: 3.3e0 === 3.3'); +} + +//CHECK#4 +if (4.4e0 !== 4.4) { + throw new Test262Error('#4: 4.4e0 === 4.4'); +} + +//CHECK#5 +if (5.5e0 !== 5.5) { + throw new Test262Error('#5: 5.5e0 === 5.5'); +} + +//CHECK#6 +if (6.6e0 !== 6.6) { + throw new Test262Error('#6: 6.e0 === 6.6'); +} + +//CHECK#7 +if (7.7e0 !== 7.7) { + throw new Test262Error('#7: 7.7e0 === 7.7'); +} + +//CHECK#8 +if (8.8e0 !== 8.8) { + throw new Test262Error('#8: 8.8e0 === 8.8'); +} + +//CHECK#9 +if (9.9e0 !== 9.9) { + throw new Test262Error('#9: 9.9e0 === 9.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T8.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T8.js new file mode 100644 index 0000000000..fbb5b57d8f --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A3.4_T8.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: "DecimalLiteral :: DecimalIntegerLiteral. DecimalDigigts ExponentPart" +es5id: 7.8.3_A3.4_T8 +description: "ExponentPart :: E 0" +---*/ + +//CHECK#0 +if (0.0E0 !== 0.0) { + throw new Test262Error('#0: 0.0E0 === 0.0'); +} + +//CHECK#1 +if (1.1E0 !== 1.1) { + throw new Test262Error('#1: 1.1E0 === 1.1'); +} + +//CHECK#2 +if (2.2E0 !== 2.2) { + throw new Test262Error('#2: 2.2E0 === 2.2'); +} + +//CHECK#3 +if (3.3E0 !== 3.3) { + throw new Test262Error('#3: 3.3E0 === 3.3'); +} + +//CHECK#4 +if (4.4E0 !== 4.4) { + throw new Test262Error('#4: 4.4E0 === 4.4'); +} + +//CHECK#5 +if (5.5E0 !== 5.5) { + throw new Test262Error('#5: 5.5E0 === 5.5'); +} + +//CHECK#6 +if (6.6E0 !== 6.6) { + throw new Test262Error('#6: 6.E0 === 6.6'); +} + +//CHECK#7 +if (7.7E0 !== 7.7) { + throw new Test262Error('#7: 7.7E0 === 7.7'); +} + +//CHECK#8 +if (8.8E0 !== 8.8) { + throw new Test262Error('#8: 8.8E0 === 8.8'); +} + +//CHECK#9 +if (9.9E0 !== 9.9) { + throw new Test262Error('#9: 9.9E0 === 9.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T1.js new file mode 100644 index 0000000000..3c13bcbe3f --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T1.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: "DecimalLiteral :: ExponentPart is incorrect" +es5id: 7.8.3_A4.1_T1 +description: "ExponentPart :: e DecimalDigits" +---*/ + +assert.throws(ReferenceError, function() { + e1 +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T2.js new file mode 100644 index 0000000000..2b40f8f200 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.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: "DecimalLiteral :: ExponentPart is incorrect" +es5id: 7.8.3_A4.1_T2 +description: "ExponentPart :: E DecimalDigits" +---*/ + +assert.throws(ReferenceError, function() { + E1 +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T3.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T3.js new file mode 100644 index 0000000000..b9a8fa8867 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T3.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: "DecimalLiteral :: ExponentPart is incorrect" +es5id: 7.8.3_A4.1_T3 +description: "ExponentPart :: e DecimalDigits" +---*/ + +assert.throws(ReferenceError, function() { + e-1 +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T4.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T4.js new file mode 100644 index 0000000000..1b733e632d --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T4.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: "DecimalLiteral :: ExponentPart is incorrect" +es5id: 7.8.3_A4.1_T4 +description: "ExponentPart :: E DecimalDigits" +---*/ + +assert.throws(ReferenceError, function() { + E-1 +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T5.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T5.js new file mode 100644 index 0000000000..a68ab1bdc2 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T5.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: "DecimalLiteral :: ExponentPart is incorrect" +es5id: 7.8.3_A4.1_T5 +description: "ExponentPart :: e DecimalDigits" +---*/ + +assert.throws(ReferenceError, function() { + e+1 +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T6.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T6.js new file mode 100644 index 0000000000..5fdcdee4d5 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T6.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: "DecimalLiteral :: ExponentPart is incorrect" +es5id: 7.8.3_A4.1_T6 +description: "ExponentPart :: E DecimalDigits" +---*/ + +assert.throws(ReferenceError, function() { + E+1 +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T7.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T7.js new file mode 100644 index 0000000000..3c1ba69f05 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T7.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: "DecimalLiteral :: ExponentPart is incorrect" +es5id: 7.8.3_A4.1_T7 +description: "ExponentPart :: e 0" +---*/ + +assert.throws(ReferenceError, function() { + e0 +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T8.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T8.js new file mode 100644 index 0000000000..27ee68030c --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.1_T8.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: "DecimalLiteral :: ExponentPart is incorrect" +es5id: 7.8.3_A4.1_T8 +description: "ExponentPart :: E 0" +---*/ + +assert.throws(ReferenceError, function() { + E0 +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T1.js new file mode 100644 index 0000000000..70d8e5988b --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T1.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: "ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed" +es5id: 7.8.3_A4.2_T1 +description: "ExponentIndicator :: e" +---*/ + +//CHECK#0 +if (0e01 !== 0) { + throw new Test262Error('#0: 0e01 === 0'); +} + +//CHECK#1 +if (1e01 !== 10) { + throw new Test262Error('#1: 1e01 === 10'); +} + +//CHECK#2 +if (2e01 !== 20) { + throw new Test262Error('#2: 2e01 === 20'); +} + +//CHECK#3 +if (3e01 !== 30) { + throw new Test262Error('#3: 3e01 === 30'); +} + +//CHECK#4 +if (4e01 !== 40) { + throw new Test262Error('#4: 4e01 === 40'); +} + +//CHECK#5 +if (5e01 !== 50) { + throw new Test262Error('#5: 5e01 === 50'); +} + +//CHECK#6 +if (6e01 !== 60) { + throw new Test262Error('#6: 6e01 === 60'); +} + +//CHECK#7 +if (7e01 !== 70) { + throw new Test262Error('#7: 7e01 === 70'); +} + +//CHECK#8 +if (8e01 !== 80) { + throw new Test262Error('#8: 8e01 === 80'); +} + +//CHECK#9 +if (9e01 !== 90) { + throw new Test262Error('#9: 9e01 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T2.js new file mode 100644 index 0000000000..49c54a842f --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T2.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: "ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed" +es5id: 7.8.3_A4.2_T2 +description: "ExponentIndicator :: E" +---*/ + +//CHECK#0 +if (0E01 !== 0) { + throw new Test262Error('#0: 0E01 === 0'); +} + +//CHECK#1 +if (1E01 !== 10) { + throw new Test262Error('#1: 1E01 === 10'); +} + +//CHECK#2 +if (2E01 !== 20) { + throw new Test262Error('#2: 2E01 === 20'); +} + +//CHECK#3 +if (3E01 !== 30) { + throw new Test262Error('#3: 3E01 === 30'); +} + +//CHECK#4 +if (4E01 !== 40) { + throw new Test262Error('#4: 4E01 === 40'); +} + +//CHECK#5 +if (5E01 !== 50) { + throw new Test262Error('#5: 5E01 === 50'); +} + +//CHECK#6 +if (6E01 !== 60) { + throw new Test262Error('#6: 6E01 === 60'); +} + +//CHECK#7 +if (7E01 !== 70) { + throw new Test262Error('#7: 7E01 === 70'); +} + +//CHECK#8 +if (8E01 !== 80) { + throw new Test262Error('#8: 8E01 === 80'); +} + +//CHECK#9 +if (9E01 !== 90) { + throw new Test262Error('#9: 9E01 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T3.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T3.js new file mode 100644 index 0000000000..d5766009fe --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T3.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: "ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed" +es5id: 7.8.3_A4.2_T3 +description: "ExponentIndicator :: e" +---*/ + +//CHECK#0 +if (0e-01 !== 0) { + throw new Test262Error('#0: 0e-01 === 0'); +} + +//CHECK#1 +if (1e-01 !== 0.1) { + throw new Test262Error('#1: 1e-01 === 0.1'); +} + +//CHECK#2 +if (2e-01 !== 0.2) { + throw new Test262Error('#2: 2e-01 === 0.2'); +} + +//CHECK#3 +if (3e-01 !== 0.3) { + throw new Test262Error('#3: 3e-01 === 0.3'); +} + +//CHECK#4 +if (4e-01 !== 0.4) { + throw new Test262Error('#4: 4e-01 === 0.4'); +} + +//CHECK#5 +if (5e-01 !== 0.5) { + throw new Test262Error('#5: 5e-01 === 0.5'); +} + +//CHECK#6 +if (6e-01 !== 0.6) { + throw new Test262Error('#6: 6e-01 === 0.6'); +} + +//CHECK#7 +if (7e-01 !== 0.7) { + throw new Test262Error('#7: 7e-01 === 0.7'); +} + +//CHECK#8 +if (8e-01 !== 0.8) { + throw new Test262Error('#8: 8e-01 === 0.8'); +} + +//CHECK#9 +if (9e-01 !== 0.9) { + throw new Test262Error('#9: 9e-01 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T4.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T4.js new file mode 100644 index 0000000000..1ae7a60f30 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T4.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: "ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed" +es5id: 7.8.3_A4.2_T4 +description: "ExponentIndicator :: E" +---*/ + +//CHECK#0 +if (0E-01 !== 0) { + throw new Test262Error('#0: 0E-01 === 0'); +} + +//CHECK#1 +if (1E-01 !== 0.1) { + throw new Test262Error('#1: 1E-01 === 0.1'); +} + +//CHECK#2 +if (2E-01 !== 0.2) { + throw new Test262Error('#2: 2E-01 === 0.2'); +} + +//CHECK#3 +if (3E-01 !== 0.3) { + throw new Test262Error('#3: 3E-01 === 0.3'); +} + +//CHECK#4 +if (4E-01 !== 0.4) { + throw new Test262Error('#4: 4E-01 === 0.4'); +} + +//CHECK#5 +if (5E-01 !== 0.5) { + throw new Test262Error('#5: 5E-01 === 0.5'); +} + +//CHECK#6 +if (6E-01 !== 0.6) { + throw new Test262Error('#6: 6E-01 === 0.6'); +} + +//CHECK#7 +if (7E-01 !== 0.7) { + throw new Test262Error('#7: 7E-01 === 0.7'); +} + +//CHECK#8 +if (8E-01 !== 0.8) { + throw new Test262Error('#8: 8E-01 === 0.8'); +} + +//CHECK#9 +if (9E-01 !== 0.9) { + throw new Test262Error('#9: 9E-01 === 0.9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T5.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T5.js new file mode 100644 index 0000000000..cff98be62d --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T5.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: "ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed" +es5id: 7.8.3_A4.2_T5 +description: "ExponentIndicator :: e" +---*/ + +//CHECK#0 +if (0e+01 !== 0) { + throw new Test262Error('#0: 0e+01 === 0'); +} + +//CHECK#1 +if (1e+01 !== 10) { + throw new Test262Error('#1: 1e+01 === 10'); +} + +//CHECK#2 +if (2e+01 !== 20) { + throw new Test262Error('#2: 2e+01 === 20'); +} + +//CHECK#3 +if (3e+01 !== 30) { + throw new Test262Error('#3: 3e+01 === 30'); +} + +//CHECK#4 +if (4e+01 !== 40) { + throw new Test262Error('#4: 4e+01 === 40'); +} + +//CHECK#5 +if (5e+01 !== 50) { + throw new Test262Error('#5: 5e+01 === 50'); +} + +//CHECK#6 +if (6e+01 !== 60) { + throw new Test262Error('#6: 6e+01 === 60'); +} + +//CHECK#7 +if (7e+01 !== 70) { + throw new Test262Error('#7: 7e+01 === 70'); +} + +//CHECK#8 +if (8e+01 !== 80) { + throw new Test262Error('#8: 8e+01 === 80'); +} + +//CHECK#9 +if (9e+01 !== 90) { + throw new Test262Error('#9: 9e+01 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T6.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T6.js new file mode 100644 index 0000000000..283738439c --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T6.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: "ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed" +es5id: 7.8.3_A4.2_T6 +description: "ExponentIndicator :: E" +---*/ + +//CHECK#0 +if (0E+01 !== 0) { + throw new Test262Error('#0: 0E+01 === 0'); +} + +//CHECK#1 +if (1E+01 !== 10) { + throw new Test262Error('#1: 1E+01 === 10'); +} + +//CHECK#2 +if (2E+01 !== 20) { + throw new Test262Error('#2: 2E+01 === 20'); +} + +//CHECK#3 +if (3E+01 !== 30) { + throw new Test262Error('#3: 3E+01 === 30'); +} + +//CHECK#4 +if (4E+01 !== 40) { + throw new Test262Error('#4: 4E+01 === 40'); +} + +//CHECK#5 +if (5E+01 !== 50) { + throw new Test262Error('#5: 5E+01 === 50'); +} + +//CHECK#6 +if (6E+01 !== 60) { + throw new Test262Error('#6: 6E+01 === 60'); +} + +//CHECK#7 +if (7E+01 !== 70) { + throw new Test262Error('#7: 7E+01 === 70'); +} + +//CHECK#8 +if (8E+01 !== 80) { + throw new Test262Error('#8: 8E+01 === 80'); +} + +//CHECK#9 +if (9E+01 !== 90) { + throw new Test262Error('#9: 9E+01 === 90'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T7.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T7.js new file mode 100644 index 0000000000..203a0d5755 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T7.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: "ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed" +es5id: 7.8.3_A4.2_T7 +description: "ExponentIndicator :: e" +---*/ + +//CHECK#0 +if (0e00 !== 0) { + throw new Test262Error('#0: 0e00 === 0'); +} + +//CHECK#1 +if (1e00 !== 1) { + throw new Test262Error('#1: 1e00 === 1'); +} + +//CHECK#2 +if (2e00 !== 2) { + throw new Test262Error('#2: 2e00 === 2'); +} + +//CHECK#3 +if (3e00 !== 3) { + throw new Test262Error('#3: 3e00 === 3'); +} + +//CHECK#4 +if (4e00 !== 4) { + throw new Test262Error('#4: 4e00 === 4'); +} + +//CHECK#5 +if (5e00 !== 5) { + throw new Test262Error('#5: 5e00 === 5'); +} + +//CHECK#6 +if (6e00 !== 6) { + throw new Test262Error('#6: 6e00 === 6'); +} + +//CHECK#7 +if (7e00 !== 7) { + throw new Test262Error('#7: 7e00 === 7'); +} + +//CHECK#8 +if (8e00 !== 8) { + throw new Test262Error('#8: 8e00 === 8'); +} + +//CHECK#9 +if (9e00 !== 9) { + throw new Test262Error('#9: 9e00 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T8.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T8.js new file mode 100644 index 0000000000..3f78f22eb4 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A4.2_T8.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: "ExponentPart :: ExponentIndicator ( /+/-) 0 DecimalDigits is allowed" +es5id: 7.8.3_A4.2_T8 +description: "ExponentIndicator :: E" +---*/ + +//CHECK#0 +if (0E00 !== 0) { + throw new Test262Error('#0: 0E00 === 0'); +} + +//CHECK#1 +if (1E00 !== 1) { + throw new Test262Error('#1: 1E00 === 1'); +} + +//CHECK#2 +if (2E00 !== 2) { + throw new Test262Error('#2: 2E00 === 2'); +} + +//CHECK#3 +if (3E00 !== 3) { + throw new Test262Error('#3: 3E00 === 3'); +} + +//CHECK#4 +if (4E00 !== 4) { + throw new Test262Error('#4: 4E00 === 4'); +} + +//CHECK#5 +if (5E00 !== 5) { + throw new Test262Error('#5: 5E00 === 5'); +} + +//CHECK#6 +if (6E00 !== 6) { + throw new Test262Error('#6: 6E00 === 6'); +} + +//CHECK#7 +if (7E00 !== 7) { + throw new Test262Error('#7: 7E00 === 7'); +} + +//CHECK#8 +if (8E00 !== 8) { + throw new Test262Error('#8: 8E00 === 8'); +} + +//CHECK#9 +if (9E00 !== 9) { + throw new Test262Error('#9: 9E00 === 9'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T1.js new file mode 100644 index 0000000000..bade3bfa3e --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T1.js @@ -0,0 +1,90 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: HexIntegerLiteral" +es5id: 7.8.3_A5.1_T1 +description: "HexIntegerLiteral :: 0x Digit" +---*/ + +//CHECK#0 +if (0x0 !== 0) { + throw new Test262Error('#0: 0x0 === 0'); +} + +//CHECK#1 +if (0x1 !== 1) { + throw new Test262Error('#1: 0x1 === 1'); +} + +//CHECK#2 +if (0x2 !== 2) { + throw new Test262Error('#2: 0x2 === 2'); +} + +//CHECK#3 +if (0x3 !== 3) { + throw new Test262Error('#3: 0x3 === 3'); +} + +//CHECK#4 +if (0x4 !== 4) { + throw new Test262Error('#4: 0x4 === 4'); +} + +//CHECK#5 +if (0x5 !== 5) { + throw new Test262Error('#5: 0x5 === 5'); +} + +//CHECK#6 +if (0x6 !== 6) { + throw new Test262Error('#6: 0x6 === 6'); +} + +//CHECK#7 +if (0x7 !== 7) { + throw new Test262Error('#7: 0x7 === 7'); +} + +//CHECK#8 +if (0x8 !== 8) { + throw new Test262Error('#8: 0x8 === 8'); +} + +//CHECK#9 +if (0x9 !== 9) { + throw new Test262Error('#9: 0x9 === 9'); +} + +//CHECK#A +if (0xA !== 10) { + throw new Test262Error('#A: 0xA === 10'); +} + +//CHECK#B +if (0xB !== 11) { + throw new Test262Error('#B: 0xB === 11'); +} + +//CHECK#C +if (0xC !== 12) { + throw new Test262Error('#C: 0xC === 12'); +} + +//CHECK#D +if (0xD !== 13) { + throw new Test262Error('#D: 0xD === 13'); +} + +//CHECK#E +if (0xE !== 14) { + throw new Test262Error('#E: 0xE === 14'); +} + +//CHECK#F +if (0xF !== 15) { + throw new Test262Error('#F: 0xF === 15'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T2.js new file mode 100644 index 0000000000..2a7c77cfb1 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T2.js @@ -0,0 +1,90 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: HexIntegerLiteral" +es5id: 7.8.3_A5.1_T2 +description: "HexIntegerLiteral :: 0X Digit" +---*/ + +//CHECK#0 +if (0X0 !== 0) { + throw new Test262Error('#0: 0X0 === 0'); +} + +//CHECK#1 +if (0X1 !== 1) { + throw new Test262Error('#1: 0X1 === 1'); +} + +//CHECK#2 +if (0X2 !== 2) { + throw new Test262Error('#2: 0X2 === 2'); +} + +//CHECK#3 +if (0X3 !== 3) { + throw new Test262Error('#3: 0X3 === 3'); +} + +//CHECK#4 +if (0X4 !== 4) { + throw new Test262Error('#4: 0X4 === 4'); +} + +//CHECK#5 +if (0X5 !== 5) { + throw new Test262Error('#5: 0X5 === 5'); +} + +//CHECK#6 +if (0X6 !== 6) { + throw new Test262Error('#6: 0X6 === 6'); +} + +//CHECK#7 +if (0X7 !== 7) { + throw new Test262Error('#7: 0X7 === 7'); +} + +//CHECK#8 +if (0X8 !== 8) { + throw new Test262Error('#8: 0X8 === 8'); +} + +//CHECK#9 +if (0X9 !== 9) { + throw new Test262Error('#9: 0X9 === 9'); +} + +//CHECK#A +if (0XA !== 10) { + throw new Test262Error('#A: 0XA === 10'); +} + +//CHECK#B +if (0XB !== 11) { + throw new Test262Error('#B: 0XB === 11'); +} + +//CHECK#C +if (0XC !== 12) { + throw new Test262Error('#C: 0XC === 12'); +} + +//CHECK#D +if (0XD !== 13) { + throw new Test262Error('#D: 0XD === 13'); +} + +//CHECK#E +if (0XE !== 14) { + throw new Test262Error('#E: 0XE === 14'); +} + +//CHECK#F +if (0XF !== 15) { + throw new Test262Error('#F: 0XF === 15'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T3.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T3.js new file mode 100644 index 0000000000..638d8a5c9b --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T3.js @@ -0,0 +1,55 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: HexIntegerLiteral" +es5id: 7.8.3_A5.1_T3 +description: "HexIntegerLiteral :: 0x NonZeroDigit Digits" +---*/ + +//CHECK#0 +if (0x0 !== 0) { + throw new Test262Error('#0: 0x0 === 0'); +} + +//CHECK#1 +if (0x1 !== 1) { + throw new Test262Error('#1: 0x1 === 1'); +} + +//CHECK#2 +if (0x10 !== 16) { + throw new Test262Error('#2: 0x10 === 16'); +} + +//CHECK3 +if (0x100 !== 256) { + throw new Test262Error('3: 0x100 === 256'); +} + +//CHECK#4 +if (0x1000 !== 4096) { + throw new Test262Error('#4: 0x1000 === 4096'); +} + +//CHECK#5 +if (0x10000 !== 65536) { + throw new Test262Error('#5: 0x10000 === 65536'); +} + +//CHECK#6 +if (0x100000 !== 1048576) { + throw new Test262Error('#6: 0x100000 === 1048576'); +} + +//CHECK#7 +if (0x1000000 !== 16777216) { + throw new Test262Error('#7: 0x1000000 === 16777216'); +} + +//CHECK#8 +if (0x10000000 !== 268435456) { + throw new Test262Error('#8: 0x10000000 === 268435456'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T4.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T4.js new file mode 100644 index 0000000000..4dbd2cf6be --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T4.js @@ -0,0 +1,55 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: HexIntegerLiteral" +es5id: 7.8.3_A5.1_T4 +description: "HexIntegerLiteral :: 0X NonZeroDigit Digits" +---*/ + +//CHECK#0 +if (0X0 !== 0) { + throw new Test262Error('#0: 0X0 === 0'); +} + +//CHECK#1 +if (0X1 !== 1) { + throw new Test262Error('#1: 0X1 === 1'); +} + +//CHECK#2 +if (0X10 !== 16) { + throw new Test262Error('#2: 0X10 === 16'); +} + +//CHECK3 +if (0X100 !== 256) { + throw new Test262Error('3: 0X100 === 256'); +} + +//CHECK#4 +if (0X1000 !== 4096) { + throw new Test262Error('#4: 0X1000 === 4096'); +} + +//CHECK#5 +if (0X10000 !== 65536) { + throw new Test262Error('#5: 0X10000 === 65536'); +} + +//CHECK#6 +if (0X100000 !== 1048576) { + throw new Test262Error('#6: 0X100000 === 1048576'); +} + +//CHECK#7 +if (0X1000000 !== 16777216) { + throw new Test262Error('#7: 0X1000000 === 16777216'); +} + +//CHECK#8 +if (0X10000000 !== 268435456) { + throw new Test262Error('#8: 0X10000000 === 268435456'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T5.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T5.js new file mode 100644 index 0000000000..84a6134710 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T5.js @@ -0,0 +1,55 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: HexIntegerLiteral" +es5id: 7.8.3_A5.1_T5 +description: "HexIntegerLiteral :: 0x0 Digits" +---*/ + +//CHECK#0 +if (0x00 !== 0) { + throw new Test262Error('#0: 0x00 === 0'); +} + +//CHECK#1 +if (0x01 !== 1) { + throw new Test262Error('#1: 0x01 === 1'); +} + +//CHECK#2 +if (0x010 !== 16) { + throw new Test262Error('#2: 0x010 === 16'); +} + +//CHECK3 +if (0x0100 !== 256) { + throw new Test262Error('3: 0x0100 === 256'); +} + +//CHECK#4 +if (0x01000 !== 4096) { + throw new Test262Error('#4: 0x01000 === 4096'); +} + +//CHECK#5 +if (0x010000 !== 65536) { + throw new Test262Error('#5: 0x010000 === 65536'); +} + +//CHECK#6 +if (0x0100000 !== 1048576) { + throw new Test262Error('#6: 0x0100000 === 1048576'); +} + +//CHECK#7 +if (0x01000000 !== 16777216) { + throw new Test262Error('#7: 0x01000000 === 16777216'); +} + +//CHECK#8 +if (0x010000000 !== 268435456) { + throw new Test262Error('#8: 0x010000000 === 268435456'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T6.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T6.js new file mode 100644 index 0000000000..76e24379f0 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T6.js @@ -0,0 +1,55 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: HexIntegerLiteral" +es5id: 7.8.3_A5.1_T6 +description: "HexIntegerLiteral :: 0X0 Digits" +---*/ + +//CHECK#0 +if (0X00 !== 0) { + throw new Test262Error('#0: 0X00 === 0'); +} + +//CHECK#1 +if (0X01 !== 1) { + throw new Test262Error('#1: 0X01 === 1'); +} + +//CHECK#2 +if (0X010 !== 16) { + throw new Test262Error('#2: 0X010 === 16'); +} + +//CHECK3 +if (0X0100 !== 256) { + throw new Test262Error('3: 0X0100 === 256'); +} + +//CHECK#4 +if (0X01000 !== 4096) { + throw new Test262Error('#4: 0X01000 === 4096'); +} + +//CHECK#5 +if (0X010000 !== 65536) { + throw new Test262Error('#5: 0X010000 === 65536'); +} + +//CHECK#6 +if (0X0100000 !== 1048576) { + throw new Test262Error('#6: 0X0100000 === 1048576'); +} + +//CHECK#7 +if (0X01000000 !== 16777216) { + throw new Test262Error('#7: 0X01000000 === 16777216'); +} + +//CHECK#8 +if (0X010000000 !== 268435456) { + throw new Test262Error('#8: 0X010000000 === 268435456'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T7.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T7.js new file mode 100644 index 0000000000..cc9cb770db --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T7.js @@ -0,0 +1,40 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: HexIntegerLiteral" +es5id: 7.8.3_A5.1_T7 +description: "HexIntegerLiteral :: 0x one of a, b, c, d, e, f" +---*/ + +//CHECK#a +if (0xa !== 10) { + throw new Test262Error('#a: 0xa === 10'); +} + +//CHECK#b +if (0xb !== 11) { + throw new Test262Error('#b: 0xb === 11'); +} + +//CHECK#c +if (0xc !== 12) { + throw new Test262Error('#c: 0xc === 12'); +} + +//CHECK#d +if (0xd !== 13) { + throw new Test262Error('#d: 0xd === 13'); +} + +//CHECK#e +if (0xe !== 14) { + throw new Test262Error('#e: 0xe === 14'); +} + +//CHECK#f +if (0xf !== 15) { + throw new Test262Error('#f: 0xf === 15'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T8.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T8.js new file mode 100644 index 0000000000..76d412fd99 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A5.1_T8.js @@ -0,0 +1,40 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "DecimalLiteral :: HexIntegerLiteral" +es5id: 7.8.3_A5.1_T8 +description: "HexIntegerLiteral :: 0X one of a, b, c, d, e, f" +---*/ + +//CHECK#a +if (0Xa !== 10) { + throw new Test262Error('#a: 0Xa === 10'); +} + +//CHECK#b +if (0Xb !== 11) { + throw new Test262Error('#b: 0Xb === 11'); +} + +//CHECK#c +if (0Xc !== 12) { + throw new Test262Error('#c: 0Xc === 12'); +} + +//CHECK#d +if (0Xd !== 13) { + throw new Test262Error('#d: 0Xd === 13'); +} + +//CHECK#e +if (0Xe !== 14) { + throw new Test262Error('#e: 0Xe === 14'); +} + +//CHECK#f +if (0Xf !== 15) { + throw new Test262Error('#f: 0Xf === 15'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T1.js new file mode 100644 index 0000000000..eb2a0d68d1 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T1.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "HexIntegerLiteral :: 0(x/X) is incorrect" +es5id: 7.8.3_A6.1_T1 +description: Checking if execution of "0x" passes +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +//CHECK#1 +0x diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T2.js new file mode 100644 index 0000000000..36b4f06232 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T2.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: "HexIntegerLiteral :: 0(x/X) is incorrect" +es5id: 7.8.3_A6.1_T2 +description: Checking if execution of "0X" passes +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +//CHECK#1 +0X diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T1.js new file mode 100644 index 0000000000..72c9e31931 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T1.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: 0xG is incorrect +es5id: 7.8.3_A6.2_T1 +description: Checking if execution of "0xG" fails +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +//CHECK#1 +0xG diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T2.js new file mode 100644 index 0000000000..bdbb44e13f --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T2.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: 0xG is incorrect +es5id: 7.8.3_A6.2_T2 +description: Checking if execution of "0xg" fails +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +//CHECK#1 +0xg diff --git a/js/src/tests/test262/language/literals/numeric/binary-invalid-digit.js b/js/src/tests/test262/language/literals/numeric/binary-invalid-digit.js new file mode 100644 index 0000000000..6686982745 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/binary-invalid-digit.js @@ -0,0 +1,24 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3 +description: Binary-integer-literal-like sequence containing an invalid digit +info: | + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigit :: one of + 0 1 +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +0b2; diff --git a/js/src/tests/test262/language/literals/numeric/binary-invalid-leading.js b/js/src/tests/test262/language/literals/numeric/binary-invalid-leading.js new file mode 100644 index 0000000000..3389211f68 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/binary-invalid-leading.js @@ -0,0 +1,24 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3 +description: Binary-integer-literal-like sequence with a leading 0 +info: | + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigit :: one of + 0 1 +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +00b0; diff --git a/js/src/tests/test262/language/literals/numeric/binary-invalid-truncated.js b/js/src/tests/test262/language/literals/numeric/binary-invalid-truncated.js new file mode 100644 index 0000000000..e5e1428f0e --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/binary-invalid-truncated.js @@ -0,0 +1,24 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3 +description: Binary-integer-literal-like sequence without any digits +info: | + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigit :: one of + 0 1 +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +0b; diff --git a/js/src/tests/test262/language/literals/numeric/binary-invalid-unicode.js b/js/src/tests/test262/language/literals/numeric/binary-invalid-unicode.js new file mode 100644 index 0000000000..e6ec183806 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/binary-invalid-unicode.js @@ -0,0 +1,24 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3 +description: Binary-integer-literal-like sequence expressed with unicode escape sequence +info: | + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigit :: one of + 0 1 +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +0\u00620; diff --git a/js/src/tests/test262/language/literals/numeric/binary.js b/js/src/tests/test262/language/literals/numeric/binary.js new file mode 100644 index 0000000000..703e64bd14 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/binary.js @@ -0,0 +1,37 @@ +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3.1 +description: Mathematical value of valid binary integer literals +info: | + The MV of BinaryIntegerLiteral :: 0b BinaryDigits is the MV of + BinaryDigits. + The MV of BinaryIntegerLiteral :: 0B BinaryDigits is the MV of + BinaryDigits. + The MV of BinaryDigits :: BinaryDigit is the MV of BinaryDigit. + The MV of BinaryDigits :: BinaryDigits BinaryDigit is (the MV of + BinaryDigits × 2) plus the MV of BinaryDigit. +---*/ + +assert.sameValue(0b0, 0, 'lower-case head'); +assert.sameValue(0B0, 0, 'upper-case head'); +assert.sameValue(0b00, 0, 'lower-case head with leading zeros'); +assert.sameValue(0B00, 0, 'upper-case head with leading zeros'); + +assert.sameValue(0b1, 1, 'lower-case head'); +assert.sameValue(0B1, 1, 'upper-case head'); +assert.sameValue(0b01, 1, 'lower-case head with leading zeros'); +assert.sameValue(0B01, 1, 'upper-case head with leading zeros'); + +assert.sameValue(0b10, 2, 'lower-case head'); +assert.sameValue(0B10, 2, 'upper-case head'); +assert.sameValue(0b010, 2, 'lower-case head with leading zeros'); +assert.sameValue(0B010, 2, 'upper-case head with leading zeros'); + +assert.sameValue(0b11, 3, 'lower-case head'); +assert.sameValue(0B11, 3, 'upper-case head'); +assert.sameValue(0b011, 3, 'lower-case head with leading zeros'); +assert.sameValue(0B011, 3, 'upper-case head with leading zeros'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/browser.js b/js/src/tests/test262/language/literals/numeric/browser.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/browser.js diff --git a/js/src/tests/test262/language/literals/numeric/legacy-octal-integer-strict-strict.js b/js/src/tests/test262/language/literals/numeric/legacy-octal-integer-strict-strict.js new file mode 100644 index 0000000000..485c78172c --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/legacy-octal-integer-strict-strict.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-literals-numeric-literals +description: LegacyOctalIntegerLiteral is not enabled in strict mode code +info: | + NumericLiteral :: + DecimalLiteral + BinaryIntegerLiteral + OctalIntegerLiteral + HexIntegerLiteral + LegacyOctalIntegerLiteral + + LegacyOctalIntegerLiteral :: + 0 OctalDigit + LegacyOctalIntegerLiteral OctalDigit + + ## 12.8.3.1 Static Semantics: Early Errors + + NumericLiteral :: LegacyOctalIntegerLiteral + DecimalIntegerLiteral :: NonOctalDecimalIntegerLiteral + + - It is a Syntax Error if the source code matching this production is + strict mode code. +flags: [onlyStrict] +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +00; diff --git a/js/src/tests/test262/language/literals/numeric/legacy-octal-integer.js b/js/src/tests/test262/language/literals/numeric/legacy-octal-integer.js new file mode 100644 index 0000000000..aba9fb5866 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/legacy-octal-integer.js @@ -0,0 +1,51 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-literals-numeric-literals +description: Mathematical value for LegacyOctalIntegerLiteral +info: | + NumericLiteral :: + DecimalLiteral + BinaryIntegerLiteral + OctalIntegerLiteral + HexIntegerLiteral + LegacyOctalIntegerLiteral + + LegacyOctalIntegerLiteral :: + 0 OctalDigit + LegacyOctalIntegerLiteral OctalDigit +flags: [noStrict] +---*/ + +// LegacyOctalIntegerLiteral :: +// 0 OctalDigit +assert.sameValue(00, 0, '00'); +assert.sameValue(01, 1, '01'); +assert.sameValue(02, 2, '02'); +assert.sameValue(03, 3, '03'); +assert.sameValue(04, 4, '04'); +assert.sameValue(05, 5, '05'); +assert.sameValue(06, 6, '06'); +assert.sameValue(07, 7, '07'); + +// LegacyOctalIntegerLiteral :: +// LegacyOctalIntegerLiteral OctalDigit +assert.sameValue(000, 0, '000'); +assert.sameValue(001, 1, '001'); +assert.sameValue(002, 2, '002'); +assert.sameValue(003, 3, '003'); +assert.sameValue(004, 4, '004'); +assert.sameValue(005, 5, '005'); +assert.sameValue(006, 6, '006'); +assert.sameValue(007, 7, '007'); + +assert.sameValue(070, 56); +assert.sameValue(071, 57); +assert.sameValue(072, 58); +assert.sameValue(073, 59); +assert.sameValue(074, 60); +assert.sameValue(075, 61); +assert.sameValue(076, 62); +assert.sameValue(077, 63); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-000-strict-strict.js b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-000-strict-strict.js new file mode 100644 index 0000000000..a326471ba6 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-000-strict-strict.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.8.3-6-s +description: Strict Mode - octal extension (000) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError +flags: [onlyStrict] +---*/ + +$DONOTEVALUATE(); + +000; diff --git a/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-005-strict-strict.js b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-005-strict-strict.js new file mode 100644 index 0000000000..de9a6d702b --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-005-strict-strict.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.8.3-7-s +description: Strict Mode - octal extension (005) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError +flags: [onlyStrict] +---*/ + +$DONOTEVALUATE(); + +005; diff --git a/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-01-strict-strict.js b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-01-strict-strict.js new file mode 100644 index 0000000000..d7d62d64d3 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-01-strict-strict.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.8.3-3-s +description: Strict Mode - octal extension (01) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError +flags: [onlyStrict] +---*/ + +$DONOTEVALUATE(); + +01; diff --git a/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-010-strict-strict.js b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-010-strict-strict.js new file mode 100644 index 0000000000..41de0398b4 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-010-strict-strict.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.8.3-1-s +description: Strict Mode - octal extension (010) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError +flags: [onlyStrict] +---*/ + +$DONOTEVALUATE(); + +010; diff --git a/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-06-strict-strict.js b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-06-strict-strict.js new file mode 100644 index 0000000000..706920d538 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-06-strict-strict.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.8.3-4-s +description: Strict Mode - octal extension (06) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError +flags: [onlyStrict] +---*/ + +$DONOTEVALUATE(); + +06; diff --git a/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-07-strict-strict.js b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-07-strict-strict.js new file mode 100644 index 0000000000..0238a5d60f --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/legacy-octal-integery-07-strict-strict.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.8.3-5-s +description: Strict Mode - octal extension (07) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError +flags: [onlyStrict] +---*/ + +$DONOTEVALUATE(); + +07; diff --git a/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer-strict-strict.js b/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer-strict-strict.js new file mode 100644 index 0000000000..59b0f802d6 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer-strict-strict.js @@ -0,0 +1,41 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-literals-numeric-literals +description: NonOctalDecimalIntegerLiteral is not enabled in strict mode code +info: | + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigits[opt] + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit :: one of + 8 9 + + ## 12.8.3.1 Static Semantics: Early Errors + + NumericLiteral :: LegacyOctalIntegerLiteral + DecimalIntegerLiteral :: NonOctalDecimalIntegerLiteral + + - It is a Syntax Error if the source code matching this production is + strict mode code. +flags: [onlyStrict] +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +08; diff --git a/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer.js b/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer.js new file mode 100644 index 0000000000..e8ec539f21 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer.js @@ -0,0 +1,121 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-literals-numeric-literals +description: Mathematical value for NonOctalDecimalIntegerLiteral +info: | + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigits[opt] + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit :: one of + 8 9 +flags: [noStrict] +---*/ + +// NonOctalDecimalIntegerLiteral :: +// 0 NonOctalDigit +assert.sameValue(08, 8, '08'); +assert.sameValue(09, 9, '09'); + +// NonOctalDecimalIntegerLiteral :: +// LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit +assert.sameValue(008, 8, '008'); +assert.sameValue(018, 18, '018'); +assert.sameValue(028, 28, '028'); +assert.sameValue(038, 38, '038'); +assert.sameValue(048, 48, '048'); +assert.sameValue(058, 58, '058'); +assert.sameValue(068, 68, '068'); +assert.sameValue(078, 78, '078'); +assert.sameValue(088, 88, '088'); +assert.sameValue(098, 98, '098'); +assert.sameValue(0708, 708, '708'); +assert.sameValue(0718, 718, '718'); +assert.sameValue(0728, 728, '728'); +assert.sameValue(0738, 738, '738'); +assert.sameValue(0748, 748, '748'); +assert.sameValue(0758, 758, '758'); +assert.sameValue(0768, 768, '768'); +assert.sameValue(0778, 778, '778'); +assert.sameValue(0788, 788, '788'); +assert.sameValue(0798, 798, '798'); + +assert.sameValue(009, 9, '009'); +assert.sameValue(019, 19, '019'); +assert.sameValue(029, 29, '029'); +assert.sameValue(039, 39, '039'); +assert.sameValue(049, 49, '049'); +assert.sameValue(059, 59, '059'); +assert.sameValue(069, 69, '069'); +assert.sameValue(079, 79, '079'); +assert.sameValue(089, 89, '089'); +assert.sameValue(099, 99, '099'); +assert.sameValue(0709, 709, '0709'); +assert.sameValue(0719, 719, '0719'); +assert.sameValue(0729, 729, '0729'); +assert.sameValue(0739, 739, '0739'); +assert.sameValue(0749, 749, '0749'); +assert.sameValue(0759, 759, '0759'); +assert.sameValue(0769, 769, '0769'); +assert.sameValue(0779, 779, '0779'); +assert.sameValue(0789, 789, '0789'); +assert.sameValue(0799, 799, '0799'); + +// NonOctalDecimalIntegerLiteral :: +// NonOctalDecimalIntegerLiteral DecimalDigit +assert.sameValue(080, 80, '080'); +assert.sameValue(081, 81, '081'); +assert.sameValue(082, 82, '082'); +assert.sameValue(083, 83, '083'); +assert.sameValue(084, 84, '084'); +assert.sameValue(085, 85, '085'); +assert.sameValue(086, 86, '086'); +assert.sameValue(087, 87, '087'); +assert.sameValue(088, 88, '088'); +assert.sameValue(089, 89, '089'); + +assert.sameValue(0780, 780, '0780'); +assert.sameValue(0781, 781, '0781'); +assert.sameValue(0782, 782, '0782'); +assert.sameValue(0783, 783, '0783'); +assert.sameValue(0784, 784, '0784'); +assert.sameValue(0785, 785, '0785'); +assert.sameValue(0786, 786, '0786'); +assert.sameValue(0787, 787, '0787'); +assert.sameValue(0788, 788, '0788'); +assert.sameValue(0789, 789, '0789'); + +assert.sameValue(090, 90, '090'); +assert.sameValue(091, 91, '091'); +assert.sameValue(092, 92, '092'); +assert.sameValue(093, 93, '093'); +assert.sameValue(094, 94, '094'); +assert.sameValue(095, 95, '095'); +assert.sameValue(096, 96, '096'); +assert.sameValue(097, 97, '097'); +assert.sameValue(098, 98, '098'); +assert.sameValue(099, 99, '099'); + +assert.sameValue(0790, 790, '0790'); +assert.sameValue(0791, 791, '0791'); +assert.sameValue(0792, 792, '0792'); +assert.sameValue(0793, 793, '0793'); +assert.sameValue(0794, 794, '0794'); +assert.sameValue(0795, 795, '0795'); +assert.sameValue(0796, 796, '0796'); +assert.sameValue(0797, 797, '0797'); +assert.sameValue(0798, 798, '0798'); +assert.sameValue(0799, 799, '0799'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-followed-by-ident.js b/js/src/tests/test262/language/literals/numeric/numeric-followed-by-ident.js new file mode 100644 index 0000000000..d4b0d41529 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-followed-by-ident.js @@ -0,0 +1,19 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2018 Mozilla. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-literals-numeric-literals +description: > + NumericLiteral followed by IdentifierStart +info: | + The source character immediately following a NumericLiteral must not be an IdentifierStart or DecimalDigit. + +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +3in [] diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/browser.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/browser.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/browser.js diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bd-nsl-bd-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bd-nsl-bd-err.js new file mode 100644 index 0000000000..51787b6282 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bd-nsl-bd-err.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the appear adjacent to `0b` | `0B` in a + BinaryIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0b_1 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bd-nsl-bd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bd-nsl-bd.js new file mode 100644 index 0000000000..f00a1b4244 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bd-nsl-bd.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0b` | `0B` BinaryDigit NumericLiteralSeparator BinaryDigit +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0b0_1, 0b01); +assert.sameValue(0B0_1, 0B01); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bd-nsl-bds.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bd-nsl-bds.js new file mode 100644 index 0000000000..c5bc6ceaa4 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bd-nsl-bds.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0b` | `0B` BinaryDigit NumericLiteralSeparator BinaryDigit +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0b0_10, 0b010); +assert.sameValue(0B0_10, 0B010); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bds-nsl-bd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bds-nsl-bd.js new file mode 100644 index 0000000000..a1f65b2427 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bds-nsl-bd.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0b` | `0B` BinaryDigits NumericLiteralSeparator BinaryDigit +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0b01_0, 0b010); +assert.sameValue(0B01_0, 0B010); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bds-nsl-bds.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bds-nsl-bds.js new file mode 100644 index 0000000000..13d7e59684 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-bds-nsl-bds.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0b` | `0B` BinaryDigits NumericLiteralSeparator BinaryDigit +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0b01_00, 0b0100); +assert.sameValue(0B01_00, 0B0100); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-nsl-bd-dunder-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-nsl-bd-dunder-err.js new file mode 100644 index 0000000000..776f3f7479 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-nsl-bd-dunder-err.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in a BinaryIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0b0__0 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-nsl-bd-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-nsl-bd-err.js new file mode 100644 index 0000000000..2aa643f897 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-bil-nsl-bd-err.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character of a + BinaryIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0b0_ diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js new file mode 100644 index 0000000000..1e73a38078 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js @@ -0,0 +1,29 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits ExponentPart_opt `-` DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + SignedInteger :: + ... + - DecimalDigits + ... + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(1.0e-1_0, 1.0e-10); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js new file mode 100644 index 0000000000..cffca45eb8 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js @@ -0,0 +1,29 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits ExponentPart_opt `-` DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + SignedInteger :: + ... + - DecimalDigits + ... + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(1.0e-10_0, 1.0e-100); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js new file mode 100644 index 0000000000..116c8541f7 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js @@ -0,0 +1,29 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits ExponentPart_opt `+` DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + SignedInteger :: + ... + + DecimalDigits + ... + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(1.0e+1_0, 1.0e+10); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js new file mode 100644 index 0000000000..a80cc8dfab --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits ExponentPart_opt `+` DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + SignedInteger :: + ... + + DecimalDigits + ... + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(1.0e+10_0, 1.0e+100); + + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-nsl-dd-one-of.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-nsl-dd-one-of.js new file mode 100644 index 0000000000..1de1863fc1 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-nsl-dd-one-of.js @@ -0,0 +1,37 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NonZeroDigit NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + + DecimalDigits :: + DecimalDigit + ... + + DecimalDigit :: one of + 0 1 2 3 4 5 6 7 8 9 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(1_0, 10); +assert.sameValue(1_1, 11); +assert.sameValue(1_2, 12); +assert.sameValue(1_3, 13); +assert.sameValue(1_4, 14); +assert.sameValue(1_5, 15); +assert.sameValue(1_6, 16); +assert.sameValue(1_7, 17); +assert.sameValue(1_8, 18); +assert.sameValue(1_9, 19); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-nsl-dds-dunder-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-nsl-dds-dunder-err.js new file mode 100644 index 0000000000..dacdaa8a01 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-nsl-dds-dunder-err.js @@ -0,0 +1,27 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in a DecimalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +1__0123456789 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-nsl-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-nsl-err.js new file mode 100644 index 0000000000..131058047b --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dd-nsl-err.js @@ -0,0 +1,29 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +1_ diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js new file mode 100644 index 0000000000..33c08b310c --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js @@ -0,0 +1,28 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits NumericLiteralSeparator DecimalDigits + ExponentPart SignedInteger +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(10.00_01e2, 10.0001e2); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-nsl-dd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-nsl-dd.js new file mode 100644 index 0000000000..30f2f323ed --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-nsl-dd.js @@ -0,0 +1,29 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: DecimalDigits NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(123456789_0, 1234567890); +assert.sameValue(123456789_1, 1234567891); +assert.sameValue(123456789_2, 1234567892); +assert.sameValue(123456789_3, 1234567893); +assert.sameValue(123456789_4, 1234567894); +assert.sameValue(123456789_5, 1234567895); +assert.sameValue(123456789_6, 1234567896); +assert.sameValue(123456789_7, 1234567897); +assert.sameValue(123456789_8, 1234567898); +assert.sameValue(123456789_9, 1234567899); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-nsl-dds-dunder-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-nsl-dds-dunder-err.js new file mode 100644 index 0000000000..226c3dd37c --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-nsl-dds-dunder-err.js @@ -0,0 +1,27 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in DecimalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +10__0123456789 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-nsl-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-nsl-err.js new file mode 100644 index 0000000000..85da0a51ee --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dds-nsl-err.js @@ -0,0 +1,30 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character of a + DecimalLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +10_ diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.js new file mode 100644 index 0000000000..d5c9e826ae --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.js @@ -0,0 +1,29 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +10.0_e1 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-nsl-dd-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-nsl-dd-err.js new file mode 100644 index 0000000000..5edda2bb20 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-nsl-dd-err.js @@ -0,0 +1,29 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be adjacent to `.` +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +10._1 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-nsl-ep-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-nsl-ep-err.js new file mode 100644 index 0000000000..983493cdcb --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-nsl-ep-err.js @@ -0,0 +1,32 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear between `.` and ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +10._e1 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-nsl-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-nsl-err.js new file mode 100644 index 0000000000..945ff12dab --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dil-dot-nsl-err.js @@ -0,0 +1,30 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character of a + DecimalLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +10._ diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dd-nsl-dd-ep.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dd-nsl-dd-ep.js new file mode 100644 index 0000000000..e5d762fe89 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dd-nsl-dd-ep.js @@ -0,0 +1,28 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `.` DecimalDigit NumericLiteralSeparator DecimalDigit ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + DecimalDigit + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(.0_1e2, .01e2); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dd-nsl-dds-ep.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dd-nsl-dds-ep.js new file mode 100644 index 0000000000..79ff43a088 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dd-nsl-dds-ep.js @@ -0,0 +1,28 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `.` DecimalDigit NumericLiteralSeparator DecimalDigits ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + DecimalDigit + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(.1_01e2, .101e2); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dds-nsl-dd-ep.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dds-nsl-dd-ep.js new file mode 100644 index 0000000000..ebe3f3a1dd --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dds-nsl-dd-ep.js @@ -0,0 +1,28 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `.` DecimalDigits NumericLiteralSeparator DecimalDigit ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + DecimalDigit + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(.10_1e2, .101e2); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dds-nsl-dds-ep.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dds-nsl-dds-ep.js new file mode 100644 index 0000000000..4b0183f351 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dds-nsl-dds-ep.js @@ -0,0 +1,28 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `.` DecimalDigits NumericLiteralSeparator DecimalDigits ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + DecimalDigit + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(.00_01e2, .0001e2); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dds-nsl-ep-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dds-nsl-ep-err.js new file mode 100644 index 0000000000..6b193eaaad --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-dds-nsl-ep-err.js @@ -0,0 +1,31 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NumericLiteralSeparator may not appear adjacent to ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +.0_e1 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-nsl-ep-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-nsl-ep-err.js new file mode 100644 index 0000000000..f47aa6ed58 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-nsl-ep-err.js @@ -0,0 +1,32 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear between `.` and ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +._e1 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-nsl-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-nsl-err.js new file mode 100644 index 0000000000..cc385aef6c --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-dot-nsl-err.js @@ -0,0 +1,30 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character of a + DecimalLiteral, nor adjacent to `.` +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +._ diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hd-nsl-hd-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hd-nsl-hd-err.js new file mode 100644 index 0000000000..ddbc8bfda1 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hd-nsl-hd-err.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the appear adjacent to `0x` | `0X` in a + HexIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0x_1 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hd-nsl-hd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hd-nsl-hd.js new file mode 100644 index 0000000000..fa6449bf89 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hd-nsl-hd.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigit NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0x0_1, 0x01); +assert.sameValue(0X0_1, 0X01); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hd-nsl-hds.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hd-nsl-hds.js new file mode 100644 index 0000000000..f9e409b746 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hd-nsl-hds.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigit NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0x0_10, 0x010); +assert.sameValue(0X0_10, 0X010); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hds-nsl-hd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hds-nsl-hd.js new file mode 100644 index 0000000000..8e24e295df --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hds-nsl-hd.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigits NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0x01_0, 0x010); +assert.sameValue(0X01_0, 0X010); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hds-nsl-hds.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hds-nsl-hds.js new file mode 100644 index 0000000000..a34be03180 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-hds-nsl-hds.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigits NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0x01_00, 0x0100); +assert.sameValue(0X01_00, 0X0100); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-nsl-hd-dunder-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-nsl-hd-dunder-err.js new file mode 100644 index 0000000000..5cccc79d08 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-nsl-hd-dunder-err.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in a HexIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0x0__0 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-nsl-hd-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-nsl-hd-err.js new file mode 100644 index 0000000000..4a60e15780 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-nsl-hd-err.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character of a + HexIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0x0_ diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-od-nsl-od-one-of.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-od-nsl-od-one-of.js new file mode 100644 index 0000000000..9778115bce --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-hil-od-nsl-od-one-of.js @@ -0,0 +1,50 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigit NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0x0_0, 0x00); +assert.sameValue(0x1_1, 0x11); +assert.sameValue(0x2_2, 0x22); +assert.sameValue(0x3_3, 0x33); +assert.sameValue(0x4_4, 0x44); +assert.sameValue(0x5_5, 0x55); +assert.sameValue(0x6_6, 0x66); +assert.sameValue(0x7_7, 0x77); +assert.sameValue(0x8_8, 0x88); +assert.sameValue(0x9_9, 0x99); +assert.sameValue(0xa_a, 0xaa); +assert.sameValue(0xb_b, 0xbb); +assert.sameValue(0xc_c, 0xcc); +assert.sameValue(0xd_d, 0xdd); +assert.sameValue(0xe_e, 0xee); +assert.sameValue(0xf_f, 0xff); +assert.sameValue(0xA_A, 0xAA); +assert.sameValue(0xB_B, 0xBB); +assert.sameValue(0xC_C, 0xCC); +assert.sameValue(0xD_D, 0xDD); +assert.sameValue(0xE_E, 0xEE); +assert.sameValue(0xF_F, 0xFF); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-00-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-00-err.js new file mode 100644 index 0000000000..cef8c58112 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-00-err.js @@ -0,0 +1,42 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (00_0) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 + + OctalDigit::one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +00_0; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-01-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-01-err.js new file mode 100644 index 0000000000..bcc260ee5a --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-01-err.js @@ -0,0 +1,42 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (01_0) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 + + OctalDigit::one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +01_0; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-07-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-07-err.js new file mode 100644 index 0000000000..3bb6753a59 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-07-err.js @@ -0,0 +1,44 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (07_0) + ) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 + + OctalDigit::one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +07_0; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_0-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_0-err.js new file mode 100644 index 0000000000..231d8a0fdf --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_0-err.js @@ -0,0 +1,42 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (0_0) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 + + OctalDigit::one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0_0; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_1-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_1-err.js new file mode 100644 index 0000000000..ccf0fae763 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_1-err.js @@ -0,0 +1,42 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (0_1) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 + + OctalDigit::one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0_1; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_7-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_7-err.js new file mode 100644 index 0000000000..f2c43e158a --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-lol-0_7-err.js @@ -0,0 +1,43 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (0_7) + ) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 + + OctalDigit::one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0_7; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-08-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-08-err.js new file mode 100644 index 0000000000..abde825447 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-08-err.js @@ -0,0 +1,39 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a NonOctalDecimalIntegerLiteral (08) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +08_0; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-09-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-09-err.js new file mode 100644 index 0000000000..2c297e87e7 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-09-err.js @@ -0,0 +1,39 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a NonOctalDecimalIntegerLiteral (09) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +09_0; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-0_8-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-0_8-err.js new file mode 100644 index 0000000000..e4a948f9ad --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-0_8-err.js @@ -0,0 +1,39 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a NonOctalDecimalIntegerLiteral (0_8) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0_8; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-0_9-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-0_9-err.js new file mode 100644 index 0000000000..a631aa1d4e --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nonoctal-0_9-err.js @@ -0,0 +1,39 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2019 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator must not be in a NonOctalDecimalIntegerLiteral (0_9) +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + 0 + NonZeroDigit DecimalDigitsopt + NonZeroDigit + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + NonOctalDecimalIntegerLiteral + + NonOctalDecimalIntegerLiteral :: + 0 NonOctalDigit + LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit + NonOctalDecimalIntegerLiteral DecimalDigit + + LegacyOctalLikeDecimalIntegerLiteral :: + 0 OctalDigit + LegacyOctalLikeDecimalIntegerLiteral OctalDigit + + NonOctalDigit::one of + 8 9 +negative: + phase: parse + type: SyntaxError +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0_9; diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dd-one-of.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dd-one-of.js new file mode 100644 index 0000000000..6aa81e7690 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dd-one-of.js @@ -0,0 +1,41 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NonZeroDigit NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + + DecimalDigits :: + DecimalDigit + ... + + DecimalDigit :: one of + 0 1 2 3 4 5 6 7 8 9 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(1_0, 10); +assert.sameValue(1_1, 11); +assert.sameValue(2_2, 22); +assert.sameValue(3_3, 33); +assert.sameValue(4_4, 44); +assert.sameValue(5_5, 55); +assert.sameValue(6_6, 66); +assert.sameValue(7_7, 77); +assert.sameValue(8_8, 88); +assert.sameValue(9_9, 99); + + + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dd.js new file mode 100644 index 0000000000..8f77c5ad8a --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dd.js @@ -0,0 +1,28 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NonZeroDigit NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + + DecimalDigits :: + ... + DecimalDigits DecimalDigit + ... + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(1_1, 11); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dds-dunder-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dds-dunder-err.js new file mode 100644 index 0000000000..0b7fba0d11 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dds-dunder-err.js @@ -0,0 +1,30 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in DecimalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0__0123456789 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js new file mode 100644 index 0000000000..9c90918f21 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js @@ -0,0 +1,28 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NonZeroDigit NumericLiteralSeparator DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0_0123456789 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dds.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dds.js new file mode 100644 index 0000000000..f133c9ee81 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-nzd-nsl-dds.js @@ -0,0 +1,28 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NonZeroDigit NumericLiteralSeparator DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + + DecimalDigits :: + ... + DecimalDigits DecimalDigit + ... + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(1_0123456789, 10123456789); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-nsl-od-dunder-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-nsl-od-dunder-err.js new file mode 100644 index 0000000000..2aa07a7963 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-nsl-od-dunder-err.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in a OctalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0o0__0 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-nsl-od-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-nsl-od-err.js new file mode 100644 index 0000000000..491f86a0b0 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-nsl-od-err.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character of an + OctalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0o0_ diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-od-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-od-err.js new file mode 100644 index 0000000000..0ab03195cd --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-od-err.js @@ -0,0 +1,35 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the appear adjacent to `0o` | `0O` in a + OctalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +0o_1 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-od-one-of.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-od-one-of.js new file mode 100644 index 0000000000..1beed1bd6e --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-od-one-of.js @@ -0,0 +1,36 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigit NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0o0_0, 0o00); +assert.sameValue(0o1_1, 0o11); +assert.sameValue(0o2_2, 0o22); +assert.sameValue(0o3_3, 0o33); +assert.sameValue(0o4_4, 0o44); +assert.sameValue(0o5_5, 0o55); +assert.sameValue(0o6_6, 0o66); +assert.sameValue(0o7_7, 0o77); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-od.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-od.js new file mode 100644 index 0000000000..f6151df531 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-od.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigit NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0o0_1, 0o01); +assert.sameValue(0O0_1, 0O01); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-ods.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-ods.js new file mode 100644 index 0000000000..10902300a4 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-od-nsl-ods.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigit NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0o0_10, 0o010); +assert.sameValue(0O0_10, 0O010); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-ods-nsl-od.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-ods-nsl-od.js new file mode 100644 index 0000000000..676194f917 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-ods-nsl-od.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigits NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0o01_0, 0o010); +assert.sameValue(0O01_0, 0O010); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-ods-nsl-ods.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-ods-nsl-ods.js new file mode 100644 index 0000000000..0330fa6136 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-oil-ods-nsl-ods.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigits NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(0o01_00, 0o0100); +assert.sameValue(0O01_00, 0O0100); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-sign-minus-dds-nsl-dd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-sign-minus-dds-nsl-dd.js new file mode 100644 index 0000000000..683badcf54 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-sign-minus-dds-nsl-dd.js @@ -0,0 +1,29 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: DecimalDigits NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + SignedInteger :: + ... + - DecimalDigits + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(-123456789_0, -1234567890); +assert.sameValue(-123456789_1, -1234567891); +assert.sameValue(-123456789_2, -1234567892); +assert.sameValue(-123456789_3, -1234567893); +assert.sameValue(-123456789_4, -1234567894); +assert.sameValue(-123456789_5, -1234567895); +assert.sameValue(-123456789_6, -1234567896); +assert.sameValue(-123456789_7, -1234567897); +assert.sameValue(-123456789_8, -1234567898); +assert.sameValue(-123456789_9, -1234567899); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-sign-plus-dds-nsl-dd.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-sign-plus-dds-nsl-dd.js new file mode 100644 index 0000000000..dcc9e845c1 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-sign-plus-dds-nsl-dd.js @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: DecimalDigits NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + SignedInteger :: + ... + + DecimalDigits + ... + +features: [numeric-separator-literal] +---*/ + +assert.sameValue(+123456789_0, 1234567890); +assert.sameValue(+123456789_1, 1234567891); +assert.sameValue(+123456789_2, 1234567892); +assert.sameValue(+123456789_3, 1234567893); +assert.sameValue(+123456789_4, 1234567894); +assert.sameValue(+123456789_5, 1234567895); +assert.sameValue(+123456789_6, 1234567896); +assert.sameValue(+123456789_7, 1234567897); +assert.sameValue(+123456789_8, 1234567898); +assert.sameValue(+123456789_9, 1234567899); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-unicode-err.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-unicode-err.js new file mode 100644 index 0000000000..aa84c40f7d --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/numeric-separator-literal-unicode-err.js @@ -0,0 +1,27 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NonZeroDigit NumericLiteralSeparator DecimalDigits sequence expressed with + unicode escape sequence +info: | + NumericLiteralSeparator:: + _ + + DecimalIntegerLiteral:: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + +negative: + phase: parse + type: SyntaxError + +features: [numeric-separator-literal] +---*/ + +$DONOTEVALUATE(); + +1\u005F0123456789 diff --git a/js/src/tests/test262/language/literals/numeric/numeric-separators/shell.js b/js/src/tests/test262/language/literals/numeric/numeric-separators/shell.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/numeric-separators/shell.js diff --git a/js/src/tests/test262/language/literals/numeric/octal-invalid-digit.js b/js/src/tests/test262/language/literals/numeric/octal-invalid-digit.js new file mode 100644 index 0000000000..3121c6f866 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/octal-invalid-digit.js @@ -0,0 +1,24 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3 +description: Octal-integer-literal-like sequence containing an invalid digit +info: | + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigit :: one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +0o8; diff --git a/js/src/tests/test262/language/literals/numeric/octal-invalid-leading.js b/js/src/tests/test262/language/literals/numeric/octal-invalid-leading.js new file mode 100644 index 0000000000..bd632ba739 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/octal-invalid-leading.js @@ -0,0 +1,24 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3 +description: Octal-integer-literal-like sequence with a leading 0 +info: | + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigit :: one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +00o0; diff --git a/js/src/tests/test262/language/literals/numeric/octal-invalid-truncated.js b/js/src/tests/test262/language/literals/numeric/octal-invalid-truncated.js new file mode 100644 index 0000000000..e915f7f2d6 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/octal-invalid-truncated.js @@ -0,0 +1,24 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3 +description: Octal-integer-literal-like sequence without any digits +info: | + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigit :: one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +0o; diff --git a/js/src/tests/test262/language/literals/numeric/octal-invalid-unicode.js b/js/src/tests/test262/language/literals/numeric/octal-invalid-unicode.js new file mode 100644 index 0000000000..7b7197149d --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/octal-invalid-unicode.js @@ -0,0 +1,24 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3 +description: Octal-integer-literal-like sequence expressed with unicode escape sequence +info: | + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigit :: one of + 0 1 2 3 4 5 6 7 +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +0\u006f0; diff --git a/js/src/tests/test262/language/literals/numeric/octal.js b/js/src/tests/test262/language/literals/numeric/octal.js new file mode 100644 index 0000000000..81fb91e432 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/octal.js @@ -0,0 +1,47 @@ +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 11.8.3.1 +description: Mathematical value of valid octal integer literals +info: | + The MV of StrNumericLiteral ::: OctalIntegerLiteral is the MV of + OctalIntegerLiteral. + The MV of OctalIntegerLiteral :: 0o OctalDigits is the MV of OctalDigits. + The MV of OctalIntegerLiteral :: 0O OctalDigits is the MV of OctalDigits. + The MV of OctalDigits :: OctalDigit is the MV of OctalDigit. + The MV of OctalDigits :: OctalDigits OctalDigit is (the MV of OctalDigits × + 8) plus the MV of OctalDigit. +---*/ + +assert.sameValue(0o0, 0, 'lower-case head'); +assert.sameValue(0O0, 0, 'upper-case head'); +assert.sameValue(0o00, 0, 'lower-case head with leading zeros'); +assert.sameValue(0O00, 0, 'upper-case head with leading zeros'); + +assert.sameValue(0o1, 1, 'lower-case head'); +assert.sameValue(0O1, 1, 'upper-case head'); +assert.sameValue(0o01, 1, 'lower-case head with leading zeros'); +assert.sameValue(0O01, 1, 'upper-case head with leading zeros'); + +assert.sameValue(0o7, 7, 'lower-case head'); +assert.sameValue(0O7, 7, 'upper-case head'); +assert.sameValue(0o07, 7, 'lower-case head with leading zeros'); +assert.sameValue(0O07, 7, 'upper-case head with leading zeros'); + +assert.sameValue(0o10, 8, 'lower-case head'); +assert.sameValue(0O10, 8, 'upper-case head'); +assert.sameValue(0o010, 8, 'lower-case head with leading zeros'); +assert.sameValue(0O010, 8, 'upper-case head with leading zeros'); + +assert.sameValue(0o11, 9, 'lower-case head'); +assert.sameValue(0O11, 9, 'upper-case head'); +assert.sameValue(0o011, 9, 'lower-case head with leading zeros'); +assert.sameValue(0O011, 9, 'upper-case head with leading zeros'); + +assert.sameValue(0o77, 63, 'lower-case head'); +assert.sameValue(0O77, 63, 'upper-case head'); +assert.sameValue(0o077, 63, 'lower-case head with leading zeros'); +assert.sameValue(0O077, 63, 'upper-case head with leading zeros'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/literals/numeric/shell.js b/js/src/tests/test262/language/literals/numeric/shell.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/language/literals/numeric/shell.js |