Chromium Code Reviews| Index: test/mjsunit/harmony/block-let-declaration.js |
| diff --git a/test/mjsunit/harmony/block-scoping.js b/test/mjsunit/harmony/block-let-declaration.js |
| similarity index 72% |
| copy from test/mjsunit/harmony/block-scoping.js |
| copy to test/mjsunit/harmony/block-let-declaration.js |
| index f974de82b5ce35b94dc58acb0ed651246014e1f9..50b5617e6435356a626033405680378242fe4dd9 100644 |
| --- a/test/mjsunit/harmony/block-scoping.js |
| +++ b/test/mjsunit/harmony/block-let-declaration.js |
| @@ -25,34 +25,31 @@ |
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| -// Flags: --allow-natives-syntax --harmony-block-scoping |
| -// Test functionality of block scopes. |
| +// Flags: --harmony-block-scoping |
| -// Hoisting of var declarations. |
| -function f1() { |
| - { |
| - var x = 1; |
| - var y; |
| - } |
| - assertEquals(1, x) |
| - assertEquals(undefined, y) |
| +// Test let declarations in various settings. |
| + |
| +// Global |
| +let x; |
| +let y = 2; |
| + |
| +// Block local |
| +{ |
| + let y; |
| + let x = 3; |
| } |
| -f1(); |
| -// Dynamic lookup through block scopes. |
| -function f2(one) { |
| - var x = one + 1; |
| - // TODO(keuchel): introduce let |
| - // let y = one + 2; |
| - if (one == 1) { |
| - // Parameter |
| - assertEquals(1, eval('one')); |
| - // Function local var variable |
| - assertEquals(2, eval('x')); |
| - // Function local let variable |
| - // TODO(keuchel): introduce let |
| - // assertEquals(3, eval('y')); |
| - } |
| +if (true) { |
| + let x; |
| } |
| -f2(1); |
|
Lasse Reichstein
2011/08/16 11:00:46
Try checking the value of x and y here, just for s
Steven
2011/08/16 15:06:08
Done.
|
| +// Unprotected statement |
| +assertThrows("if (true) let x;", SyntaxError); |
| +assertThrows("with ({}) let x;", SyntaxError); |
| +assertThrows("do let x; while (false)", SyntaxError); |
| +assertThrows("while (false) let x;", SyntaxError); |
| + |
|
Lasse Reichstein
2011/08/16 11:00:46
Notic that these code blocks are executed using a
Steven
2011/08/16 15:06:08
It's more like checking the parser.
On 2011/08/16
|
| +assertDoesNotThrow("if (true) var x;"); |
| +assertDoesNotThrow("with ({}) var x;"); |
| +assertDoesNotThrow("do var x; while (false)"); |
| +assertDoesNotThrow("while (false) var x;"); |