{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "root",
            "range": [
              9,
              13
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 13
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "root",
            "range": [
              9,
              13
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 13
              }
            }
          },
          "range": [
            9,
            13
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 9
            },
            "end": {
              "line": 1,
              "column": 13
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/root",
        "raw": "'../util/root'",
        "range": [
          21,
          35
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 21
          },
          "end": {
            "line": 1,
            "column": 35
          }
        }
      },
      "range": [
        0,
        36
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 36
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "Action",
            "range": [
              46,
              52
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 15
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "Action",
            "range": [
              46,
              52
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 15
              }
            }
          },
          "range": [
            46,
            52
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 9
            },
            "end": {
              "line": 2,
              "column": 15
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "./Action",
        "raw": "'./Action'",
        "range": [
          60,
          70
        ],
        "loc": {
          "start": {
            "line": 2,
            "column": 23
          },
          "end": {
            "line": 2,
            "column": 33
          }
        }
      },
      "range": [
        37,
        71
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 34
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            72,
            163
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 0
            },
            "end": {
              "line": 7,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "VariableDeclaration",
        "declarations": [
          {
            "type": "VariableDeclarator",
            "id": {
              "type": "Identifier",
              "name": "AsyncAction",
              "range": [
                175,
                186
              ],
              "loc": {
                "start": {
                  "line": 8,
                  "column": 11
                },
                "end": {
                  "line": 8,
                  "column": 22
                }
              }
            },
            "init": {
              "type": "CallExpression",
              "callee": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "_super",
                    "range": [
                      200,
                      206
                    ],
                    "loc": {
                      "start": {
                        "line": 8,
                        "column": 36
                      },
                      "end": {
                        "line": 8,
                        "column": 42
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "Identifier",
                          "name": "__extends",
                          "range": [
                            214,
                            223
                          ],
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 4
                            },
                            "end": {
                              "line": 9,
                              "column": 13
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "AsyncAction",
                            "range": [
                              224,
                              235
                            ],
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 14
                              },
                              "end": {
                                "line": 9,
                                "column": 25
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "_super",
                            "range": [
                              237,
                              243
                            ],
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 27
                              },
                              "end": {
                                "line": 9,
                                "column": 33
                              }
                            }
                          }
                        ],
                        "range": [
                          214,
                          244
                        ],
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 4
                          },
                          "end": {
                            "line": 9,
                            "column": 34
                          }
                        }
                      },
                      "range": [
                        214,
                        245
                      ],
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 4
                        },
                        "end": {
                          "line": 9,
                          "column": 35
                        }
                      }
                    },
                    {
                      "type": "FunctionDeclaration",
                      "id": {
                        "type": "Identifier",
                        "name": "AsyncAction",
                        "range": [
                          259,
                          270
                        ],
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 13
                          },
                          "end": {
                            "line": 10,
                            "column": 24
                          }
                        }
                      },
                      "params": [
                        {
                          "type": "Identifier",
                          "name": "scheduler",
                          "range": [
                            271,
                            280
                          ],
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 25
                            },
                            "end": {
                              "line": 10,
                              "column": 34
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "work",
                          "range": [
                            282,
                            286
                          ],
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 36
                            },
                            "end": {
                              "line": 10,
                              "column": 40
                            }
                          }
                        }
                      ],
                      "body": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "_super",
                                  "range": [
                                    298,
                                    304
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 14
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "call",
                                  "range": [
                                    305,
                                    309
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 19
                                    }
                                  }
                                },
                                "range": [
                                  298,
                                  309
                                ],
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 19
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "range": [
                                    310,
                                    314
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 24
                                    }
                                  }
                                },
                                {
                                  "type": "Identifier",
                                  "name": "scheduler",
                                  "range": [
                                    316,
                                    325
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 35
                                    }
                                  }
                                },
                                {
                                  "type": "Identifier",
                                  "name": "work",
                                  "range": [
                                    327,
                                    331
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 41
                                    }
                                  }
                                }
                              ],
                              "range": [
                                298,
                                332
                              ],
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 8
                                },
                                "end": {
                                  "line": 11,
                                  "column": 42
                                }
                              }
                            },
                            "range": [
                              298,
                              333
                            ],
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 8
                              },
                              "end": {
                                "line": 11,
                                "column": 43
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    342,
                                    346
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "scheduler",
                                  "range": [
                                    347,
                                    356
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 22
                                    }
                                  }
                                },
                                "range": [
                                  342,
                                  356
                                ],
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 22
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "scheduler",
                                "range": [
                                  359,
                                  368
                                ],
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 34
                                  }
                                }
                              },
                              "range": [
                                342,
                                368
                              ],
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 8
                                },
                                "end": {
                                  "line": 12,
                                  "column": 34
                                }
                              }
                            },
                            "range": [
                              342,
                              369
                            ],
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 8
                              },
                              "end": {
                                "line": 12,
                                "column": 35
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    378,
                                    382
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "work",
                                  "range": [
                                    383,
                                    387
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 17
                                    }
                                  }
                                },
                                "range": [
                                  378,
                                  387
                                ],
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 17
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "work",
                                "range": [
                                  390,
                                  394
                                ],
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 24
                                  }
                                }
                              },
                              "range": [
                                378,
                                394
                              ],
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 8
                                },
                                "end": {
                                  "line": 13,
                                  "column": 24
                                }
                              }
                            },
                            "range": [
                              378,
                              395
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 8
                              },
                              "end": {
                                "line": 13,
                                "column": 25
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    404,
                                    408
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 14,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 14,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "pending",
                                  "range": [
                                    409,
                                    416
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 14,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 14,
                                      "column": 20
                                    }
                                  }
                                },
                                "range": [
                                  404,
                                  416
                                ],
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 20
                                  }
                                }
                              },
                              "right": {
                                "type": "Literal",
                                "value": false,
                                "raw": "false",
                                "range": [
                                  419,
                                  424
                                ],
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 28
                                  }
                                }
                              },
                              "range": [
                                404,
                                424
                              ],
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 8
                                },
                                "end": {
                                  "line": 14,
                                  "column": 28
                                }
                              }
                            },
                            "range": [
                              404,
                              425
                            ],
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 8
                              },
                              "end": {
                                "line": 14,
                                "column": 29
                              }
                            }
                          }
                        ],
                        "range": [
                          288,
                          431
                        ],
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 42
                          },
                          "end": {
                            "line": 15,
                            "column": 5
                          }
                        }
                      },
                      "generator": false,
                      "expression": false,
                      "range": [
                        250,
                        431
                      ],
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 4
                        },
                        "end": {
                          "line": 15,
                          "column": 5
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "AsyncAction",
                              "range": [
                                436,
                                447
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 4
                                },
                                "end": {
                                  "line": 16,
                                  "column": 15
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                448,
                                457
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 16
                                },
                                "end": {
                                  "line": 16,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              436,
                              457
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 4
                              },
                              "end": {
                                "line": 16,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "schedule",
                            "range": [
                              458,
                              466
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 26
                              },
                              "end": {
                                "line": 16,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            436,
                            466
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 4
                            },
                            "end": {
                              "line": 16,
                              "column": 34
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "state",
                              "range": [
                                479,
                                484
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 47
                                },
                                "end": {
                                  "line": 16,
                                  "column": 52
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "delay",
                              "range": [
                                486,
                                491
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 54
                                },
                                "end": {
                                  "line": 16,
                                  "column": 59
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "BinaryExpression",
                                  "operator": "===",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "delay",
                                    "range": [
                                      507,
                                      512
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 17,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 17,
                                        "column": 17
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "UnaryExpression",
                                    "operator": "void",
                                    "argument": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        522,
                                        523
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 17,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 17,
                                          "column": 28
                                        }
                                      }
                                    },
                                    "prefix": true,
                                    "range": [
                                      517,
                                      523
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 17,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 17,
                                        "column": 28
                                      }
                                    }
                                  },
                                  "range": [
                                    507,
                                    523
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 28
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "Identifier",
                                          "name": "delay",
                                          "range": [
                                            527,
                                            532
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 17,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 17,
                                              "column": 37
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Literal",
                                          "value": 0,
                                          "raw": "0",
                                          "range": [
                                            535,
                                            536
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 17,
                                              "column": 40
                                            },
                                            "end": {
                                              "line": 17,
                                              "column": 41
                                            }
                                          }
                                        },
                                        "range": [
                                          527,
                                          536
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 17,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 17,
                                            "column": 41
                                          }
                                        }
                                      },
                                      "range": [
                                        527,
                                        537
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 17,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 17,
                                          "column": 42
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    525,
                                    539
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 44
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  503,
                                  539
                                ],
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 44
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      552,
                                      556
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 18,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 18,
                                        "column": 16
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "closed",
                                    "range": [
                                      557,
                                      563
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 18,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 18,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "range": [
                                    552,
                                    563
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 18,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 18,
                                      "column": 23
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "argument": {
                                        "type": "ThisExpression",
                                        "range": [
                                          586,
                                          590
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 19,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 19,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "range": [
                                        579,
                                        591
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 19,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 19,
                                          "column": 24
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    565,
                                    601
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 18,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  548,
                                  601
                                ],
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 9
                                  }
                                },
                                "trailingComments": [
                                  {
                                    "type": "Line",
                                    "value": " Always replace the current state with the new state.",
                                    "range": [
                                      610,
                                      665
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 21,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 21,
                                        "column": 63
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        674,
                                        678
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 22,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 22,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "state",
                                      "range": [
                                        679,
                                        684
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 22,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 22,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "range": [
                                      674,
                                      684
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 22,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 22,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Identifier",
                                    "name": "state",
                                    "range": [
                                      687,
                                      692
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 22,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 22,
                                        "column": 26
                                      }
                                    }
                                  },
                                  "range": [
                                    674,
                                    692
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 22,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 22,
                                      "column": 26
                                    }
                                  }
                                },
                                "range": [
                                  674,
                                  693
                                ],
                                "loc": {
                                  "start": {
                                    "line": 22,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 22,
                                    "column": 27
                                  }
                                },
                                "leadingComments": [
                                  {
                                    "type": "Line",
                                    "value": " Always replace the current state with the new state.",
                                    "range": [
                                      610,
                                      665
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 21,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 21,
                                        "column": 63
                                      }
                                    }
                                  }
                                ],
                                "trailingComments": [
                                  {
                                    "type": "Line",
                                    "value": " Set the pending flag indicating that this action has been scheduled, or",
                                    "range": [
                                      702,
                                      776
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 82
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " has recursively rescheduled itself.",
                                    "range": [
                                      785,
                                      823
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 24,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 24,
                                        "column": 46
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        832,
                                        836
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 25,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 25,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "pending",
                                      "range": [
                                        837,
                                        844
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 25,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 25,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "range": [
                                      832,
                                      844
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 25,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 25,
                                        "column": 20
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": true,
                                    "raw": "true",
                                    "range": [
                                      847,
                                      851
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 25,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 25,
                                        "column": 27
                                      }
                                    }
                                  },
                                  "range": [
                                    832,
                                    851
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 25,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 25,
                                      "column": 27
                                    }
                                  }
                                },
                                "range": [
                                  832,
                                  852
                                ],
                                "loc": {
                                  "start": {
                                    "line": 25,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 25,
                                    "column": 28
                                  }
                                },
                                "leadingComments": [
                                  {
                                    "type": "Line",
                                    "value": " Set the pending flag indicating that this action has been scheduled, or",
                                    "range": [
                                      702,
                                      776
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 82
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " has recursively rescheduled itself.",
                                    "range": [
                                      785,
                                      823
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 24,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 24,
                                        "column": 46
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "id",
                                      "range": [
                                        865,
                                        867
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 26,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 26,
                                          "column": 14
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          870,
                                          874
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 26,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 26,
                                            "column": 21
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "id",
                                        "range": [
                                          875,
                                          877
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 26,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 26,
                                            "column": 24
                                          }
                                        }
                                      },
                                      "range": [
                                        870,
                                        877
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 26,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 26,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "range": [
                                      865,
                                      877
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 26,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 26,
                                        "column": 24
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  861,
                                  878
                                ],
                                "loc": {
                                  "start": {
                                    "line": 26,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 26,
                                    "column": 25
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "scheduler",
                                      "range": [
                                        891,
                                        900
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 27,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 27,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          903,
                                          907
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 27,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 27,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "scheduler",
                                        "range": [
                                          908,
                                          917
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 27,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 27,
                                            "column": 38
                                          }
                                        }
                                      },
                                      "range": [
                                        903,
                                        917
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 27,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 27,
                                          "column": 38
                                        }
                                      }
                                    },
                                    "range": [
                                      891,
                                      917
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 27,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 27,
                                        "column": 38
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  887,
                                  918
                                ],
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 39
                                  }
                                },
                                "trailingComments": [
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      927,
                                      929
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 28,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 28,
                                        "column": 10
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " Important implementation note:",
                                    "range": [
                                      938,
                                      971
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 41
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      980,
                                      982
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 10
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " Actions only execute once by default, unless rescheduled from within the",
                                    "range": [
                                      991,
                                      1066
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 83
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " scheduled callback. This allows us to implement single and repeat",
                                    "range": [
                                      1075,
                                      1143
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 32,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 32,
                                        "column": 76
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " actions via the same code path, without adding API surface area, as well",
                                    "range": [
                                      1152,
                                      1227
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 33,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 33,
                                        "column": 83
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " as mimic traditional recursion but across asynchronous boundaries.",
                                    "range": [
                                      1236,
                                      1305
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 34,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 34,
                                        "column": 77
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      1314,
                                      1316
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 35,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 35,
                                        "column": 10
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " However, JS runtimes and timers distinguish between intervals achieved by",
                                    "range": [
                                      1325,
                                      1401
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 36,
                                        "column": 84
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " serial `setTimeout` calls vs. a single `setInterval` call. An interval of",
                                    "range": [
                                      1410,
                                      1486
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 37,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 37,
                                        "column": 84
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " serial `setTimeout` calls can be individually delayed, which delays",
                                    "range": [
                                      1495,
                                      1565
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 38,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 38,
                                        "column": 78
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " scheduling the next `setTimeout`, and so on. `setInterval` attempts to",
                                    "range": [
                                      1574,
                                      1647
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 81
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " guarantee the interval callback will be invoked more precisely to the",
                                    "range": [
                                      1656,
                                      1728
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 80
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " interval period, regardless of load.",
                                    "range": [
                                      1737,
                                      1776
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 41,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 41,
                                        "column": 47
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      1785,
                                      1787
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 10
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " Therefore, we use `setInterval` to schedule single and repeat actions.",
                                    "range": [
                                      1796,
                                      1869
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 43,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 43,
                                        "column": 81
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " If the action reschedules itself with the same delay, the interval is not",
                                    "range": [
                                      1878,
                                      1954
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 44,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 44,
                                        "column": 84
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " canceled. If the action doesn't reschedule, or reschedules with a",
                                    "range": [
                                      1963,
                                      2031
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 45,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 45,
                                        "column": 76
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " different delay, the interval will be canceled after scheduled callback",
                                    "range": [
                                      2040,
                                      2114
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 46,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 46,
                                        "column": 82
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " execution.",
                                    "range": [
                                      2123,
                                      2136
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 21
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      2145,
                                      2147
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 48,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 48,
                                        "column": 10
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "BinaryExpression",
                                  "operator": "!=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "id",
                                    "range": [
                                      2160,
                                      2162
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 49,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 49,
                                        "column": 14
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": null,
                                    "raw": "null",
                                    "range": [
                                      2166,
                                      2170
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 49,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 49,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "range": [
                                    2160,
                                    2170
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 49,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 49,
                                      "column": 22
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              2186,
                                              2190
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 50,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 50,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "id",
                                            "range": [
                                              2191,
                                              2193
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 50,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 50,
                                                "column": 19
                                              }
                                            }
                                          },
                                          "range": [
                                            2186,
                                            2193
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 50,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 50,
                                              "column": 19
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                2196,
                                                2200
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 50,
                                                  "column": 22
                                                },
                                                "end": {
                                                  "line": 50,
                                                  "column": 26
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "recycleAsyncId",
                                              "range": [
                                                2201,
                                                2215
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 50,
                                                  "column": 27
                                                },
                                                "end": {
                                                  "line": 50,
                                                  "column": 41
                                                }
                                              }
                                            },
                                            "range": [
                                              2196,
                                              2215
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 50,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 50,
                                                "column": 41
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "name": "scheduler",
                                              "range": [
                                                2216,
                                                2225
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 50,
                                                  "column": 42
                                                },
                                                "end": {
                                                  "line": 50,
                                                  "column": 51
                                                }
                                              }
                                            },
                                            {
                                              "type": "Identifier",
                                              "name": "id",
                                              "range": [
                                                2227,
                                                2229
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 50,
                                                  "column": 53
                                                },
                                                "end": {
                                                  "line": 50,
                                                  "column": 55
                                                }
                                              }
                                            },
                                            {
                                              "type": "Identifier",
                                              "name": "delay",
                                              "range": [
                                                2231,
                                                2236
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 50,
                                                  "column": 57
                                                },
                                                "end": {
                                                  "line": 50,
                                                  "column": 62
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            2196,
                                            2237
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 50,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 50,
                                              "column": 63
                                            }
                                          }
                                        },
                                        "range": [
                                          2186,
                                          2237
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 50,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 50,
                                            "column": 63
                                          }
                                        }
                                      },
                                      "range": [
                                        2186,
                                        2238
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 50,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 50,
                                          "column": 64
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2172,
                                    2248
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 49,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 51,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  2156,
                                  2248
                                ],
                                "loc": {
                                  "start": {
                                    "line": 49,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 9
                                  }
                                },
                                "leadingComments": [
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      927,
                                      929
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 28,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 28,
                                        "column": 10
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " Important implementation note:",
                                    "range": [
                                      938,
                                      971
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 41
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      980,
                                      982
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 10
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " Actions only execute once by default, unless rescheduled from within the",
                                    "range": [
                                      991,
                                      1066
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 83
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " scheduled callback. This allows us to implement single and repeat",
                                    "range": [
                                      1075,
                                      1143
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 32,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 32,
                                        "column": 76
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " actions via the same code path, without adding API surface area, as well",
                                    "range": [
                                      1152,
                                      1227
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 33,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 33,
                                        "column": 83
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " as mimic traditional recursion but across asynchronous boundaries.",
                                    "range": [
                                      1236,
                                      1305
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 34,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 34,
                                        "column": 77
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      1314,
                                      1316
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 35,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 35,
                                        "column": 10
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " However, JS runtimes and timers distinguish between intervals achieved by",
                                    "range": [
                                      1325,
                                      1401
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 36,
                                        "column": 84
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " serial `setTimeout` calls vs. a single `setInterval` call. An interval of",
                                    "range": [
                                      1410,
                                      1486
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 37,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 37,
                                        "column": 84
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " serial `setTimeout` calls can be individually delayed, which delays",
                                    "range": [
                                      1495,
                                      1565
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 38,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 38,
                                        "column": 78
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " scheduling the next `setTimeout`, and so on. `setInterval` attempts to",
                                    "range": [
                                      1574,
                                      1647
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 81
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " guarantee the interval callback will be invoked more precisely to the",
                                    "range": [
                                      1656,
                                      1728
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 80
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " interval period, regardless of load.",
                                    "range": [
                                      1737,
                                      1776
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 41,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 41,
                                        "column": 47
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      1785,
                                      1787
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 10
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " Therefore, we use `setInterval` to schedule single and repeat actions.",
                                    "range": [
                                      1796,
                                      1869
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 43,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 43,
                                        "column": 81
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " If the action reschedules itself with the same delay, the interval is not",
                                    "range": [
                                      1878,
                                      1954
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 44,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 44,
                                        "column": 84
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " canceled. If the action doesn't reschedule, or reschedules with a",
                                    "range": [
                                      1963,
                                      2031
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 45,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 45,
                                        "column": 76
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " different delay, the interval will be canceled after scheduled callback",
                                    "range": [
                                      2040,
                                      2114
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 46,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 46,
                                        "column": 82
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " execution.",
                                    "range": [
                                      2123,
                                      2136
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 21
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": "",
                                    "range": [
                                      2145,
                                      2147
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 48,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 48,
                                        "column": 10
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2257,
                                        2261
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 52,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 52,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "delay",
                                      "range": [
                                        2262,
                                        2267
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 52,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 52,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "range": [
                                      2257,
                                      2267
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 52,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 52,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Identifier",
                                    "name": "delay",
                                    "range": [
                                      2270,
                                      2275
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 52,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 52,
                                        "column": 26
                                      }
                                    }
                                  },
                                  "range": [
                                    2257,
                                    2275
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 52,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 52,
                                      "column": 26
                                    }
                                  }
                                },
                                "range": [
                                  2257,
                                  2276
                                ],
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 52,
                                    "column": 27
                                  }
                                },
                                "trailingComments": [
                                  {
                                    "type": "Line",
                                    "value": " If this action has already an async Id, don't request a new one.",
                                    "range": [
                                      2285,
                                      2352
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 75
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2361,
                                        2365
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 54,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 54,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "id",
                                      "range": [
                                        2366,
                                        2368
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 54,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 54,
                                          "column": 15
                                        }
                                      }
                                    },
                                    "range": [
                                      2361,
                                      2368
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 54,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 54,
                                        "column": 15
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "LogicalExpression",
                                    "operator": "||",
                                    "left": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          2371,
                                          2375
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 54,
                                            "column": 18
                                          },
                                          "end": {
                                            "line": 54,
                                            "column": 22
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "id",
                                        "range": [
                                          2376,
                                          2378
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 54,
                                            "column": 23
                                          },
                                          "end": {
                                            "line": 54,
                                            "column": 25
                                          }
                                        }
                                      },
                                      "range": [
                                        2371,
                                        2378
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 54,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 54,
                                          "column": 25
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            2382,
                                            2386
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 54,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 54,
                                              "column": 33
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "requestAsyncId",
                                          "range": [
                                            2387,
                                            2401
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 54,
                                              "column": 34
                                            },
                                            "end": {
                                              "line": 54,
                                              "column": 48
                                            }
                                          }
                                        },
                                        "range": [
                                          2382,
                                          2401
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 54,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 54,
                                            "column": 48
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "scheduler",
                                          "range": [
                                            2402,
                                            2411
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 54,
                                              "column": 49
                                            },
                                            "end": {
                                              "line": 54,
                                              "column": 58
                                            }
                                          }
                                        },
                                        {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              2413,
                                              2417
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 54,
                                                "column": 60
                                              },
                                              "end": {
                                                "line": 54,
                                                "column": 64
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "id",
                                            "range": [
                                              2418,
                                              2420
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 54,
                                                "column": 65
                                              },
                                              "end": {
                                                "line": 54,
                                                "column": 67
                                              }
                                            }
                                          },
                                          "range": [
                                            2413,
                                            2420
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 54,
                                              "column": 60
                                            },
                                            "end": {
                                              "line": 54,
                                              "column": 67
                                            }
                                          }
                                        },
                                        {
                                          "type": "Identifier",
                                          "name": "delay",
                                          "range": [
                                            2422,
                                            2427
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 54,
                                              "column": 69
                                            },
                                            "end": {
                                              "line": 54,
                                              "column": 74
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        2382,
                                        2428
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 54,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 54,
                                          "column": 75
                                        }
                                      }
                                    },
                                    "range": [
                                      2371,
                                      2428
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 54,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 54,
                                        "column": 75
                                      }
                                    }
                                  },
                                  "range": [
                                    2361,
                                    2428
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 75
                                    }
                                  }
                                },
                                "range": [
                                  2361,
                                  2429
                                ],
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 76
                                  }
                                },
                                "leadingComments": [
                                  {
                                    "type": "Line",
                                    "value": " If this action has already an async Id, don't request a new one.",
                                    "range": [
                                      2285,
                                      2352
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 75
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "ReturnStatement",
                                "argument": {
                                  "type": "ThisExpression",
                                  "range": [
                                    2445,
                                    2449
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 19
                                    }
                                  }
                                },
                                "range": [
                                  2438,
                                  2450
                                ],
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 20
                                  }
                                }
                              }
                            ],
                            "range": [
                              493,
                              2456
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 61
                              },
                              "end": {
                                "line": 56,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            469,
                            2456
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 37
                            },
                            "end": {
                              "line": 56,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          436,
                          2456
                        ],
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 4
                          },
                          "end": {
                            "line": 56,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        436,
                        2457
                      ],
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 4
                        },
                        "end": {
                          "line": 56,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "AsyncAction",
                              "range": [
                                2462,
                                2473
                              ],
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 4
                                },
                                "end": {
                                  "line": 57,
                                  "column": 15
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                2474,
                                2483
                              ],
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 16
                                },
                                "end": {
                                  "line": 57,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              2462,
                              2483
                            ],
                            "loc": {
                              "start": {
                                "line": 57,
                                "column": 4
                              },
                              "end": {
                                "line": 57,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "requestAsyncId",
                            "range": [
                              2484,
                              2498
                            ],
                            "loc": {
                              "start": {
                                "line": 57,
                                "column": 26
                              },
                              "end": {
                                "line": 57,
                                "column": 40
                              }
                            }
                          },
                          "range": [
                            2462,
                            2498
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 4
                            },
                            "end": {
                              "line": 57,
                              "column": 40
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "scheduler",
                              "range": [
                                2511,
                                2520
                              ],
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 53
                                },
                                "end": {
                                  "line": 57,
                                  "column": 62
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "id",
                              "range": [
                                2522,
                                2524
                              ],
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 64
                                },
                                "end": {
                                  "line": 57,
                                  "column": 66
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "delay",
                              "range": [
                                2526,
                                2531
                              ],
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 68
                                },
                                "end": {
                                  "line": 57,
                                  "column": 73
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "BinaryExpression",
                                  "operator": "===",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "delay",
                                    "range": [
                                      2547,
                                      2552
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 17
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "UnaryExpression",
                                    "operator": "void",
                                    "argument": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        2562,
                                        2563
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 28
                                        }
                                      }
                                    },
                                    "prefix": true,
                                    "range": [
                                      2557,
                                      2563
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 28
                                      }
                                    }
                                  },
                                  "range": [
                                    2547,
                                    2563
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 28
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "Identifier",
                                          "name": "delay",
                                          "range": [
                                            2567,
                                            2572
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 58,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 58,
                                              "column": 37
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Literal",
                                          "value": 0,
                                          "raw": "0",
                                          "range": [
                                            2575,
                                            2576
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 58,
                                              "column": 40
                                            },
                                            "end": {
                                              "line": 58,
                                              "column": 41
                                            }
                                          }
                                        },
                                        "range": [
                                          2567,
                                          2576
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 58,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 58,
                                            "column": 41
                                          }
                                        }
                                      },
                                      "range": [
                                        2567,
                                        2577
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 42
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2565,
                                    2579
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 44
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  2543,
                                  2579
                                ],
                                "loc": {
                                  "start": {
                                    "line": 58,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 44
                                  }
                                }
                              },
                              {
                                "type": "ReturnStatement",
                                "argument": {
                                  "type": "CallExpression",
                                  "callee": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "root",
                                      "range": [
                                        2595,
                                        2599
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 59,
                                          "column": 15
                                        },
                                        "end": {
                                          "line": 59,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "setInterval",
                                      "range": [
                                        2600,
                                        2611
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 59,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 59,
                                          "column": 31
                                        }
                                      }
                                    },
                                    "range": [
                                      2595,
                                      2611
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 59,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 59,
                                        "column": 31
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "scheduler",
                                            "range": [
                                              2612,
                                              2621
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 59,
                                                "column": 32
                                              },
                                              "end": {
                                                "line": 59,
                                                "column": 41
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "flush",
                                            "range": [
                                              2622,
                                              2627
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 59,
                                                "column": 42
                                              },
                                              "end": {
                                                "line": 59,
                                                "column": 47
                                              }
                                            }
                                          },
                                          "range": [
                                            2612,
                                            2627
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 59,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 59,
                                              "column": 47
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "bind",
                                          "range": [
                                            2628,
                                            2632
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 59,
                                              "column": 48
                                            },
                                            "end": {
                                              "line": 59,
                                              "column": 52
                                            }
                                          }
                                        },
                                        "range": [
                                          2612,
                                          2632
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 59,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 59,
                                            "column": 52
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "scheduler",
                                          "range": [
                                            2633,
                                            2642
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 59,
                                              "column": 53
                                            },
                                            "end": {
                                              "line": 59,
                                              "column": 62
                                            }
                                          }
                                        },
                                        {
                                          "type": "ThisExpression",
                                          "range": [
                                            2644,
                                            2648
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 59,
                                              "column": 64
                                            },
                                            "end": {
                                              "line": 59,
                                              "column": 68
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        2612,
                                        2649
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 59,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 59,
                                          "column": 69
                                        }
                                      }
                                    },
                                    {
                                      "type": "Identifier",
                                      "name": "delay",
                                      "range": [
                                        2651,
                                        2656
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 59,
                                          "column": 71
                                        },
                                        "end": {
                                          "line": 59,
                                          "column": 76
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2595,
                                    2657
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 59,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 59,
                                      "column": 77
                                    }
                                  }
                                },
                                "range": [
                                  2588,
                                  2658
                                ],
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 78
                                  }
                                }
                              }
                            ],
                            "range": [
                              2533,
                              2664
                            ],
                            "loc": {
                              "start": {
                                "line": 57,
                                "column": 75
                              },
                              "end": {
                                "line": 60,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            2501,
                            2664
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 43
                            },
                            "end": {
                              "line": 60,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          2462,
                          2664
                        ],
                        "loc": {
                          "start": {
                            "line": 57,
                            "column": 4
                          },
                          "end": {
                            "line": 60,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2462,
                        2665
                      ],
                      "loc": {
                        "start": {
                          "line": 57,
                          "column": 4
                        },
                        "end": {
                          "line": 60,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "AsyncAction",
                              "range": [
                                2670,
                                2681
                              ],
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 4
                                },
                                "end": {
                                  "line": 61,
                                  "column": 15
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                2682,
                                2691
                              ],
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 16
                                },
                                "end": {
                                  "line": 61,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              2670,
                              2691
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 4
                              },
                              "end": {
                                "line": 61,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "recycleAsyncId",
                            "range": [
                              2692,
                              2706
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 26
                              },
                              "end": {
                                "line": 61,
                                "column": 40
                              }
                            }
                          },
                          "range": [
                            2670,
                            2706
                          ],
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 4
                            },
                            "end": {
                              "line": 61,
                              "column": 40
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "scheduler",
                              "range": [
                                2719,
                                2728
                              ],
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 53
                                },
                                "end": {
                                  "line": 61,
                                  "column": 62
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "id",
                              "range": [
                                2730,
                                2732
                              ],
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 64
                                },
                                "end": {
                                  "line": 61,
                                  "column": 66
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "delay",
                              "range": [
                                2734,
                                2739
                              ],
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 68
                                },
                                "end": {
                                  "line": 61,
                                  "column": 73
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "BinaryExpression",
                                  "operator": "===",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "delay",
                                    "range": [
                                      2755,
                                      2760
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 62,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 62,
                                        "column": 17
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "UnaryExpression",
                                    "operator": "void",
                                    "argument": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        2770,
                                        2771
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 62,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 62,
                                          "column": 28
                                        }
                                      }
                                    },
                                    "prefix": true,
                                    "range": [
                                      2765,
                                      2771
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 62,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 62,
                                        "column": 28
                                      }
                                    }
                                  },
                                  "range": [
                                    2755,
                                    2771
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 62,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 62,
                                      "column": 28
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "Identifier",
                                          "name": "delay",
                                          "range": [
                                            2775,
                                            2780
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 62,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 62,
                                              "column": 37
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Literal",
                                          "value": 0,
                                          "raw": "0",
                                          "range": [
                                            2783,
                                            2784
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 62,
                                              "column": 40
                                            },
                                            "end": {
                                              "line": 62,
                                              "column": 41
                                            }
                                          }
                                        },
                                        "range": [
                                          2775,
                                          2784
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 62,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 62,
                                            "column": 41
                                          }
                                        }
                                      },
                                      "range": [
                                        2775,
                                        2785
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 62,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 62,
                                          "column": 42
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2773,
                                    2787
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 62,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 62,
                                      "column": 44
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  2751,
                                  2787
                                ],
                                "loc": {
                                  "start": {
                                    "line": 62,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 62,
                                    "column": 44
                                  }
                                },
                                "trailingComments": [
                                  {
                                    "type": "Line",
                                    "value": " If this action is rescheduled with the same delay time, don't clear the interval id.",
                                    "range": [
                                      2796,
                                      2883
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 63,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 63,
                                        "column": 95
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "LogicalExpression",
                                  "operator": "&&",
                                  "left": {
                                    "type": "BinaryExpression",
                                    "operator": "!==",
                                    "left": {
                                      "type": "Identifier",
                                      "name": "delay",
                                      "range": [
                                        2896,
                                        2901
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 17
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "Literal",
                                      "value": null,
                                      "raw": "null",
                                      "range": [
                                        2906,
                                        2910
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 26
                                        }
                                      }
                                    },
                                    "range": [
                                      2896,
                                      2910
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 64,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 64,
                                        "column": 26
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "BinaryExpression",
                                    "operator": "===",
                                    "left": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          2914,
                                          2918
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 64,
                                            "column": 30
                                          },
                                          "end": {
                                            "line": 64,
                                            "column": 34
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "delay",
                                        "range": [
                                          2919,
                                          2924
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 64,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 64,
                                            "column": 40
                                          }
                                        }
                                      },
                                      "range": [
                                        2914,
                                        2924
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 40
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "Identifier",
                                      "name": "delay",
                                      "range": [
                                        2929,
                                        2934
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 45
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 50
                                        }
                                      }
                                    },
                                    "range": [
                                      2914,
                                      2934
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 64,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 64,
                                        "column": 50
                                      }
                                    }
                                  },
                                  "range": [
                                    2896,
                                    2934
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 64,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 64,
                                      "column": 50
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "argument": {
                                        "type": "Identifier",
                                        "name": "id",
                                        "range": [
                                          2957,
                                          2959
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 65,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 65,
                                            "column": 21
                                          }
                                        }
                                      },
                                      "range": [
                                        2950,
                                        2960
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 22
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2936,
                                    2970
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 64,
                                      "column": 52
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  2892,
                                  2970
                                ],
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 9
                                  }
                                },
                                "leadingComments": [
                                  {
                                    "type": "Line",
                                    "value": " If this action is rescheduled with the same delay time, don't clear the interval id.",
                                    "range": [
                                      2796,
                                      2883
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 63,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 63,
                                        "column": 95
                                      }
                                    }
                                  }
                                ],
                                "trailingComments": [
                                  {
                                    "type": "Line",
                                    "value": " Otherwise, if the action's delay time is different from the current delay,",
                                    "range": [
                                      2979,
                                      3056
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 85
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " clear the interval id",
                                    "range": [
                                      3065,
                                      3089
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 32
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "ReturnStatement",
                                "argument": {
                                  "type": "LogicalExpression",
                                  "operator": "||",
                                  "left": {
                                    "type": "LogicalExpression",
                                    "operator": "&&",
                                    "left": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "root",
                                          "range": [
                                            3105,
                                            3109
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 69,
                                              "column": 15
                                            },
                                            "end": {
                                              "line": 69,
                                              "column": 19
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "clearInterval",
                                          "range": [
                                            3110,
                                            3123
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 69,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 69,
                                              "column": 33
                                            }
                                          }
                                        },
                                        "range": [
                                          3105,
                                          3123
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 15
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "id",
                                          "range": [
                                            3124,
                                            3126
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 69,
                                              "column": 34
                                            },
                                            "end": {
                                              "line": 69,
                                              "column": 36
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3105,
                                        3127
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 15
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 37
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "Identifier",
                                      "name": "undefined",
                                      "range": [
                                        3131,
                                        3140
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 50
                                        }
                                      }
                                    },
                                    "range": [
                                      3105,
                                      3140
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 50
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Identifier",
                                    "name": "undefined",
                                    "range": [
                                      3144,
                                      3153
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 54
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 63
                                      }
                                    }
                                  },
                                  "range": [
                                    3105,
                                    3153
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 69,
                                      "column": 63
                                    }
                                  }
                                },
                                "range": [
                                  3098,
                                  3154
                                ],
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 69,
                                    "column": 64
                                  }
                                },
                                "leadingComments": [
                                  {
                                    "type": "Line",
                                    "value": " Otherwise, if the action's delay time is different from the current delay,",
                                    "range": [
                                      2979,
                                      3056
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 85
                                      }
                                    }
                                  },
                                  {
                                    "type": "Line",
                                    "value": " clear the interval id",
                                    "range": [
                                      3065,
                                      3089
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 32
                                      }
                                    }
                                  }
                                ]
                              }
                            ],
                            "range": [
                              2741,
                              3160
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 75
                              },
                              "end": {
                                "line": 70,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            2709,
                            3160
                          ],
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 43
                            },
                            "end": {
                              "line": 70,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          2670,
                          3160
                        ],
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 4
                          },
                          "end": {
                            "line": 70,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2670,
                        3161
                      ],
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 4
                        },
                        "end": {
                          "line": 70,
                          "column": 6
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "Block",
                          "value": "*\n     * Immediately executes this action and the `work` it contains.\n     * @return {any}\n     ",
                          "range": [
                            3166,
                            3266
                          ],
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 4
                            },
                            "end": {
                              "line": 74,
                              "column": 7
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "AsyncAction",
                              "range": [
                                3271,
                                3282
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 4
                                },
                                "end": {
                                  "line": 75,
                                  "column": 15
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                3283,
                                3292
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 16
                                },
                                "end": {
                                  "line": 75,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              3271,
                              3292
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 4
                              },
                              "end": {
                                "line": 75,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "execute",
                            "range": [
                              3293,
                              3300
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 26
                              },
                              "end": {
                                "line": 75,
                                "column": 33
                              }
                            }
                          },
                          "range": [
                            3271,
                            3300
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 4
                            },
                            "end": {
                              "line": 75,
                              "column": 33
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "state",
                              "range": [
                                3313,
                                3318
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 46
                                },
                                "end": {
                                  "line": 75,
                                  "column": 51
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "delay",
                              "range": [
                                3320,
                                3325
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 53
                                },
                                "end": {
                                  "line": 75,
                                  "column": 58
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      3341,
                                      3345
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 16
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "closed",
                                    "range": [
                                      3346,
                                      3352
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "range": [
                                    3341,
                                    3352
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 23
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "argument": {
                                        "type": "NewExpression",
                                        "callee": {
                                          "type": "Identifier",
                                          "name": "Error",
                                          "range": [
                                            3379,
                                            3384
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 77,
                                              "column": 23
                                            },
                                            "end": {
                                              "line": 77,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "Literal",
                                            "value": "executing a cancelled action",
                                            "raw": "'executing a cancelled action'",
                                            "range": [
                                              3385,
                                              3415
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 77,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 77,
                                                "column": 59
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          3375,
                                          3416
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 77,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 77,
                                            "column": 60
                                          }
                                        }
                                      },
                                      "range": [
                                        3368,
                                        3417
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 61
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3354,
                                    3427
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  3337,
                                  3427
                                ],
                                "loc": {
                                  "start": {
                                    "line": 76,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 78,
                                    "column": 9
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3436,
                                        3440
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 79,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 79,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "pending",
                                      "range": [
                                        3441,
                                        3448
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 79,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 79,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "range": [
                                      3436,
                                      3448
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 20
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": false,
                                    "raw": "false",
                                    "range": [
                                      3451,
                                      3456
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 28
                                      }
                                    }
                                  },
                                  "range": [
                                    3436,
                                    3456
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 79,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 79,
                                      "column": 28
                                    }
                                  }
                                },
                                "range": [
                                  3436,
                                  3457
                                ],
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 29
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "error",
                                      "range": [
                                        3470,
                                        3475
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 80,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 80,
                                          "column": 17
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3478,
                                            3482
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 80,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 80,
                                              "column": 24
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "_execute",
                                          "range": [
                                            3483,
                                            3491
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 80,
                                              "column": 25
                                            },
                                            "end": {
                                              "line": 80,
                                              "column": 33
                                            }
                                          }
                                        },
                                        "range": [
                                          3478,
                                          3491
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 80,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 80,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "state",
                                          "range": [
                                            3492,
                                            3497
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 80,
                                              "column": 34
                                            },
                                            "end": {
                                              "line": 80,
                                              "column": 39
                                            }
                                          }
                                        },
                                        {
                                          "type": "Identifier",
                                          "name": "delay",
                                          "range": [
                                            3499,
                                            3504
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 80,
                                              "column": 41
                                            },
                                            "end": {
                                              "line": 80,
                                              "column": 46
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3478,
                                        3505
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 80,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 80,
                                          "column": 47
                                        }
                                      }
                                    },
                                    "range": [
                                      3470,
                                      3505
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 80,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 80,
                                        "column": 47
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  3466,
                                  3506
                                ],
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 48
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "Identifier",
                                  "name": "error",
                                  "range": [
                                    3519,
                                    3524
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 17
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "argument": {
                                        "type": "Identifier",
                                        "name": "error",
                                        "range": [
                                          3547,
                                          3552
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 82,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 82,
                                            "column": 24
                                          }
                                        }
                                      },
                                      "range": [
                                        3540,
                                        3553
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 25
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3526,
                                    3563
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 83,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": {
                                  "type": "IfStatement",
                                  "test": {
                                    "type": "LogicalExpression",
                                    "operator": "&&",
                                    "left": {
                                      "type": "BinaryExpression",
                                      "operator": "===",
                                      "left": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3581,
                                            3585
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 84,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 84,
                                              "column": 21
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "pending",
                                          "range": [
                                            3586,
                                            3593
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 84,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 84,
                                              "column": 29
                                            }
                                          }
                                        },
                                        "range": [
                                          3581,
                                          3593
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 84,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 84,
                                            "column": 29
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Literal",
                                        "value": false,
                                        "raw": "false",
                                        "range": [
                                          3598,
                                          3603
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 84,
                                            "column": 34
                                          },
                                          "end": {
                                            "line": 84,
                                            "column": 39
                                          }
                                        }
                                      },
                                      "range": [
                                        3581,
                                        3603
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 84,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 84,
                                          "column": 39
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "BinaryExpression",
                                      "operator": "!=",
                                      "left": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3607,
                                            3611
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 84,
                                              "column": 43
                                            },
                                            "end": {
                                              "line": 84,
                                              "column": 47
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "id",
                                          "range": [
                                            3612,
                                            3614
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 84,
                                              "column": 48
                                            },
                                            "end": {
                                              "line": 84,
                                              "column": 50
                                            }
                                          }
                                        },
                                        "range": [
                                          3607,
                                          3614
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 84,
                                            "column": 43
                                          },
                                          "end": {
                                            "line": 84,
                                            "column": 50
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Literal",
                                        "value": null,
                                        "raw": "null",
                                        "range": [
                                          3618,
                                          3622
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 84,
                                            "column": 54
                                          },
                                          "end": {
                                            "line": 84,
                                            "column": 58
                                          }
                                        }
                                      },
                                      "range": [
                                        3607,
                                        3622
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 84,
                                          "column": 43
                                        },
                                        "end": {
                                          "line": 84,
                                          "column": 58
                                        }
                                      }
                                    },
                                    "range": [
                                      3581,
                                      3622
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 84,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 84,
                                        "column": 58
                                      }
                                    }
                                  },
                                  "consequent": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "AssignmentExpression",
                                          "operator": "=",
                                          "left": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                4224,
                                                4228
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 98,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 98,
                                                  "column": 16
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "id",
                                              "range": [
                                                4229,
                                                4231
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 98,
                                                  "column": 17
                                                },
                                                "end": {
                                                  "line": 98,
                                                  "column": 19
                                                }
                                              }
                                            },
                                            "range": [
                                              4224,
                                              4231
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 98,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 98,
                                                "column": 19
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "ThisExpression",
                                                "range": [
                                                  4234,
                                                  4238
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 98,
                                                    "column": 22
                                                  },
                                                  "end": {
                                                    "line": 98,
                                                    "column": 26
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "recycleAsyncId",
                                                "range": [
                                                  4239,
                                                  4253
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 98,
                                                    "column": 27
                                                  },
                                                  "end": {
                                                    "line": 98,
                                                    "column": 41
                                                  }
                                                }
                                              },
                                              "range": [
                                                4234,
                                                4253
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 98,
                                                  "column": 22
                                                },
                                                "end": {
                                                  "line": 98,
                                                  "column": 41
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "ThisExpression",
                                                  "range": [
                                                    4254,
                                                    4258
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 98,
                                                      "column": 42
                                                    },
                                                    "end": {
                                                      "line": 98,
                                                      "column": 46
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "scheduler",
                                                  "range": [
                                                    4259,
                                                    4268
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 98,
                                                      "column": 47
                                                    },
                                                    "end": {
                                                      "line": 98,
                                                      "column": 56
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  4254,
                                                  4268
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 98,
                                                    "column": 42
                                                  },
                                                  "end": {
                                                    "line": 98,
                                                    "column": 56
                                                  }
                                                }
                                              },
                                              {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "ThisExpression",
                                                  "range": [
                                                    4270,
                                                    4274
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 98,
                                                      "column": 58
                                                    },
                                                    "end": {
                                                      "line": 98,
                                                      "column": 62
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "id",
                                                  "range": [
                                                    4275,
                                                    4277
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 98,
                                                      "column": 63
                                                    },
                                                    "end": {
                                                      "line": 98,
                                                      "column": 65
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  4270,
                                                  4277
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 98,
                                                    "column": 58
                                                  },
                                                  "end": {
                                                    "line": 98,
                                                    "column": 65
                                                  }
                                                }
                                              },
                                              {
                                                "type": "Literal",
                                                "value": null,
                                                "raw": "null",
                                                "range": [
                                                  4279,
                                                  4283
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 98,
                                                    "column": 67
                                                  },
                                                  "end": {
                                                    "line": 98,
                                                    "column": 71
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              4234,
                                              4284
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 98,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 98,
                                                "column": 72
                                              }
                                            }
                                          },
                                          "range": [
                                            4224,
                                            4284
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 98,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 98,
                                              "column": 72
                                            }
                                          }
                                        },
                                        "range": [
                                          4224,
                                          4285
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 98,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 98,
                                            "column": 73
                                          }
                                        },
                                        "leadingComments": [
                                          {
                                            "type": "Line",
                                            "value": " Dequeue if the action didn't reschedule itself. Don't call",
                                            "range": [
                                              3638,
                                              3699
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 85,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 85,
                                                "column": 73
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": " unsubscribe(), because the action could reschedule later.",
                                            "range": [
                                              3712,
                                              3772
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 86,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 86,
                                                "column": 72
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": " For example:",
                                            "range": [
                                              3785,
                                              3800
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 87,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 87,
                                                "column": 27
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": " ```",
                                            "range": [
                                              3813,
                                              3819
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 88,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 88,
                                                "column": 18
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": " scheduler.schedule(function doWork(counter) {",
                                            "range": [
                                              3832,
                                              3880
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 89,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 89,
                                                "column": 60
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": "   /* ... I'm a busy worker bee ... */",
                                            "range": [
                                              3893,
                                              3933
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 52
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": "   var originalAction = this;",
                                            "range": [
                                              3946,
                                              3977
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 91,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 91,
                                                "column": 43
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": "   /* wait 100ms before rescheduling the action */",
                                            "range": [
                                              3990,
                                              4042
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 92,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 92,
                                                "column": 64
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": "   setTimeout(function () {",
                                            "range": [
                                              4055,
                                              4084
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 93,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 93,
                                                "column": 41
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": "     originalAction.schedule(counter + 1);",
                                            "range": [
                                              4097,
                                              4141
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 94,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 94,
                                                "column": 56
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": "   }, 100);",
                                            "range": [
                                              4154,
                                              4167
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 95,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 95,
                                                "column": 25
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": " }, 1000);",
                                            "range": [
                                              4180,
                                              4192
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 96,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 96,
                                                "column": 24
                                              }
                                            }
                                          },
                                          {
                                            "type": "Line",
                                            "value": " ```",
                                            "range": [
                                              4205,
                                              4211
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 18
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ],
                                    "range": [
                                      3624,
                                      4295
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 84,
                                        "column": 60
                                      },
                                      "end": {
                                        "line": 99,
                                        "column": 9
                                      }
                                    }
                                  },
                                  "alternate": null,
                                  "range": [
                                    3577,
                                    4295
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 84,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 99,
                                      "column": 9
                                    }
                                  }
                                },
                                "range": [
                                  3515,
                                  4295
                                ],
                                "loc": {
                                  "start": {
                                    "line": 81,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 99,
                                    "column": 9
                                  }
                                }
                              }
                            ],
                            "range": [
                              3327,
                              4301
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 60
                              },
                              "end": {
                                "line": 100,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            3303,
                            4301
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 36
                            },
                            "end": {
                              "line": 100,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          3271,
                          4301
                        ],
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 4
                          },
                          "end": {
                            "line": 100,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3271,
                        4302
                      ],
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 4
                        },
                        "end": {
                          "line": 100,
                          "column": 6
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Block",
                          "value": "*\n     * Immediately executes this action and the `work` it contains.\n     * @return {any}\n     ",
                          "range": [
                            3166,
                            3266
                          ],
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 4
                            },
                            "end": {
                              "line": 74,
                              "column": 7
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "AsyncAction",
                              "range": [
                                4307,
                                4318
                              ],
                              "loc": {
                                "start": {
                                  "line": 101,
                                  "column": 4
                                },
                                "end": {
                                  "line": 101,
                                  "column": 15
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                4319,
                                4328
                              ],
                              "loc": {
                                "start": {
                                  "line": 101,
                                  "column": 16
                                },
                                "end": {
                                  "line": 101,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              4307,
                              4328
                            ],
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 4
                              },
                              "end": {
                                "line": 101,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_execute",
                            "range": [
                              4329,
                              4337
                            ],
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 26
                              },
                              "end": {
                                "line": 101,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            4307,
                            4337
                          ],
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 4
                            },
                            "end": {
                              "line": 101,
                              "column": 34
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "state",
                              "range": [
                                4350,
                                4355
                              ],
                              "loc": {
                                "start": {
                                  "line": 101,
                                  "column": 47
                                },
                                "end": {
                                  "line": 101,
                                  "column": 52
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "delay",
                              "range": [
                                4357,
                                4362
                              ],
                              "loc": {
                                "start": {
                                  "line": 101,
                                  "column": 54
                                },
                                "end": {
                                  "line": 101,
                                  "column": 59
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "errored",
                                      "range": [
                                        4378,
                                        4385
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "Literal",
                                      "value": false,
                                      "raw": "false",
                                      "range": [
                                        4388,
                                        4393
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 27
                                        }
                                      }
                                    },
                                    "range": [
                                      4378,
                                      4393
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 102,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 102,
                                        "column": 27
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  4374,
                                  4394
                                ],
                                "loc": {
                                  "start": {
                                    "line": 102,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 102,
                                    "column": 28
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "errorValue",
                                      "range": [
                                        4407,
                                        4417
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 22
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "Identifier",
                                      "name": "undefined",
                                      "range": [
                                        4420,
                                        4429
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "range": [
                                      4407,
                                      4429
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 34
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  4403,
                                  4430
                                ],
                                "loc": {
                                  "start": {
                                    "line": 103,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 103,
                                    "column": 35
                                  }
                                }
                              },
                              {
                                "type": "TryStatement",
                                "block": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              4457,
                                              4461
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 105,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 105,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "work",
                                            "range": [
                                              4462,
                                              4466
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 105,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 105,
                                                "column": 21
                                              }
                                            }
                                          },
                                          "range": [
                                            4457,
                                            4466
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 105,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 105,
                                              "column": 21
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "name": "state",
                                            "range": [
                                              4467,
                                              4472
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 105,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 105,
                                                "column": 27
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          4457,
                                          4473
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 105,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "range": [
                                        4457,
                                        4474
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 105,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 29
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    4443,
                                    4484
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 104,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 106,
                                      "column": 9
                                    }
                                  }
                                },
                                "handler": {
                                  "type": "CatchClause",
                                  "param": {
                                    "type": "Identifier",
                                    "name": "e",
                                    "range": [
                                      4500,
                                      4501
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 16
                                      }
                                    }
                                  },
                                  "body": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "AssignmentExpression",
                                          "operator": "=",
                                          "left": {
                                            "type": "Identifier",
                                            "name": "errored",
                                            "range": [
                                              4517,
                                              4524
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 108,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 108,
                                                "column": 19
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "Literal",
                                            "value": true,
                                            "raw": "true",
                                            "range": [
                                              4527,
                                              4531
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 108,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 108,
                                                "column": 26
                                              }
                                            }
                                          },
                                          "range": [
                                            4517,
                                            4531
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 108,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 108,
                                              "column": 26
                                            }
                                          }
                                        },
                                        "range": [
                                          4517,
                                          4532
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 108,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 108,
                                            "column": 27
                                          }
                                        }
                                      },
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "AssignmentExpression",
                                          "operator": "=",
                                          "left": {
                                            "type": "Identifier",
                                            "name": "errorValue",
                                            "range": [
                                              4545,
                                              4555
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 109,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 109,
                                                "column": 22
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "LogicalExpression",
                                            "operator": "||",
                                            "left": {
                                              "type": "LogicalExpression",
                                              "operator": "&&",
                                              "left": {
                                                "type": "UnaryExpression",
                                                "operator": "!",
                                                "argument": {
                                                  "type": "UnaryExpression",
                                                  "operator": "!",
                                                  "argument": {
                                                    "type": "Identifier",
                                                    "name": "e",
                                                    "range": [
                                                      4560,
                                                      4561
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 109,
                                                        "column": 27
                                                      },
                                                      "end": {
                                                        "line": 109,
                                                        "column": 28
                                                      }
                                                    }
                                                  },
                                                  "prefix": true,
                                                  "range": [
                                                    4559,
                                                    4561
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 109,
                                                      "column": 26
                                                    },
                                                    "end": {
                                                      "line": 109,
                                                      "column": 28
                                                    }
                                                  }
                                                },
                                                "prefix": true,
                                                "range": [
                                                  4558,
                                                  4561
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 109,
                                                    "column": 25
                                                  },
                                                  "end": {
                                                    "line": 109,
                                                    "column": 28
                                                  }
                                                }
                                              },
                                              "right": {
                                                "type": "Identifier",
                                                "name": "e",
                                                "range": [
                                                  4565,
                                                  4566
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 109,
                                                    "column": 32
                                                  },
                                                  "end": {
                                                    "line": 109,
                                                    "column": 33
                                                  }
                                                }
                                              },
                                              "range": [
                                                4558,
                                                4566
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 109,
                                                  "column": 25
                                                },
                                                "end": {
                                                  "line": 109,
                                                  "column": 33
                                                }
                                              }
                                            },
                                            "right": {
                                              "type": "NewExpression",
                                              "callee": {
                                                "type": "Identifier",
                                                "name": "Error",
                                                "range": [
                                                  4574,
                                                  4579
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 109,
                                                    "column": 41
                                                  },
                                                  "end": {
                                                    "line": 109,
                                                    "column": 46
                                                  }
                                                }
                                              },
                                              "arguments": [
                                                {
                                                  "type": "Identifier",
                                                  "name": "e",
                                                  "range": [
                                                    4580,
                                                    4581
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 109,
                                                      "column": 47
                                                    },
                                                    "end": {
                                                      "line": 109,
                                                      "column": 48
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                4570,
                                                4582
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 109,
                                                  "column": 37
                                                },
                                                "end": {
                                                  "line": 109,
                                                  "column": 49
                                                }
                                              }
                                            },
                                            "range": [
                                              4558,
                                              4582
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 109,
                                                "column": 25
                                              },
                                              "end": {
                                                "line": 109,
                                                "column": 49
                                              }
                                            }
                                          },
                                          "range": [
                                            4545,
                                            4582
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 109,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 109,
                                              "column": 49
                                            }
                                          }
                                        },
                                        "range": [
                                          4545,
                                          4583
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 109,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 109,
                                            "column": 50
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      4503,
                                      4593
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 110,
                                        "column": 9
                                      }
                                    }
                                  },
                                  "range": [
                                    4493,
                                    4593
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 107,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 110,
                                      "column": 9
                                    }
                                  }
                                },
                                "finalizer": null,
                                "range": [
                                  4439,
                                  4593
                                ],
                                "loc": {
                                  "start": {
                                    "line": 104,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 110,
                                    "column": 9
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "Identifier",
                                  "name": "errored",
                                  "range": [
                                    4606,
                                    4613
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 111,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 111,
                                      "column": 19
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              4629,
                                              4633
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 112,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 112,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "unsubscribe",
                                            "range": [
                                              4634,
                                              4645
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 112,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 112,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "range": [
                                            4629,
                                            4645
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 112,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 112,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "arguments": [],
                                        "range": [
                                          4629,
                                          4647
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 112,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 112,
                                            "column": 30
                                          }
                                        }
                                      },
                                      "range": [
                                        4629,
                                        4648
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 112,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 112,
                                          "column": 31
                                        }
                                      }
                                    },
                                    {
                                      "type": "ReturnStatement",
                                      "argument": {
                                        "type": "Identifier",
                                        "name": "errorValue",
                                        "range": [
                                          4668,
                                          4678
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 113,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 113,
                                            "column": 29
                                          }
                                        }
                                      },
                                      "range": [
                                        4661,
                                        4679
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 113,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 113,
                                          "column": 30
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    4615,
                                    4689
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 111,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 114,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  4602,
                                  4689
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 114,
                                    "column": 9
                                  }
                                }
                              }
                            ],
                            "range": [
                              4364,
                              4695
                            ],
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 61
                              },
                              "end": {
                                "line": 115,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            4340,
                            4695
                          ],
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 37
                            },
                            "end": {
                              "line": 115,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          4307,
                          4695
                        ],
                        "loc": {
                          "start": {
                            "line": 101,
                            "column": 4
                          },
                          "end": {
                            "line": 115,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        4307,
                        4696
                      ],
                      "loc": {
                        "start": {
                          "line": 101,
                          "column": 4
                        },
                        "end": {
                          "line": 115,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "AsyncAction",
                              "range": [
                                4701,
                                4712
                              ],
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 4
                                },
                                "end": {
                                  "line": 116,
                                  "column": 15
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                4713,
                                4722
                              ],
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 16
                                },
                                "end": {
                                  "line": 116,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              4701,
                              4722
                            ],
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 4
                              },
                              "end": {
                                "line": 116,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_unsubscribe",
                            "range": [
                              4723,
                              4735
                            ],
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 26
                              },
                              "end": {
                                "line": 116,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            4701,
                            4735
                          ],
                          "loc": {
                            "start": {
                              "line": 116,
                              "column": 4
                            },
                            "end": {
                              "line": 116,
                              "column": 38
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "id",
                                      "range": [
                                        4764,
                                        4766
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 117,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 117,
                                          "column": 14
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          4769,
                                          4773
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 117,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 117,
                                            "column": 21
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "id",
                                        "range": [
                                          4774,
                                          4776
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 117,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 117,
                                            "column": 24
                                          }
                                        }
                                      },
                                      "range": [
                                        4769,
                                        4776
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 117,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 117,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "range": [
                                      4764,
                                      4776
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 117,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 117,
                                        "column": 24
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  4760,
                                  4777
                                ],
                                "loc": {
                                  "start": {
                                    "line": 117,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 117,
                                    "column": 25
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "scheduler",
                                      "range": [
                                        4790,
                                        4799
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 118,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 118,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          4802,
                                          4806
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 118,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 118,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "scheduler",
                                        "range": [
                                          4807,
                                          4816
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 118,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 118,
                                            "column": 38
                                          }
                                        }
                                      },
                                      "range": [
                                        4802,
                                        4816
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 118,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 118,
                                          "column": 38
                                        }
                                      }
                                    },
                                    "range": [
                                      4790,
                                      4816
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 118,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 118,
                                        "column": 38
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  4786,
                                  4817
                                ],
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 39
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "actions",
                                      "range": [
                                        4830,
                                        4837
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 119,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 119,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "scheduler",
                                        "range": [
                                          4840,
                                          4849
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 119,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 119,
                                            "column": 31
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "actions",
                                        "range": [
                                          4850,
                                          4857
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 119,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 119,
                                            "column": 39
                                          }
                                        }
                                      },
                                      "range": [
                                        4840,
                                        4857
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 119,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 119,
                                          "column": 39
                                        }
                                      }
                                    },
                                    "range": [
                                      4830,
                                      4857
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 119,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 119,
                                        "column": 39
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  4826,
                                  4858
                                ],
                                "loc": {
                                  "start": {
                                    "line": 119,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 119,
                                    "column": 40
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "index",
                                      "range": [
                                        4871,
                                        4876
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 120,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 120,
                                          "column": 17
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "actions",
                                          "range": [
                                            4879,
                                            4886
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 120,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 120,
                                              "column": 27
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "indexOf",
                                          "range": [
                                            4887,
                                            4894
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 120,
                                              "column": 28
                                            },
                                            "end": {
                                              "line": 120,
                                              "column": 35
                                            }
                                          }
                                        },
                                        "range": [
                                          4879,
                                          4894
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 120,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 120,
                                            "column": 35
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "ThisExpression",
                                          "range": [
                                            4895,
                                            4899
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 120,
                                              "column": 36
                                            },
                                            "end": {
                                              "line": 120,
                                              "column": 40
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        4879,
                                        4900
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 120,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 120,
                                          "column": 41
                                        }
                                      }
                                    },
                                    "range": [
                                      4871,
                                      4900
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 120,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 120,
                                        "column": 41
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  4867,
                                  4901
                                ],
                                "loc": {
                                  "start": {
                                    "line": 120,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 120,
                                    "column": 42
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        4910,
                                        4914
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 121,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 121,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "work",
                                      "range": [
                                        4915,
                                        4919
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 121,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 121,
                                          "column": 17
                                        }
                                      }
                                    },
                                    "range": [
                                      4910,
                                      4919
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 121,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 121,
                                        "column": 17
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": null,
                                    "raw": "null",
                                    "range": [
                                      4922,
                                      4926
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 121,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 121,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "range": [
                                    4910,
                                    4926
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 121,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 121,
                                      "column": 24
                                    }
                                  }
                                },
                                "range": [
                                  4910,
                                  4927
                                ],
                                "loc": {
                                  "start": {
                                    "line": 121,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 121,
                                    "column": 25
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        4936,
                                        4940
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 122,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 122,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "delay",
                                      "range": [
                                        4941,
                                        4946
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 122,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 122,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "range": [
                                      4936,
                                      4946
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 122,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 122,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": null,
                                    "raw": "null",
                                    "range": [
                                      4949,
                                      4953
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 122,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 122,
                                        "column": 25
                                      }
                                    }
                                  },
                                  "range": [
                                    4936,
                                    4953
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 122,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 122,
                                      "column": 25
                                    }
                                  }
                                },
                                "range": [
                                  4936,
                                  4954
                                ],
                                "loc": {
                                  "start": {
                                    "line": 122,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 122,
                                    "column": 26
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        4963,
                                        4967
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 123,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 123,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "state",
                                      "range": [
                                        4968,
                                        4973
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 123,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 123,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "range": [
                                      4963,
                                      4973
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 123,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 123,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": null,
                                    "raw": "null",
                                    "range": [
                                      4976,
                                      4980
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 123,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 123,
                                        "column": 25
                                      }
                                    }
                                  },
                                  "range": [
                                    4963,
                                    4980
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 25
                                    }
                                  }
                                },
                                "range": [
                                  4963,
                                  4981
                                ],
                                "loc": {
                                  "start": {
                                    "line": 123,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 123,
                                    "column": 26
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        4990,
                                        4994
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 124,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 124,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "pending",
                                      "range": [
                                        4995,
                                        5002
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 124,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 124,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "range": [
                                      4990,
                                      5002
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 124,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 124,
                                        "column": 20
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": false,
                                    "raw": "false",
                                    "range": [
                                      5005,
                                      5010
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 124,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 124,
                                        "column": 28
                                      }
                                    }
                                  },
                                  "range": [
                                    4990,
                                    5010
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 124,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 124,
                                      "column": 28
                                    }
                                  }
                                },
                                "range": [
                                  4990,
                                  5011
                                ],
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 124,
                                    "column": 29
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        5020,
                                        5024
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 125,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 125,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "scheduler",
                                      "range": [
                                        5025,
                                        5034
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 125,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 125,
                                          "column": 22
                                        }
                                      }
                                    },
                                    "range": [
                                      5020,
                                      5034
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 125,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 125,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": null,
                                    "raw": "null",
                                    "range": [
                                      5037,
                                      5041
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 125,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 125,
                                        "column": 29
                                      }
                                    }
                                  },
                                  "range": [
                                    5020,
                                    5041
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 125,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 125,
                                      "column": 29
                                    }
                                  }
                                },
                                "range": [
                                  5020,
                                  5042
                                ],
                                "loc": {
                                  "start": {
                                    "line": 125,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 125,
                                    "column": 30
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "BinaryExpression",
                                  "operator": "!==",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "index",
                                    "range": [
                                      5055,
                                      5060
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 126,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 126,
                                        "column": 17
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "UnaryExpression",
                                    "operator": "-",
                                    "argument": {
                                      "type": "Literal",
                                      "value": 1,
                                      "raw": "1",
                                      "range": [
                                        5066,
                                        5067
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 126,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 126,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "prefix": true,
                                    "range": [
                                      5065,
                                      5067
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 126,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 126,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "range": [
                                    5055,
                                    5067
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 126,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 126,
                                      "column": 24
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "actions",
                                            "range": [
                                              5083,
                                              5090
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 127,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 127,
                                                "column": 19
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "splice",
                                            "range": [
                                              5091,
                                              5097
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 127,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 127,
                                                "column": 26
                                              }
                                            }
                                          },
                                          "range": [
                                            5083,
                                            5097
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 127,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 127,
                                              "column": 26
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "name": "index",
                                            "range": [
                                              5098,
                                              5103
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 127,
                                                "column": 27
                                              },
                                              "end": {
                                                "line": 127,
                                                "column": 32
                                              }
                                            }
                                          },
                                          {
                                            "type": "Literal",
                                            "value": 1,
                                            "raw": "1",
                                            "range": [
                                              5105,
                                              5106
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 127,
                                                "column": 34
                                              },
                                              "end": {
                                                "line": 127,
                                                "column": 35
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          5083,
                                          5107
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 127,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 127,
                                            "column": 36
                                          }
                                        }
                                      },
                                      "range": [
                                        5083,
                                        5108
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 127,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 127,
                                          "column": 37
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    5069,
                                    5118
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 126,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 128,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  5051,
                                  5118
                                ],
                                "loc": {
                                  "start": {
                                    "line": 126,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 9
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "BinaryExpression",
                                  "operator": "!=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "id",
                                    "range": [
                                      5131,
                                      5133
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 14
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": null,
                                    "raw": "null",
                                    "range": [
                                      5137,
                                      5141
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "range": [
                                    5131,
                                    5141
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 22
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              5157,
                                              5161
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 130,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 130,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "id",
                                            "range": [
                                              5162,
                                              5164
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 130,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 130,
                                                "column": 19
                                              }
                                            }
                                          },
                                          "range": [
                                            5157,
                                            5164
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 130,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 130,
                                              "column": 19
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                5167,
                                                5171
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 130,
                                                  "column": 22
                                                },
                                                "end": {
                                                  "line": 130,
                                                  "column": 26
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "recycleAsyncId",
                                              "range": [
                                                5172,
                                                5186
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 130,
                                                  "column": 27
                                                },
                                                "end": {
                                                  "line": 130,
                                                  "column": 41
                                                }
                                              }
                                            },
                                            "range": [
                                              5167,
                                              5186
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 130,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 130,
                                                "column": 41
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "name": "scheduler",
                                              "range": [
                                                5187,
                                                5196
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 130,
                                                  "column": 42
                                                },
                                                "end": {
                                                  "line": 130,
                                                  "column": 51
                                                }
                                              }
                                            },
                                            {
                                              "type": "Identifier",
                                              "name": "id",
                                              "range": [
                                                5198,
                                                5200
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 130,
                                                  "column": 53
                                                },
                                                "end": {
                                                  "line": 130,
                                                  "column": 55
                                                }
                                              }
                                            },
                                            {
                                              "type": "Literal",
                                              "value": null,
                                              "raw": "null",
                                              "range": [
                                                5202,
                                                5206
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 130,
                                                  "column": 57
                                                },
                                                "end": {
                                                  "line": 130,
                                                  "column": 61
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            5167,
                                            5207
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 130,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 130,
                                              "column": 62
                                            }
                                          }
                                        },
                                        "range": [
                                          5157,
                                          5207
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 130,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 130,
                                            "column": 62
                                          }
                                        }
                                      },
                                      "range": [
                                        5157,
                                        5208
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 130,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 130,
                                          "column": 63
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    5143,
                                    5218
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  5127,
                                  5218
                                ],
                                "loc": {
                                  "start": {
                                    "line": 129,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 9
                                  }
                                }
                              }
                            ],
                            "range": [
                              4750,
                              5224
                            ],
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 53
                              },
                              "end": {
                                "line": 132,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            4738,
                            5224
                          ],
                          "loc": {
                            "start": {
                              "line": 116,
                              "column": 41
                            },
                            "end": {
                              "line": 132,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          4701,
                          5224
                        ],
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 4
                          },
                          "end": {
                            "line": 132,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        4701,
                        5225
                      ],
                      "loc": {
                        "start": {
                          "line": 116,
                          "column": 4
                        },
                        "end": {
                          "line": 132,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "AsyncAction",
                        "range": [
                          5237,
                          5248
                        ],
                        "loc": {
                          "start": {
                            "line": 133,
                            "column": 11
                          },
                          "end": {
                            "line": 133,
                            "column": 22
                          }
                        }
                      },
                      "range": [
                        5230,
                        5249
                      ],
                      "loc": {
                        "start": {
                          "line": 133,
                          "column": 4
                        },
                        "end": {
                          "line": 133,
                          "column": 23
                        }
                      }
                    }
                  ],
                  "range": [
                    208,
                    5251
                  ],
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 44
                    },
                    "end": {
                      "line": 134,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  190,
                  5251
                ],
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 26
                  },
                  "end": {
                    "line": 134,
                    "column": 1
                  }
                }
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "name": "Action",
                  "range": [
                    5252,
                    5258
                  ],
                  "loc": {
                    "start": {
                      "line": 134,
                      "column": 2
                    },
                    "end": {
                      "line": 134,
                      "column": 8
                    }
                  }
                }
              ],
              "range": [
                190,
                5259
              ],
              "loc": {
                "start": {
                  "line": 8,
                  "column": 26
                },
                "end": {
                  "line": 134,
                  "column": 9
                }
              }
            },
            "range": [
              175,
              5260
            ],
            "loc": {
              "start": {
                "line": 8,
                "column": 11
              },
              "end": {
                "line": 134,
                "column": 10
              }
            }
          }
        ],
        "kind": "var",
        "range": [
          171,
          5261
        ],
        "loc": {
          "start": {
            "line": 8,
            "column": 7
          },
          "end": {
            "line": 134,
            "column": 11
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
            "range": [
              72,
              163
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 0
              },
              "end": {
                "line": 7,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "Line",
            "value": "# sourceMappingURL=AsyncAction.js.map",
            "range": [
              5262,
              5301
            ],
            "loc": {
              "start": {
                "line": 135,
                "column": 0
              },
              "end": {
                "line": 135,
                "column": 39
              }
            }
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "range": [
        164,
        5261
      ],
      "loc": {
        "start": {
          "line": 8,
          "column": 0
        },
        "end": {
          "line": 134,
          "column": 11
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            72,
            163
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 0
            },
            "end": {
              "line": 7,
              "column": 3
            }
          }
        }
      ],
      "trailingComments": [
        {
          "type": "Line",
          "value": "# sourceMappingURL=AsyncAction.js.map",
          "range": [
            5262,
            5301
          ],
          "loc": {
            "start": {
              "line": 135,
              "column": 0
            },
            "end": {
              "line": 135,
              "column": 39
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    5261
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 134,
      "column": 11
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
      "range": [
        72,
        163
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 3
        }
      }
    },
    {
      "type": "Line",
      "value": " Always replace the current state with the new state.",
      "range": [
        610,
        665
      ],
      "loc": {
        "start": {
          "line": 21,
          "column": 8
        },
        "end": {
          "line": 21,
          "column": 63
        }
      }
    },
    {
      "type": "Line",
      "value": " Set the pending flag indicating that this action has been scheduled, or",
      "range": [
        702,
        776
      ],
      "loc": {
        "start": {
          "line": 23,
          "column": 8
        },
        "end": {
          "line": 23,
          "column": 82
        }
      }
    },
    {
      "type": "Line",
      "value": " has recursively rescheduled itself.",
      "range": [
        785,
        823
      ],
      "loc": {
        "start": {
          "line": 24,
          "column": 8
        },
        "end": {
          "line": 24,
          "column": 46
        }
      }
    },
    {
      "type": "Line",
      "value": "",
      "range": [
        927,
        929
      ],
      "loc": {
        "start": {
          "line": 28,
          "column": 8
        },
        "end": {
          "line": 28,
          "column": 10
        }
      }
    },
    {
      "type": "Line",
      "value": " Important implementation note:",
      "range": [
        938,
        971
      ],
      "loc": {
        "start": {
          "line": 29,
          "column": 8
        },
        "end": {
          "line": 29,
          "column": 41
        }
      }
    },
    {
      "type": "Line",
      "value": "",
      "range": [
        980,
        982
      ],
      "loc": {
        "start": {
          "line": 30,
          "column": 8
        },
        "end": {
          "line": 30,
          "column": 10
        }
      }
    },
    {
      "type": "Line",
      "value": " Actions only execute once by default, unless rescheduled from within the",
      "range": [
        991,
        1066
      ],
      "loc": {
        "start": {
          "line": 31,
          "column": 8
        },
        "end": {
          "line": 31,
          "column": 83
        }
      }
    },
    {
      "type": "Line",
      "value": " scheduled callback. This allows us to implement single and repeat",
      "range": [
        1075,
        1143
      ],
      "loc": {
        "start": {
          "line": 32,
          "column": 8
        },
        "end": {
          "line": 32,
          "column": 76
        }
      }
    },
    {
      "type": "Line",
      "value": " actions via the same code path, without adding API surface area, as well",
      "range": [
        1152,
        1227
      ],
      "loc": {
        "start": {
          "line": 33,
          "column": 8
        },
        "end": {
          "line": 33,
          "column": 83
        }
      }
    },
    {
      "type": "Line",
      "value": " as mimic traditional recursion but across asynchronous boundaries.",
      "range": [
        1236,
        1305
      ],
      "loc": {
        "start": {
          "line": 34,
          "column": 8
        },
        "end": {
          "line": 34,
          "column": 77
        }
      }
    },
    {
      "type": "Line",
      "value": "",
      "range": [
        1314,
        1316
      ],
      "loc": {
        "start": {
          "line": 35,
          "column": 8
        },
        "end": {
          "line": 35,
          "column": 10
        }
      }
    },
    {
      "type": "Line",
      "value": " However, JS runtimes and timers distinguish between intervals achieved by",
      "range": [
        1325,
        1401
      ],
      "loc": {
        "start": {
          "line": 36,
          "column": 8
        },
        "end": {
          "line": 36,
          "column": 84
        }
      }
    },
    {
      "type": "Line",
      "value": " serial `setTimeout` calls vs. a single `setInterval` call. An interval of",
      "range": [
        1410,
        1486
      ],
      "loc": {
        "start": {
          "line": 37,
          "column": 8
        },
        "end": {
          "line": 37,
          "column": 84
        }
      }
    },
    {
      "type": "Line",
      "value": " serial `setTimeout` calls can be individually delayed, which delays",
      "range": [
        1495,
        1565
      ],
      "loc": {
        "start": {
          "line": 38,
          "column": 8
        },
        "end": {
          "line": 38,
          "column": 78
        }
      }
    },
    {
      "type": "Line",
      "value": " scheduling the next `setTimeout`, and so on. `setInterval` attempts to",
      "range": [
        1574,
        1647
      ],
      "loc": {
        "start": {
          "line": 39,
          "column": 8
        },
        "end": {
          "line": 39,
          "column": 81
        }
      }
    },
    {
      "type": "Line",
      "value": " guarantee the interval callback will be invoked more precisely to the",
      "range": [
        1656,
        1728
      ],
      "loc": {
        "start": {
          "line": 40,
          "column": 8
        },
        "end": {
          "line": 40,
          "column": 80
        }
      }
    },
    {
      "type": "Line",
      "value": " interval period, regardless of load.",
      "range": [
        1737,
        1776
      ],
      "loc": {
        "start": {
          "line": 41,
          "column": 8
        },
        "end": {
          "line": 41,
          "column": 47
        }
      }
    },
    {
      "type": "Line",
      "value": "",
      "range": [
        1785,
        1787
      ],
      "loc": {
        "start": {
          "line": 42,
          "column": 8
        },
        "end": {
          "line": 42,
          "column": 10
        }
      }
    },
    {
      "type": "Line",
      "value": " Therefore, we use `setInterval` to schedule single and repeat actions.",
      "range": [
        1796,
        1869
      ],
      "loc": {
        "start": {
          "line": 43,
          "column": 8
        },
        "end": {
          "line": 43,
          "column": 81
        }
      }
    },
    {
      "type": "Line",
      "value": " If the action reschedules itself with the same delay, the interval is not",
      "range": [
        1878,
        1954
      ],
      "loc": {
        "start": {
          "line": 44,
          "column": 8
        },
        "end": {
          "line": 44,
          "column": 84
        }
      }
    },
    {
      "type": "Line",
      "value": " canceled. If the action doesn't reschedule, or reschedules with a",
      "range": [
        1963,
        2031
      ],
      "loc": {
        "start": {
          "line": 45,
          "column": 8
        },
        "end": {
          "line": 45,
          "column": 76
        }
      }
    },
    {
      "type": "Line",
      "value": " different delay, the interval will be canceled after scheduled callback",
      "range": [
        2040,
        2114
      ],
      "loc": {
        "start": {
          "line": 46,
          "column": 8
        },
        "end": {
          "line": 46,
          "column": 82
        }
      }
    },
    {
      "type": "Line",
      "value": " execution.",
      "range": [
        2123,
        2136
      ],
      "loc": {
        "start": {
          "line": 47,
          "column": 8
        },
        "end": {
          "line": 47,
          "column": 21
        }
      }
    },
    {
      "type": "Line",
      "value": "",
      "range": [
        2145,
        2147
      ],
      "loc": {
        "start": {
          "line": 48,
          "column": 8
        },
        "end": {
          "line": 48,
          "column": 10
        }
      }
    },
    {
      "type": "Line",
      "value": " If this action has already an async Id, don't request a new one.",
      "range": [
        2285,
        2352
      ],
      "loc": {
        "start": {
          "line": 53,
          "column": 8
        },
        "end": {
          "line": 53,
          "column": 75
        }
      }
    },
    {
      "type": "Line",
      "value": " If this action is rescheduled with the same delay time, don't clear the interval id.",
      "range": [
        2796,
        2883
      ],
      "loc": {
        "start": {
          "line": 63,
          "column": 8
        },
        "end": {
          "line": 63,
          "column": 95
        }
      }
    },
    {
      "type": "Line",
      "value": " Otherwise, if the action's delay time is different from the current delay,",
      "range": [
        2979,
        3056
      ],
      "loc": {
        "start": {
          "line": 67,
          "column": 8
        },
        "end": {
          "line": 67,
          "column": 85
        }
      }
    },
    {
      "type": "Line",
      "value": " clear the interval id",
      "range": [
        3065,
        3089
      ],
      "loc": {
        "start": {
          "line": 68,
          "column": 8
        },
        "end": {
          "line": 68,
          "column": 32
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Immediately executes this action and the `work` it contains.\n     * @return {any}\n     ",
      "range": [
        3166,
        3266
      ],
      "loc": {
        "start": {
          "line": 71,
          "column": 4
        },
        "end": {
          "line": 74,
          "column": 7
        }
      }
    },
    {
      "type": "Line",
      "value": " Dequeue if the action didn't reschedule itself. Don't call",
      "range": [
        3638,
        3699
      ],
      "loc": {
        "start": {
          "line": 85,
          "column": 12
        },
        "end": {
          "line": 85,
          "column": 73
        }
      }
    },
    {
      "type": "Line",
      "value": " unsubscribe(), because the action could reschedule later.",
      "range": [
        3712,
        3772
      ],
      "loc": {
        "start": {
          "line": 86,
          "column": 12
        },
        "end": {
          "line": 86,
          "column": 72
        }
      }
    },
    {
      "type": "Line",
      "value": " For example:",
      "range": [
        3785,
        3800
      ],
      "loc": {
        "start": {
          "line": 87,
          "column": 12
        },
        "end": {
          "line": 87,
          "column": 27
        }
      }
    },
    {
      "type": "Line",
      "value": " ```",
      "range": [
        3813,
        3819
      ],
      "loc": {
        "start": {
          "line": 88,
          "column": 12
        },
        "end": {
          "line": 88,
          "column": 18
        }
      }
    },
    {
      "type": "Line",
      "value": " scheduler.schedule(function doWork(counter) {",
      "range": [
        3832,
        3880
      ],
      "loc": {
        "start": {
          "line": 89,
          "column": 12
        },
        "end": {
          "line": 89,
          "column": 60
        }
      }
    },
    {
      "type": "Line",
      "value": "   /* ... I'm a busy worker bee ... */",
      "range": [
        3893,
        3933
      ],
      "loc": {
        "start": {
          "line": 90,
          "column": 12
        },
        "end": {
          "line": 90,
          "column": 52
        }
      }
    },
    {
      "type": "Line",
      "value": "   var originalAction = this;",
      "range": [
        3946,
        3977
      ],
      "loc": {
        "start": {
          "line": 91,
          "column": 12
        },
        "end": {
          "line": 91,
          "column": 43
        }
      }
    },
    {
      "type": "Line",
      "value": "   /* wait 100ms before rescheduling the action */",
      "range": [
        3990,
        4042
      ],
      "loc": {
        "start": {
          "line": 92,
          "column": 12
        },
        "end": {
          "line": 92,
          "column": 64
        }
      }
    },
    {
      "type": "Line",
      "value": "   setTimeout(function () {",
      "range": [
        4055,
        4084
      ],
      "loc": {
        "start": {
          "line": 93,
          "column": 12
        },
        "end": {
          "line": 93,
          "column": 41
        }
      }
    },
    {
      "type": "Line",
      "value": "     originalAction.schedule(counter + 1);",
      "range": [
        4097,
        4141
      ],
      "loc": {
        "start": {
          "line": 94,
          "column": 12
        },
        "end": {
          "line": 94,
          "column": 56
        }
      }
    },
    {
      "type": "Line",
      "value": "   }, 100);",
      "range": [
        4154,
        4167
      ],
      "loc": {
        "start": {
          "line": 95,
          "column": 12
        },
        "end": {
          "line": 95,
          "column": 25
        }
      }
    },
    {
      "type": "Line",
      "value": " }, 1000);",
      "range": [
        4180,
        4192
      ],
      "loc": {
        "start": {
          "line": 96,
          "column": 12
        },
        "end": {
          "line": 96,
          "column": 24
        }
      }
    },
    {
      "type": "Line",
      "value": " ```",
      "range": [
        4205,
        4211
      ],
      "loc": {
        "start": {
          "line": 97,
          "column": 12
        },
        "end": {
          "line": 97,
          "column": 18
        }
      }
    },
    {
      "type": "Line",
      "value": "# sourceMappingURL=AsyncAction.js.map",
      "range": [
        5262,
        5301
      ],
      "loc": {
        "start": {
          "line": 135,
          "column": 0
        },
        "end": {
          "line": 135,
          "column": 39
        }
      }
    }
  ]
}