1 {
   2     "type": "Program",
   3     "body": [
   4         {
   5             "type": "BlockStatement",
   6             "block": {
   7                 "type": "BlockStatement",
   8                 "body": [
   9                     {
  10                         "type": "TryStatement",
  11                         "block": {
  12                             "type": "BlockStatement",
  13                             "body": []
  14                         },
  15                         "guardedHandlers": [],
  16                         "handler": {
  17                             "type": "CatchClause",
  18                             "param": {
  19                                 "type": "Identifier",
  20                                 "name": "e"
  21                             },
  22                             "body": {
  23                                 "type": "BlockStatement",
  24                                 "body": []
  25                             }
  26                         },
  27                         "finalizer": null
  28                     }
  29                 ]
  30             }
  31         }
  32     ]
  33 }
  34 {
  35     "type": "Program",
  36     "body": [
  37         {
  38             "type": "BlockStatement",
  39             "block": {
  40                 "type": "BlockStatement",
  41                 "body": [
  42                     {
  43                         "type": "TryStatement",
  44                         "block": {
  45                             "type": "BlockStatement",
  46                             "body": []
  47                         },
  48                         "guardedHandlers": [],
  49                         "handler": {
  50                             "type": "CatchClause",
  51                             "param": {
  52                                 "type": "Identifier",
  53                                 "name": "e"
  54                             },
  55                             "body": {
  56                                 "type": "BlockStatement",
  57                                 "body": []
  58                             }
  59                         },
  60                         "finalizer": {
  61                             "type": "BlockStatement",
  62                             "body": []
  63                         }
  64                     }
  65                 ]
  66             }
  67         }
  68     ]
  69 }
  70 {
  71     "type": "Program",
  72     "body": [
  73         {
  74             "type": "BlockStatement",
  75             "block": {
  76                 "type": "BlockStatement",
  77                 "body": [
  78                     {
  79                         "type": "TryStatement",
  80                         "block": {
  81                             "type": "BlockStatement",
  82                             "body": []
  83                         },
  84                         "guardedHandlers": [],
  85                         "handler": null,
  86                         "finalizer": {
  87                             "type": "BlockStatement",
  88                             "body": []
  89                         }
  90                     }
  91                 ]
  92             }
  93         }
  94     ]
  95 }
  96 {
  97     "type": "Program",
  98     "body": [
  99         {
 100             "type": "BlockStatement",
 101             "block": {
 102                 "type": "BlockStatement",
 103                 "body": [
 104                     {
 105                         "type": "TryStatement",
 106                         "block": {
 107                             "type": "BlockStatement",
 108                             "body": []
 109                         },
 110                         "guardedHandlers": [],
 111                         "handler": {
 112                             "type": "CatchClause",
 113                             "param": {
 114                                 "type": "Identifier",
 115                                 "name": "e"
 116                             },
 117                             "body": {
 118                                 "type": "BlockStatement",
 119                                 "body": [
 120                                     {
 121                                         "type": "ExpressionStatement",
 122                                         "expression": {
 123                                             "type": "CallExpression",
 124                                             "callee": {
 125                                                 "type": "Identifier",
 126                                                 "name": "handle"
 127                                             },
 128                                             "arguments": []
 129                                         }
 130                                     }
 131                                 ]
 132                             }
 133                         },
 134                         "finalizer": null
 135                     }
 136                 ]
 137             }
 138         }
 139     ]
 140 }
 141 {
 142     "type": "Program",
 143     "body": [
 144         {
 145             "type": "BlockStatement",
 146             "block": {
 147                 "type": "BlockStatement",
 148                 "body": [
 149                     {
 150                         "type": "TryStatement",
 151                         "block": {
 152                             "type": "BlockStatement",
 153                             "body": [
 154                                 {
 155                                     "type": "ExpressionStatement",
 156                                     "expression": {
 157                                         "type": "CallExpression",
 158                                         "callee": {
 159                                             "type": "Identifier",
 160                                             "name": "that"
 161                                         },
 162                                         "arguments": []
 163                                     }
 164                                 }
 165                             ]
 166                         },
 167                         "guardedHandlers": [],
 168                         "handler": {
 169                             "type": "CatchClause",
 170                             "param": {
 171                                 "type": "Identifier",
 172                                 "name": "e"
 173                             },
 174                             "body": {
 175                                 "type": "BlockStatement",
 176                                 "body": [
 177                                     {
 178                                         "type": "ExpressionStatement",
 179                                         "expression": {
 180                                             "type": "CallExpression",
 181                                             "callee": {
 182                                                 "type": "Identifier",
 183                                                 "name": "handle"
 184                                             },
 185                                             "arguments": []
 186                                         }
 187                                     }
 188                                 ]
 189                             }
 190                         },
 191                         "finalizer": {
 192                             "type": "BlockStatement",
 193                             "body": [
 194                                 {
 195                                     "type": "ExpressionStatement",
 196                                     "expression": {
 197                                         "type": "CallExpression",
 198                                         "callee": {
 199                                             "type": "Identifier",
 200                                             "name": "clean"
 201                                         },
 202                                         "arguments": []
 203                                     }
 204                                 }
 205                             ]
 206                         }
 207                     }
 208                 ]
 209             }
 210         }
 211     ]
 212 }
 213 {
 214     "type": "Program",
 215     "body": [
 216         {
 217             "type": "BlockStatement",
 218             "block": {
 219                 "type": "BlockStatement",
 220                 "body": [
 221                     {
 222                         "type": "TryStatement",
 223                         "block": {
 224                             "type": "BlockStatement",
 225                             "body": [
 226                                 {
 227                                     "type": "ExpressionStatement",
 228                                     "expression": {
 229                                         "type": "CallExpression",
 230                                         "callee": {
 231                                             "type": "Identifier",
 232                                             "name": "that"
 233                                         },
 234                                         "arguments": []
 235                                     }
 236                                 }
 237                             ]
 238                         },
 239                         "guardedHandlers": [
 240                             {
 241                                 "type": "CatchClause",
 242                                 "param": {
 243                                     "type": "Identifier",
 244                                     "name": "e"
 245                                 },
 246                                 "guard": {
 247                                     "type": "BinaryExpression",
 248                                     "operator": "instanceof",
 249                                     "left": {
 250                                         "type": "Identifier",
 251                                         "name": "e"
 252                                     },
 253                                     "right": {
 254                                         "type": "Identifier",
 255                                         "name": "TypeError"
 256                                     }
 257                                 },
 258                                 "body": {
 259                                     "type": "BlockStatement",
 260                                     "body": [
 261                                         {
 262                                             "type": "ExpressionStatement",
 263                                             "expression": {
 264                                                 "type": "CallExpression",
 265                                                 "callee": {
 266                                                     "type": "Identifier",
 267                                                     "name": "handle"
 268                                                 },
 269                                                 "arguments": []
 270                                             }
 271                                         }
 272                                     ]
 273                                 }
 274                             }
 275                         ],
 276                         "handler": {
 277                             "type": "CatchClause",
 278                             "param": {
 279                                 "type": "Identifier",
 280                                 "name": "e"
 281                             },
 282                             "body": {
 283                                 "type": "BlockStatement",
 284                                 "body": [
 285                                     {
 286                                         "type": "ExpressionStatement",
 287                                         "expression": {
 288                                             "type": "CallExpression",
 289                                             "callee": {
 290                                                 "type": "Identifier",
 291                                                 "name": "rest"
 292                                             },
 293                                             "arguments": []
 294                                         }
 295                                     }
 296                                 ]
 297                             }
 298                         },
 299                         "finalizer": null
 300                     }
 301                 ]
 302             }
 303         }
 304     ]
 305 }