aboutsummaryrefslogtreecommitdiffstats
path: root/tools/node_modules/expresso/deps/jscoverage/tests/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/expresso/deps/jscoverage/tests/javascript')
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-array-comprehension.js14
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-assign.js14
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-colon.js7
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-comma.js1
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-cr.js1
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-crlf.js4
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-debugger.js6
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-dec.js2
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-delete.js1
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-destructuring.js42
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-do.js10
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-dot.js8
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-empty.js0
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-for.js22
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-foreach.js8
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-function.js38
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-generator-expression.js18
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-generator.js11
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-getter-setter.js19
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-hook.js2
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-if.js30
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-in.js4
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-inc.js2
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-iso-8859-1.js2
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-lambda.js3
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-let.js79
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-lf.js4
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-new.js4
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-number.js19
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-object.js2
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-op.js55
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-primary.js4
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rb.js5
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rc.js7
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rp.js1
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-special-characters.js11
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-string.js11
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-switch.js21
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-throw.js6
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-try.js32
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-unaryop.js6
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-var.js2
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-while.js35
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-with.js9
44 files changed, 582 insertions, 0 deletions
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-array-comprehension.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-array-comprehension.js
new file mode 100644
index 0000000..2d9b048
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-array-comprehension.js
@@ -0,0 +1,14 @@
+// https://developer.mozilla.org/en/New_in_JavaScript_1.7
+
+function range(begin, end) {
+ for (let i = begin; i < end; ++i) {
+ yield i;
+ }
+}
+var ten_squares = [i * i for each (i in range(0, 10))];
+var evens = [i for each (i in range(0, 21)) if (i % 2 == 0)];
+
+// test optimization
+var optimized = [i for each (i in x) if (0)];
+
+[i for each (a in x) for each (b in y)]
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-assign.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-assign.js
new file mode 100644
index 0000000..d17bdd1
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-assign.js
@@ -0,0 +1,14 @@
+var x = 1;
+var y = 1;
+x = y;
+x += y;
+x -= y;
+x *= y;
+x %= y;
+x <<= y;
+x >>= y;
+x >>>= y;
+x &= y;
+x |= y;
+x ^= y;
+x /= y;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-colon.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-colon.js
new file mode 100644
index 0000000..69bade1
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-colon.js
@@ -0,0 +1,7 @@
+x:
+ y = 0;
+
+y: {
+ let y = 1;
+ print(y);
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-comma.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-comma.js
new file mode 100644
index 0000000..15c162c
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-comma.js
@@ -0,0 +1 @@
+x = y, y = x;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-cr.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-cr.js
new file mode 100644
index 0000000..fad02c7
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-cr.js
@@ -0,0 +1 @@
+/* This file has CR line endings. */ var x = 1; \ No newline at end of file
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-crlf.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-crlf.js
new file mode 100644
index 0000000..53dcd0e
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-crlf.js
@@ -0,0 +1,4 @@
+/*
+This file has CRLF line endings.
+*/
+var x = 1;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-debugger.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-debugger.js
new file mode 100644
index 0000000..dc33421
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-debugger.js
@@ -0,0 +1,6 @@
+try {
+ f();
+}
+catch (e) {
+ debugger;
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-dec.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-dec.js
new file mode 100644
index 0000000..46d5bc3
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-dec.js
@@ -0,0 +1,2 @@
+x--;
+--x;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-delete.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-delete.js
new file mode 100644
index 0000000..ae9a3d0
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-delete.js
@@ -0,0 +1 @@
+delete x;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-destructuring.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-destructuring.js
new file mode 100644
index 0000000..c8cf4c9
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-destructuring.js
@@ -0,0 +1,42 @@
+// https://developer.mozilla.org/en/New_in_JavaScript_1.7
+
+[a, b] = [b, a];
+
+function f() {
+ return [1, 2];
+}
+[a, b] = f();
+
+for (let [name, value] in Iterator(obj)) {
+ print(name);
+ print(value);
+}
+
+for each (let {name: n, family: { father: f } } in people) {
+ print(n);
+ print(f);
+}
+
+var [a, , b] = f();
+[,,,] = f();
+
+function g() {
+ var parsedURL = /^(\w+)\:\/\/([^\/]+)\/(.*)$/.exec(url);
+ if (!parsedURL)
+ return null;
+ var [, protocol, fullhost, fullpath] = parsedURL;
+}
+
+function h(a, [b, c], {foo: d, 'bar': e}) {
+ f();
+ g();
+}
+
+x = function([a, b]) a + b;
+
+({x: x0, y: y0}) = point;
+var {x: x0, y: y0} = point;
+let ({x: x0, y: y0} = point) {
+ print(x0);
+ print(y0);
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-do.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-do.js
new file mode 100644
index 0000000..e6bbee9
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-do.js
@@ -0,0 +1,10 @@
+var x;
+
+do {
+ x = false;
+}
+while (x);
+
+do
+ x = false;
+while (x);
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-dot.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-dot.js
new file mode 100644
index 0000000..0b35cdc
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-dot.js
@@ -0,0 +1,8 @@
+x.y = y.x;
+x["y"] = y["x"];
+x[y] = y[x];
+x['2y'] = y['var'];
+x[''] = y[""];
+
+print(123.0.toString());
+({}.toString());
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-empty.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-empty.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-empty.js
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-for.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-for.js
new file mode 100644
index 0000000..166b586
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-for.js
@@ -0,0 +1,22 @@
+for (i in x) {
+ x();
+}
+
+for (var i in x) {
+ x();
+}
+
+for (i = 0; i < x; i++) {
+ x();
+}
+
+for (var j = 0; j < x; j++) {
+ x();
+}
+
+for (i in x)
+ x();
+
+for (i.value in x) {
+ x();
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-foreach.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-foreach.js
new file mode 100644
index 0000000..52cb266
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-foreach.js
@@ -0,0 +1,8 @@
+/*
+https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Object_Manipulation_Statements
+https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for_each...in
+*/
+
+for each (var item in obj) {
+ sum += item;
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-function.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-function.js
new file mode 100644
index 0000000..94fc8bd
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-function.js
@@ -0,0 +1,38 @@
+function x() {}
+
+function x() {
+ ;
+}
+
+function x() {
+ x();
+ return 'x';
+}
+
+function x(a) {
+ x();
+}
+
+function x(a, b) {
+ x();
+}
+
+x = function() {
+ x();
+};
+
+(function () {
+ print('x');
+})();
+
+(function (a) {
+ print('x');
+})(1);
+
+(function (a, b) {
+ print('x');
+})(1, 2);
+
+(function () {
+ print('x');
+}).call(window);
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-generator-expression.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-generator-expression.js
new file mode 100644
index 0000000..cafec77
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-generator-expression.js
@@ -0,0 +1,18 @@
+// https://developer.mozilla.org/en/New_in_JavaScript_1.8
+
+let it = (i + 3 for (i in someObj));
+try {
+ while (true) {
+ document.write(it.next() + "<br>\n");
+ }
+} catch (err if err instanceof StopIteration) {
+ document.write("End of record.<br>\n");
+}
+
+function handleResults( results ) {
+ for ( let i in results )
+ ;
+}
+handleResults( i for ( i in obj ) if ( i > 3 ) );
+
+it = (1 for(a in x) for(b in y));
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-generator.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-generator.js
new file mode 100644
index 0000000..6c1f32a
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-generator.js
@@ -0,0 +1,11 @@
+// https://developer.mozilla.org/en/New_in_JavaScript_1.7
+
+function fib() {
+ var i = 0, j = 1;
+ while (true) {
+ yield i;
+ var t = i;
+ i = j;
+ j += t;
+ }
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-getter-setter.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-getter-setter.js
new file mode 100644
index 0000000..31fca86
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-getter-setter.js
@@ -0,0 +1,19 @@
+var o = {
+ _x: 123,
+ get x() {
+ return this._x;
+ },
+ set x(value) {
+ this._x = value;
+ }
+};
+
+o = {
+ _x: 123,
+ get x get_x() {
+ return this._x;
+ },
+ set x set_x(value) {
+ this._x = value;
+ }
+};
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-hook.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-hook.js
new file mode 100644
index 0000000..0e690f8
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-hook.js
@@ -0,0 +1,2 @@
+var x = 1;
+var y = x === 1? "x": "y";
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-if.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-if.js
new file mode 100644
index 0000000..43d489e
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-if.js
@@ -0,0 +1,30 @@
+var x = 0;
+
+if (x)
+ x = 0;
+
+if (x) {
+ x = 0;
+}
+
+if (x)
+ x = 0;
+else
+ x = 0;
+
+if (x) {
+ x = 0;
+}
+else {
+ x = 0;
+}
+
+if (x) {
+ x = 0;
+}
+else if (x) {
+ x = 0;
+}
+else {
+ x = 0;
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-in.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-in.js
new file mode 100644
index 0000000..75ba66e
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-in.js
@@ -0,0 +1,4 @@
+var x = {};
+if ('a' in x) {
+ x = null;
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-inc.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-inc.js
new file mode 100644
index 0000000..065c7bf
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-inc.js
@@ -0,0 +1,2 @@
+x++;
+++x;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-iso-8859-1.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-iso-8859-1.js
new file mode 100644
index 0000000..2658cee
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-iso-8859-1.js
@@ -0,0 +1,2 @@
+var s = 'eèéê';
+var r = /eèéê/;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-lambda.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-lambda.js
new file mode 100644
index 0000000..0e5062f
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-lambda.js
@@ -0,0 +1,3 @@
+// https://developer.mozilla.org/en/New_in_JavaScript_1.8
+
+var square = function(x) x * x;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-let.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-let.js
new file mode 100644
index 0000000..7bb777b
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-let.js
@@ -0,0 +1,79 @@
+// https://developer.mozilla.org/en/New_in_JavaScript_1.7
+
+// let statement
+
+let (x = x+10, y = 12) {
+ print(x+y + "\n");
+}
+
+// let expressions
+
+print( let(x = x + 10, y = 12) x+y + "<br>\n");
+
+// let definitions
+
+if (x > y) {
+ let gamma = 12.7 + y;
+ i = gamma * x;
+}
+
+var list = document.getElementById("list");
+
+for (var i = 1; i <= 5; i++) {
+ var item = document.createElement("LI");
+ item.appendChild(document.createTextNode("Item " + i));
+
+ let j = i;
+ item.onclick = function (ev) {
+ alert("Item " + j + " is clicked.");
+ };
+ list.appendChild(item);
+}
+
+function varTest() {
+ var x = 31;
+ if (true) {
+ var x = 71; // same variable!
+ alert(x); // 71
+ }
+ alert(x); // 71
+}
+
+function letTest() {
+ let x = 31;
+ if (true) {
+ let x = 71; // different variable
+ alert(x); // 71
+ }
+ alert(x); // 31
+}
+
+function letTests() {
+ let x = 10;
+
+ // let-statement
+ let (x = x + 20) {
+ alert(x); // 30
+ }
+
+ // let-expression
+ alert(let (x = x + 20) x); // 30
+
+ // let-definition
+ {
+ let x = x + 20; // x here evaluates to undefined
+ alert(x); // undefined + 20 ==> NaN
+ }
+}
+
+var x = 'global';
+let x = 42;
+document.write(this.x + "<br>\n");
+
+// let-scoped variables in for loops
+var i=0;
+for ( let i=i ; i < 10 ; i++ )
+ document.write(i + "<br>\n");
+
+for ( let [name,value] in obj )
+ document.write("Name: " + name + ", Value: " + value + "<br>\n");
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-lf.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-lf.js
new file mode 100644
index 0000000..2741068
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-lf.js
@@ -0,0 +1,4 @@
+/*
+This file has LF line endings.
+*/
+var x = 1;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-new.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-new.js
new file mode 100644
index 0000000..6801585
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-new.js
@@ -0,0 +1,4 @@
+function X() {}
+x = new X();
+x = new X(1);
+x = new X(1, 2);
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-number.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-number.js
new file mode 100644
index 0000000..95603d7
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-number.js
@@ -0,0 +1,19 @@
+x = 1;
+y = 2;
+z = 10.5;
+
+a = 1 / 0;
+a = -1 / 0;
+
+a = 0;
+a = -0;
+
+a = 0 / 0;
+a = 0 / -0;
+a = 0 / (-0);
+a = -0 / 0;
+a = (-0) / 0;
+a = -0 / -0;
+a = -0 / (-0);
+a = (-0) / -0;
+a = (-0) / (-0);
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-object.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-object.js
new file mode 100644
index 0000000..83ce7be
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-object.js
@@ -0,0 +1,2 @@
+x = /x\(\)\\\//i;
+y = /\u0001\u002f/gm;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-op.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-op.js
new file mode 100644
index 0000000..9c6e8bb
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-op.js
@@ -0,0 +1,55 @@
+var a = 1, b = 1, c = 1, d = 1;
+
+/* TOK_OR */
+x = a || b || c;
+x = a || b || c || d;
+
+/* TOK_AND */
+x = a && b && c;
+x = a && b && c && d;
+
+x = a && b || c;
+
+x = a || b && c;
+
+// TOK_BITOR
+x = a | b | c;
+x = a | b | c | d;
+
+// TOK_BITXOR
+x = a ^ b ^ c;
+x = a ^ b ^ c ^ d;
+
+// TOK_BITAND
+x = a & b & c;
+x = a & b & c & d;
+
+// TOK_EQUOP
+x = a == b;
+x = a != b;
+x = a === b;
+x = a !== b;
+
+// TOK_RELOP
+x = a < b;
+x = a <= b;
+x = a > b;
+x = a >= b;
+
+// TOK_SHOP
+x = a << b;
+x = a >> b;
+x = a >>> b;
+
+/* TOK_PLUS, TOK_MINUS */
+x = a + b;
+x = a + b + c;
+x = a + b + c + d;
+x = a - b;
+
+// TOK_STAR, TOK_DIVOP
+x = a * b;
+x = a * b * c;
+x = a * b * c * d;
+x = a / b;
+x = a % b;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-primary.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-primary.js
new file mode 100644
index 0000000..9a7bc4e
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-primary.js
@@ -0,0 +1,4 @@
+x = true;
+x = false;
+x = null;
+x = this;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rb.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rb.js
new file mode 100644
index 0000000..57e897c
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rb.js
@@ -0,0 +1,5 @@
+x = [];
+x = [x];
+x = [x, y];
+x = [x, y,];
+x = [x,, y];
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rc.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rc.js
new file mode 100644
index 0000000..f654a9a
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rc.js
@@ -0,0 +1,7 @@
+x = {
+ x: y
+};
+x = {
+ x: y,
+ y: x
+};
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rp.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rp.js
new file mode 100644
index 0000000..2e17573
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-rp.js
@@ -0,0 +1 @@
+x = a + (b - c);
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-special-characters.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-special-characters.js
new file mode 100644
index 0000000..dc8ec36
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-special-characters.js
@@ -0,0 +1,11 @@
+function f() {
+ return '\'';
+}
+
+function g() {
+ return "\"";
+}
+
+function h() {
+ return '\\';
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-string.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-string.js
new file mode 100644
index 0000000..463824a
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-string.js
@@ -0,0 +1,11 @@
+x = "";
+x = '';
+x = "x";
+x = 'x';
+x = "\"";
+x = '\'';
+x = "\b\t\n\v\f\r\"\'\\";
+x = new RegExp('x\\(\\)\\\\\\/');
+
+x = 'foo\
+bar';
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-switch.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-switch.js
new file mode 100644
index 0000000..bb6e01e
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-switch.js
@@ -0,0 +1,21 @@
+switch (x) {
+case x:
+ x = 0;
+ break;
+case y:
+ x = 0;
+ y = 0;
+ break;
+default:
+ x = 0;
+ break;
+}
+
+switch (x) {
+case 1:
+ let y = 1;
+ f(y);
+ break;
+case 2:
+ break;
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-throw.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-throw.js
new file mode 100644
index 0000000..1fc73c4
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-throw.js
@@ -0,0 +1,6 @@
+try {
+ throw "x";
+}
+catch (e) {
+ ;
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-try.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-try.js
new file mode 100644
index 0000000..47a5de4
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-try.js
@@ -0,0 +1,32 @@
+function f() {}
+
+try {
+ f();
+}
+catch (e) {
+ f();
+}
+
+try {
+ f();
+}
+catch (e if e instanceof E) {
+ f();
+}
+
+try {
+ f();
+}
+finally {
+ f();
+}
+
+try {
+ f();
+}
+catch (e) {
+ f();
+}
+finally {
+ f();
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-unaryop.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-unaryop.js
new file mode 100644
index 0000000..0173913
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-unaryop.js
@@ -0,0 +1,6 @@
+x = -x;
+x = +x;
+x = !x;
+x = ~x;
+x = typeof x;
+x = void x;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-var.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-var.js
new file mode 100644
index 0000000..4902a44
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-var.js
@@ -0,0 +1,2 @@
+var x;
+var y = x, z = x;
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-while.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-while.js
new file mode 100644
index 0000000..f1ec6b5
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-while.js
@@ -0,0 +1,35 @@
+while (x) {
+ x();
+}
+
+while (x) {
+ ;
+}
+
+while (x)
+ x();
+
+while (x)
+ ;
+
+while (x) {
+ if (x) {
+ continue;
+ }
+}
+
+label:
+while (x) {
+ if (x) {
+ continue label;
+ }
+}
+
+label2: {
+ f();
+ while (x) {
+ if (x) {
+ break label2;
+ }
+ }
+}
diff --git a/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-with.js b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-with.js
new file mode 100644
index 0000000..58fd1ac
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-with.js
@@ -0,0 +1,9 @@
+function f() {}
+var x = {};
+
+with (x) {
+ f();
+}
+
+with (x)
+ f();