tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

throw-from-catch.js (1026B)


      1 // Copyright (C) 2015 the V8 project authors. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 /*---
      4 es6id: 13.6.4.13
      5 description: >
      6    Control flow during body evaluation should honor `throw` statements within
      7    the `catch` block of `try` statements.
      8 features: [generators]
      9 ---*/
     10 
     11 function* values() {
     12  yield 1;
     13  throw new Test262Error('This code is unreachable (following `yield` statement).');
     14 }
     15 var CustomError = function() {};
     16 var iterator = values();
     17 var i = 0;
     18 var error = new CustomError();
     19 
     20 assert.throws(CustomError, function() {
     21  for (var x of iterator) {
     22    try {
     23      throw new Error();
     24    } catch (err) {
     25      i++;
     26      throw error;
     27 
     28      throw new Test262Error('This code is unreachable (following `throw` statement).');
     29    }
     30 
     31    throw new Test262Error('This code is unreachable (following `try` statement).');
     32  }
     33 
     34  throw new Test262Error('This code is unreachable (following `for..in` statement).');
     35 });
     36 
     37 assert.sameValue(i, 1);
     38 
     39 reportCompare(0, 0);