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