| Index: test/mjsunit/harmony/block-scoping.js
|
| ===================================================================
|
| --- test/mjsunit/harmony/block-scoping.js (revision 9808)
|
| +++ test/mjsunit/harmony/block-scoping.js (working copy)
|
| @@ -44,12 +44,16 @@
|
| function f2(one) {
|
| var x = one + 1;
|
| let y = one + 2;
|
| + const u = one + 4;
|
| {
|
| let z = one + 3;
|
| + const v = one + 5;
|
| assertEquals(1, eval('one'));
|
| assertEquals(2, eval('x'));
|
| assertEquals(3, eval('y'));
|
| assertEquals(4, eval('z'));
|
| + assertEquals(5, eval('u'));
|
| + assertEquals(6, eval('v'));
|
| }
|
| }
|
| f2(1);
|
| @@ -59,12 +63,17 @@
|
| function f3(one) {
|
| var x = one + 1;
|
| let y = one + 2;
|
| + const u = one + 4;
|
| {
|
| let z = one + 3;
|
| + const v = one + 5;
|
| assertEquals(1, one);
|
| assertEquals(2, x);
|
| assertEquals(3, y);
|
| assertEquals(4, z);
|
| + assertEquals(5, u);
|
| + assertEquals(6, v);
|
| +
|
| }
|
| }
|
| f3(1);
|
| @@ -74,13 +83,17 @@
|
| function f4(one) {
|
| var x = one + 1;
|
| let y = one + 2;
|
| + const u = one + 4;
|
| {
|
| let z = one + 3;
|
| + const v = one + 5;
|
| function f() {
|
| assertEquals(1, eval('one'));
|
| assertEquals(2, eval('x'));
|
| assertEquals(3, eval('y'));
|
| assertEquals(4, eval('z'));
|
| + assertEquals(5, eval('u'));
|
| + assertEquals(6, eval('v'));
|
| };
|
| }
|
| }
|
| @@ -91,13 +104,17 @@
|
| function f5(one) {
|
| var x = one + 1;
|
| let y = one + 2;
|
| + const u = one + 4;
|
| {
|
| let z = one + 3;
|
| + const v = one + 5;
|
| function f() {
|
| assertEquals(1, one);
|
| assertEquals(2, x);
|
| assertEquals(3, y);
|
| assertEquals(4, z);
|
| + assertEquals(5, u);
|
| + assertEquals(6, v);
|
| };
|
| }
|
| }
|
| @@ -107,8 +124,10 @@
|
| // Return from block.
|
| function f6() {
|
| let x = 1;
|
| + const u = 3;
|
| {
|
| let y = 2;
|
| + const v = 4;
|
| return x + y;
|
| }
|
| }
|
| @@ -120,14 +139,27 @@
|
| let b = 1;
|
| var c = 1;
|
| var d = 1;
|
| - { // let variables shadowing argument, let and var variables
|
| + const e = 1;
|
| + { // let variables shadowing argument, let, const and var variables
|
| let a = 2;
|
| let b = 2;
|
| let c = 2;
|
| + let e = 2;
|
| assertEquals(2,a);
|
| assertEquals(2,b);
|
| assertEquals(2,c);
|
| + assertEquals(2,e);
|
| }
|
| + { // const variables shadowing argument, let, const and var variables
|
| + const a = 2;
|
| + const b = 2;
|
| + const c = 2;
|
| + const e = 2;
|
| + assertEquals(2,a);
|
| + assertEquals(2,b);
|
| + assertEquals(2,c);
|
| + assertEquals(2,e);
|
| + }
|
| try {
|
| throw 'stuff1';
|
| } catch (a) {
|
| @@ -156,6 +188,12 @@
|
| } catch (c) {
|
| // catch variable shadowing var variable
|
| assertEquals('stuff3',c);
|
| + {
|
| + // const variable shadowing catch variable
|
| + const c = 3;
|
| + assertEquals(3,c);
|
| + }
|
| + assertEquals('stuff3',c);
|
| try {
|
| throw 'stuff4';
|
| } catch(c) {
|
| @@ -178,14 +216,16 @@
|
| c = 2;
|
| }
|
| assertEquals(1,c);
|
| - (function(a,b,c) {
|
| - // arguments shadowing argument, let and var variable
|
| + (function(a,b,c,e) {
|
| + // arguments shadowing argument, let, const and var variable
|
| a = 2;
|
| b = 2;
|
| c = 2;
|
| + e = 2;
|
| assertEquals(2,a);
|
| assertEquals(2,b);
|
| assertEquals(2,c);
|
| + assertEquals(2,e);
|
| // var variable shadowing var variable
|
| var d = 2;
|
| })(1,1);
|
| @@ -193,24 +233,30 @@
|
| assertEquals(1,b);
|
| assertEquals(1,c);
|
| assertEquals(1,d);
|
| + assertEquals(1,e);
|
| }
|
| f7(1);
|
|
|
|
|
| -// Ensure let variables are block local and var variables function local.
|
| +// Ensure let and const variables are block local
|
| +// and var variables function local.
|
| function f8() {
|
| var let_accessors = [];
|
| var var_accessors = [];
|
| + var const_accessors = [];
|
| for (var i = 0; i < 10; i++) {
|
| let x = i;
|
| var y = i;
|
| + const z = i;
|
| let_accessors[i] = function() { return x; }
|
| var_accessors[i] = function() { return y; }
|
| + const_accessors[i] = function() { return z; }
|
| }
|
| for (var j = 0; j < 10; j++) {
|
| y = j + 10;
|
| assertEquals(j, let_accessors[j]());
|
| assertEquals(y, var_accessors[j]());
|
| + assertEquals(j, const_accessors[j]());
|
| }
|
| }
|
| f8();
|
|
|