tor-browser

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

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


      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 
      6 // CoverInitName in arrow parameters.
      7 ({a = 1}, {b = 2}, {c = 3}) => {};
      8 ({a = 1} = {}, {b = 2}, {c = 3}) => {};
      9 ({a = 1} = {}, {b = 2} = {}, {c = 3}) => {};
     10 ({a = 1} = {}, {b = 2} = {}, {c = 3} = {}) => {};
     11 
     12 
     13 // CoverInitName in CoverParenthesizedExpressionAndArrowParameterList,
     14 // but not ArrowParameters.
     15 assertThrowsInstanceOf(() => eval(`
     16    ({a = 1}, {b = 2}, {c = 3});
     17 `), SyntaxError);
     18 assertThrowsInstanceOf(() => eval(`
     19    ({a = 1}, {b = 2}, {c = 3} = {});
     20 `), SyntaxError);
     21 assertThrowsInstanceOf(() => eval(`
     22    ({a = 1}, {b = 2} = {}, {c = 3} = {});
     23 `), SyntaxError);
     24 
     25 
     26 // CoverInitName nested in array destructuring.
     27 [{a = 0}] = [{}];
     28 var [{a = 0}] = [{}];
     29 { let [{a = 0}] = [{}]; }
     30 { const [{a = 0}] = [{}]; }
     31 
     32 for ([{a = 0}] of []);
     33 for (var [{a = 0}] of []);
     34 for (let [{a = 0}] of []);
     35 for (const [{a = 0}] of []);
     36 
     37 function f([{a = 0}]) {}
     38 var h = ([{a = 0}]) => {};
     39 
     40 
     41 // CoverInitName nested in rest pattern.
     42 [...[{a = 0}]] = [{}];
     43 var [...[{a = 0}]] = [{}];
     44 { let [...[{a = 0}]] = [{}]; }
     45 { const [...[{a = 0}]] = [{}]; }
     46 
     47 for ([...[{a = 0}]] of []);
     48 for (var [...[{a = 0}]] of []);
     49 for (let [...[{a = 0}]] of []);
     50 for (const [...[{a = 0}]] of []);
     51 
     52 function f([...[{a = 0}]]) {}
     53 var h = ([...[{a = 0}]]) => {};
     54 
     55 
     56 // CoverInitName nested in object destructuring.
     57 ({p: {a = 0}} = {p: {}});
     58 var {p: {a = 0}} = {p: {}};
     59 { let {p: {a = 0}} = {p: {}}; }
     60 { const {p: {a = 0}} = {p: {}}; }
     61 
     62 for ({p: {a = 0}} of []);
     63 for (var {p: {a = 0}} of []);
     64 for (let {p: {a = 0}} of []);
     65 for (const {p: {a = 0}} of []);
     66 
     67 function f({p: {a = 0}}) {}
     68 var h = ({p: {a = 0}}) => {};
     69 
     70 
     71 if (typeof reportCompare === "function")
     72    reportCompare(0, 0);