docs: function(exception) {                                                               // 520
        if (this.done) {                                                                                     // 521
          throw exception;                                                                                   // 522
        }                                                                                                    // 523
                                                                                                             // 524
        var context = this;                                                                                  // 525
        function handle(loc, caught) {                                                                       // 526
          record.type = "throw";                                                                             // 527
          record.arg = exception;                                                                            // 528
          context.next = loc;                                                                                // 529
          return !!caught;                                                                                   // 530
        }                                                                                                    // 531
                                                                                                             // 532
        for (var i = this.tryEntries.length - 1; i >= 0; --i) {                                              // 533
          var entry = this.tryEntries[i];                                                                    // 534
          var record = entry.completion;                                                                     // 535
                                                                                                             // 536
          if (entry.tryLoc === "root") {                                                                     // 537
            // Exception thrown outside of any try block that could handle                                   // 538
            // it, so set the completion value of the entire function to                                     // 539
            // throw the exception.                                                                          // 540
            return handle("end");                                                                            // 541
          }                                                                                                  // 542
                                                                                                             // 543
          if (entry.tryLoc <= this.prev) {                                                                   // 544
            var hasCatch = hasOwn.call(entry, "catchLoc");                                                   // 545
            var hasFinally = hasOwn.call(entry, "finallyLoc");                                               // 546
                                                                                                             // 547
            if (hasCatch && hasFinally) {                                                                    // 548
              if (this.prev < entry.catchLoc) {                                                              // 549
                return handle(entry.catchLoc, true);                                                         // 550
              } else if (this.prev < entry.finallyLoc) {                                                     // 551
                return handle(entry.finallyLoc);                                                             // 552
              }                                                                                              // 553
                                                                                                             // 554
            } else if (hasCatch) {                                                                           // 555
              if (this.prev < entry.catchLoc) {                                                              // 556
                return handle(entry.catchLoc, true);                                                         // 557
              }                                                                                              // 558
                                                                                                             // 559
            } else if (hasFinally) {                                                                         // 560
              if (this.prev < entry.finallyLoc) {                                                            // 561
                return handle(entry.finallyLoc);                                                             // 562
              }                                                                                              // 563
                                                                                                             // 564
            } else {                                                                                         // 565
              throw new Error("try statement without catch or finally");                                     // 566
            }                                                                                                // 567
          }                                                                                                  // 568
        }                                                                                                    // 569
      }