tor-browser

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

cptn-finally-skip-catch.js (1504B)


      1 // Copyright (C) 2016 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.15.8
      5 description: >
      6    Completion value from `finally` clause of a try..catch..finally statement
      7    (when `catch` block is not executed)
      8 info: |
      9    TryStatement : try Block Catch Finally
     10 
     11    1. Let B be the result of evaluating Block.
     12    2. If B.[[type]] is throw, then
     13       [...]
     14    3. Else B.[[type]] is not throw, let C be B.
     15    4. Let F be the result of evaluating Finally.
     16    5. If F.[[type]] is normal, let F be C.
     17    6. If F.[[type]] is return, or F.[[type]] is throw, return Completion(F).
     18    7. If F.[[value]] is not empty, return NormalCompletion(F.[[value]]).
     19    8. Return Completion{[[type]]: F.[[type]], [[value]]: undefined,
     20       [[target]]: F.[[target]]}.
     21 ---*/
     22 
     23 assert.sameValue(eval('1; try { } catch (err) { } finally { }'), undefined);
     24 assert.sameValue(eval('2; try { } catch (err) { 3; } finally { }'), undefined);
     25 assert.sameValue(eval('4; try { } catch (err) { } finally { 5; }'), undefined);
     26 assert.sameValue(eval('6; try { } catch (err) { 7; } finally { 8; }'), undefined);
     27 assert.sameValue(eval('9; try { 10; } catch (err) { } finally { }'), 10);
     28 assert.sameValue(eval('11; try { 12; } catch (err) { 13; } finally { }'), 12);
     29 assert.sameValue(eval('14; try { 15; } catch (err) { } finally { 16; }'), 15);
     30 assert.sameValue(eval('17; try { 18; } catch (err) { 19; } finally { 20; }'), 18);
     31 
     32 reportCompare(0, 0);