loadRelativeToScript('PatternAsserts.js'); // various combinations of identifiers and destructuring patterns: function makePatternCombinations(id, destr) { return [ [ id(1) ], [ id(1), id(2) ], [ id(1), id(2), id(3) ], [ id(1), id(2), id(3), id(4) ], [ id(1), id(2), id(3), id(4), id(5) ], [ destr(1) ], [ destr(1), destr(2) ], [ destr(1), destr(2), destr(3) ], [ destr(1), destr(2), destr(3), destr(4) ], [ destr(1), destr(2), destr(3), destr(4), destr(5) ], [ destr(1), id(2) ], [ destr(1), id(2), id(3) ], [ destr(1), id(2), id(3), id(4) ], [ destr(1), id(2), id(3), id(4), id(5) ], [ destr(1), id(2), id(3), id(4), destr(5) ], [ destr(1), id(2), id(3), destr(4) ], [ destr(1), id(2), id(3), destr(4), id(5) ], [ destr(1), id(2), id(3), destr(4), destr(5) ], [ destr(1), id(2), destr(3) ], [ destr(1), id(2), destr(3), id(4) ], [ destr(1), id(2), destr(3), id(4), id(5) ], [ destr(1), id(2), destr(3), id(4), destr(5) ], [ destr(1), id(2), destr(3), destr(4) ], [ destr(1), id(2), destr(3), destr(4), id(5) ], [ destr(1), id(2), destr(3), destr(4), destr(5) ], [ id(1), destr(2) ], [ id(1), destr(2), id(3) ], [ id(1), destr(2), id(3), id(4) ], [ id(1), destr(2), id(3), id(4), id(5) ], [ id(1), destr(2), id(3), id(4), destr(5) ], [ id(1), destr(2), id(3), destr(4) ], [ id(1), destr(2), id(3), destr(4), id(5) ], [ id(1), destr(2), id(3), destr(4), destr(5) ], [ id(1), destr(2), destr(3) ], [ id(1), destr(2), destr(3), id(4) ], [ id(1), destr(2), destr(3), id(4), id(5) ], [ id(1), destr(2), destr(3), id(4), destr(5) ], [ id(1), destr(2), destr(3), destr(4) ], [ id(1), destr(2), destr(3), destr(4), id(5) ], [ id(1), destr(2), destr(3), destr(4), destr(5) ] ]; } function runtest(main) { try { main(); if (typeof reportCompare === 'function') reportCompare(true, true); } catch (exc) { print(exc.stack); throw exc; } }