tor-browser

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

any-stack.js (1826B)


      1 // |reftest| skip-if(!xulRuntime.shell) -- needs async stack capture
      2 // SKIP test262 export
      3 // File name
      4 
      5 function toMessage(stack) {
      6  // Provide the stack string in the error message for debugging.
      7  return `[stack: ${stack.replace(/\n/g, "\\n")}]`;
      8 }
      9 
     10 // Test when AggregateError isn't created from a Promise Job.
     11 {
     12  let p = Promise.any([]); // line 12
     13 
     14  p.then(v => {
     15    reportCompare(0, 1, "expected error");
     16  }, e => {
     17    assertEq(e.name, "AggregateError");
     18    var {stack} = e;
     19 
     20    assertEq(/^@.+any-stack.js:12/m.test(stack), true, toMessage(stack));
     21  });
     22 }
     23 
     24 // Same as above, but now with surrounding function context.
     25 function testNoJobQueue() {
     26  let p = Promise.any([]); // line 26
     27 
     28  p.then(v => {
     29    reportCompare(0, 1, "expected error");
     30  }, e => {
     31    assertEq(e.name, "AggregateError");
     32    var {stack} = e;
     33 
     34    assertEq(/^testNoJobQueue@.+any-stack.js:26/m.test(stack), true, toMessage(stack));
     35  });
     36 }
     37 testNoJobQueue();
     38 
     39 // Test when AggregateError is created from a Promise Job.
     40 {
     41  let rejected = Promise.reject(0);
     42  let p = Promise.any([rejected]); // line 42
     43 
     44  p.then(v => {
     45    reportCompare(0, 1, "expected error");
     46  }, e => {
     47    assertEq(e.name, "AggregateError");
     48    var {stack} = e;
     49 
     50    assertEq(/^Promise.any\*@.+any-stack.js:42/m.test(stack), true, toMessage(stack));
     51  });
     52 }
     53 
     54 // Same as above, but now with surrounding function context.
     55 function testFromJobQueue() {
     56  let rejected = Promise.reject(0);
     57  let p = Promise.any([rejected]); // line 57
     58 
     59  p.then(v => {
     60    reportCompare(0, 1, "expected error");
     61  }, e => {
     62    assertEq(e.name, "AggregateError");
     63    var {stack} = e;
     64 
     65    assertEq(/^Promise.any\*testFromJobQueue@.+any-stack.js:57/m.test(stack), true, toMessage(stack));
     66  });
     67 }
     68 testFromJobQueue();
     69 
     70 if (typeof reportCompare === "function")
     71  reportCompare(0, 0);