Home | History | Annotate | Download | only in es6
      1 // Copyright 2014 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Flags: --no-harmony-sloppy-let --no-harmony-sloppy-function
      6 // Flags: --no-harmony-sloppy
      7 
      8 function CheckError(source) {
      9   var exception = null;
     10   try {
     11     eval(source);
     12   } catch (e) {
     13     exception = e;
     14   }
     15   assertNotNull(exception);
     16   assertEquals(
     17       "Block-scoped declarations (let, const, function, class) not yet supported outside strict mode",
     18       exception.message);
     19 }
     20 
     21 
     22 function CheckOk(source) {
     23   eval(source);
     24 }
     25 
     26 CheckError("let x = 1;");
     27 CheckError("{ let x = 1; }");
     28 CheckError("function f() { let x = 1; }");
     29 CheckError("for (let x = 1; x < 1; x++) {}");
     30 CheckError("for (let x of []) {}");
     31 CheckError("for (let x in []) {}");
     32 CheckError("class C {}");
     33 CheckError("class C extends Array {}");
     34 CheckError("(class {});");
     35 CheckError("(class extends Array {});");
     36 CheckError("(class C {});");
     37 CheckError("(class C exends Array {});");
     38 
     39 CheckOk("let = 1;");
     40 CheckOk("{ let = 1; }");
     41 CheckOk("function f() { let = 1; }");
     42 CheckOk("for (let = 1; let < 1; let++) {}");
     43