tor-browser

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

cover-init-name-syntax.js (2174B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 // CoverInitName in async arrow parameters.
      6 async ({a = 1}) => {};
      7 async ({a = 1}, {b = 2}) => {};
      8 async ({a = 1}, {b = 2}, {c = 3}) => {};
      9 async ({a = 1} = {}, {b = 2}, {c = 3}) => {};
     10 async ({a = 1} = {}, {b = 2} = {}, {c = 3}) => {};
     11 async ({a = 1} = {}, {b = 2} = {}, {c = 3} = {}) => {};
     12 
     13 // CoverInitName nested in array destructuring.
     14 async ([{a = 0}]) => {};
     15 
     16 // CoverInitName nested in rest pattern.
     17 async ([...[{a = 0}]]) => {};
     18 
     19 // CoverInitName nested in object destructuring.
     20 async ({p: {a = 0}}) => {};
     21 
     22 // CoverInitName in CoverCallExpressionAndAsyncArrowHead, but not AsyncArrowHead.
     23 assertThrowsInstanceOf(() => eval(`
     24    NotAsync({a = 1});
     25 `), SyntaxError);
     26 assertThrowsInstanceOf(() => eval(`
     27    NotAsync({a = 1}, {b = 2}, {c = 3});
     28 `), SyntaxError);
     29 assertThrowsInstanceOf(() => eval(`
     30    NotAsync({a = 1}, {b = 2}, {c = 3} = {});
     31 `), SyntaxError);
     32 assertThrowsInstanceOf(() => eval(`
     33    NotAsync({a = 1}, {b = 2} = {}, {c = 3} = {});
     34 `), SyntaxError);
     35 
     36 // Starts with "async", but not called from AssignmentExpression.
     37 assertThrowsInstanceOf(() => eval(`
     38    typeof async({a = 1});
     39 `), SyntaxError);
     40 assertThrowsInstanceOf(() => eval(`
     41    typeof async({a = 1}, {b = 2}, {c = 3});
     42 `), SyntaxError);
     43 assertThrowsInstanceOf(() => eval(`
     44    typeof async({a = 1}, {b = 2}, {c = 3} = {});
     45 `), SyntaxError);
     46 assertThrowsInstanceOf(() => eval(`
     47    typeof async({a = 1}, {b = 2} = {}, {c = 3} = {});
     48 `), SyntaxError);
     49 
     50 // CoverInitName in CoverCallExpressionAndAsyncArrowHead, but not AsyncArrowHead.
     51 assertThrowsInstanceOf(() => eval(`
     52    obj.async({a = 1});
     53 `), SyntaxError);
     54 assertThrowsInstanceOf(() => eval(`
     55    obj.async({a = 1}, {b = 2}, {c = 3});
     56 `), SyntaxError);
     57 assertThrowsInstanceOf(() => eval(`
     58    obj.async({a = 1}, {b = 2}, {c = 3} = {});
     59 `), SyntaxError);
     60 assertThrowsInstanceOf(() => eval(`
     61    obj.async({a = 1}, {b = 2} = {}, {c = 3} = {});
     62 `), SyntaxError);
     63 
     64 if (typeof reportCompare === "function")
     65    reportCompare(0, 0);