| Index: test/mjsunit/es6/block-scoping.js
|
| diff --git a/test/mjsunit/es6/block-scoping.js b/test/mjsunit/es6/block-scoping.js
|
| index 5f481b8bf2ebb9f87d8bc78d0972aa3097a35937..719f5231ce57cfab006be917aab9b647336f3db6 100644
|
| --- a/test/mjsunit/es6/block-scoping.js
|
| +++ b/test/mjsunit/es6/block-scoping.js
|
| @@ -49,15 +49,19 @@ function f2(one) {
|
| var x = one + 1;
|
| let y = one + 2;
|
| const u = one + 4;
|
| + class a { static foo() { return one + 6; } }
|
| {
|
| let z = one + 3;
|
| const v = one + 5;
|
| + class b { static foo() { return one + 7; } }
|
| assertEquals(1, eval('one'));
|
| assertEquals(2, eval('x'));
|
| assertEquals(3, eval('y'));
|
| assertEquals(4, eval('z'));
|
| assertEquals(5, eval('u'));
|
| assertEquals(6, eval('v'));
|
| + assertEquals(7, eval('a.foo()'));
|
| + assertEquals(8, eval('b.foo()'));
|
| }
|
| }
|
|
|
| @@ -68,15 +72,19 @@ function f3(one) {
|
| var x = one + 1;
|
| let y = one + 2;
|
| const u = one + 4;
|
| + class a { static foo() { return one + 6; } }
|
| {
|
| let z = one + 3;
|
| const v = one + 5;
|
| + class b { static foo() { return one + 7; } }
|
| assertEquals(1, one);
|
| assertEquals(2, x);
|
| assertEquals(3, y);
|
| assertEquals(4, z);
|
| assertEquals(5, u);
|
| assertEquals(6, v);
|
| + assertEquals(7, a.foo());
|
| + assertEquals(8, b.foo());
|
| }
|
| }
|
| for (var j = 0; j < 5; ++j) f3(1);
|
| @@ -91,9 +99,11 @@ function f4(one) {
|
| var x = one + 1;
|
| let y = one + 2;
|
| const u = one + 4;
|
| + class a { static foo() { return one + 6; } }
|
| {
|
| let z = one + 3;
|
| const v = one + 5;
|
| + class b { static foo() { return one + 7; } }
|
| function f() {
|
| assertEquals(1, eval('one'));
|
| assertEquals(2, eval('x'));
|
| @@ -101,6 +111,8 @@ function f4(one) {
|
| assertEquals(4, eval('z'));
|
| assertEquals(5, eval('u'));
|
| assertEquals(6, eval('v'));
|
| + assertEquals(7, eval('a.foo()'));
|
| + assertEquals(8, eval('b.foo()'));
|
| }
|
| f();
|
| }
|
| @@ -113,9 +125,11 @@ function f5(one) {
|
| var x = one + 1;
|
| let y = one + 2;
|
| const u = one + 4;
|
| + class a { static foo() { return one + 6; } }
|
| {
|
| let z = one + 3;
|
| const v = one + 5;
|
| + class b { static foo() { return one + 7; } }
|
| function f() {
|
| assertEquals(1, one);
|
| assertEquals(2, x);
|
| @@ -123,6 +137,8 @@ function f5(one) {
|
| assertEquals(4, z);
|
| assertEquals(5, u);
|
| assertEquals(6, v);
|
| + assertEquals(7, a.foo());
|
| + assertEquals(8, b.foo());
|
| }
|
| f();
|
| }
|
| @@ -149,25 +165,43 @@ function f7(a) {
|
| var c = 1;
|
| var d = 1;
|
| const e = 1;
|
| - { // let variables shadowing argument, let, const and var variables
|
| + class f { static foo() { return 1; } }
|
| + { // let variables shadowing argument, let, const, class and var variables
|
| let a = 2;
|
| let b = 2;
|
| let c = 2;
|
| let e = 2;
|
| + let f = 2;
|
| assertEquals(2,a);
|
| assertEquals(2,b);
|
| assertEquals(2,c);
|
| assertEquals(2,e);
|
| + assertEquals(2,f);
|
| }
|
| { // const variables shadowing argument, let, const and var variables
|
| const a = 2;
|
| const b = 2;
|
| const c = 2;
|
| const e = 2;
|
| + const f = 2;
|
| assertEquals(2,a);
|
| assertEquals(2,b);
|
| assertEquals(2,c);
|
| assertEquals(2,e);
|
| + assertEquals(2,f);
|
| + }
|
| + { // class variables shadowing argument, let, const and var variables
|
| + class a { static foo() { return 2; } }
|
| + class b { static foo() { return 2; } }
|
| + class c { static foo() { return 2; } }
|
| + class d { static foo() { return 2; } }
|
| + class e { static foo() { return 2; } }
|
| + class f { static foo() { return 2; } }
|
| + assertEquals(2,a.foo());
|
| + assertEquals(2,b.foo());
|
| + assertEquals(2,c.foo());
|
| + assertEquals(2,e.foo());
|
| + assertEquals(2,f.foo());
|
| }
|
| try {
|
| throw 'stuff1';
|
| @@ -225,16 +259,18 @@ function f7(a) {
|
| c = 2;
|
| }
|
| assertEquals(1,c);
|
| - (function(a,b,c,e) {
|
| - // arguments shadowing argument, let, const and var variable
|
| + (function(a,b,c,e,f) {
|
| + // arguments shadowing argument, let, const, class and var variable
|
| a = 2;
|
| b = 2;
|
| c = 2;
|
| e = 2;
|
| + f = 2;
|
| assertEquals(2,a);
|
| assertEquals(2,b);
|
| assertEquals(2,c);
|
| assertEquals(2,e);
|
| + assertEquals(2,f);
|
| // var variable shadowing var variable
|
| var d = 2;
|
| })(1,1);
|
| @@ -243,6 +279,7 @@ function f7(a) {
|
| assertEquals(1,c);
|
| assertEquals(1,d);
|
| assertEquals(1,e);
|
| + assertEquals(1,f.foo());
|
| }
|
| f7(1);
|
|
|
| @@ -253,19 +290,23 @@ function f8() {
|
| var let_accessors = [];
|
| var var_accessors = [];
|
| var const_accessors = [];
|
| + var class_accessors = [];
|
| for (var i = 0; i < 10; i++) {
|
| let x = i;
|
| var y = i;
|
| const z = i;
|
| + class a { static foo() { return x; } }
|
| let_accessors[i] = function() { return x; }
|
| var_accessors[i] = function() { return y; }
|
| const_accessors[i] = function() { return z; }
|
| + class_accessors[i] = function() { return a; }
|
| }
|
| 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]());
|
| + assertEquals(j, class_accessors[j]().foo());
|
| }
|
| }
|
| f8();
|
|
|