aboutsummaryrefslogtreecommitdiffstats
path: root/tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-let.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-let.js')
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/tests/javascript/javascript-let.js79
1 files changed, 79 insertions, 0 deletions
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");