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