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/line-terminators | |
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/line-terminators')
43 files changed, 1107 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/line-terminators/7.3-15.js b/js/src/tests/test262/language/line-terminators/7.3-15.js new file mode 100644 index 0000000000..5b06ddbd09 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/7.3-15.js @@ -0,0 +1,15 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.3-15 +description: 7.3 - ES5 recognize <BOM> (\uFFFF) as a whitespace character +---*/ + + var prop = "a\uFFFFa";
+ +assert.sameValue(prop.length, 3, 'prop.length'); +assert.notSameValue(prop, "aa", 'prop'); +assert.sameValue(prop[1], "\uFFFF", 'prop[1]'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/7.3-5.js b/js/src/tests/test262/language/line-terminators/7.3-5.js new file mode 100644 index 0000000000..1ad7cc8ee3 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/7.3-5.js @@ -0,0 +1,17 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.3-5 +description: > + 7.3 - ES5 recognizes the character <LS> (\u2028) as terminating + string literal +---*/ + + var prop = "66\u2028123";
+ +assert.sameValue(prop, "66\u2028123", 'prop'); +assert.sameValue(prop[2], "\u2028", 'prop[2]'); +assert.sameValue(prop.length, 6, 'prop.length'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/7.3-6.js b/js/src/tests/test262/language/line-terminators/7.3-6.js new file mode 100644 index 0000000000..611ba8f36a --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/7.3-6.js @@ -0,0 +1,17 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 7.3-6 +description: > + 7.3 - ES5 recognizes the character <PS> (\u2029) as terminating + string literal +---*/ + + var prop = "66\u2029123";
+ +assert.sameValue(prop, "66\u2029123", 'prop'); +assert.sameValue(prop[2], "\u2029", 'prop[2]'); +assert.sameValue(prop.length, 6, 'prop.length'); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A2.1_T2.js b/js/src/tests/test262/language/line-terminators/S7.3_A2.1_T2.js new file mode 100644 index 0000000000..e4f501f844 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A2.1_T2.js @@ -0,0 +1,20 @@ +// |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: LINE FEED (U+000A) within strings is not allowed +es5id: 7.3_A2.1_T2 +description: Use real LINE FEED into string +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +//CHECK#1 +" +str +ing +"; diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A2.2_T2.js b/js/src/tests/test262/language/line-terminators/S7.3_A2.2_T2.js new file mode 100644 index 0000000000..374a289ab0 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A2.2_T2.js @@ -0,0 +1,20 @@ +// |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: CARRIAGE RETURN (U+000D) within strings is not allowed +es5id: 7.3_A2.2_T2 +description: Insert real CARRIAGE RETURN into string +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +//CHECK#1 +" +str +ing +"; diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T1.js b/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T1.js new file mode 100644 index 0000000000..ccd9d06b5a --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A3.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: Single line comments can not contain CARRIAGE RETURN (U+000D) inside +es5id: 7.3_A3.2_T1 +description: Insert CARRIAGE RETURN (\u000D) into single line comment +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +// single line comment + ??? (invalid) diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A5.4.js b/js/src/tests/test262/language/line-terminators/S7.3_A5.4.js new file mode 100644 index 0000000000..2f574d8121 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A5.4.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Multi line comment can contain LINE SEPARATOR (U+2029) +es5id: 7.3_A5.4 +description: Insert PARAGRAPH SEPARATOR (U+2029) into multi line comment +---*/ + +// CHECK#1 +eval("/*\u2029 multi line \u2029 comment \u2029*/"); + +//CHECK#2 +var x = 0; +eval("/*\u2029 multi line \u2029 comment \u2029 x = 1;*/"); +if (x !== 0) { + throw new Test262Error('#1: var x = 0; eval("/*\\u2029 multi line \\u2029 comment \\u2029 x = 1;*/"); x === 0. Actual: ' + (x)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A6_T1.js b/js/src/tests/test262/language/line-terminators/S7.3_A6_T1.js new file mode 100644 index 0000000000..209ba8d956 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A6_T1.js @@ -0,0 +1,18 @@ +// |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: | + Line Terminator cannot be expressed as a Unicode escape sequence + consisting of six characters, namely \u plus four hexadecimal digits +es5id: 7.3_A6_T1 +description: Insert LINE FEED (U+000A) in var x +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +var\u000Ax; diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A6_T2.js b/js/src/tests/test262/language/line-terminators/S7.3_A6_T2.js new file mode 100644 index 0000000000..221e2b173e --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A6_T2.js @@ -0,0 +1,18 @@ +// |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: | + Line Terminator cannot be expressed as a Unicode escape sequence + consisting of six characters, namely \u plus four hexadecimal digits +es5id: 7.3_A6_T2 +description: Insert CARRIAGE RETURN (U+000D) in var x +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +var\u000Dx; diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A6_T3.js b/js/src/tests/test262/language/line-terminators/S7.3_A6_T3.js new file mode 100644 index 0000000000..1e88e4421d --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A6_T3.js @@ -0,0 +1,18 @@ +// |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: | + Line Terminator cannot be expressed as a Unicode escape sequence + consisting of six characters, namely \u plus four hexadecimal digits +es5id: 7.3_A6_T3 +description: Insert LINE SEPARATOR (U+2028) in var x +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +var\u2028x; diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A6_T4.js b/js/src/tests/test262/language/line-terminators/S7.3_A6_T4.js new file mode 100644 index 0000000000..d82e67e097 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A6_T4.js @@ -0,0 +1,18 @@ +// |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: | + Line Terminator cannot be expressed as a Unicode escape sequence + consisting of six characters, namely \u plus four hexadecimal digits +es5id: 7.3_A6_T4 +description: Insert PARAGRAPH SEPARATOR (U+2029) in var x +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +var\u2029x; diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A7_T1.js b/js/src/tests/test262/language/line-terminators/S7.3_A7_T1.js new file mode 100644 index 0000000000..e1c4dee545 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A7_T1.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Line Terminators between operators are allowed +es5id: 7.3_A7_T1 +description: Insert Line Terminator in var x=y+z +---*/ + +// CHECK#1 +var y=2; +var z=3; +var +x += +y ++ +z +; +if (x !== 5) { + throw new Test262Error('#1: var\\nx\\n=\\ny\\n+\\nz\\n; x === 5. Actual: ' + (x)); +} +x=0; + +// CHECK#2 +var y=2; +var z=3; +var +x += +y ++ +z +; +if (x !== 5) { + throw new Test262Error('#2: var\\nx\\n=\\ny\\n+\\nz\\n; x === 5. Actual: ' + (x)); +} +x=0; + +// CHECK#3 +var result; +var y=2; +var z=3; +eval("\u2028var\u2028x\u2028=\u2028y\u2028+\u2028z\u2028; result = x;"); +if (result !== 5) { + throw new Test262Error('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028+\\u2028z\\u2028; result = x;"); result === 5. Actual: ' + (result)); +} +result=0; + +// CHECK#4 +var y=2; +var z=3; +eval("\u2029var\u2029x\u2029=\u2029y\u2029+\u2029z\u2029; result = x;"); +if (result !== 5) { + throw new Test262Error('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029+\\u2029z\\u2029; result = x;"); result === 5. Actual: ' + (result)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A7_T2.js b/js/src/tests/test262/language/line-terminators/S7.3_A7_T2.js new file mode 100644 index 0000000000..a78d79085a --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A7_T2.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Line Terminators between operators are allowed +es5id: 7.3_A7_T2 +description: Insert Line Terminator in var x=y-z +---*/ + +// CHECK#1 +var y=3; +var z=2; +var +x += +y +- +z +; +if (x !== 1) { + throw new Test262Error('#1: var\\nx\\n=\\ny\\n-\\nz\\n; x === 1. Actual: ' + (x)); +} +x=0; + +// CHECK#2 +var y=3; +var z=2; +var +x += +y +- +z +; +if (x !== 1) { + throw new Test262Error('#2: var\\nx\\n=\\ny\\n-\\nz\\n; x === 1. Actual: ' + (x)); +} +x=0; + +// CHECK#3 +var result; +var y=3; +var z=2; +eval("\u2028var\u2028x\u2028=\u2028y\u2028-\u2028z\u2028; result = x;"); +if (result !== 1) { + throw new Test262Error('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028-\\u2028z\\u2028; result = x;"); result === 1. Actual: ' + (result)); +} +result=0; + +// CHECK#4 +var y=3; +var z=2; +eval("\u2029var\u2029x\u2029=\u2029y\u2029-\u2029z\u2029; result = x;"); +if (result !== 1) { + throw new Test262Error('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029-\\u2029z\\u2029; result = x;"); result === 1. Actual: ' + (result)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A7_T3.js b/js/src/tests/test262/language/line-terminators/S7.3_A7_T3.js new file mode 100644 index 0000000000..63127757cf --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A7_T3.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Line Terminators between operators are allowed +es5id: 7.3_A7_T3 +description: Insert Line Terminator in var x=y*z +---*/ + +// CHECK#1 +var y=3; +var z=2; +var +x += +y +* +z +; +if (x !== 6) { + throw new Test262Error('#1: var\\nx\\n=\\ny\\n*\\nz\\n; x === 6. Actual: ' + (x)); +} +x=0; + +// CHECK#2 +var y=3; +var z=2; +var +x += +y +* +z +; +if (x !== 6) { + throw new Test262Error('#2: var\\nx\\n=\\ny\\n*\\nz\\n; x === 6. Actual: ' + (x)); +} +x=0; + +// CHECK#3 +var result; +var y=3; +var z=2; +eval("\u2028var\u2028x\u2028=\u2028y\u2028*\u2028z\u2028; result = x;"); +if (result !== 6) { + throw new Test262Error('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028*\\u2028z\\u2028; result = x;"); result === 6. Actual: ' + (result)); +} +result=0; + +// CHECK#4 +var y=3; +var z=2; +eval("\u2029var\u2029x\u2029=\u2029y\u2029*\u2029z\u2029; result = x;"); +if (result !== 6) { + throw new Test262Error('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029*\\u2029z\\u2029; result = x;"); result === 6. Actual: ' + (result)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A7_T4.js b/js/src/tests/test262/language/line-terminators/S7.3_A7_T4.js new file mode 100644 index 0000000000..6478bc5b43 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A7_T4.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Line Terminators between operators are allowed +es5id: 7.3_A7_T4 +description: Insert Line Terminator in var x=y/z +---*/ + +// CHECK#1 +var y=12; +var z=2; +var +x += +y +/ +z +; +if (x !== 6) { + throw new Test262Error('#1: var\\nx\\n=\\ny\\n/\\nz\\n; x === 6. Actual: ' + (x)); +} +x=0; + +// CHECK#2 +var y=12; +var z=2; +var +x += +y +/ +z +; +if (x !== 6) { + throw new Test262Error('#2: var\\nx\\n=\\ny\\n/\\nz\\n; x === 6. Actual: ' + (x)); +} +x=0; + +// CHECK#3 +var result; +var y=12; +var z=2; +eval("\u2028var\u2028x\u2028=\u2028y\u2028/\u2028z\u2028; result = x;"); +if (result !== 6) { + throw new Test262Error('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028/\\u2028z\\u2028; result = x;"); result === 6. Actual: ' + (result)); +} +result=0; + +// CHECK#4 +var y=12; +var z=2; +eval("\u2029var\u2029x\u2029=\u2029y\u2029/\u2029z\u2029; result = x;"); +if (result !== 6) { + throw new Test262Error('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029/\\u2029z\\u2029; result = x;"); result === 6. Actual: ' + (result)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A7_T5.js b/js/src/tests/test262/language/line-terminators/S7.3_A7_T5.js new file mode 100644 index 0000000000..90edced9ee --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A7_T5.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Line Terminators between operators are allowed +es5id: 7.3_A7_T5 +description: Insert Line Terminator in var x=y%z +---*/ + +// CHECK#1 +var y=16; +var z=10; +var +x += +y +% +z +; +if (x !== 6) { + throw new Test262Error('#1: var\\nx\\n=\\ny\\n%\\nz\\n; x === 6. Actual: ' + (x)); +} +x=0; + +// CHECK#2 +var y=16; +var z=10; +var +x += +y +% +z +; +if (x !== 6) { + throw new Test262Error('#2: var\\nx\\n=\\ny\\n%\\nz\\n; x === 6. Actual: ' + (x)); +} +x=0; + +// CHECK#3 +var result; +var y=16; +var z=10; +eval("\u2028var\u2028x\u2028=\u2028y\u2028%\u2028z\u2028; result = x;"); +if (result !== 6) { + throw new Test262Error('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028%\\u2028z\\u2028; result = x;"); result === 6. Actual: ' + (result)); +} +result=0; + +// CHECK#4 +var y=16; +var z=10; +eval("\u2029var\u2029x\u2029=\u2029y\u2029%\u2029z\u2029; result = x;"); +if (result !== 6) { + throw new Test262Error('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029%\\u2029z\\u2029; result = x;"); result === 6. Actual: ' + (result)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A7_T6.js b/js/src/tests/test262/language/line-terminators/S7.3_A7_T6.js new file mode 100644 index 0000000000..c6a75ab0b1 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A7_T6.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Line Terminators between operators are allowed +es5id: 7.3_A7_T6 +description: Insert Line Terminator in var x=y>>z +---*/ + +// CHECK#1 +var y=16; +var z=3; +var +x += +y +>> +z +; +if (x !== 2) { + throw new Test262Error('#1: var\\nx\\n=\\ny\\n>>\\nz\\n; x === 2. Actual: ' + (x)); +} +x=0; + +// CHECK#2 +var y=16; +var z=3; +var +x += +y +>> +z +; +if (x !== 2) { + throw new Test262Error('#2: var\\nx\\n=\\ny\\n>>\\nz\\n; x === 2. Actual: ' + (x)); +} +x=0; + +// CHECK#3 +var result; +var y=16; +var z=3; +eval("\u2028var\u2028x\u2028=\u2028y\u2028>>\u2028z\u2028; result = x;"); +if (result !== 2) { + throw new Test262Error('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028>>\\u2028z\\u2028; result = x;"); result === 2. Actual: ' + (result)); +} +result=0; + +// CHECK#4 +var y=16; +var z=3; +eval("\u2029var\u2029x\u2029=\u2029y\u2029>>\u2029z\u2029; result = x;"); +if (result !== 2) { + throw new Test262Error('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029>>\\u2029z\\u2029; result = x;"); result === 2. Actual: ' + (result)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A7_T7.js b/js/src/tests/test262/language/line-terminators/S7.3_A7_T7.js new file mode 100644 index 0000000000..a73dc1b91c --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A7_T7.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Line Terminators between operators are allowed +es5id: 7.3_A7_T7 +description: Insert Line Terminator in var x=y<<z +---*/ + +// CHECK#1 +var y=2; +var z=3; +var +x += +y +<< +z +; +if (x !== 16) { + throw new Test262Error('#1: var\\nx\\n=\\ny\\n<<\\nz\\n; x === 16. Actual: ' + (x)); +} +x=0; + +// CHECK#2 +var y=2; +var z=3; +var +x += +y +<< +z +; +if (x !== 16) { + throw new Test262Error('#2: var\\nx\\n=\\ny\\n<<\\nz\\n; x ===16 '); +} +x=0; + +// CHECK#3 +var result; +var y=2; +var z=3; +eval("\u2028var\u2028x\u2028=\u2028y\u2028<<\u2028z\u2028; result = x;"); +if (result !== 16) { + throw new Test262Error('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028<<\\u2028z\\u2028; result = x;"); result === 16. Actual: ' + (result)); +} +result=0; + +// CHECK#4 +var y=2; +var z=3; +eval("\u2029var\u2029x\u2029=\u2029y\u2029<<\u2029z\u2029; result = x;"); +if (result !== 16) { + throw new Test262Error('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029<<\\u2029z\\u2029; result = x;"); result === 16. Actual: ' + (result)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A7_T8.js b/js/src/tests/test262/language/line-terminators/S7.3_A7_T8.js new file mode 100644 index 0000000000..81f783b0e8 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/S7.3_A7_T8.js @@ -0,0 +1,58 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Line Terminators between operators are allowed +es5id: 7.3_A7_T8 +description: Insert Line Terminator in var x=y<z +---*/ + +// CHECK#1 +var y=2; +var z=3; +var +x += +y +< +z +; +if (x !== true) { + throw new Test262Error('#1: var\\nx\\n=\\ny\\n<\\nz\\n; x === true. Actual: ' + (x)); +} +x=0; + +// CHECK#2 +var y=2; +var z=3; +var +x += +y +< +z +; +if (x !== true) { + throw new Test262Error('#2: var\\nx\\n=\\ny\\n<\\nz\\n; x === true. Actual: ' + (x)); +} +x=0; + +// CHECK#3 +var result; +var y=2; +var z=3; +eval("\u2028var\u2028x\u2028=\u2028y\u2028<\u2028z\u2028; result = x;"); +if (result !== true) { + throw new Test262Error('#3: eval("\\u2028var\\u2028x\\u2028=\\u2028y\\u2028<\\u2028z\\u2028; result = x;"); result === true. Actual: ' + (result)); +} +result=0; + +// CHECK#4 +var y=2; +var z=3; +eval("\u2029var\u2029x\u2029=\u2029y\u2029<\u2029z\u2029; result = x;"); +if (result !== true) { + throw new Test262Error('#4: eval("\\u2029var\\u2029x\\u2029=\\u2029y\\u2029<\\u2029z\\u2029; result = x;"); result === true. Actual: ' + (result)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/between-tokens-cr.js b/js/src/tests/test262/language/line-terminators/between-tokens-cr.js new file mode 100644 index 0000000000..01afeede79 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/between-tokens-cr.js @@ -0,0 +1,17 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: CARRIAGE RETURN (U+000D) may occur between any two tokens +esid: sec-line-terminators +es5id: 7.3_A1.2_T2 +description: Insert real CARRIAGE RETURN between tokens of var x=1 +---*/ + +var
x
=
1; + +if (x !== 1) { + throw new Test262Error('#1: var\\nx\\n=\\n1\\n; x === 1. Actual: ' + (x)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/between-tokens-lf.js b/js/src/tests/test262/language/line-terminators/between-tokens-lf.js new file mode 100644 index 0000000000..f852b834ed --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/between-tokens-lf.js @@ -0,0 +1,18 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: LINE FEED (U+000A) may occur between any two tokens +esid: sec-line-terminators +es5id: 7.3_A1.1_T2 +description: Insert real LINE FEED between tokens of var x=1 +---*/ + +var +x += +1; + +assert.sameValue(x, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/between-tokens-ls.js b/js/src/tests/test262/language/line-terminators/between-tokens-ls.js new file mode 100644 index 0000000000..798314aabf --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/between-tokens-ls.js @@ -0,0 +1,15 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: LINE SEPARATOR (U+2028) may occur between any two tokens +esid: sec-line-terminators +es5id: 7.3_A1.3 +description: Insert LINE SEPARATOR (\u2028) between tokens of var x=1 +---*/ + +var
x
=
1
; + +assert.sameValue(x, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/between-tokens-ps.js b/js/src/tests/test262/language/line-terminators/between-tokens-ps.js new file mode 100644 index 0000000000..399eb10453 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/between-tokens-ps.js @@ -0,0 +1,15 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: PARAGRAPH SEPARATOR (U+2029) may occur between any two tokens +esid: sec-line-terminators +es5id: 7.3_A1.4 +description: Insert PARAGRAPH SEPARATOR (\u2029) between tokens of var x=1 +---*/ + +var
x
=
1
; + +assert.sameValue(x, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/browser.js b/js/src/tests/test262/language/line-terminators/browser.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/browser.js diff --git a/js/src/tests/test262/language/line-terminators/comment-multi-cr.js b/js/src/tests/test262/language/line-terminators/comment-multi-cr.js new file mode 100644 index 0000000000..7b0bab3577 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/comment-multi-cr.js @@ -0,0 +1,19 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Multi line comment can contain CARRIAGE RETURN (U+000D) +esid: sec-line-terminators +es5id: 7.3_A5.2_T2 +description: Insert real CARRIAGE RETURN into multi line comment +---*/ + +var x = 0; +/* +multi
line
comment
x = 1; +*/ +if (x !== 0) { + throw new Test262Error('#1: var x = 0; /*\\rmulti\\rline\\rcomment\\rx = 1;\\r*/ x === 0. Actual: ' + (x)); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/line-terminators/comment-multi-lf.js b/js/src/tests/test262/language/line-terminators/comment-multi-lf.js new file mode 100644 index 0000000000..cb5d1eb16e --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/comment-multi-lf.js @@ -0,0 +1,31 @@ +// |reftest| error:Test262Error +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Multi line comment can contain LINE FEED (U+000A) +esid: sec-line-terminators +es5id: 7.3_A5.1_T2 +description: Insert real LINE FEED into multi line comment +negative: + phase: runtime + type: Test262Error +---*/ + +// Because this test concerns the interpretation of non-executable character +// sequences within ECMAScript source code, special care must be taken to +// ensure that executable code is evaluated as expected. +// +// Express the intended behavior by intentionally throwing an error; this +// guarantees that test runners will only consider the test "passing" if +// executable sequences are correctly interpreted as such. + +var x = 0; + +/* +x = 1; +*/ + +if (x === 0) { + throw new Test262Error(); +} diff --git a/js/src/tests/test262/language/line-terminators/comment-multi-ls.js b/js/src/tests/test262/language/line-terminators/comment-multi-ls.js new file mode 100644 index 0000000000..d504c1396c --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/comment-multi-ls.js @@ -0,0 +1,29 @@ +// |reftest| error:Test262Error +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Multi line comment can contain LINE SEPARATOR (U+2028) +esid: sec-line-terminators +es5id: 7.3_A5.3 +description: Insert LINE SEPARATOR (U+2028) into multi line comment +negative: + phase: runtime + type: Test262Error +---*/ + +// Because this test concerns the interpretation of non-executable character +// sequences within ECMAScript source code, special care must be taken to +// ensure that executable code is evaluated as expected. +// +// Express the intended behavior by intentionally throwing an error; this +// guarantees that test runners will only consider the test "passing" if +// executable sequences are correctly interpreted as such. + +var x = 0; + +/*
x = 1;
*/ + +if (x === 0) { + throw new Test262Error(); +} diff --git a/js/src/tests/test262/language/line-terminators/comment-multi-ps.js b/js/src/tests/test262/language/line-terminators/comment-multi-ps.js new file mode 100644 index 0000000000..4718cb6031 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/comment-multi-ps.js @@ -0,0 +1,29 @@ +// |reftest| error:Test262Error +// Copyright 2019 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Multi line comment can contain PARAGRAPH SEPARATOR (U+2029) +esid: sec-line-terminators +es5id: 7.3_A5.1_T2 +description: Insert real PARAGRAPH SEPARATOR into multi line comment +negative: + phase: runtime + type: Test262Error +---*/ + +// Because this test concerns the interpretation of non-executable character +// sequences within ECMAScript source code, special care must be taken to +// ensure that executable code is evaluated as expected. +// +// Express the intended behavior by intentionally throwing an error; this +// guarantees that test runners will only consider the test "passing" if +// executable sequences are correctly interpreted as such. + +var x = 0; + +/*
x = 1;
*/ + +if (x === 0) { + throw new Test262Error(); +} diff --git a/js/src/tests/test262/language/line-terminators/comment-single-cr.js b/js/src/tests/test262/language/line-terminators/comment-single-cr.js new file mode 100644 index 0000000000..e4a2d11bff --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/comment-single-cr.js @@ -0,0 +1,23 @@ +// |reftest| error:Test262Error +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Single line comments can contain Line Terminator at the end of line +esid: sec-line-terminators +es5id: 7.3_A4_T2 +description: Insert CARRIAGE RETURN (U+000D) into the end of single line comment +negative: + phase: runtime + type: Test262Error +---*/ + +// Because this test concerns the interpretation of non-executable character +// sequences within ECMAScript source code, special care must be taken to +// ensure that executable code is evaluated as expected. +// +// Express the intended behavior by intentionally throwing an error; this +// guarantees that test runners will only consider the test "passing" if +// executable sequences are correctly interpreted as such. + +// single line
throw new Test262Error(); diff --git a/js/src/tests/test262/language/line-terminators/comment-single-lf.js b/js/src/tests/test262/language/line-terminators/comment-single-lf.js new file mode 100644 index 0000000000..3b1f71bfe0 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/comment-single-lf.js @@ -0,0 +1,24 @@ +// |reftest| error:Test262Error +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Single line comments are terminated by the LINE FEED (U+000A) character +esid: sec-line-terminators +es5id: 7.3_A3.1_T1 +description: Insert LINE FEED (\u000A) into single line comment +negative: + phase: runtime + type: Test262Error +---*/ + +// Because this test concerns the interpretation of non-executable character +// sequences within ECMAScript source code, special care must be taken to +// ensure that executable code is evaluated as expected. +// +// Express the intended behavior by intentionally throwing an error; this +// guarantees that test runners will only consider the test "passing" if +// executable sequences are correctly interpreted as such. + +// single line +throw new Test262Error(); diff --git a/js/src/tests/test262/language/line-terminators/comment-single-ls.js b/js/src/tests/test262/language/line-terminators/comment-single-ls.js new file mode 100644 index 0000000000..9c9dabc254 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/comment-single-ls.js @@ -0,0 +1,23 @@ +// |reftest| error:Test262Error +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Single line comments can contain Line Terminator at the end of line +esid: sec-line-terminators +es5id: 7.3_A4_T3 +description: Insert LINE SEPARATOR (U+2028) into the end of single line comment +negative: + phase: runtime + type: Test262Error +---*/ + +// Because this test concerns the interpretation of non-executable character +// sequences within ECMAScript source code, special care must be taken to +// ensure that executable code is evaluated as expected. +// +// Express the intended behavior by intentionally throwing an error; this +// guarantees that test runners will only consider the test "passing" if +// executable sequences are correctly interpreted as such. + +// single line
throw new Test262Error(); diff --git a/js/src/tests/test262/language/line-terminators/comment-single-ps.js b/js/src/tests/test262/language/line-terminators/comment-single-ps.js new file mode 100644 index 0000000000..de3506c442 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/comment-single-ps.js @@ -0,0 +1,25 @@ +// |reftest| error:Test262Error +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Single line comments can contain Line Terminator at the end of line +esid: sec-line-terminators +es5id: 7.3_A4_T4 +description: > + Insert PARAGRAPH SEPARATOR (U+2029) into the end of single line + comment +negative: + phase: runtime + type: Test262Error +---*/ + +// Because this test concerns the interpretation of non-executable character +// sequences within ECMAScript source code, special care must be taken to +// ensure that executable code is evaluated as expected. +// +// Express the intended behavior by intentionally throwing an error; this +// guarantees that test runners will only consider the test "passing" if +// executable sequences are correctly interpreted as such. + +// single line
throw new Test262Error(); diff --git a/js/src/tests/test262/language/line-terminators/invalid-comment-single-cr.js b/js/src/tests/test262/language/line-terminators/invalid-comment-single-cr.js new file mode 100644 index 0000000000..7a7f26f14e --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-comment-single-cr.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: Single line comments can not contain CARRIAGE RETURN (U+000D) inside +es5id: 7.3_A3.2_T2 +esid: sec-line-terminators +description: Insert CARRIAGE RETURN (\u000D) into begin of single line comment +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +//
this text is not included in the single-line comment that precedes it diff --git a/js/src/tests/test262/language/line-terminators/invalid-comment-single-lf.js b/js/src/tests/test262/language/line-terminators/invalid-comment-single-lf.js new file mode 100644 index 0000000000..a684d42eb5 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-comment-single-lf.js @@ -0,0 +1,18 @@ +// |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: Single line comments can not contain LINE FEED (U+000A) inside +es5id: 7.3_A3.1_T3 +description: Insert real LINE FEED into single line comment +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +// CHECK#1 +//single +line comment diff --git a/js/src/tests/test262/language/line-terminators/invalid-comment-single-ls.js b/js/src/tests/test262/language/line-terminators/invalid-comment-single-ls.js new file mode 100644 index 0000000000..766ed198e3 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-comment-single-ls.js @@ -0,0 +1,18 @@ +// |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: | + Single line comments are terminated by the LINE SEPARATOR (U+2028) + character +es5id: 7.3_A3.3_T1 +description: Insert LINE SEPARATOR (\u2028) into single line comment +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +// single line LS>
??? (invalid) diff --git a/js/src/tests/test262/language/line-terminators/invalid-comment-single-ps.js b/js/src/tests/test262/language/line-terminators/invalid-comment-single-ps.js new file mode 100644 index 0000000000..5846a73994 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-comment-single-ps.js @@ -0,0 +1,16 @@ +// |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: Single line comments can not contain PARAGRAPH SEPARATOR (U+2029) inside +es5id: 7.3_A3.4_T1 +description: Insert PARAGRAPH SEPARATOR (\u2029) into single line comment +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +// single line PS>
??? (invalid) diff --git a/js/src/tests/test262/language/line-terminators/invalid-regexp-cr.js b/js/src/tests/test262/language/line-terminators/invalid-regexp-cr.js new file mode 100644 index 0000000000..e70d92b080 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-regexp-cr.js @@ -0,0 +1,18 @@ +// |reftest| error:SyntaxError +// Copyright 2019 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-line-terminators +es5id: 7.3-7 +description: > + 7.3 - ES5 recognizes the character <CR> (\u000D) as terminating + regular expression literals +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +/
/ diff --git a/js/src/tests/test262/language/line-terminators/invalid-regexp-lf.js b/js/src/tests/test262/language/line-terminators/invalid-regexp-lf.js new file mode 100644 index 0000000000..db792c701f --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-regexp-lf.js @@ -0,0 +1,19 @@ +// |reftest| error:SyntaxError +// Copyright 2019 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-line-terminators +es5id: 7.3-7 +description: > + 7.3 - ES5 recognizes the character <LF> (\u000A) as terminating + regular expression literals +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +/ +/ diff --git a/js/src/tests/test262/language/line-terminators/invalid-regexp-ls.js b/js/src/tests/test262/language/line-terminators/invalid-regexp-ls.js new file mode 100644 index 0000000000..b50836ce1f --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-regexp-ls.js @@ -0,0 +1,18 @@ +// |reftest| error:SyntaxError +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-line-terminators +es5id: 7.3-7 +description: > + 7.3 - ES5 recognizes the character <LS> (\u2028) as terminating + regular expression literals +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +/
/ diff --git a/js/src/tests/test262/language/line-terminators/invalid-regexp-ps.js b/js/src/tests/test262/language/line-terminators/invalid-regexp-ps.js new file mode 100644 index 0000000000..870b902c2f --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-regexp-ps.js @@ -0,0 +1,18 @@ +// |reftest| error:SyntaxError +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-line-terminators +es5id: 7.3-8 +description: > + 7.3 - ES5 recognizes the character <PS> (\u2029) as terminating + regular expression literals +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +/
/ diff --git a/js/src/tests/test262/language/line-terminators/invalid-string-cr.js b/js/src/tests/test262/language/line-terminators/invalid-string-cr.js new file mode 100644 index 0000000000..ff869d45dd --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-string-cr.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: CARRIAGE RETURN (U+000D) within strings is not allowed +es5id: 7.3_A2.2_T1 +esid: sec-line-terminators +description: Insert CARRIAGE RETURN (\u000D) into string +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +'
' diff --git a/js/src/tests/test262/language/line-terminators/invalid-string-lf.js b/js/src/tests/test262/language/line-terminators/invalid-string-lf.js new file mode 100644 index 0000000000..f8ef9e43f8 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/invalid-string-lf.js @@ -0,0 +1,18 @@ +// |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: LINE FEED (U+000A) within strings is not allowed +es5id: 7.3_A2.1_T1 +esid: sec-line-terminators +description: Insert LINE FEED (\u000A) into string +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +' +' diff --git a/js/src/tests/test262/language/line-terminators/shell.js b/js/src/tests/test262/language/line-terminators/shell.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/language/line-terminators/shell.js |