summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/line-terminators
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/test262/language/line-terminators
parentInitial commit. (diff)
downloadfirefox-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')
-rw-r--r--js/src/tests/test262/language/line-terminators/7.3-15.js15
-rw-r--r--js/src/tests/test262/language/line-terminators/7.3-5.js17
-rw-r--r--js/src/tests/test262/language/line-terminators/7.3-6.js17
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A2.1_T2.js20
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A2.2_T2.js20
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A3.2_T1.js17
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A5.4.js20
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A6_T1.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A6_T2.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A6_T3.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A6_T4.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A7_T1.js58
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A7_T2.js58
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A7_T3.js58
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A7_T4.js58
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A7_T5.js58
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A7_T6.js58
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A7_T7.js58
-rw-r--r--js/src/tests/test262/language/line-terminators/S7.3_A7_T8.js58
-rw-r--r--js/src/tests/test262/language/line-terminators/between-tokens-cr.js17
-rw-r--r--js/src/tests/test262/language/line-terminators/between-tokens-lf.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/between-tokens-ls.js15
-rw-r--r--js/src/tests/test262/language/line-terminators/between-tokens-ps.js15
-rw-r--r--js/src/tests/test262/language/line-terminators/browser.js0
-rw-r--r--js/src/tests/test262/language/line-terminators/comment-multi-cr.js19
-rw-r--r--js/src/tests/test262/language/line-terminators/comment-multi-lf.js31
-rw-r--r--js/src/tests/test262/language/line-terminators/comment-multi-ls.js29
-rw-r--r--js/src/tests/test262/language/line-terminators/comment-multi-ps.js29
-rw-r--r--js/src/tests/test262/language/line-terminators/comment-single-cr.js23
-rw-r--r--js/src/tests/test262/language/line-terminators/comment-single-lf.js24
-rw-r--r--js/src/tests/test262/language/line-terminators/comment-single-ls.js23
-rw-r--r--js/src/tests/test262/language/line-terminators/comment-single-ps.js25
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-comment-single-cr.js17
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-comment-single-lf.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-comment-single-ls.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-comment-single-ps.js16
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-regexp-cr.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-regexp-lf.js19
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-regexp-ls.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-regexp-ps.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-string-cr.js17
-rw-r--r--js/src/tests/test262/language/line-terminators/invalid-string-lf.js18
-rw-r--r--js/src/tests/test262/language/line-terminators/shell.js0
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