{
  "type": "File",
  "start": 0,
  "end": 2764,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 121,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 2764,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 121,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ImportDeclaration",
        "start": 19,
        "end": 49,
        "loc": {
          "start": {
            "line": 2,
            "column": 0
          },
          "end": {
            "line": 2,
            "column": 30
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 26,
            "end": 33,
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 14
              }
            },
            "local": {
              "type": "Identifier",
              "start": 26,
              "end": 33,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 7
                },
                "end": {
                  "line": 2,
                  "column": 14
                },
                "identifierName": "xRegExp"
              },
              "name": "xRegExp",
              "leadingComments": null
            },
            "leadingComments": null
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 39,
          "end": 48,
          "loc": {
            "start": {
              "line": 2,
              "column": 20
            },
            "end": {
              "line": 2,
              "column": 29
            }
          },
          "extra": {
            "rawValue": "xregexp",
            "raw": "\"xregexp\""
          },
          "value": "xregexp"
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " AST class nodes",
            "start": 0,
            "end": 18,
            "loc": {
              "start": {
                "line": 1,
                "column": 0
              },
              "end": {
                "line": 1,
                "column": 18
              }
            }
          }
        ]
      },
      {
        "type": "ImportDeclaration",
        "start": 50,
        "end": 82,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 3,
            "column": 32
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 57,
            "end": 62,
            "loc": {
              "start": {
                "line": 3,
                "column": 7
              },
              "end": {
                "line": 3,
                "column": 12
              }
            },
            "local": {
              "type": "Identifier",
              "start": 57,
              "end": 62,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 7
                },
                "end": {
                  "line": 3,
                  "column": 12
                },
                "identifierName": "utils"
              },
              "name": "utils"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 68,
          "end": 81,
          "loc": {
            "start": {
              "line": 3,
              "column": 18
            },
            "end": {
              "line": 3,
              "column": 31
            }
          },
          "extra": {
            "rawValue": "../utils.js",
            "raw": "\"../utils.js\""
          },
          "value": "../utils.js"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 84,
        "end": 132,
        "loc": {
          "start": {
            "line": 5,
            "column": 0
          },
          "end": {
            "line": 5,
            "column": 48
          }
        },
        "specifiers": [
          {
            "type": "ImportSpecifier",
            "start": 93,
            "end": 105,
            "loc": {
              "start": {
                "line": 5,
                "column": 9
              },
              "end": {
                "line": 5,
                "column": 21
              }
            },
            "imported": {
              "type": "Identifier",
              "start": 93,
              "end": 105,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 9
                },
                "end": {
                  "line": 5,
                  "column": 21
                },
                "identifierName": "SpecialForms"
              },
              "name": "SpecialForms"
            },
            "local": {
              "type": "Identifier",
              "start": 93,
              "end": 105,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 9
                },
                "end": {
                  "line": 5,
                  "column": 21
                },
                "identifierName": "SpecialForms"
              },
              "name": "SpecialForms"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 113,
          "end": 131,
          "loc": {
            "start": {
              "line": 5,
              "column": 29
            },
            "end": {
              "line": 5,
              "column": 47
            }
          },
          "extra": {
            "rawValue": "./environment.js",
            "raw": "\"./environment.js\""
          },
          "value": "./environment.js"
        }
      },
      {
        "type": "Identifier",
        "start": 134,
        "end": 274,
        "loc": {
          "start": {
            "line": 7,
            "column": 0
          },
          "end": {
            "line": 16,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 140,
          "end": 145,
          "loc": {
            "start": {
              "line": 7,
              "column": 6
            },
            "end": {
              "line": 7,
              "column": 11
            },
            "identifierName": "Value"
          },
          "name": "Value"
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "start": 146,
          "end": 274,
          "loc": {
            "start": {
              "line": 7,
              "column": 12
            },
            "end": {
              "line": 16,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ClassMethod",
              "start": 150,
              "end": 229,
              "loc": {
                "start": {
                  "line": 8,
                  "column": 2
                },
                "end": {
                  "line": 11,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 150,
                "end": 161,
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 2
                  },
                  "end": {
                    "line": 8,
                    "column": 13
                  },
                  "identifierName": "constructor"
                },
                "name": "constructor"
              },
              "kind": "constructor",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 162,
                  "end": 167,
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 14
                    },
                    "end": {
                      "line": 8,
                      "column": 19
                    },
                    "identifierName": "token"
                  },
                  "name": "token"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 169,
                "end": 229,
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 21
                  },
                  "end": {
                    "line": 11,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 175,
                    "end": 195,
                    "loc": {
                      "start": {
                        "line": 9,
                        "column": 4
                      },
                      "end": {
                        "line": 9,
                        "column": 24
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 175,
                      "end": 194,
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 4
                        },
                        "end": {
                          "line": 9,
                          "column": 23
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 175,
                        "end": 184,
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 4
                          },
                          "end": {
                            "line": 9,
                            "column": 13
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 175,
                          "end": 179,
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 4
                            },
                            "end": {
                              "line": 9,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 180,
                          "end": 184,
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 9
                            },
                            "end": {
                              "line": 9,
                              "column": 13
                            },
                            "identifierName": "type"
                          },
                          "name": "type"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "StringLiteral",
                        "start": 187,
                        "end": 194,
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 16
                          },
                          "end": {
                            "line": 9,
                            "column": 23
                          }
                        },
                        "extra": {
                          "rawValue": "value",
                          "raw": "\"value\""
                        },
                        "value": "value"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 200,
                    "end": 225,
                    "loc": {
                      "start": {
                        "line": 10,
                        "column": 4
                      },
                      "end": {
                        "line": 10,
                        "column": 29
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 200,
                      "end": 224,
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 4
                        },
                        "end": {
                          "line": 10,
                          "column": 28
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 200,
                        "end": 210,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 4
                          },
                          "end": {
                            "line": 10,
                            "column": 14
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 200,
                          "end": 204,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 4
                            },
                            "end": {
                              "line": 10,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 205,
                          "end": 210,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 9
                            },
                            "end": {
                              "line": 10,
                              "column": 14
                            },
                            "identifierName": "value"
                          },
                          "name": "value"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 213,
                        "end": 224,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 17
                          },
                          "end": {
                            "line": 10,
                            "column": 28
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 213,
                          "end": 218,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 17
                            },
                            "end": {
                              "line": 10,
                              "column": 22
                            },
                            "identifierName": "token"
                          },
                          "name": "token"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 219,
                          "end": 224,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 23
                            },
                            "end": {
                              "line": 10,
                              "column": 28
                            },
                            "identifierName": "value"
                          },
                          "name": "value"
                        },
                        "computed": false
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 233,
              "end": 272,
              "loc": {
                "start": {
                  "line": 13,
                  "column": 2
                },
                "end": {
                  "line": 15,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 233,
                "end": 241,
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 2
                  },
                  "end": {
                    "line": 13,
                    "column": 10
                  },
                  "identifierName": "evaluate"
                },
                "name": "evaluate"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "start": 244,
                "end": 272,
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 13
                  },
                  "end": {
                    "line": 15,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 250,
                    "end": 268,
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 4
                      },
                      "end": {
                        "line": 14,
                        "column": 22
                      }
                    },
                    "argument": {
                      "type": "MemberExpression",
                      "start": 257,
                      "end": 267,
                      "loc": {
                        "start": {
                          "line": 14,
                          "column": 11
                        },
                        "end": {
                          "line": 14,
                          "column": 21
                        }
                      },
                      "object": {
                        "type": "ThisExpression",
                        "start": 257,
                        "end": 261,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 11
                          },
                          "end": {
                            "line": 14,
                            "column": 15
                          }
                        }
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 262,
                        "end": 267,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 16
                          },
                          "end": {
                            "line": 14,
                            "column": 21
                          },
                          "identifierName": "value"
                        },
                        "name": "value"
                      },
                      "computed": false
                    }
                  }
                ],
                "directives": []
              }
            }
          ]
        },
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 276,
        "end": 708,
        "loc": {
          "start": {
            "line": 18,
            "column": 0
          },
          "end": {
            "line": 36,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 282,
          "end": 286,
          "loc": {
            "start": {
              "line": 18,
              "column": 6
            },
            "end": {
              "line": 18,
              "column": 10
            },
            "identifierName": "Word"
          },
          "name": "Word"
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "start": 287,
          "end": 708,
          "loc": {
            "start": {
              "line": 18,
              "column": 11
            },
            "end": {
              "line": 36,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ClassMethod",
              "start": 291,
              "end": 368,
              "loc": {
                "start": {
                  "line": 19,
                  "column": 2
                },
                "end": {
                  "line": 22,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 291,
                "end": 302,
                "loc": {
                  "start": {
                    "line": 19,
                    "column": 2
                  },
                  "end": {
                    "line": 19,
                    "column": 13
                  },
                  "identifierName": "constructor"
                },
                "name": "constructor"
              },
              "kind": "constructor",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 303,
                  "end": 308,
                  "loc": {
                    "start": {
                      "line": 19,
                      "column": 14
                    },
                    "end": {
                      "line": 19,
                      "column": 19
                    },
                    "identifierName": "token"
                  },
                  "name": "token"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 310,
                "end": 368,
                "loc": {
                  "start": {
                    "line": 19,
                    "column": 21
                  },
                  "end": {
                    "line": 22,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 316,
                    "end": 335,
                    "loc": {
                      "start": {
                        "line": 20,
                        "column": 4
                      },
                      "end": {
                        "line": 20,
                        "column": 23
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 316,
                      "end": 334,
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 4
                        },
                        "end": {
                          "line": 20,
                          "column": 22
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 316,
                        "end": 325,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 4
                          },
                          "end": {
                            "line": 20,
                            "column": 13
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 316,
                          "end": 320,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 4
                            },
                            "end": {
                              "line": 20,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 321,
                          "end": 325,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 9
                            },
                            "end": {
                              "line": 20,
                              "column": 13
                            },
                            "identifierName": "type"
                          },
                          "name": "type"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "StringLiteral",
                        "start": 328,
                        "end": 334,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 16
                          },
                          "end": {
                            "line": 20,
                            "column": 22
                          }
                        },
                        "extra": {
                          "rawValue": "word",
                          "raw": "\"word\""
                        },
                        "value": "word"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 340,
                    "end": 364,
                    "loc": {
                      "start": {
                        "line": 21,
                        "column": 4
                      },
                      "end": {
                        "line": 21,
                        "column": 28
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 340,
                      "end": 363,
                      "loc": {
                        "start": {
                          "line": 21,
                          "column": 4
                        },
                        "end": {
                          "line": 21,
                          "column": 27
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 340,
                        "end": 349,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 4
                          },
                          "end": {
                            "line": 21,
                            "column": 13
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 340,
                          "end": 344,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 4
                            },
                            "end": {
                              "line": 21,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 345,
                          "end": 349,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 9
                            },
                            "end": {
                              "line": 21,
                              "column": 13
                            },
                            "identifierName": "name"
                          },
                          "name": "name"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 352,
                        "end": 363,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 16
                          },
                          "end": {
                            "line": 21,
                            "column": 27
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 352,
                          "end": 357,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 16
                            },
                            "end": {
                              "line": 21,
                              "column": 21
                            },
                            "identifierName": "token"
                          },
                          "name": "token"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 358,
                          "end": 363,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 22
                            },
                            "end": {
                              "line": 21,
                              "column": 27
                            },
                            "identifierName": "value"
                          },
                          "name": "value"
                        },
                        "computed": false
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 372,
              "end": 706,
              "loc": {
                "start": {
                  "line": 24,
                  "column": 2
                },
                "end": {
                  "line": 35,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 372,
                "end": 380,
                "loc": {
                  "start": {
                    "line": 24,
                    "column": 2
                  },
                  "end": {
                    "line": 24,
                    "column": 10
                  },
                  "identifierName": "evaluate"
                },
                "name": "evaluate"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 381,
                  "end": 384,
                  "loc": {
                    "start": {
                      "line": 24,
                      "column": 11
                    },
                    "end": {
                      "line": 24,
                      "column": 14
                    },
                    "identifierName": "env"
                  },
                  "name": "env"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 386,
                "end": 706,
                "loc": {
                  "start": {
                    "line": 24,
                    "column": 16
                  },
                  "end": {
                    "line": 35,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "IfStatement",
                    "start": 408,
                    "end": 702,
                    "loc": {
                      "start": {
                        "line": 26,
                        "column": 4
                      },
                      "end": {
                        "line": 34,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 412,
                      "end": 428,
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 8
                        },
                        "end": {
                          "line": 26,
                          "column": 24
                        }
                      },
                      "left": {
                        "type": "MemberExpression",
                        "start": 412,
                        "end": 421,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 8
                          },
                          "end": {
                            "line": 26,
                            "column": 17
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 412,
                          "end": 416,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 8
                            },
                            "end": {
                              "line": 26,
                              "column": 12
                            }
                          },
                          "leadingComments": null
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 417,
                          "end": 421,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 13
                            },
                            "end": {
                              "line": 26,
                              "column": 17
                            },
                            "identifierName": "name"
                          },
                          "name": "name"
                        },
                        "computed": false,
                        "leadingComments": null
                      },
                      "operator": "in",
                      "right": {
                        "type": "Identifier",
                        "start": 425,
                        "end": 428,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 21
                          },
                          "end": {
                            "line": 26,
                            "column": 24
                          },
                          "identifierName": "env"
                        },
                        "name": "env"
                      },
                      "leadingComments": null
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 430,
                      "end": 524,
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 26
                        },
                        "end": {
                          "line": 30,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ReturnStatement",
                          "start": 438,
                          "end": 460,
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 6
                            },
                            "end": {
                              "line": 27,
                              "column": 28
                            }
                          },
                          "argument": {
                            "type": "MemberExpression",
                            "start": 445,
                            "end": 459,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 13
                              },
                              "end": {
                                "line": 27,
                                "column": 27
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 445,
                              "end": 448,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 13
                                },
                                "end": {
                                  "line": 27,
                                  "column": 16
                                },
                                "identifierName": "env"
                              },
                              "name": "env"
                            },
                            "property": {
                              "type": "MemberExpression",
                              "start": 449,
                              "end": 458,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 17
                                },
                                "end": {
                                  "line": 27,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 449,
                                "end": 453,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 21
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 454,
                                "end": 458,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 26
                                  },
                                  "identifierName": "name"
                                },
                                "name": "name"
                              },
                              "computed": false
                            },
                            "computed": true
                          },
                          "trailingComments": [
                            {
                              "type": "CommentLine",
                              "value": " Object variable referenced without using 'this'",
                              "start": 468,
                              "end": 518,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 6
                                },
                                "end": {
                                  "line": 29,
                                  "column": 56
                                }
                              }
                            }
                          ]
                        }
                      ],
                      "directives": []
                    },
                    "alternate": {
                      "type": "IfStatement",
                      "start": 530,
                      "end": 702,
                      "loc": {
                        "start": {
                          "line": 30,
                          "column": 11
                        },
                        "end": {
                          "line": 34,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "LogicalExpression",
                        "start": 534,
                        "end": 575,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 15
                          },
                          "end": {
                            "line": 30,
                            "column": 56
                          }
                        },
                        "left": {
                          "type": "BinaryExpression",
                          "start": 534,
                          "end": 547,
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 15
                            },
                            "end": {
                              "line": 30,
                              "column": 28
                            }
                          },
                          "left": {
                            "type": "StringLiteral",
                            "start": 534,
                            "end": 540,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 15
                              },
                              "end": {
                                "line": 30,
                                "column": 21
                              }
                            },
                            "extra": {
                              "rawValue": "this",
                              "raw": "\"this\""
                            },
                            "value": "this"
                          },
                          "operator": "in",
                          "right": {
                            "type": "Identifier",
                            "start": 544,
                            "end": 547,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 25
                              },
                              "end": {
                                "line": 30,
                                "column": 28
                              },
                              "identifierName": "env"
                            },
                            "name": "env"
                          }
                        },
                        "operator": "&&",
                        "right": {
                          "type": "BinaryExpression",
                          "start": 551,
                          "end": 575,
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 32
                            },
                            "end": {
                              "line": 30,
                              "column": 56
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 551,
                            "end": 560,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 32
                              },
                              "end": {
                                "line": 30,
                                "column": 41
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 551,
                              "end": 555,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 32
                                },
                                "end": {
                                  "line": 30,
                                  "column": 36
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 556,
                              "end": 560,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 37
                                },
                                "end": {
                                  "line": 30,
                                  "column": 41
                                },
                                "identifierName": "name"
                              },
                              "name": "name"
                            },
                            "computed": false
                          },
                          "operator": "in",
                          "right": {
                            "type": "MemberExpression",
                            "start": 564,
                            "end": 575,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 45
                              },
                              "end": {
                                "line": 30,
                                "column": 56
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 564,
                              "end": 567,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 45
                                },
                                "end": {
                                  "line": 30,
                                  "column": 48
                                },
                                "identifierName": "env"
                              },
                              "name": "env"
                            },
                            "property": {
                              "type": "StringLiteral",
                              "start": 568,
                              "end": 574,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 49
                                },
                                "end": {
                                  "line": 30,
                                  "column": 55
                                }
                              },
                              "extra": {
                                "rawValue": "this",
                                "raw": "\"this\""
                              },
                              "value": "this"
                            },
                            "computed": true
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 577,
                        "end": 621,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 58
                          },
                          "end": {
                            "line": 32,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 585,
                            "end": 615,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 6
                              },
                              "end": {
                                "line": 31,
                                "column": 36
                              }
                            },
                            "argument": {
                              "type": "MemberExpression",
                              "start": 592,
                              "end": 614,
                              "loc": {
                                "start": {
                                  "line": 31,
                                  "column": 13
                                },
                                "end": {
                                  "line": 31,
                                  "column": 35
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 592,
                                "end": 603,
                                "loc": {
                                  "start": {
                                    "line": 31,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 31,
                                    "column": 24
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 592,
                                  "end": 595,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 16
                                    },
                                    "identifierName": "env"
                                  },
                                  "name": "env"
                                },
                                "property": {
                                  "type": "StringLiteral",
                                  "start": 596,
                                  "end": 602,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 23
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "this",
                                    "raw": "\"this\""
                                  },
                                  "value": "this"
                                },
                                "computed": true
                              },
                              "property": {
                                "type": "MemberExpression",
                                "start": 604,
                                "end": 613,
                                "loc": {
                                  "start": {
                                    "line": 31,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 31,
                                    "column": 34
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 604,
                                  "end": 608,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 29
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 609,
                                  "end": 613,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 34
                                    },
                                    "identifierName": "name"
                                  },
                                  "name": "name"
                                },
                                "computed": false
                              },
                              "computed": true
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": {
                        "type": "BlockStatement",
                        "start": 627,
                        "end": 702,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 11
                          },
                          "end": {
                            "line": 34,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ThrowStatement",
                            "start": 635,
                            "end": 696,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 6
                              },
                              "end": {
                                "line": 33,
                                "column": 67
                              }
                            },
                            "argument": {
                              "type": "NewExpression",
                              "start": 641,
                              "end": 695,
                              "loc": {
                                "start": {
                                  "line": 33,
                                  "column": 12
                                },
                                "end": {
                                  "line": 33,
                                  "column": 66
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 645,
                                "end": 659,
                                "loc": {
                                  "start": {
                                    "line": 33,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 33,
                                    "column": 30
                                  },
                                  "identifierName": "ReferenceError"
                                },
                                "name": "ReferenceError"
                              },
                              "arguments": [
                                {
                                  "type": "TemplateLiteral",
                                  "start": 660,
                                  "end": 694,
                                  "loc": {
                                    "start": {
                                      "line": 33,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 33,
                                      "column": 65
                                    }
                                  },
                                  "expressions": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 683,
                                      "end": 692,
                                      "loc": {
                                        "start": {
                                          "line": 33,
                                          "column": 54
                                        },
                                        "end": {
                                          "line": 33,
                                          "column": 63
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 683,
                                        "end": 687,
                                        "loc": {
                                          "start": {
                                            "line": 33,
                                            "column": 54
                                          },
                                          "end": {
                                            "line": 33,
                                            "column": 58
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 688,
                                        "end": 692,
                                        "loc": {
                                          "start": {
                                            "line": 33,
                                            "column": 59
                                          },
                                          "end": {
                                            "line": 33,
                                            "column": 63
                                          },
                                          "identifierName": "name"
                                        },
                                        "name": "name"
                                      },
                                      "computed": false
                                    }
                                  ],
                                  "quasis": [
                                    {
                                      "type": "TemplateElement",
                                      "start": 661,
                                      "end": 681,
                                      "loc": {
                                        "start": {
                                          "line": 33,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 33,
                                          "column": 52
                                        }
                                      },
                                      "value": {
                                        "raw": "Undefined variable: ",
                                        "cooked": "Undefined variable: "
                                      },
                                      "tail": false
                                    },
                                    {
                                      "type": "TemplateElement",
                                      "start": 693,
                                      "end": 693,
                                      "loc": {
                                        "start": {
                                          "line": 33,
                                          "column": 64
                                        },
                                        "end": {
                                          "line": 33,
                                          "column": 64
                                        }
                                      },
                                      "value": {
                                        "raw": "",
                                        "cooked": ""
                                      },
                                      "tail": true
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        ],
                        "directives": []
                      }
                    },
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Variable",
                        "start": 392,
                        "end": 403,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 4
                          },
                          "end": {
                            "line": 25,
                            "column": 15
                          }
                        }
                      }
                    ]
                  }
                ],
                "directives": []
              }
            }
          ]
        },
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 710,
        "end": 2523,
        "loc": {
          "start": {
            "line": 38,
            "column": 0
          },
          "end": {
            "line": 102,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 716,
          "end": 721,
          "loc": {
            "start": {
              "line": 38,
              "column": 6
            },
            "end": {
              "line": 38,
              "column": 11
            },
            "identifierName": "Apply"
          },
          "name": "Apply"
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "start": 722,
          "end": 2523,
          "loc": {
            "start": {
              "line": 38,
              "column": 12
            },
            "end": {
              "line": 102,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ClassMethod",
              "start": 726,
              "end": 820,
              "loc": {
                "start": {
                  "line": 39,
                  "column": 2
                },
                "end": {
                  "line": 43,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 726,
                "end": 737,
                "loc": {
                  "start": {
                    "line": 39,
                    "column": 2
                  },
                  "end": {
                    "line": 39,
                    "column": 13
                  },
                  "identifierName": "constructor"
                },
                "name": "constructor"
              },
              "kind": "constructor",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 738,
                  "end": 742,
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 14
                    },
                    "end": {
                      "line": 39,
                      "column": 18
                    },
                    "identifierName": "expr"
                  },
                  "name": "expr"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 744,
                "end": 820,
                "loc": {
                  "start": {
                    "line": 39,
                    "column": 20
                  },
                  "end": {
                    "line": 43,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 750,
                    "end": 770,
                    "loc": {
                      "start": {
                        "line": 40,
                        "column": 4
                      },
                      "end": {
                        "line": 40,
                        "column": 24
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 750,
                      "end": 769,
                      "loc": {
                        "start": {
                          "line": 40,
                          "column": 4
                        },
                        "end": {
                          "line": 40,
                          "column": 23
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 750,
                        "end": 759,
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 4
                          },
                          "end": {
                            "line": 40,
                            "column": 13
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 750,
                          "end": 754,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 4
                            },
                            "end": {
                              "line": 40,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 755,
                          "end": 759,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 9
                            },
                            "end": {
                              "line": 40,
                              "column": 13
                            },
                            "identifierName": "type"
                          },
                          "name": "type"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "StringLiteral",
                        "start": 762,
                        "end": 769,
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 16
                          },
                          "end": {
                            "line": 40,
                            "column": 23
                          }
                        },
                        "extra": {
                          "rawValue": "apply",
                          "raw": "\"apply\""
                        },
                        "value": "apply"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 775,
                    "end": 796,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 4
                      },
                      "end": {
                        "line": 41,
                        "column": 25
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 775,
                      "end": 795,
                      "loc": {
                        "start": {
                          "line": 41,
                          "column": 4
                        },
                        "end": {
                          "line": 41,
                          "column": 24
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 775,
                        "end": 788,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 4
                          },
                          "end": {
                            "line": 41,
                            "column": 17
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 775,
                          "end": 779,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 4
                            },
                            "end": {
                              "line": 41,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 780,
                          "end": 788,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 9
                            },
                            "end": {
                              "line": 41,
                              "column": 17
                            },
                            "identifierName": "operator"
                          },
                          "name": "operator"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 791,
                        "end": 795,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 20
                          },
                          "end": {
                            "line": 41,
                            "column": 24
                          },
                          "identifierName": "expr"
                        },
                        "name": "expr"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 801,
                    "end": 816,
                    "loc": {
                      "start": {
                        "line": 42,
                        "column": 4
                      },
                      "end": {
                        "line": 42,
                        "column": 19
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 801,
                      "end": 815,
                      "loc": {
                        "start": {
                          "line": 42,
                          "column": 4
                        },
                        "end": {
                          "line": 42,
                          "column": 18
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 801,
                        "end": 810,
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 4
                          },
                          "end": {
                            "line": 42,
                            "column": 13
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 801,
                          "end": 805,
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 4
                            },
                            "end": {
                              "line": 42,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 806,
                          "end": 810,
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 9
                            },
                            "end": {
                              "line": 42,
                              "column": 13
                            },
                            "identifierName": "args"
                          },
                          "name": "args"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "ArrayExpression",
                        "start": 813,
                        "end": 815,
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 16
                          },
                          "end": {
                            "line": 42,
                            "column": 18
                          }
                        },
                        "elements": []
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 824,
              "end": 2521,
              "loc": {
                "start": {
                  "line": 45,
                  "column": 2
                },
                "end": {
                  "line": 101,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 824,
                "end": 832,
                "loc": {
                  "start": {
                    "line": 45,
                    "column": 2
                  },
                  "end": {
                    "line": 45,
                    "column": 10
                  },
                  "identifierName": "evaluate"
                },
                "name": "evaluate"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 833,
                  "end": 836,
                  "loc": {
                    "start": {
                      "line": 45,
                      "column": 11
                    },
                    "end": {
                      "line": 45,
                      "column": 14
                    },
                    "identifierName": "env"
                  },
                  "name": "env"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 838,
                "end": 2521,
                "loc": {
                  "start": {
                    "line": 45,
                    "column": 16
                  },
                  "end": {
                    "line": 101,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "IfStatement",
                    "start": 887,
                    "end": 1030,
                    "loc": {
                      "start": {
                        "line": 47,
                        "column": 4
                      },
                      "end": {
                        "line": 49,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "LogicalExpression",
                      "start": 891,
                      "end": 958,
                      "loc": {
                        "start": {
                          "line": 47,
                          "column": 8
                        },
                        "end": {
                          "line": 47,
                          "column": 75
                        }
                      },
                      "left": {
                        "type": "BinaryExpression",
                        "start": 891,
                        "end": 920,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 8
                          },
                          "end": {
                            "line": 47,
                            "column": 37
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 891,
                          "end": 909,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 8
                            },
                            "end": {
                              "line": 47,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 891,
                            "end": 904,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 8
                              },
                              "end": {
                                "line": 47,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 891,
                              "end": 895,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 8
                                },
                                "end": {
                                  "line": 47,
                                  "column": 12
                                }
                              },
                              "leadingComments": null
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 896,
                              "end": 904,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 13
                                },
                                "end": {
                                  "line": 47,
                                  "column": 21
                                },
                                "identifierName": "operator"
                              },
                              "name": "operator"
                            },
                            "computed": false,
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 905,
                            "end": 909,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 22
                              },
                              "end": {
                                "line": 47,
                                "column": 26
                              },
                              "identifierName": "type"
                            },
                            "name": "type"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "operator": "===",
                        "right": {
                          "type": "StringLiteral",
                          "start": 914,
                          "end": 920,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 31
                            },
                            "end": {
                              "line": 47,
                              "column": 37
                            }
                          },
                          "extra": {
                            "rawValue": "word",
                            "raw": "\"word\""
                          },
                          "value": "word"
                        },
                        "leadingComments": null
                      },
                      "operator": "&&",
                      "right": {
                        "type": "BinaryExpression",
                        "start": 924,
                        "end": 958,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 41
                          },
                          "end": {
                            "line": 47,
                            "column": 75
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 924,
                          "end": 942,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 41
                            },
                            "end": {
                              "line": 47,
                              "column": 59
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 924,
                            "end": 937,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 41
                              },
                              "end": {
                                "line": 47,
                                "column": 54
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 924,
                              "end": 928,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 41
                                },
                                "end": {
                                  "line": 47,
                                  "column": 45
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 929,
                              "end": 937,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 46
                                },
                                "end": {
                                  "line": 47,
                                  "column": 54
                                },
                                "identifierName": "operator"
                              },
                              "name": "operator"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 938,
                            "end": 942,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 55
                              },
                              "end": {
                                "line": 47,
                                "column": 59
                              },
                              "identifierName": "name"
                            },
                            "name": "name"
                          },
                          "computed": false
                        },
                        "operator": "in",
                        "right": {
                          "type": "Identifier",
                          "start": 946,
                          "end": 958,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 63
                            },
                            "end": {
                              "line": 47,
                              "column": 75
                            },
                            "identifierName": "SpecialForms"
                          },
                          "name": "SpecialForms"
                        }
                      },
                      "leadingComments": null
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 960,
                      "end": 1030,
                      "loc": {
                        "start": {
                          "line": 47,
                          "column": 77
                        },
                        "end": {
                          "line": 49,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ReturnStatement",
                          "start": 968,
                          "end": 1024,
                          "loc": {
                            "start": {
                              "line": 48,
                              "column": 6
                            },
                            "end": {
                              "line": 48,
                              "column": 62
                            }
                          },
                          "argument": {
                            "type": "CallExpression",
                            "start": 975,
                            "end": 1023,
                            "loc": {
                              "start": {
                                "line": 48,
                                "column": 13
                              },
                              "end": {
                                "line": 48,
                                "column": 61
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 975,
                              "end": 1007,
                              "loc": {
                                "start": {
                                  "line": 48,
                                  "column": 13
                                },
                                "end": {
                                  "line": 48,
                                  "column": 45
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 975,
                                "end": 987,
                                "loc": {
                                  "start": {
                                    "line": 48,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 48,
                                    "column": 25
                                  },
                                  "identifierName": "SpecialForms"
                                },
                                "name": "SpecialForms"
                              },
                              "property": {
                                "type": "MemberExpression",
                                "start": 988,
                                "end": 1006,
                                "loc": {
                                  "start": {
                                    "line": 48,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 48,
                                    "column": 44
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 988,
                                  "end": 1001,
                                  "loc": {
                                    "start": {
                                      "line": 48,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 48,
                                      "column": 39
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 988,
                                    "end": 992,
                                    "loc": {
                                      "start": {
                                        "line": 48,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 48,
                                        "column": 30
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 993,
                                    "end": 1001,
                                    "loc": {
                                      "start": {
                                        "line": 48,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 48,
                                        "column": 39
                                      },
                                      "identifierName": "operator"
                                    },
                                    "name": "operator"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1002,
                                  "end": 1006,
                                  "loc": {
                                    "start": {
                                      "line": 48,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 48,
                                      "column": 44
                                    },
                                    "identifierName": "name"
                                  },
                                  "name": "name"
                                },
                                "computed": false
                              },
                              "computed": true
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 1008,
                                "end": 1017,
                                "loc": {
                                  "start": {
                                    "line": 48,
                                    "column": 46
                                  },
                                  "end": {
                                    "line": 48,
                                    "column": 55
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 1008,
                                  "end": 1012,
                                  "loc": {
                                    "start": {
                                      "line": 48,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 48,
                                      "column": 50
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1013,
                                  "end": 1017,
                                  "loc": {
                                    "start": {
                                      "line": 48,
                                      "column": 51
                                    },
                                    "end": {
                                      "line": 48,
                                      "column": 55
                                    },
                                    "identifierName": "args"
                                  },
                                  "name": "args"
                                },
                                "computed": false
                              },
                              {
                                "type": "Identifier",
                                "start": 1019,
                                "end": 1022,
                                "loc": {
                                  "start": {
                                    "line": 48,
                                    "column": 57
                                  },
                                  "end": {
                                    "line": 48,
                                    "column": 60
                                  },
                                  "identifierName": "env"
                                },
                                "name": "env"
                              }
                            ]
                          }
                        }
                      ],
                      "directives": [],
                      "trailingComments": null
                    },
                    "alternate": null,
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Check if its a specialForm function",
                        "start": 844,
                        "end": 882,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 4
                          },
                          "end": {
                            "line": 46,
                            "column": 42
                          }
                        }
                      }
                    ],
                    "trailingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Evaluated operator",
                        "start": 1036,
                        "end": 1057,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 4
                          },
                          "end": {
                            "line": 51,
                            "column": 25
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 1062,
                    "end": 1099,
                    "loc": {
                      "start": {
                        "line": 52,
                        "column": 4
                      },
                      "end": {
                        "line": 52,
                        "column": 41
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 1066,
                        "end": 1098,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 8
                          },
                          "end": {
                            "line": 52,
                            "column": 40
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 1066,
                          "end": 1068,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 8
                            },
                            "end": {
                              "line": 52,
                              "column": 10
                            },
                            "identifierName": "op"
                          },
                          "name": "op",
                          "leadingComments": null
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 1071,
                          "end": 1098,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 13
                            },
                            "end": {
                              "line": 52,
                              "column": 40
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1071,
                            "end": 1093,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 13
                              },
                              "end": {
                                "line": 52,
                                "column": 35
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1071,
                              "end": 1084,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 13
                                },
                                "end": {
                                  "line": 52,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 1071,
                                "end": 1075,
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 52,
                                    "column": 17
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1076,
                                "end": 1084,
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 52,
                                    "column": 26
                                  },
                                  "identifierName": "operator"
                                },
                                "name": "operator"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1085,
                              "end": 1093,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 27
                                },
                                "end": {
                                  "line": 52,
                                  "column": 35
                                },
                                "identifierName": "evaluate"
                              },
                              "name": "evaluate"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 1094,
                              "end": 1097,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 36
                                },
                                "end": {
                                  "line": 52,
                                  "column": 39
                                },
                                "identifierName": "env"
                              },
                              "name": "env"
                            }
                          ]
                        },
                        "leadingComments": null
                      }
                    ],
                    "kind": "let",
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Evaluated operator",
                        "start": 1036,
                        "end": 1057,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 4
                          },
                          "end": {
                            "line": 51,
                            "column": 25
                          }
                        }
                      }
                    ],
                    "trailingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Evaluated arguments",
                        "start": 1104,
                        "end": 1126,
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 4
                          },
                          "end": {
                            "line": 53,
                            "column": 26
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 1131,
                    "end": 1184,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 4
                      },
                      "end": {
                        "line": 54,
                        "column": 57
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 1135,
                        "end": 1183,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 8
                          },
                          "end": {
                            "line": 54,
                            "column": 56
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 1135,
                          "end": 1141,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 8
                            },
                            "end": {
                              "line": 54,
                              "column": 14
                            },
                            "identifierName": "evArgs"
                          },
                          "name": "evArgs",
                          "leadingComments": null
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 1144,
                          "end": 1183,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 17
                            },
                            "end": {
                              "line": 54,
                              "column": 56
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1144,
                            "end": 1157,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 17
                              },
                              "end": {
                                "line": 54,
                                "column": 30
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1144,
                              "end": 1153,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 17
                                },
                                "end": {
                                  "line": 54,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 1144,
                                "end": 1148,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 21
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1149,
                                "end": 1153,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 26
                                  },
                                  "identifierName": "args"
                                },
                                "name": "args"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1154,
                              "end": 1157,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 27
                                },
                                "end": {
                                  "line": 54,
                                  "column": 30
                                },
                                "identifierName": "map"
                              },
                              "name": "map"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "ArrowFunctionExpression",
                              "start": 1158,
                              "end": 1182,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 31
                                },
                                "end": {
                                  "line": 54,
                                  "column": 55
                                }
                              },
                              "id": null,
                              "generator": false,
                              "expression": true,
                              "async": false,
                              "params": [
                                {
                                  "type": "Identifier",
                                  "start": 1158,
                                  "end": 1161,
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 34
                                    },
                                    "identifierName": "arg"
                                  },
                                  "name": "arg"
                                }
                              ],
                              "body": {
                                "type": "CallExpression",
                                "start": 1165,
                                "end": 1182,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 55
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 1165,
                                  "end": 1177,
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 38
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 50
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 1165,
                                    "end": 1168,
                                    "loc": {
                                      "start": {
                                        "line": 54,
                                        "column": 38
                                      },
                                      "end": {
                                        "line": 54,
                                        "column": 41
                                      },
                                      "identifierName": "arg"
                                    },
                                    "name": "arg"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1169,
                                    "end": 1177,
                                    "loc": {
                                      "start": {
                                        "line": 54,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 54,
                                        "column": 50
                                      },
                                      "identifierName": "evaluate"
                                    },
                                    "name": "evaluate"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 1178,
                                    "end": 1181,
                                    "loc": {
                                      "start": {
                                        "line": 54,
                                        "column": 51
                                      },
                                      "end": {
                                        "line": 54,
                                        "column": 54
                                      },
                                      "identifierName": "env"
                                    },
                                    "name": "env"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "leadingComments": null
                      }
                    ],
                    "kind": "let",
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Evaluated arguments",
                        "start": 1104,
                        "end": 1126,
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 4
                          },
                          "end": {
                            "line": 53,
                            "column": 26
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "IfStatement",
                    "start": 1190,
                    "end": 1278,
                    "loc": {
                      "start": {
                        "line": 56,
                        "column": 4
                      },
                      "end": {
                        "line": 59,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 1194,
                      "end": 1218,
                      "loc": {
                        "start": {
                          "line": 56,
                          "column": 8
                        },
                        "end": {
                          "line": 56,
                          "column": 32
                        }
                      },
                      "left": {
                        "type": "UnaryExpression",
                        "start": 1194,
                        "end": 1203,
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 8
                          },
                          "end": {
                            "line": 56,
                            "column": 17
                          }
                        },
                        "operator": "typeof",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1201,
                          "end": 1203,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 15
                            },
                            "end": {
                              "line": 56,
                              "column": 17
                            },
                            "identifierName": "op"
                          },
                          "name": "op"
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        }
                      },
                      "operator": "===",
                      "right": {
                        "type": "StringLiteral",
                        "start": 1208,
                        "end": 1218,
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 22
                          },
                          "end": {
                            "line": 56,
                            "column": 32
                          }
                        },
                        "extra": {
                          "rawValue": "function",
                          "raw": "\"function\""
                        },
                        "value": "function"
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 1220,
                      "end": 1278,
                      "loc": {
                        "start": {
                          "line": 56,
                          "column": 34
                        },
                        "end": {
                          "line": 59,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ReturnStatement",
                          "start": 1251,
                          "end": 1272,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 6
                            },
                            "end": {
                              "line": 58,
                              "column": 27
                            }
                          },
                          "argument": {
                            "type": "CallExpression",
                            "start": 1258,
                            "end": 1271,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 13
                              },
                              "end": {
                                "line": 58,
                                "column": 26
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 1258,
                              "end": 1260,
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 13
                                },
                                "end": {
                                  "line": 58,
                                  "column": 15
                                },
                                "identifierName": "op"
                              },
                              "name": "op",
                              "leadingComments": null
                            },
                            "arguments": [
                              {
                                "type": "SpreadElement",
                                "start": 1261,
                                "end": 1270,
                                "loc": {
                                  "start": {
                                    "line": 58,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 25
                                  }
                                },
                                "argument": {
                                  "type": "Identifier",
                                  "start": 1264,
                                  "end": 1270,
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 25
                                    },
                                    "identifierName": "evArgs"
                                  },
                                  "name": "evArgs"
                                }
                              }
                            ],
                            "leadingComments": null
                          },
                          "leadingComments": [
                            {
                              "type": "CommentLine",
                              "value": " Is a function",
                              "start": 1228,
                              "end": 1244,
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 6
                                },
                                "end": {
                                  "line": 57,
                                  "column": 22
                                }
                              }
                            }
                          ]
                        }
                      ],
                      "directives": []
                    },
                    "alternate": null
                  },
                  {
                    "type": "IfStatement",
                    "start": 1284,
                    "end": 2449,
                    "loc": {
                      "start": {
                        "line": 61,
                        "column": 4
                      },
                      "end": {
                        "line": 98,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 1288,
                      "end": 1313,
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 8
                        },
                        "end": {
                          "line": 61,
                          "column": 33
                        }
                      },
                      "left": {
                        "type": "UnaryExpression",
                        "start": 1288,
                        "end": 1297,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 8
                          },
                          "end": {
                            "line": 61,
                            "column": 17
                          }
                        },
                        "operator": "typeof",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1295,
                          "end": 1297,
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 15
                            },
                            "end": {
                              "line": 61,
                              "column": 17
                            },
                            "identifierName": "op"
                          },
                          "name": "op"
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        }
                      },
                      "operator": "!==",
                      "right": {
                        "type": "StringLiteral",
                        "start": 1302,
                        "end": 1313,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 22
                          },
                          "end": {
                            "line": 61,
                            "column": 33
                          }
                        },
                        "extra": {
                          "rawValue": "undefined",
                          "raw": "\"undefined\""
                        },
                        "value": "undefined"
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 1315,
                      "end": 2449,
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 35
                        },
                        "end": {
                          "line": 98,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "VariableDeclaration",
                          "start": 1372,
                          "end": 1393,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 6
                            },
                            "end": {
                              "line": 63,
                              "column": 27
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 1376,
                              "end": 1392,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 10
                                },
                                "end": {
                                  "line": 63,
                                  "column": 26
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 1376,
                                "end": 1380,
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 14
                                  },
                                  "identifierName": "name"
                                },
                                "name": "name",
                                "leadingComments": null
                              },
                              "init": {
                                "type": "MemberExpression",
                                "start": 1383,
                                "end": 1392,
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 26
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1383,
                                  "end": 1389,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 23
                                    },
                                    "identifierName": "evArgs"
                                  },
                                  "name": "evArgs"
                                },
                                "property": {
                                  "type": "NumericLiteral",
                                  "start": 1390,
                                  "end": 1391,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 25
                                    }
                                  },
                                  "extra": {
                                    "rawValue": 0,
                                    "raw": "0"
                                  },
                                  "value": 0
                                },
                                "computed": true
                              },
                              "leadingComments": null
                            }
                          ],
                          "kind": "let",
                          "leadingComments": [
                            {
                              "type": "CommentLine",
                              "value": " Is an object, number, string or boolean",
                              "start": 1323,
                              "end": 1365,
                              "loc": {
                                "start": {
                                  "line": 62,
                                  "column": 6
                                },
                                "end": {
                                  "line": 62,
                                  "column": 48
                                }
                              }
                            }
                          ]
                        },
                        {
                          "type": "VariableDeclaration",
                          "start": 1400,
                          "end": 1433,
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 6
                            },
                            "end": {
                              "line": 64,
                              "column": 39
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 1404,
                              "end": 1432,
                              "loc": {
                                "start": {
                                  "line": 64,
                                  "column": 10
                                },
                                "end": {
                                  "line": 64,
                                  "column": 38
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 1404,
                                "end": 1414,
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 20
                                  },
                                  "identifierName": "methodArgs"
                                },
                                "name": "methodArgs"
                              },
                              "init": {
                                "type": "CallExpression",
                                "start": 1417,
                                "end": 1432,
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 38
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 1417,
                                  "end": 1429,
                                  "loc": {
                                    "start": {
                                      "line": 64,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 64,
                                      "column": 35
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 1417,
                                    "end": 1423,
                                    "loc": {
                                      "start": {
                                        "line": 64,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 64,
                                        "column": 29
                                      },
                                      "identifierName": "evArgs"
                                    },
                                    "name": "evArgs"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1424,
                                    "end": 1429,
                                    "loc": {
                                      "start": {
                                        "line": 64,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 64,
                                        "column": 35
                                      },
                                      "identifierName": "slice"
                                    },
                                    "name": "slice"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "NumericLiteral",
                                    "start": 1430,
                                    "end": 1431,
                                    "loc": {
                                      "start": {
                                        "line": 64,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 64,
                                        "column": 37
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 1,
                                      "raw": "1"
                                    },
                                    "value": 1
                                  }
                                ]
                              }
                            }
                          ],
                          "kind": "let",
                          "trailingComments": [
                            {
                              "type": "CommentLine",
                              "value": " Check if the name of the method/property is defined on the object",
                              "start": 1441,
                              "end": 1509,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 6
                                },
                                "end": {
                                  "line": 66,
                                  "column": 74
                                }
                              }
                            }
                          ]
                        },
                        {
                          "type": "IfStatement",
                          "start": 1516,
                          "end": 2443,
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 6
                            },
                            "end": {
                              "line": 97,
                              "column": 7
                            }
                          },
                          "test": {
                            "type": "BinaryExpression",
                            "start": 1520,
                            "end": 1551,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 10
                              },
                              "end": {
                                "line": 67,
                                "column": 41
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 1520,
                              "end": 1535,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 10
                                },
                                "end": {
                                  "line": 67,
                                  "column": 25
                                }
                              },
                              "operator": "typeof",
                              "prefix": true,
                              "argument": {
                                "type": "MemberExpression",
                                "start": 1527,
                                "end": 1535,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 25
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1527,
                                  "end": 1529,
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 19
                                    },
                                    "identifierName": "op"
                                  },
                                  "name": "op",
                                  "leadingComments": null
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1530,
                                  "end": 1534,
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 24
                                    },
                                    "identifierName": "name"
                                  },
                                  "name": "name"
                                },
                                "computed": true,
                                "leadingComments": null
                              },
                              "extra": {
                                "parenthesizedArgument": false
                              },
                              "leadingComments": null
                            },
                            "operator": "!==",
                            "right": {
                              "type": "StringLiteral",
                              "start": 1540,
                              "end": 1551,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 30
                                },
                                "end": {
                                  "line": 67,
                                  "column": 41
                                }
                              },
                              "extra": {
                                "rawValue": "undefined",
                                "raw": "\"undefined\""
                              },
                              "value": "undefined"
                            },
                            "leadingComments": null
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "start": 1553,
                            "end": 1838,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 43
                              },
                              "end": {
                                "line": 78,
                                "column": 7
                              }
                            },
                            "body": [
                              {
                                "type": "IfStatement",
                                "start": 1594,
                                "end": 1760,
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 9
                                  }
                                },
                                "test": {
                                  "type": "BinaryExpression",
                                  "start": 1598,
                                  "end": 1628,
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 69,
                                      "column": 42
                                    }
                                  },
                                  "left": {
                                    "type": "UnaryExpression",
                                    "start": 1598,
                                    "end": 1613,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 27
                                      }
                                    },
                                    "operator": "typeof",
                                    "prefix": true,
                                    "argument": {
                                      "type": "MemberExpression",
                                      "start": 1605,
                                      "end": 1613,
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 27
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 1605,
                                        "end": 1607,
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 21
                                          },
                                          "identifierName": "op"
                                        },
                                        "name": "op",
                                        "leadingComments": null
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1608,
                                        "end": 1612,
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 26
                                          },
                                          "identifierName": "name"
                                        },
                                        "name": "name"
                                      },
                                      "computed": true,
                                      "leadingComments": null
                                    },
                                    "extra": {
                                      "parenthesizedArgument": false
                                    },
                                    "leadingComments": null
                                  },
                                  "operator": "===",
                                  "right": {
                                    "type": "StringLiteral",
                                    "start": 1618,
                                    "end": 1628,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 42
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "function",
                                      "raw": "\"function\""
                                    },
                                    "value": "function"
                                  },
                                  "leadingComments": null
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "start": 1630,
                                  "end": 1716,
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 9
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "start": 1642,
                                      "end": 1673,
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 10
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 41
                                        }
                                      },
                                      "argument": {
                                        "type": "CallExpression",
                                        "start": 1649,
                                        "end": 1672,
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 40
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 1649,
                                          "end": 1657,
                                          "loc": {
                                            "start": {
                                              "line": 70,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 70,
                                              "column": 25
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 1649,
                                            "end": 1651,
                                            "loc": {
                                              "start": {
                                                "line": 70,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 70,
                                                "column": 19
                                              },
                                              "identifierName": "op"
                                            },
                                            "name": "op"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 1652,
                                            "end": 1656,
                                            "loc": {
                                              "start": {
                                                "line": 70,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 70,
                                                "column": 24
                                              },
                                              "identifierName": "name"
                                            },
                                            "name": "name"
                                          },
                                          "computed": true
                                        },
                                        "arguments": [
                                          {
                                            "type": "SpreadElement",
                                            "start": 1658,
                                            "end": 1671,
                                            "loc": {
                                              "start": {
                                                "line": 70,
                                                "column": 26
                                              },
                                              "end": {
                                                "line": 70,
                                                "column": 39
                                              }
                                            },
                                            "argument": {
                                              "type": "Identifier",
                                              "start": 1661,
                                              "end": 1671,
                                              "loc": {
                                                "start": {
                                                  "line": 70,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 70,
                                                  "column": 39
                                                },
                                                "identifierName": "methodArgs"
                                              },
                                              "name": "methodArgs"
                                            }
                                          }
                                        ]
                                      },
                                      "trailingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": " Return as property",
                                          "start": 1685,
                                          "end": 1706,
                                          "loc": {
                                            "start": {
                                              "line": 72,
                                              "column": 10
                                            },
                                            "end": {
                                              "line": 72,
                                              "column": 31
                                            }
                                          }
                                        }
                                      ]
                                    }
                                  ],
                                  "directives": []
                                },
                                "alternate": {
                                  "type": "BlockStatement",
                                  "start": 1722,
                                  "end": 1760,
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 9
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "start": 1734,
                                      "end": 1750,
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 10
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 26
                                        }
                                      },
                                      "argument": {
                                        "type": "MemberExpression",
                                        "start": 1741,
                                        "end": 1749,
                                        "loc": {
                                          "start": {
                                            "line": 74,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 74,
                                            "column": 25
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 1741,
                                          "end": 1743,
                                          "loc": {
                                            "start": {
                                              "line": 74,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 74,
                                              "column": 19
                                            },
                                            "identifierName": "op"
                                          },
                                          "name": "op"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 1744,
                                          "end": 1748,
                                          "loc": {
                                            "start": {
                                              "line": 74,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 74,
                                              "column": 24
                                            },
                                            "identifierName": "name"
                                          },
                                          "name": "name"
                                        },
                                        "computed": true
                                      }
                                    }
                                  ],
                                  "directives": [],
                                  "trailingComments": null
                                },
                                "leadingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Execute as function",
                                    "start": 1563,
                                    "end": 1585,
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 30
                                      }
                                    }
                                  }
                                ],
                                "trailingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " If the name of the method is not defined on the object...",
                                    "start": 1770,
                                    "end": 1830,
                                    "loc": {
                                      "start": {
                                        "line": 77,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 77,
                                        "column": 68
                                      }
                                    }
                                  }
                                ]
                              }
                            ],
                            "directives": []
                          },
                          "alternate": {
                            "type": "BlockStatement",
                            "start": 1844,
                            "end": 2443,
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 13
                              },
                              "end": {
                                "line": 97,
                                "column": 7
                              }
                            },
                            "body": [
                              {
                                "type": "IfStatement",
                                "start": 1894,
                                "end": 2092,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 86,
                                    "column": 9
                                  }
                                },
                                "test": {
                                  "type": "BinaryExpression",
                                  "start": 1898,
                                  "end": 1915,
                                  "loc": {
                                    "start": {
                                      "line": 80,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 80,
                                      "column": 29
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 1898,
                                    "end": 1900,
                                    "loc": {
                                      "start": {
                                        "line": 80,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 80,
                                        "column": 14
                                      },
                                      "identifierName": "op"
                                    },
                                    "name": "op",
                                    "leadingComments": null
                                  },
                                  "operator": "instanceof",
                                  "right": {
                                    "type": "Identifier",
                                    "start": 1912,
                                    "end": 1915,
                                    "loc": {
                                      "start": {
                                        "line": 80,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 80,
                                        "column": 29
                                      },
                                      "identifierName": "Map"
                                    },
                                    "name": "Map"
                                  },
                                  "leadingComments": null
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "start": 1917,
                                  "end": 2092,
                                  "loc": {
                                    "start": {
                                      "line": 80,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 86,
                                      "column": 9
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "IfStatement",
                                      "start": 1929,
                                      "end": 2082,
                                      "loc": {
                                        "start": {
                                          "line": 81,
                                          "column": 10
                                        },
                                        "end": {
                                          "line": 85,
                                          "column": 11
                                        }
                                      },
                                      "test": {
                                        "type": "BinaryExpression",
                                        "start": 1933,
                                        "end": 1967,
                                        "loc": {
                                          "start": {
                                            "line": 81,
                                            "column": 14
                                          },
                                          "end": {
                                            "line": 81,
                                            "column": 48
                                          }
                                        },
                                        "left": {
                                          "type": "UnaryExpression",
                                          "start": 1933,
                                          "end": 1952,
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 14
                                            },
                                            "end": {
                                              "line": 81,
                                              "column": 33
                                            }
                                          },
                                          "operator": "typeof",
                                          "prefix": true,
                                          "argument": {
                                            "type": "CallExpression",
                                            "start": 1940,
                                            "end": 1952,
                                            "loc": {
                                              "start": {
                                                "line": 81,
                                                "column": 21
                                              },
                                              "end": {
                                                "line": 81,
                                                "column": 33
                                              }
                                            },
                                            "callee": {
                                              "type": "MemberExpression",
                                              "start": 1940,
                                              "end": 1946,
                                              "loc": {
                                                "start": {
                                                  "line": 81,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 81,
                                                  "column": 27
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 1940,
                                                "end": 1942,
                                                "loc": {
                                                  "start": {
                                                    "line": 81,
                                                    "column": 21
                                                  },
                                                  "end": {
                                                    "line": 81,
                                                    "column": 23
                                                  },
                                                  "identifierName": "op"
                                                },
                                                "name": "op"
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 1943,
                                                "end": 1946,
                                                "loc": {
                                                  "start": {
                                                    "line": 81,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 81,
                                                    "column": 27
                                                  },
                                                  "identifierName": "get"
                                                },
                                                "name": "get"
                                              },
                                              "computed": false
                                            },
                                            "arguments": [
                                              {
                                                "type": "Identifier",
                                                "start": 1947,
                                                "end": 1951,
                                                "loc": {
                                                  "start": {
                                                    "line": 81,
                                                    "column": 28
                                                  },
                                                  "end": {
                                                    "line": 81,
                                                    "column": 32
                                                  },
                                                  "identifierName": "name"
                                                },
                                                "name": "name"
                                              }
                                            ]
                                          },
                                          "extra": {
                                            "parenthesizedArgument": false
                                          }
                                        },
                                        "operator": "===",
                                        "right": {
                                          "type": "StringLiteral",
                                          "start": 1957,
                                          "end": 1967,
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 38
                                            },
                                            "end": {
                                              "line": 81,
                                              "column": 48
                                            }
                                          },
                                          "extra": {
                                            "rawValue": "function",
                                            "raw": "\"function\""
                                          },
                                          "value": "function"
                                        }
                                      },
                                      "consequent": {
                                        "type": "BlockStatement",
                                        "start": 1969,
                                        "end": 2030,
                                        "loc": {
                                          "start": {
                                            "line": 81,
                                            "column": 50
                                          },
                                          "end": {
                                            "line": 83,
                                            "column": 11
                                          }
                                        },
                                        "body": [
                                          {
                                            "type": "ReturnStatement",
                                            "start": 1983,
                                            "end": 2018,
                                            "loc": {
                                              "start": {
                                                "line": 82,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 82,
                                                "column": 47
                                              }
                                            },
                                            "argument": {
                                              "type": "CallExpression",
                                              "start": 1990,
                                              "end": 2017,
                                              "loc": {
                                                "start": {
                                                  "line": 82,
                                                  "column": 19
                                                },
                                                "end": {
                                                  "line": 82,
                                                  "column": 46
                                                }
                                              },
                                              "callee": {
                                                "type": "CallExpression",
                                                "start": 1990,
                                                "end": 2002,
                                                "loc": {
                                                  "start": {
                                                    "line": 82,
                                                    "column": 19
                                                  },
                                                  "end": {
                                                    "line": 82,
                                                    "column": 31
                                                  }
                                                },
                                                "callee": {
                                                  "type": "MemberExpression",
                                                  "start": 1990,
                                                  "end": 1996,
                                                  "loc": {
                                                    "start": {
                                                      "line": 82,
                                                      "column": 19
                                                    },
                                                    "end": {
                                                      "line": 82,
                                                      "column": 25
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 1990,
                                                    "end": 1992,
                                                    "loc": {
                                                      "start": {
                                                        "line": 82,
                                                        "column": 19
                                                      },
                                                      "end": {
                                                        "line": 82,
                                                        "column": 21
                                                      },
                                                      "identifierName": "op"
                                                    },
                                                    "name": "op"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 1993,
                                                    "end": 1996,
                                                    "loc": {
                                                      "start": {
                                                        "line": 82,
                                                        "column": 22
                                                      },
                                                      "end": {
                                                        "line": 82,
                                                        "column": 25
                                                      },
                                                      "identifierName": "get"
                                                    },
                                                    "name": "get"
                                                  },
                                                  "computed": false
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "start": 1997,
                                                    "end": 2001,
                                                    "loc": {
                                                      "start": {
                                                        "line": 82,
                                                        "column": 26
                                                      },
                                                      "end": {
                                                        "line": 82,
                                                        "column": 30
                                                      },
                                                      "identifierName": "name"
                                                    },
                                                    "name": "name"
                                                  }
                                                ]
                                              },
                                              "arguments": [
                                                {
                                                  "type": "SpreadElement",
                                                  "start": 2003,
                                                  "end": 2016,
                                                  "loc": {
                                                    "start": {
                                                      "line": 82,
                                                      "column": 32
                                                    },
                                                    "end": {
                                                      "line": 82,
                                                      "column": 45
                                                    }
                                                  },
                                                  "argument": {
                                                    "type": "Identifier",
                                                    "start": 2006,
                                                    "end": 2016,
                                                    "loc": {
                                                      "start": {
                                                        "line": 82,
                                                        "column": 35
                                                      },
                                                      "end": {
                                                        "line": 82,
                                                        "column": 45
                                                      },
                                                      "identifierName": "methodArgs"
                                                    },
                                                    "name": "methodArgs"
                                                  }
                                                }
                                              ]
                                            }
                                          }
                                        ],
                                        "directives": []
                                      },
                                      "alternate": {
                                        "type": "BlockStatement",
                                        "start": 2036,
                                        "end": 2082,
                                        "loc": {
                                          "start": {
                                            "line": 83,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 85,
                                            "column": 11
                                          }
                                        },
                                        "body": [
                                          {
                                            "type": "ReturnStatement",
                                            "start": 2050,
                                            "end": 2070,
                                            "loc": {
                                              "start": {
                                                "line": 84,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 84,
                                                "column": 32
                                              }
                                            },
                                            "argument": {
                                              "type": "CallExpression",
                                              "start": 2057,
                                              "end": 2069,
                                              "loc": {
                                                "start": {
                                                  "line": 84,
                                                  "column": 19
                                                },
                                                "end": {
                                                  "line": 84,
                                                  "column": 31
                                                }
                                              },
                                              "callee": {
                                                "type": "MemberExpression",
                                                "start": 2057,
                                                "end": 2063,
                                                "loc": {
                                                  "start": {
                                                    "line": 84,
                                                    "column": 19
                                                  },
                                                  "end": {
                                                    "line": 84,
                                                    "column": 25
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 2057,
                                                  "end": 2059,
                                                  "loc": {
                                                    "start": {
                                                      "line": 84,
                                                      "column": 19
                                                    },
                                                    "end": {
                                                      "line": 84,
                                                      "column": 21
                                                    },
                                                    "identifierName": "op"
                                                  },
                                                  "name": "op"
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 2060,
                                                  "end": 2063,
                                                  "loc": {
                                                    "start": {
                                                      "line": 84,
                                                      "column": 22
                                                    },
                                                    "end": {
                                                      "line": 84,
                                                      "column": 25
                                                    },
                                                    "identifierName": "get"
                                                  },
                                                  "name": "get"
                                                },
                                                "computed": false
                                              },
                                              "arguments": [
                                                {
                                                  "type": "Identifier",
                                                  "start": 2064,
                                                  "end": 2068,
                                                  "loc": {
                                                    "start": {
                                                      "line": 84,
                                                      "column": 26
                                                    },
                                                    "end": {
                                                      "line": 84,
                                                      "column": 30
                                                    },
                                                    "identifierName": "name"
                                                  },
                                                  "name": "name"
                                                }
                                              ]
                                            }
                                          }
                                        ],
                                        "directives": []
                                      }
                                    }
                                  ],
                                  "directives": [],
                                  "trailingComments": null
                                },
                                "alternate": null,
                                "leadingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Check if its a Map property.",
                                    "start": 1854,
                                    "end": 1885,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 39
                                      }
                                    }
                                  }
                                ],
                                "trailingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Try to call the 'missing' method",
                                    "start": 2102,
                                    "end": 2137,
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 43
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "IfStatement",
                                "start": 2146,
                                "end": 2435,
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 9
                                  }
                                },
                                "test": {
                                  "type": "BinaryExpression",
                                  "start": 2150,
                                  "end": 2189,
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 51
                                    }
                                  },
                                  "left": {
                                    "type": "UnaryExpression",
                                    "start": 2150,
                                    "end": 2174,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 36
                                      }
                                    },
                                    "operator": "typeof",
                                    "prefix": true,
                                    "argument": {
                                      "type": "MemberExpression",
                                      "start": 2157,
                                      "end": 2174,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 36
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 2157,
                                        "end": 2159,
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 21
                                          },
                                          "identifierName": "op"
                                        },
                                        "name": "op",
                                        "leadingComments": null
                                      },
                                      "property": {
                                        "type": "StringLiteral",
                                        "start": 2160,
                                        "end": 2173,
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 35
                                          }
                                        },
                                        "extra": {
                                          "rawValue": "__missing__",
                                          "raw": "\"__missing__\""
                                        },
                                        "value": "__missing__"
                                      },
                                      "computed": true,
                                      "leadingComments": null
                                    },
                                    "extra": {
                                      "parenthesizedArgument": false
                                    },
                                    "leadingComments": null
                                  },
                                  "operator": "===",
                                  "right": {
                                    "type": "StringLiteral",
                                    "start": 2179,
                                    "end": 2189,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 51
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "function",
                                      "raw": "\"function\""
                                    },
                                    "value": "function"
                                  },
                                  "leadingComments": null
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "start": 2191,
                                  "end": 2304,
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 53
                                    },
                                    "end": {
                                      "line": 93,
                                      "column": 9
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "start": 2203,
                                      "end": 2243,
                                      "loc": {
                                        "start": {
                                          "line": 90,
                                          "column": 10
                                        },
                                        "end": {
                                          "line": 90,
                                          "column": 50
                                        }
                                      },
                                      "argument": {
                                        "type": "CallExpression",
                                        "start": 2210,
                                        "end": 2242,
                                        "loc": {
                                          "start": {
                                            "line": 90,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 90,
                                            "column": 49
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 2210,
                                          "end": 2227,
                                          "loc": {
                                            "start": {
                                              "line": 90,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 90,
                                              "column": 34
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 2210,
                                            "end": 2212,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 19
                                              },
                                              "identifierName": "op"
                                            },
                                            "name": "op"
                                          },
                                          "property": {
                                            "type": "StringLiteral",
                                            "start": 2213,
                                            "end": 2226,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 33
                                              }
                                            },
                                            "extra": {
                                              "rawValue": "__missing__",
                                              "raw": "\"__missing__\""
                                            },
                                            "value": "__missing__"
                                          },
                                          "computed": true
                                        },
                                        "arguments": [
                                          {
                                            "type": "SpreadElement",
                                            "start": 2228,
                                            "end": 2241,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 35
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 48
                                              }
                                            },
                                            "argument": {
                                              "type": "Identifier",
                                              "start": 2231,
                                              "end": 2241,
                                              "loc": {
                                                "start": {
                                                  "line": 90,
                                                  "column": 38
                                                },
                                                "end": {
                                                  "line": 90,
                                                  "column": 48
                                                },
                                                "identifierName": "methodArgs"
                                              },
                                              "name": "methodArgs"
                                            }
                                          }
                                        ]
                                      },
                                      "trailingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": " As a last resort, throw an Exception",
                                          "start": 2255,
                                          "end": 2294,
                                          "loc": {
                                            "start": {
                                              "line": 92,
                                              "column": 10
                                            },
                                            "end": {
                                              "line": 92,
                                              "column": 49
                                            }
                                          }
                                        }
                                      ]
                                    }
                                  ],
                                  "directives": []
                                },
                                "alternate": {
                                  "type": "BlockStatement",
                                  "start": 2310,
                                  "end": 2435,
                                  "loc": {
                                    "start": {
                                      "line": 93,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 9
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ThrowStatement",
                                      "start": 2322,
                                      "end": 2425,
                                      "loc": {
                                        "start": {
                                          "line": 94,
                                          "column": 10
                                        },
                                        "end": {
                                          "line": 95,
                                          "column": 38
                                        }
                                      },
                                      "argument": {
                                        "type": "NewExpression",
                                        "start": 2328,
                                        "end": 2424,
                                        "loc": {
                                          "start": {
                                            "line": 94,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 95,
                                            "column": 37
                                          }
                                        },
                                        "callee": {
                                          "type": "Identifier",
                                          "start": 2332,
                                          "end": 2343,
                                          "loc": {
                                            "start": {
                                              "line": 94,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 94,
                                              "column": 31
                                            },
                                            "identifierName": "SyntaxError"
                                          },
                                          "name": "SyntaxError"
                                        },
                                        "arguments": [
                                          {
                                            "type": "TemplateLiteral",
                                            "start": 2344,
                                            "end": 2423,
                                            "loc": {
                                              "start": {
                                                "line": 94,
                                                "column": 32
                                              },
                                              "end": {
                                                "line": 95,
                                                "column": 36
                                              }
                                            },
                                            "expressions": [
                                              {
                                                "type": "Identifier",
                                                "start": 2359,
                                                "end": 2363,
                                                "loc": {
                                                  "start": {
                                                    "line": 94,
                                                    "column": 47
                                                  },
                                                  "end": {
                                                    "line": 94,
                                                    "column": 51
                                                  },
                                                  "identifierName": "name"
                                                },
                                                "name": "name"
                                              },
                                              {
                                                "type": "CallExpression",
                                                "start": 2407,
                                                "end": 2420,
                                                "loc": {
                                                  "start": {
                                                    "line": 95,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 95,
                                                    "column": 33
                                                  }
                                                },
                                                "callee": {
                                                  "type": "MemberExpression",
                                                  "start": 2407,
                                                  "end": 2416,
                                                  "loc": {
                                                    "start": {
                                                      "line": 95,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 95,
                                                      "column": 29
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 2407,
                                                    "end": 2412,
                                                    "loc": {
                                                      "start": {
                                                        "line": 95,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 95,
                                                        "column": 25
                                                      },
                                                      "identifierName": "utils"
                                                    },
                                                    "name": "utils"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 2413,
                                                    "end": 2416,
                                                    "loc": {
                                                      "start": {
                                                        "line": 95,
                                                        "column": 26
                                                      },
                                                      "end": {
                                                        "line": 95,
                                                        "column": 29
                                                      },
                                                      "identifierName": "ins"
                                                    },
                                                    "name": "ins"
                                                  },
                                                  "computed": false
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "start": 2417,
                                                    "end": 2419,
                                                    "loc": {
                                                      "start": {
                                                        "line": 95,
                                                        "column": 30
                                                      },
                                                      "end": {
                                                        "line": 95,
                                                        "column": 32
                                                      },
                                                      "identifierName": "op"
                                                    },
                                                    "name": "op"
                                                  }
                                                ]
                                              }
                                            ],
                                            "quasis": [
                                              {
                                                "type": "TemplateElement",
                                                "start": 2345,
                                                "end": 2357,
                                                "loc": {
                                                  "start": {
                                                    "line": 94,
                                                    "column": 33
                                                  },
                                                  "end": {
                                                    "line": 94,
                                                    "column": 45
                                                  }
                                                },
                                                "value": {
                                                  "raw": "The method '",
                                                  "cooked": "The method '"
                                                },
                                                "tail": false
                                              },
                                              {
                                                "type": "TemplateElement",
                                                "start": 2364,
                                                "end": 2405,
                                                "loc": {
                                                  "start": {
                                                    "line": 94,
                                                    "column": 52
                                                  },
                                                  "end": {
                                                    "line": 95,
                                                    "column": 18
                                                  }
                                                },
                                                "value": {
                                                  "raw": "' was not found on the\n          object '",
                                                  "cooked": "' was not found on the\n          object '"
                                                },
                                                "tail": false
                                              },
                                              {
                                                "type": "TemplateElement",
                                                "start": 2421,
                                                "end": 2422,
                                                "loc": {
                                                  "start": {
                                                    "line": 95,
                                                    "column": 34
                                                  },
                                                  "end": {
                                                    "line": 95,
                                                    "column": 35
                                                  }
                                                },
                                                "value": {
                                                  "raw": "'",
                                                  "cooked": "'"
                                                },
                                                "tail": true
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "directives": []
                                },
                                "leadingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Try to call the 'missing' method",
                                    "start": 2102,
                                    "end": 2137,
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 43
                                      }
                                    }
                                  }
                                ]
                              }
                            ],
                            "directives": []
                          },
                          "leadingComments": [
                            {
                              "type": "CommentLine",
                              "value": " Check if the name of the method/property is defined on the object",
                              "start": 1441,
                              "end": 1509,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 6
                                },
                                "end": {
                                  "line": 66,
                                  "column": 74
                                }
                              }
                            }
                          ]
                        }
                      ],
                      "directives": []
                    },
                    "alternate": null
                  },
                  {
                    "type": "ThrowStatement",
                    "start": 2455,
                    "end": 2517,
                    "loc": {
                      "start": {
                        "line": 100,
                        "column": 4
                      },
                      "end": {
                        "line": 100,
                        "column": 66
                      }
                    },
                    "argument": {
                      "type": "NewExpression",
                      "start": 2461,
                      "end": 2516,
                      "loc": {
                        "start": {
                          "line": 100,
                          "column": 10
                        },
                        "end": {
                          "line": 100,
                          "column": 65
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 2465,
                        "end": 2474,
                        "loc": {
                          "start": {
                            "line": 100,
                            "column": 14
                          },
                          "end": {
                            "line": 100,
                            "column": 23
                          },
                          "identifierName": "TypeError"
                        },
                        "name": "TypeError"
                      },
                      "arguments": [
                        {
                          "type": "TemplateLiteral",
                          "start": 2475,
                          "end": 2515,
                          "loc": {
                            "start": {
                              "line": 100,
                              "column": 24
                            },
                            "end": {
                              "line": 100,
                              "column": 64
                            }
                          },
                          "expressions": [],
                          "quasis": [
                            {
                              "type": "TemplateElement",
                              "start": 2476,
                              "end": 2514,
                              "loc": {
                                "start": {
                                  "line": 100,
                                  "column": 25
                                },
                                "end": {
                                  "line": 100,
                                  "column": 63
                                }
                              },
                              "value": {
                                "raw": "Could not resolve the apply expression",
                                "cooked": "Could not resolve the apply expression"
                              },
                              "tail": true
                            }
                          ]
                        }
                      ]
                    }
                  }
                ],
                "directives": []
              }
            }
          ]
        },
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 2525,
        "end": 2718,
        "loc": {
          "start": {
            "line": 104,
            "column": 0
          },
          "end": {
            "line": 115,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 2531,
          "end": 2536,
          "loc": {
            "start": {
              "line": 104,
              "column": 6
            },
            "end": {
              "line": 104,
              "column": 11
            },
            "identifierName": "Regex"
          },
          "name": "Regex"
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "start": 2537,
          "end": 2718,
          "loc": {
            "start": {
              "line": 104,
              "column": 12
            },
            "end": {
              "line": 115,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ClassMethod",
              "start": 2541,
              "end": 2649,
              "loc": {
                "start": {
                  "line": 105,
                  "column": 2
                },
                "end": {
                  "line": 110,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 2541,
                "end": 2552,
                "loc": {
                  "start": {
                    "line": 105,
                    "column": 2
                  },
                  "end": {
                    "line": 105,
                    "column": 13
                  },
                  "identifierName": "constructor"
                },
                "name": "constructor"
              },
              "kind": "constructor",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 2553,
                  "end": 2558,
                  "loc": {
                    "start": {
                      "line": 105,
                      "column": 14
                    },
                    "end": {
                      "line": 105,
                      "column": 19
                    },
                    "identifierName": "token"
                  },
                  "name": "token"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 2560,
                "end": 2649,
                "loc": {
                  "start": {
                    "line": 105,
                    "column": 21
                  },
                  "end": {
                    "line": 110,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 2566,
                    "end": 2586,
                    "loc": {
                      "start": {
                        "line": 106,
                        "column": 4
                      },
                      "end": {
                        "line": 106,
                        "column": 24
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 2566,
                      "end": 2585,
                      "loc": {
                        "start": {
                          "line": 106,
                          "column": 4
                        },
                        "end": {
                          "line": 106,
                          "column": 23
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 2566,
                        "end": 2575,
                        "loc": {
                          "start": {
                            "line": 106,
                            "column": 4
                          },
                          "end": {
                            "line": 106,
                            "column": 13
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 2566,
                          "end": 2570,
                          "loc": {
                            "start": {
                              "line": 106,
                              "column": 4
                            },
                            "end": {
                              "line": 106,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2571,
                          "end": 2575,
                          "loc": {
                            "start": {
                              "line": 106,
                              "column": 9
                            },
                            "end": {
                              "line": 106,
                              "column": 13
                            },
                            "identifierName": "type"
                          },
                          "name": "type"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "StringLiteral",
                        "start": 2578,
                        "end": 2585,
                        "loc": {
                          "start": {
                            "line": 106,
                            "column": 16
                          },
                          "end": {
                            "line": 106,
                            "column": 23
                          }
                        },
                        "extra": {
                          "rawValue": "regex",
                          "raw": "\"regex\""
                        },
                        "value": "regex"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 2592,
                    "end": 2615,
                    "loc": {
                      "start": {
                        "line": 108,
                        "column": 4
                      },
                      "end": {
                        "line": 108,
                        "column": 27
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 2592,
                      "end": 2614,
                      "loc": {
                        "start": {
                          "line": 108,
                          "column": 4
                        },
                        "end": {
                          "line": 108,
                          "column": 26
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 2592,
                        "end": 2601,
                        "loc": {
                          "start": {
                            "line": 108,
                            "column": 4
                          },
                          "end": {
                            "line": 108,
                            "column": 13
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 2592,
                          "end": 2596,
                          "loc": {
                            "start": {
                              "line": 108,
                              "column": 4
                            },
                            "end": {
                              "line": 108,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2597,
                          "end": 2601,
                          "loc": {
                            "start": {
                              "line": 108,
                              "column": 9
                            },
                            "end": {
                              "line": 108,
                              "column": 13
                            },
                            "identifierName": "body"
                          },
                          "name": "body"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 2604,
                        "end": 2614,
                        "loc": {
                          "start": {
                            "line": 108,
                            "column": 16
                          },
                          "end": {
                            "line": 108,
                            "column": 26
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 2604,
                          "end": 2609,
                          "loc": {
                            "start": {
                              "line": 108,
                              "column": 16
                            },
                            "end": {
                              "line": 108,
                              "column": 21
                            },
                            "identifierName": "token"
                          },
                          "name": "token"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2610,
                          "end": 2614,
                          "loc": {
                            "start": {
                              "line": 108,
                              "column": 22
                            },
                            "end": {
                              "line": 108,
                              "column": 26
                            },
                            "identifierName": "body"
                          },
                          "name": "body"
                        },
                        "computed": false
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 2620,
                    "end": 2645,
                    "loc": {
                      "start": {
                        "line": 109,
                        "column": 4
                      },
                      "end": {
                        "line": 109,
                        "column": 29
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 2620,
                      "end": 2644,
                      "loc": {
                        "start": {
                          "line": 109,
                          "column": 4
                        },
                        "end": {
                          "line": 109,
                          "column": 28
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 2620,
                        "end": 2630,
                        "loc": {
                          "start": {
                            "line": 109,
                            "column": 4
                          },
                          "end": {
                            "line": 109,
                            "column": 14
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 2620,
                          "end": 2624,
                          "loc": {
                            "start": {
                              "line": 109,
                              "column": 4
                            },
                            "end": {
                              "line": 109,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2625,
                          "end": 2630,
                          "loc": {
                            "start": {
                              "line": 109,
                              "column": 9
                            },
                            "end": {
                              "line": 109,
                              "column": 14
                            },
                            "identifierName": "flags"
                          },
                          "name": "flags"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 2633,
                        "end": 2644,
                        "loc": {
                          "start": {
                            "line": 109,
                            "column": 17
                          },
                          "end": {
                            "line": 109,
                            "column": 28
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 2633,
                          "end": 2638,
                          "loc": {
                            "start": {
                              "line": 109,
                              "column": 17
                            },
                            "end": {
                              "line": 109,
                              "column": 22
                            },
                            "identifierName": "token"
                          },
                          "name": "token"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2639,
                          "end": 2644,
                          "loc": {
                            "start": {
                              "line": 109,
                              "column": 23
                            },
                            "end": {
                              "line": 109,
                              "column": 28
                            },
                            "identifierName": "flags"
                          },
                          "name": "flags"
                        },
                        "computed": false
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 2653,
              "end": 2716,
              "loc": {
                "start": {
                  "line": 112,
                  "column": 2
                },
                "end": {
                  "line": 114,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 2653,
                "end": 2661,
                "loc": {
                  "start": {
                    "line": 112,
                    "column": 2
                  },
                  "end": {
                    "line": 112,
                    "column": 10
                  },
                  "identifierName": "evaluate"
                },
                "name": "evaluate"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "start": 2664,
                "end": 2716,
                "loc": {
                  "start": {
                    "line": 112,
                    "column": 13
                  },
                  "end": {
                    "line": 114,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 2670,
                    "end": 2712,
                    "loc": {
                      "start": {
                        "line": 113,
                        "column": 4
                      },
                      "end": {
                        "line": 113,
                        "column": 46
                      }
                    },
                    "argument": {
                      "type": "NewExpression",
                      "start": 2677,
                      "end": 2711,
                      "loc": {
                        "start": {
                          "line": 113,
                          "column": 11
                        },
                        "end": {
                          "line": 113,
                          "column": 45
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 2681,
                        "end": 2688,
                        "loc": {
                          "start": {
                            "line": 113,
                            "column": 15
                          },
                          "end": {
                            "line": 113,
                            "column": 22
                          },
                          "identifierName": "xRegExp"
                        },
                        "name": "xRegExp"
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "start": 2689,
                          "end": 2698,
                          "loc": {
                            "start": {
                              "line": 113,
                              "column": 23
                            },
                            "end": {
                              "line": 113,
                              "column": 32
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2689,
                            "end": 2693,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 23
                              },
                              "end": {
                                "line": 113,
                                "column": 27
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2694,
                            "end": 2698,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 28
                              },
                              "end": {
                                "line": 113,
                                "column": 32
                              },
                              "identifierName": "body"
                            },
                            "name": "body"
                          },
                          "computed": false
                        },
                        {
                          "type": "MemberExpression",
                          "start": 2700,
                          "end": 2710,
                          "loc": {
                            "start": {
                              "line": 113,
                              "column": 34
                            },
                            "end": {
                              "line": 113,
                              "column": 44
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2700,
                            "end": 2704,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 34
                              },
                              "end": {
                                "line": 113,
                                "column": 38
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2705,
                            "end": 2710,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 39
                              },
                              "end": {
                                "line": 113,
                                "column": 44
                              },
                              "identifierName": "flags"
                            },
                            "name": "flags"
                          },
                          "computed": false
                        }
                      ]
                    }
                  }
                ],
                "directives": []
              }
            }
          ]
        },
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2720,
        "end": 2763,
        "loc": {
          "start": {
            "line": 117,
            "column": 0
          },
          "end": {
            "line": 120,
            "column": 10
          }
        },
        "declaration": null,
        "specifiers": [
          {
            "type": "ExportSpecifier",
            "start": 2729,
            "end": 2734,
            "loc": {
              "start": {
                "line": 117,
                "column": 9
              },
              "end": {
                "line": 117,
                "column": 14
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2729,
              "end": 2734,
              "loc": {
                "start": {
                  "line": 117,
                  "column": 9
                },
                "end": {
                  "line": 117,
                  "column": 14
                },
                "identifierName": "Value"
              },
              "name": "Value"
            },
            "exported": {
              "type": "Identifier",
              "start": 2729,
              "end": 2734,
              "loc": {
                "start": {
                  "line": 117,
                  "column": 9
                },
                "end": {
                  "line": 117,
                  "column": 14
                },
                "identifierName": "Value"
              },
              "name": "Value"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2738,
            "end": 2742,
            "loc": {
              "start": {
                "line": 118,
                "column": 2
              },
              "end": {
                "line": 118,
                "column": 6
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2738,
              "end": 2742,
              "loc": {
                "start": {
                  "line": 118,
                  "column": 2
                },
                "end": {
                  "line": 118,
                  "column": 6
                },
                "identifierName": "Word"
              },
              "name": "Word"
            },
            "exported": {
              "type": "Identifier",
              "start": 2738,
              "end": 2742,
              "loc": {
                "start": {
                  "line": 118,
                  "column": 2
                },
                "end": {
                  "line": 118,
                  "column": 6
                },
                "identifierName": "Word"
              },
              "name": "Word"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2746,
            "end": 2751,
            "loc": {
              "start": {
                "line": 119,
                "column": 2
              },
              "end": {
                "line": 119,
                "column": 7
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2746,
              "end": 2751,
              "loc": {
                "start": {
                  "line": 119,
                  "column": 2
                },
                "end": {
                  "line": 119,
                  "column": 7
                },
                "identifierName": "Apply"
              },
              "name": "Apply"
            },
            "exported": {
              "type": "Identifier",
              "start": 2746,
              "end": 2751,
              "loc": {
                "start": {
                  "line": 119,
                  "column": 2
                },
                "end": {
                  "line": 119,
                  "column": 7
                },
                "identifierName": "Apply"
              },
              "name": "Apply"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2755,
            "end": 2760,
            "loc": {
              "start": {
                "line": 120,
                "column": 2
              },
              "end": {
                "line": 120,
                "column": 7
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2755,
              "end": 2760,
              "loc": {
                "start": {
                  "line": 120,
                  "column": 2
                },
                "end": {
                  "line": 120,
                  "column": 7
                },
                "identifierName": "Regex"
              },
              "name": "Regex"
            },
            "exported": {
              "type": "Identifier",
              "start": 2755,
              "end": 2760,
              "loc": {
                "start": {
                  "line": 120,
                  "column": 2
                },
                "end": {
                  "line": 120,
                  "column": 7
                },
                "identifierName": "Regex"
              },
              "name": "Regex"
            }
          }
        ],
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2720,
        "end": 2763,
        "loc": {
          "start": {
            "line": 117,
            "column": 0
          },
          "end": {
            "line": 120,
            "column": 10
          }
        },
        "declaration": {
          "type": "ClassDeclaration",
          "start": 134,
          "end": 274,
          "loc": {
            "start": {
              "line": 7,
              "column": 0
            },
            "end": {
              "line": 16,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 140,
            "end": 145,
            "loc": {
              "start": {
                "line": 7,
                "column": 6
              },
              "end": {
                "line": 7,
                "column": 11
              },
              "identifierName": "Value"
            },
            "name": "Value"
          },
          "superClass": null,
          "body": {
            "type": "ClassBody",
            "start": 146,
            "end": 274,
            "loc": {
              "start": {
                "line": 7,
                "column": 12
              },
              "end": {
                "line": 16,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 150,
                "end": 229,
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 2
                  },
                  "end": {
                    "line": 11,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 150,
                  "end": 161,
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 2
                    },
                    "end": {
                      "line": 8,
                      "column": 13
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor"
                },
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 162,
                    "end": 167,
                    "loc": {
                      "start": {
                        "line": 8,
                        "column": 14
                      },
                      "end": {
                        "line": 8,
                        "column": 19
                      },
                      "identifierName": "token"
                    },
                    "name": "token"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 169,
                  "end": 229,
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 21
                    },
                    "end": {
                      "line": 11,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 175,
                      "end": 195,
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 4
                        },
                        "end": {
                          "line": 9,
                          "column": 24
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 175,
                        "end": 194,
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 4
                          },
                          "end": {
                            "line": 9,
                            "column": 23
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 175,
                          "end": 184,
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 4
                            },
                            "end": {
                              "line": 9,
                              "column": 13
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 175,
                            "end": 179,
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 4
                              },
                              "end": {
                                "line": 9,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 180,
                            "end": 184,
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 9
                              },
                              "end": {
                                "line": 9,
                                "column": 13
                              },
                              "identifierName": "type"
                            },
                            "name": "type"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "StringLiteral",
                          "start": 187,
                          "end": 194,
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 16
                            },
                            "end": {
                              "line": 9,
                              "column": 23
                            }
                          },
                          "extra": {
                            "rawValue": "value",
                            "raw": "\"value\""
                          },
                          "value": "value"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 200,
                      "end": 225,
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 4
                        },
                        "end": {
                          "line": 10,
                          "column": 29
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 200,
                        "end": 224,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 4
                          },
                          "end": {
                            "line": 10,
                            "column": 28
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 200,
                          "end": 210,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 4
                            },
                            "end": {
                              "line": 10,
                              "column": 14
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 200,
                            "end": 204,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 4
                              },
                              "end": {
                                "line": 10,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 205,
                            "end": 210,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 9
                              },
                              "end": {
                                "line": 10,
                                "column": 14
                              },
                              "identifierName": "value"
                            },
                            "name": "value"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 213,
                          "end": 224,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 17
                            },
                            "end": {
                              "line": 10,
                              "column": 28
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 213,
                            "end": 218,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 17
                              },
                              "end": {
                                "line": 10,
                                "column": 22
                              },
                              "identifierName": "token"
                            },
                            "name": "token"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 219,
                            "end": 224,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 23
                              },
                              "end": {
                                "line": 10,
                                "column": 28
                              },
                              "identifierName": "value"
                            },
                            "name": "value"
                          },
                          "computed": false
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 233,
                "end": 272,
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 2
                  },
                  "end": {
                    "line": 15,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 233,
                  "end": 241,
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 2
                    },
                    "end": {
                      "line": 13,
                      "column": 10
                    },
                    "identifierName": "evaluate"
                  },
                  "name": "evaluate"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 244,
                  "end": 272,
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 13
                    },
                    "end": {
                      "line": 15,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 250,
                      "end": 268,
                      "loc": {
                        "start": {
                          "line": 14,
                          "column": 4
                        },
                        "end": {
                          "line": 14,
                          "column": 22
                        }
                      },
                      "argument": {
                        "type": "MemberExpression",
                        "start": 257,
                        "end": 267,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 11
                          },
                          "end": {
                            "line": 14,
                            "column": 21
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 257,
                          "end": 261,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 11
                            },
                            "end": {
                              "line": 14,
                              "column": 15
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 262,
                          "end": 267,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 16
                            },
                            "end": {
                              "line": 14,
                              "column": 21
                            },
                            "identifierName": "value"
                          },
                          "name": "value"
                        },
                        "computed": false
                      }
                    }
                  ],
                  "directives": []
                }
              }
            ]
          },
          "__PseudoExport__": false,
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null,
        "leadingComments": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2720,
        "end": 2763,
        "loc": {
          "start": {
            "line": 117,
            "column": 0
          },
          "end": {
            "line": 120,
            "column": 10
          }
        },
        "declaration": {
          "type": "ClassDeclaration",
          "start": 276,
          "end": 708,
          "loc": {
            "start": {
              "line": 18,
              "column": 0
            },
            "end": {
              "line": 36,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 282,
            "end": 286,
            "loc": {
              "start": {
                "line": 18,
                "column": 6
              },
              "end": {
                "line": 18,
                "column": 10
              },
              "identifierName": "Word"
            },
            "name": "Word"
          },
          "superClass": null,
          "body": {
            "type": "ClassBody",
            "start": 287,
            "end": 708,
            "loc": {
              "start": {
                "line": 18,
                "column": 11
              },
              "end": {
                "line": 36,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 291,
                "end": 368,
                "loc": {
                  "start": {
                    "line": 19,
                    "column": 2
                  },
                  "end": {
                    "line": 22,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 291,
                  "end": 302,
                  "loc": {
                    "start": {
                      "line": 19,
                      "column": 2
                    },
                    "end": {
                      "line": 19,
                      "column": 13
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor"
                },
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 303,
                    "end": 308,
                    "loc": {
                      "start": {
                        "line": 19,
                        "column": 14
                      },
                      "end": {
                        "line": 19,
                        "column": 19
                      },
                      "identifierName": "token"
                    },
                    "name": "token"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 310,
                  "end": 368,
                  "loc": {
                    "start": {
                      "line": 19,
                      "column": 21
                    },
                    "end": {
                      "line": 22,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 316,
                      "end": 335,
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 4
                        },
                        "end": {
                          "line": 20,
                          "column": 23
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 316,
                        "end": 334,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 4
                          },
                          "end": {
                            "line": 20,
                            "column": 22
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 316,
                          "end": 325,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 4
                            },
                            "end": {
                              "line": 20,
                              "column": 13
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 316,
                            "end": 320,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 4
                              },
                              "end": {
                                "line": 20,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 321,
                            "end": 325,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 9
                              },
                              "end": {
                                "line": 20,
                                "column": 13
                              },
                              "identifierName": "type"
                            },
                            "name": "type"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "StringLiteral",
                          "start": 328,
                          "end": 334,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 16
                            },
                            "end": {
                              "line": 20,
                              "column": 22
                            }
                          },
                          "extra": {
                            "rawValue": "word",
                            "raw": "\"word\""
                          },
                          "value": "word"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 340,
                      "end": 364,
                      "loc": {
                        "start": {
                          "line": 21,
                          "column": 4
                        },
                        "end": {
                          "line": 21,
                          "column": 28
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 340,
                        "end": 363,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 4
                          },
                          "end": {
                            "line": 21,
                            "column": 27
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 340,
                          "end": 349,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 4
                            },
                            "end": {
                              "line": 21,
                              "column": 13
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 340,
                            "end": 344,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 4
                              },
                              "end": {
                                "line": 21,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 345,
                            "end": 349,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 9
                              },
                              "end": {
                                "line": 21,
                                "column": 13
                              },
                              "identifierName": "name"
                            },
                            "name": "name"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 352,
                          "end": 363,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 16
                            },
                            "end": {
                              "line": 21,
                              "column": 27
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 352,
                            "end": 357,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 16
                              },
                              "end": {
                                "line": 21,
                                "column": 21
                              },
                              "identifierName": "token"
                            },
                            "name": "token"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 358,
                            "end": 363,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 22
                              },
                              "end": {
                                "line": 21,
                                "column": 27
                              },
                              "identifierName": "value"
                            },
                            "name": "value"
                          },
                          "computed": false
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 372,
                "end": 706,
                "loc": {
                  "start": {
                    "line": 24,
                    "column": 2
                  },
                  "end": {
                    "line": 35,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 372,
                  "end": 380,
                  "loc": {
                    "start": {
                      "line": 24,
                      "column": 2
                    },
                    "end": {
                      "line": 24,
                      "column": 10
                    },
                    "identifierName": "evaluate"
                  },
                  "name": "evaluate"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 381,
                    "end": 384,
                    "loc": {
                      "start": {
                        "line": 24,
                        "column": 11
                      },
                      "end": {
                        "line": 24,
                        "column": 14
                      },
                      "identifierName": "env"
                    },
                    "name": "env"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 386,
                  "end": 706,
                  "loc": {
                    "start": {
                      "line": 24,
                      "column": 16
                    },
                    "end": {
                      "line": 35,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 408,
                      "end": 702,
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 4
                        },
                        "end": {
                          "line": 34,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 412,
                        "end": 428,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 8
                          },
                          "end": {
                            "line": 26,
                            "column": 24
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 412,
                          "end": 421,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 8
                            },
                            "end": {
                              "line": 26,
                              "column": 17
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 412,
                            "end": 416,
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 8
                              },
                              "end": {
                                "line": 26,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 417,
                            "end": 421,
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 13
                              },
                              "end": {
                                "line": 26,
                                "column": 17
                              },
                              "identifierName": "name"
                            },
                            "name": "name"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "operator": "in",
                        "right": {
                          "type": "Identifier",
                          "start": 425,
                          "end": 428,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 21
                            },
                            "end": {
                              "line": 26,
                              "column": 24
                            },
                            "identifierName": "env"
                          },
                          "name": "env"
                        },
                        "leadingComments": null
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 430,
                        "end": 524,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 26
                          },
                          "end": {
                            "line": 30,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 438,
                            "end": 460,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 6
                              },
                              "end": {
                                "line": 27,
                                "column": 28
                              }
                            },
                            "argument": {
                              "type": "MemberExpression",
                              "start": 445,
                              "end": 459,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 13
                                },
                                "end": {
                                  "line": 27,
                                  "column": 27
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 445,
                                "end": 448,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 16
                                  },
                                  "identifierName": "env"
                                },
                                "name": "env"
                              },
                              "property": {
                                "type": "MemberExpression",
                                "start": 449,
                                "end": 458,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 26
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 449,
                                  "end": 453,
                                  "loc": {
                                    "start": {
                                      "line": 27,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 27,
                                      "column": 21
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 454,
                                  "end": 458,
                                  "loc": {
                                    "start": {
                                      "line": 27,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 27,
                                      "column": 26
                                    },
                                    "identifierName": "name"
                                  },
                                  "name": "name"
                                },
                                "computed": false
                              },
                              "computed": true
                            },
                            "trailingComments": [
                              {
                                "type": "CommentLine",
                                "value": " Object variable referenced without using 'this'",
                                "start": 468,
                                "end": 518,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 56
                                  }
                                }
                              }
                            ]
                          }
                        ],
                        "directives": []
                      },
                      "alternate": {
                        "type": "IfStatement",
                        "start": 530,
                        "end": 702,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 11
                          },
                          "end": {
                            "line": 34,
                            "column": 5
                          }
                        },
                        "test": {
                          "type": "LogicalExpression",
                          "start": 534,
                          "end": 575,
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 15
                            },
                            "end": {
                              "line": 30,
                              "column": 56
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 534,
                            "end": 547,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 15
                              },
                              "end": {
                                "line": 30,
                                "column": 28
                              }
                            },
                            "left": {
                              "type": "StringLiteral",
                              "start": 534,
                              "end": 540,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 15
                                },
                                "end": {
                                  "line": 30,
                                  "column": 21
                                }
                              },
                              "extra": {
                                "rawValue": "this",
                                "raw": "\"this\""
                              },
                              "value": "this"
                            },
                            "operator": "in",
                            "right": {
                              "type": "Identifier",
                              "start": 544,
                              "end": 547,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 25
                                },
                                "end": {
                                  "line": 30,
                                  "column": 28
                                },
                                "identifierName": "env"
                              },
                              "name": "env"
                            }
                          },
                          "operator": "&&",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 551,
                            "end": 575,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 32
                              },
                              "end": {
                                "line": 30,
                                "column": 56
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 551,
                              "end": 560,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 32
                                },
                                "end": {
                                  "line": 30,
                                  "column": 41
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 551,
                                "end": 555,
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 36
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 556,
                                "end": 560,
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 41
                                  },
                                  "identifierName": "name"
                                },
                                "name": "name"
                              },
                              "computed": false
                            },
                            "operator": "in",
                            "right": {
                              "type": "MemberExpression",
                              "start": 564,
                              "end": 575,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 45
                                },
                                "end": {
                                  "line": 30,
                                  "column": 56
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 564,
                                "end": 567,
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 48
                                  },
                                  "identifierName": "env"
                                },
                                "name": "env"
                              },
                              "property": {
                                "type": "StringLiteral",
                                "start": 568,
                                "end": 574,
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 49
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 55
                                  }
                                },
                                "extra": {
                                  "rawValue": "this",
                                  "raw": "\"this\""
                                },
                                "value": "this"
                              },
                              "computed": true
                            }
                          }
                        },
                        "consequent": {
                          "type": "BlockStatement",
                          "start": 577,
                          "end": 621,
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 58
                            },
                            "end": {
                              "line": 32,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "start": 585,
                              "end": 615,
                              "loc": {
                                "start": {
                                  "line": 31,
                                  "column": 6
                                },
                                "end": {
                                  "line": 31,
                                  "column": 36
                                }
                              },
                              "argument": {
                                "type": "MemberExpression",
                                "start": 592,
                                "end": 614,
                                "loc": {
                                  "start": {
                                    "line": 31,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 31,
                                    "column": 35
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 592,
                                  "end": 603,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 24
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 592,
                                    "end": 595,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 16
                                      },
                                      "identifierName": "env"
                                    },
                                    "name": "env"
                                  },
                                  "property": {
                                    "type": "StringLiteral",
                                    "start": 596,
                                    "end": 602,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 23
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "this",
                                      "raw": "\"this\""
                                    },
                                    "value": "this"
                                  },
                                  "computed": true
                                },
                                "property": {
                                  "type": "MemberExpression",
                                  "start": 604,
                                  "end": 613,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 34
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 604,
                                    "end": 608,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 29
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 609,
                                    "end": 613,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 34
                                      },
                                      "identifierName": "name"
                                    },
                                    "name": "name"
                                  },
                                  "computed": false
                                },
                                "computed": true
                              }
                            }
                          ],
                          "directives": []
                        },
                        "alternate": {
                          "type": "BlockStatement",
                          "start": 627,
                          "end": 702,
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 11
                            },
                            "end": {
                              "line": 34,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ThrowStatement",
                              "start": 635,
                              "end": 696,
                              "loc": {
                                "start": {
                                  "line": 33,
                                  "column": 6
                                },
                                "end": {
                                  "line": 33,
                                  "column": 67
                                }
                              },
                              "argument": {
                                "type": "NewExpression",
                                "start": 641,
                                "end": 695,
                                "loc": {
                                  "start": {
                                    "line": 33,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 33,
                                    "column": 66
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 645,
                                  "end": 659,
                                  "loc": {
                                    "start": {
                                      "line": 33,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 33,
                                      "column": 30
                                    },
                                    "identifierName": "ReferenceError"
                                  },
                                  "name": "ReferenceError"
                                },
                                "arguments": [
                                  {
                                    "type": "TemplateLiteral",
                                    "start": 660,
                                    "end": 694,
                                    "loc": {
                                      "start": {
                                        "line": 33,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 33,
                                        "column": 65
                                      }
                                    },
                                    "expressions": [
                                      {
                                        "type": "MemberExpression",
                                        "start": 683,
                                        "end": 692,
                                        "loc": {
                                          "start": {
                                            "line": 33,
                                            "column": 54
                                          },
                                          "end": {
                                            "line": 33,
                                            "column": 63
                                          }
                                        },
                                        "object": {
                                          "type": "ThisExpression",
                                          "start": 683,
                                          "end": 687,
                                          "loc": {
                                            "start": {
                                              "line": 33,
                                              "column": 54
                                            },
                                            "end": {
                                              "line": 33,
                                              "column": 58
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 688,
                                          "end": 692,
                                          "loc": {
                                            "start": {
                                              "line": 33,
                                              "column": 59
                                            },
                                            "end": {
                                              "line": 33,
                                              "column": 63
                                            },
                                            "identifierName": "name"
                                          },
                                          "name": "name"
                                        },
                                        "computed": false
                                      }
                                    ],
                                    "quasis": [
                                      {
                                        "type": "TemplateElement",
                                        "start": 661,
                                        "end": 681,
                                        "loc": {
                                          "start": {
                                            "line": 33,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 33,
                                            "column": 52
                                          }
                                        },
                                        "value": {
                                          "raw": "Undefined variable: ",
                                          "cooked": "Undefined variable: "
                                        },
                                        "tail": false
                                      },
                                      {
                                        "type": "TemplateElement",
                                        "start": 693,
                                        "end": 693,
                                        "loc": {
                                          "start": {
                                            "line": 33,
                                            "column": 64
                                          },
                                          "end": {
                                            "line": 33,
                                            "column": 64
                                          }
                                        },
                                        "value": {
                                          "raw": "",
                                          "cooked": ""
                                        },
                                        "tail": true
                                      }
                                    ]
                                  }
                                ]
                              }
                            }
                          ],
                          "directives": []
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Variable",
                          "start": 392,
                          "end": 403,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 4
                            },
                            "end": {
                              "line": 25,
                              "column": 15
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "directives": []
                }
              }
            ]
          },
          "__PseudoExport__": false,
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null,
        "leadingComments": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2720,
        "end": 2763,
        "loc": {
          "start": {
            "line": 117,
            "column": 0
          },
          "end": {
            "line": 120,
            "column": 10
          }
        },
        "declaration": {
          "type": "ClassDeclaration",
          "start": 710,
          "end": 2523,
          "loc": {
            "start": {
              "line": 38,
              "column": 0
            },
            "end": {
              "line": 102,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 716,
            "end": 721,
            "loc": {
              "start": {
                "line": 38,
                "column": 6
              },
              "end": {
                "line": 38,
                "column": 11
              },
              "identifierName": "Apply"
            },
            "name": "Apply"
          },
          "superClass": null,
          "body": {
            "type": "ClassBody",
            "start": 722,
            "end": 2523,
            "loc": {
              "start": {
                "line": 38,
                "column": 12
              },
              "end": {
                "line": 102,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 726,
                "end": 820,
                "loc": {
                  "start": {
                    "line": 39,
                    "column": 2
                  },
                  "end": {
                    "line": 43,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 726,
                  "end": 737,
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 2
                    },
                    "end": {
                      "line": 39,
                      "column": 13
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor"
                },
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 738,
                    "end": 742,
                    "loc": {
                      "start": {
                        "line": 39,
                        "column": 14
                      },
                      "end": {
                        "line": 39,
                        "column": 18
                      },
                      "identifierName": "expr"
                    },
                    "name": "expr"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 744,
                  "end": 820,
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 20
                    },
                    "end": {
                      "line": 43,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 750,
                      "end": 770,
                      "loc": {
                        "start": {
                          "line": 40,
                          "column": 4
                        },
                        "end": {
                          "line": 40,
                          "column": 24
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 750,
                        "end": 769,
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 4
                          },
                          "end": {
                            "line": 40,
                            "column": 23
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 750,
                          "end": 759,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 4
                            },
                            "end": {
                              "line": 40,
                              "column": 13
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 750,
                            "end": 754,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 4
                              },
                              "end": {
                                "line": 40,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 755,
                            "end": 759,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 9
                              },
                              "end": {
                                "line": 40,
                                "column": 13
                              },
                              "identifierName": "type"
                            },
                            "name": "type"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "StringLiteral",
                          "start": 762,
                          "end": 769,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 16
                            },
                            "end": {
                              "line": 40,
                              "column": 23
                            }
                          },
                          "extra": {
                            "rawValue": "apply",
                            "raw": "\"apply\""
                          },
                          "value": "apply"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 775,
                      "end": 796,
                      "loc": {
                        "start": {
                          "line": 41,
                          "column": 4
                        },
                        "end": {
                          "line": 41,
                          "column": 25
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 775,
                        "end": 795,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 4
                          },
                          "end": {
                            "line": 41,
                            "column": 24
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 775,
                          "end": 788,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 4
                            },
                            "end": {
                              "line": 41,
                              "column": 17
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 775,
                            "end": 779,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 4
                              },
                              "end": {
                                "line": 41,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 780,
                            "end": 788,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 9
                              },
                              "end": {
                                "line": 41,
                                "column": 17
                              },
                              "identifierName": "operator"
                            },
                            "name": "operator"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 791,
                          "end": 795,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 20
                            },
                            "end": {
                              "line": 41,
                              "column": 24
                            },
                            "identifierName": "expr"
                          },
                          "name": "expr"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 801,
                      "end": 816,
                      "loc": {
                        "start": {
                          "line": 42,
                          "column": 4
                        },
                        "end": {
                          "line": 42,
                          "column": 19
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 801,
                        "end": 815,
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 4
                          },
                          "end": {
                            "line": 42,
                            "column": 18
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 801,
                          "end": 810,
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 4
                            },
                            "end": {
                              "line": 42,
                              "column": 13
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 801,
                            "end": 805,
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 4
                              },
                              "end": {
                                "line": 42,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 806,
                            "end": 810,
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 9
                              },
                              "end": {
                                "line": 42,
                                "column": 13
                              },
                              "identifierName": "args"
                            },
                            "name": "args"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "start": 813,
                          "end": 815,
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 16
                            },
                            "end": {
                              "line": 42,
                              "column": 18
                            }
                          },
                          "elements": []
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 824,
                "end": 2521,
                "loc": {
                  "start": {
                    "line": 45,
                    "column": 2
                  },
                  "end": {
                    "line": 101,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 824,
                  "end": 832,
                  "loc": {
                    "start": {
                      "line": 45,
                      "column": 2
                    },
                    "end": {
                      "line": 45,
                      "column": 10
                    },
                    "identifierName": "evaluate"
                  },
                  "name": "evaluate"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 833,
                    "end": 836,
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 11
                      },
                      "end": {
                        "line": 45,
                        "column": 14
                      },
                      "identifierName": "env"
                    },
                    "name": "env"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 838,
                  "end": 2521,
                  "loc": {
                    "start": {
                      "line": 45,
                      "column": 16
                    },
                    "end": {
                      "line": 101,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 887,
                      "end": 1030,
                      "loc": {
                        "start": {
                          "line": 47,
                          "column": 4
                        },
                        "end": {
                          "line": 49,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "LogicalExpression",
                        "start": 891,
                        "end": 958,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 8
                          },
                          "end": {
                            "line": 47,
                            "column": 75
                          }
                        },
                        "left": {
                          "type": "BinaryExpression",
                          "start": 891,
                          "end": 920,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 8
                            },
                            "end": {
                              "line": 47,
                              "column": 37
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 891,
                            "end": 909,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 8
                              },
                              "end": {
                                "line": 47,
                                "column": 26
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 891,
                              "end": 904,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 8
                                },
                                "end": {
                                  "line": 47,
                                  "column": 21
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 891,
                                "end": 895,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 12
                                  }
                                },
                                "leadingComments": null
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 896,
                                "end": 904,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 21
                                  },
                                  "identifierName": "operator"
                                },
                                "name": "operator"
                              },
                              "computed": false,
                              "leadingComments": null
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 905,
                              "end": 909,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 22
                                },
                                "end": {
                                  "line": 47,
                                  "column": 26
                                },
                                "identifierName": "type"
                              },
                              "name": "type"
                            },
                            "computed": false,
                            "leadingComments": null
                          },
                          "operator": "===",
                          "right": {
                            "type": "StringLiteral",
                            "start": 914,
                            "end": 920,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 31
                              },
                              "end": {
                                "line": 47,
                                "column": 37
                              }
                            },
                            "extra": {
                              "rawValue": "word",
                              "raw": "\"word\""
                            },
                            "value": "word"
                          },
                          "leadingComments": null
                        },
                        "operator": "&&",
                        "right": {
                          "type": "BinaryExpression",
                          "start": 924,
                          "end": 958,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 41
                            },
                            "end": {
                              "line": 47,
                              "column": 75
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 924,
                            "end": 942,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 41
                              },
                              "end": {
                                "line": 47,
                                "column": 59
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 924,
                              "end": 937,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 41
                                },
                                "end": {
                                  "line": 47,
                                  "column": 54
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 924,
                                "end": 928,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 45
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 929,
                                "end": 937,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 46
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 54
                                  },
                                  "identifierName": "operator"
                                },
                                "name": "operator"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 938,
                              "end": 942,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 55
                                },
                                "end": {
                                  "line": 47,
                                  "column": 59
                                },
                                "identifierName": "name"
                              },
                              "name": "name"
                            },
                            "computed": false
                          },
                          "operator": "in",
                          "right": {
                            "type": "Identifier",
                            "start": 946,
                            "end": 958,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 63
                              },
                              "end": {
                                "line": 47,
                                "column": 75
                              },
                              "identifierName": "SpecialForms"
                            },
                            "name": "SpecialForms"
                          }
                        },
                        "leadingComments": null
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 960,
                        "end": 1030,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 77
                          },
                          "end": {
                            "line": 49,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 968,
                            "end": 1024,
                            "loc": {
                              "start": {
                                "line": 48,
                                "column": 6
                              },
                              "end": {
                                "line": 48,
                                "column": 62
                              }
                            },
                            "argument": {
                              "type": "CallExpression",
                              "start": 975,
                              "end": 1023,
                              "loc": {
                                "start": {
                                  "line": 48,
                                  "column": 13
                                },
                                "end": {
                                  "line": 48,
                                  "column": 61
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 975,
                                "end": 1007,
                                "loc": {
                                  "start": {
                                    "line": 48,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 48,
                                    "column": 45
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 975,
                                  "end": 987,
                                  "loc": {
                                    "start": {
                                      "line": 48,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 48,
                                      "column": 25
                                    },
                                    "identifierName": "SpecialForms"
                                  },
                                  "name": "SpecialForms"
                                },
                                "property": {
                                  "type": "MemberExpression",
                                  "start": 988,
                                  "end": 1006,
                                  "loc": {
                                    "start": {
                                      "line": 48,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 48,
                                      "column": 44
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 988,
                                    "end": 1001,
                                    "loc": {
                                      "start": {
                                        "line": 48,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 48,
                                        "column": 39
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 988,
                                      "end": 992,
                                      "loc": {
                                        "start": {
                                          "line": 48,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 48,
                                          "column": 30
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 993,
                                      "end": 1001,
                                      "loc": {
                                        "start": {
                                          "line": 48,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 48,
                                          "column": 39
                                        },
                                        "identifierName": "operator"
                                      },
                                      "name": "operator"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1002,
                                    "end": 1006,
                                    "loc": {
                                      "start": {
                                        "line": 48,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 48,
                                        "column": 44
                                      },
                                      "identifierName": "name"
                                    },
                                    "name": "name"
                                  },
                                  "computed": false
                                },
                                "computed": true
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 1008,
                                  "end": 1017,
                                  "loc": {
                                    "start": {
                                      "line": 48,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 48,
                                      "column": 55
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 1008,
                                    "end": 1012,
                                    "loc": {
                                      "start": {
                                        "line": 48,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 48,
                                        "column": 50
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1013,
                                    "end": 1017,
                                    "loc": {
                                      "start": {
                                        "line": 48,
                                        "column": 51
                                      },
                                      "end": {
                                        "line": 48,
                                        "column": 55
                                      },
                                      "identifierName": "args"
                                    },
                                    "name": "args"
                                  },
                                  "computed": false
                                },
                                {
                                  "type": "Identifier",
                                  "start": 1019,
                                  "end": 1022,
                                  "loc": {
                                    "start": {
                                      "line": 48,
                                      "column": 57
                                    },
                                    "end": {
                                      "line": 48,
                                      "column": 60
                                    },
                                    "identifierName": "env"
                                  },
                                  "name": "env"
                                }
                              ]
                            }
                          }
                        ],
                        "directives": [],
                        "trailingComments": null
                      },
                      "alternate": null,
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Check if its a specialForm function",
                          "start": 844,
                          "end": 882,
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 4
                            },
                            "end": {
                              "line": 46,
                              "column": 42
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Evaluated operator",
                          "start": 1036,
                          "end": 1057,
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 4
                            },
                            "end": {
                              "line": 51,
                              "column": 25
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 1062,
                      "end": 1099,
                      "loc": {
                        "start": {
                          "line": 52,
                          "column": 4
                        },
                        "end": {
                          "line": 52,
                          "column": 41
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 1066,
                          "end": 1098,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 8
                            },
                            "end": {
                              "line": 52,
                              "column": 40
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 1066,
                            "end": 1068,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 8
                              },
                              "end": {
                                "line": 52,
                                "column": 10
                              },
                              "identifierName": "op"
                            },
                            "name": "op",
                            "leadingComments": null
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 1071,
                            "end": 1098,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 13
                              },
                              "end": {
                                "line": 52,
                                "column": 40
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1071,
                              "end": 1093,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 13
                                },
                                "end": {
                                  "line": 52,
                                  "column": 35
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 1071,
                                "end": 1084,
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 52,
                                    "column": 26
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 1071,
                                  "end": 1075,
                                  "loc": {
                                    "start": {
                                      "line": 52,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 52,
                                      "column": 17
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1076,
                                  "end": 1084,
                                  "loc": {
                                    "start": {
                                      "line": 52,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 52,
                                      "column": 26
                                    },
                                    "identifierName": "operator"
                                  },
                                  "name": "operator"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1085,
                                "end": 1093,
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 52,
                                    "column": 35
                                  },
                                  "identifierName": "evaluate"
                                },
                                "name": "evaluate"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 1094,
                                "end": 1097,
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 52,
                                    "column": 39
                                  },
                                  "identifierName": "env"
                                },
                                "name": "env"
                              }
                            ]
                          },
                          "leadingComments": null
                        }
                      ],
                      "kind": "let",
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Evaluated operator",
                          "start": 1036,
                          "end": 1057,
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 4
                            },
                            "end": {
                              "line": 51,
                              "column": 25
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Evaluated arguments",
                          "start": 1104,
                          "end": 1126,
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 4
                            },
                            "end": {
                              "line": 53,
                              "column": 26
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 1131,
                      "end": 1184,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 4
                        },
                        "end": {
                          "line": 54,
                          "column": 57
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 1135,
                          "end": 1183,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 8
                            },
                            "end": {
                              "line": 54,
                              "column": 56
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 1135,
                            "end": 1141,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 8
                              },
                              "end": {
                                "line": 54,
                                "column": 14
                              },
                              "identifierName": "evArgs"
                            },
                            "name": "evArgs",
                            "leadingComments": null
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 1144,
                            "end": 1183,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 17
                              },
                              "end": {
                                "line": 54,
                                "column": 56
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1144,
                              "end": 1157,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 17
                                },
                                "end": {
                                  "line": 54,
                                  "column": 30
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 1144,
                                "end": 1153,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 26
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 1144,
                                  "end": 1148,
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 21
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1149,
                                  "end": 1153,
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 26
                                    },
                                    "identifierName": "args"
                                  },
                                  "name": "args"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1154,
                                "end": 1157,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 30
                                  },
                                  "identifierName": "map"
                                },
                                "name": "map"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "ArrowFunctionExpression",
                                "start": 1158,
                                "end": 1182,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 55
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": true,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 1158,
                                    "end": 1161,
                                    "loc": {
                                      "start": {
                                        "line": 54,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 54,
                                        "column": 34
                                      },
                                      "identifierName": "arg"
                                    },
                                    "name": "arg"
                                  }
                                ],
                                "body": {
                                  "type": "CallExpression",
                                  "start": 1165,
                                  "end": 1182,
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 38
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 55
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 1165,
                                    "end": 1177,
                                    "loc": {
                                      "start": {
                                        "line": 54,
                                        "column": 38
                                      },
                                      "end": {
                                        "line": 54,
                                        "column": 50
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1165,
                                      "end": 1168,
                                      "loc": {
                                        "start": {
                                          "line": 54,
                                          "column": 38
                                        },
                                        "end": {
                                          "line": 54,
                                          "column": 41
                                        },
                                        "identifierName": "arg"
                                      },
                                      "name": "arg"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1169,
                                      "end": 1177,
                                      "loc": {
                                        "start": {
                                          "line": 54,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 54,
                                          "column": 50
                                        },
                                        "identifierName": "evaluate"
                                      },
                                      "name": "evaluate"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 1178,
                                      "end": 1181,
                                      "loc": {
                                        "start": {
                                          "line": 54,
                                          "column": 51
                                        },
                                        "end": {
                                          "line": 54,
                                          "column": 54
                                        },
                                        "identifierName": "env"
                                      },
                                      "name": "env"
                                    }
                                  ]
                                }
                              }
                            ]
                          },
                          "leadingComments": null
                        }
                      ],
                      "kind": "let",
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Evaluated arguments",
                          "start": 1104,
                          "end": 1126,
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 4
                            },
                            "end": {
                              "line": 53,
                              "column": 26
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "IfStatement",
                      "start": 1190,
                      "end": 1278,
                      "loc": {
                        "start": {
                          "line": 56,
                          "column": 4
                        },
                        "end": {
                          "line": 59,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 1194,
                        "end": 1218,
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 8
                          },
                          "end": {
                            "line": 56,
                            "column": 32
                          }
                        },
                        "left": {
                          "type": "UnaryExpression",
                          "start": 1194,
                          "end": 1203,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 8
                            },
                            "end": {
                              "line": 56,
                              "column": 17
                            }
                          },
                          "operator": "typeof",
                          "prefix": true,
                          "argument": {
                            "type": "Identifier",
                            "start": 1201,
                            "end": 1203,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 15
                              },
                              "end": {
                                "line": 56,
                                "column": 17
                              },
                              "identifierName": "op"
                            },
                            "name": "op"
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          }
                        },
                        "operator": "===",
                        "right": {
                          "type": "StringLiteral",
                          "start": 1208,
                          "end": 1218,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 22
                            },
                            "end": {
                              "line": 56,
                              "column": 32
                            }
                          },
                          "extra": {
                            "rawValue": "function",
                            "raw": "\"function\""
                          },
                          "value": "function"
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 1220,
                        "end": 1278,
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 34
                          },
                          "end": {
                            "line": 59,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 1251,
                            "end": 1272,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 6
                              },
                              "end": {
                                "line": 58,
                                "column": 27
                              }
                            },
                            "argument": {
                              "type": "CallExpression",
                              "start": 1258,
                              "end": 1271,
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 13
                                },
                                "end": {
                                  "line": 58,
                                  "column": 26
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 1258,
                                "end": 1260,
                                "loc": {
                                  "start": {
                                    "line": 58,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 15
                                  },
                                  "identifierName": "op"
                                },
                                "name": "op",
                                "leadingComments": null
                              },
                              "arguments": [
                                {
                                  "type": "SpreadElement",
                                  "start": 1261,
                                  "end": 1270,
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 25
                                    }
                                  },
                                  "argument": {
                                    "type": "Identifier",
                                    "start": 1264,
                                    "end": 1270,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 25
                                      },
                                      "identifierName": "evArgs"
                                    },
                                    "name": "evArgs"
                                  }
                                }
                              ],
                              "leadingComments": null
                            },
                            "leadingComments": [
                              {
                                "type": "CommentLine",
                                "value": " Is a function",
                                "start": 1228,
                                "end": 1244,
                                "loc": {
                                  "start": {
                                    "line": 57,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 57,
                                    "column": 22
                                  }
                                }
                              }
                            ]
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 1284,
                      "end": 2449,
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 4
                        },
                        "end": {
                          "line": 98,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 1288,
                        "end": 1313,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 8
                          },
                          "end": {
                            "line": 61,
                            "column": 33
                          }
                        },
                        "left": {
                          "type": "UnaryExpression",
                          "start": 1288,
                          "end": 1297,
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 8
                            },
                            "end": {
                              "line": 61,
                              "column": 17
                            }
                          },
                          "operator": "typeof",
                          "prefix": true,
                          "argument": {
                            "type": "Identifier",
                            "start": 1295,
                            "end": 1297,
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 15
                              },
                              "end": {
                                "line": 61,
                                "column": 17
                              },
                              "identifierName": "op"
                            },
                            "name": "op"
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          }
                        },
                        "operator": "!==",
                        "right": {
                          "type": "StringLiteral",
                          "start": 1302,
                          "end": 1313,
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 22
                            },
                            "end": {
                              "line": 61,
                              "column": 33
                            }
                          },
                          "extra": {
                            "rawValue": "undefined",
                            "raw": "\"undefined\""
                          },
                          "value": "undefined"
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 1315,
                        "end": 2449,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 35
                          },
                          "end": {
                            "line": 98,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 1372,
                            "end": 1393,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 6
                              },
                              "end": {
                                "line": 63,
                                "column": 27
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 1376,
                                "end": 1392,
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 26
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 1376,
                                  "end": 1380,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 14
                                    },
                                    "identifierName": "name"
                                  },
                                  "name": "name",
                                  "leadingComments": null
                                },
                                "init": {
                                  "type": "MemberExpression",
                                  "start": 1383,
                                  "end": 1392,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 26
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 1383,
                                    "end": 1389,
                                    "loc": {
                                      "start": {
                                        "line": 63,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 63,
                                        "column": 23
                                      },
                                      "identifierName": "evArgs"
                                    },
                                    "name": "evArgs"
                                  },
                                  "property": {
                                    "type": "NumericLiteral",
                                    "start": 1390,
                                    "end": 1391,
                                    "loc": {
                                      "start": {
                                        "line": 63,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 63,
                                        "column": 25
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "value": 0
                                  },
                                  "computed": true
                                },
                                "leadingComments": null
                              }
                            ],
                            "kind": "let",
                            "leadingComments": [
                              {
                                "type": "CommentLine",
                                "value": " Is an object, number, string or boolean",
                                "start": 1323,
                                "end": 1365,
                                "loc": {
                                  "start": {
                                    "line": 62,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 62,
                                    "column": 48
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "VariableDeclaration",
                            "start": 1400,
                            "end": 1433,
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 6
                              },
                              "end": {
                                "line": 64,
                                "column": 39
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 1404,
                                "end": 1432,
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 38
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 1404,
                                  "end": 1414,
                                  "loc": {
                                    "start": {
                                      "line": 64,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 64,
                                      "column": 20
                                    },
                                    "identifierName": "methodArgs"
                                  },
                                  "name": "methodArgs"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 1417,
                                  "end": 1432,
                                  "loc": {
                                    "start": {
                                      "line": 64,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 64,
                                      "column": 38
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 1417,
                                    "end": 1429,
                                    "loc": {
                                      "start": {
                                        "line": 64,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 64,
                                        "column": 35
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1417,
                                      "end": 1423,
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 29
                                        },
                                        "identifierName": "evArgs"
                                      },
                                      "name": "evArgs"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1424,
                                      "end": 1429,
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 35
                                        },
                                        "identifierName": "slice"
                                      },
                                      "name": "slice"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "NumericLiteral",
                                      "start": 1430,
                                      "end": 1431,
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 37
                                        }
                                      },
                                      "extra": {
                                        "rawValue": 1,
                                        "raw": "1"
                                      },
                                      "value": 1
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "let",
                            "trailingComments": [
                              {
                                "type": "CommentLine",
                                "value": " Check if the name of the method/property is defined on the object",
                                "start": 1441,
                                "end": 1509,
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 74
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "IfStatement",
                            "start": 1516,
                            "end": 2443,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 6
                              },
                              "end": {
                                "line": 97,
                                "column": 7
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 1520,
                              "end": 1551,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 10
                                },
                                "end": {
                                  "line": 67,
                                  "column": 41
                                }
                              },
                              "left": {
                                "type": "UnaryExpression",
                                "start": 1520,
                                "end": 1535,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 25
                                  }
                                },
                                "operator": "typeof",
                                "prefix": true,
                                "argument": {
                                  "type": "MemberExpression",
                                  "start": 1527,
                                  "end": 1535,
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 25
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 1527,
                                    "end": 1529,
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 19
                                      },
                                      "identifierName": "op"
                                    },
                                    "name": "op",
                                    "leadingComments": null
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1530,
                                    "end": 1534,
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 24
                                      },
                                      "identifierName": "name"
                                    },
                                    "name": "name"
                                  },
                                  "computed": true,
                                  "leadingComments": null
                                },
                                "extra": {
                                  "parenthesizedArgument": false
                                },
                                "leadingComments": null
                              },
                              "operator": "!==",
                              "right": {
                                "type": "StringLiteral",
                                "start": 1540,
                                "end": 1551,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 41
                                  }
                                },
                                "extra": {
                                  "rawValue": "undefined",
                                  "raw": "\"undefined\""
                                },
                                "value": "undefined"
                              },
                              "leadingComments": null
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "start": 1553,
                              "end": 1838,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 43
                                },
                                "end": {
                                  "line": 78,
                                  "column": 7
                                }
                              },
                              "body": [
                                {
                                  "type": "IfStatement",
                                  "start": 1594,
                                  "end": 1760,
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 9
                                    }
                                  },
                                  "test": {
                                    "type": "BinaryExpression",
                                    "start": 1598,
                                    "end": 1628,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 42
                                      }
                                    },
                                    "left": {
                                      "type": "UnaryExpression",
                                      "start": 1598,
                                      "end": 1613,
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 27
                                        }
                                      },
                                      "operator": "typeof",
                                      "prefix": true,
                                      "argument": {
                                        "type": "MemberExpression",
                                        "start": 1605,
                                        "end": 1613,
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 27
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 1605,
                                          "end": 1607,
                                          "loc": {
                                            "start": {
                                              "line": 69,
                                              "column": 19
                                            },
                                            "end": {
                                              "line": 69,
                                              "column": 21
                                            },
                                            "identifierName": "op"
                                          },
                                          "name": "op",
                                          "leadingComments": null
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 1608,
                                          "end": 1612,
                                          "loc": {
                                            "start": {
                                              "line": 69,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 69,
                                              "column": 26
                                            },
                                            "identifierName": "name"
                                          },
                                          "name": "name"
                                        },
                                        "computed": true,
                                        "leadingComments": null
                                      },
                                      "extra": {
                                        "parenthesizedArgument": false
                                      },
                                      "leadingComments": null
                                    },
                                    "operator": "===",
                                    "right": {
                                      "type": "StringLiteral",
                                      "start": 1618,
                                      "end": 1628,
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 42
                                        }
                                      },
                                      "extra": {
                                        "rawValue": "function",
                                        "raw": "\"function\""
                                      },
                                      "value": "function"
                                    },
                                    "leadingComments": null
                                  },
                                  "consequent": {
                                    "type": "BlockStatement",
                                    "start": 1630,
                                    "end": 1716,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 9
                                      }
                                    },
                                    "body": [
                                      {
                                        "type": "ReturnStatement",
                                        "start": 1642,
                                        "end": 1673,
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 10
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 41
                                          }
                                        },
                                        "argument": {
                                          "type": "CallExpression",
                                          "start": 1649,
                                          "end": 1672,
                                          "loc": {
                                            "start": {
                                              "line": 70,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 70,
                                              "column": 40
                                            }
                                          },
                                          "callee": {
                                            "type": "MemberExpression",
                                            "start": 1649,
                                            "end": 1657,
                                            "loc": {
                                              "start": {
                                                "line": 70,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 70,
                                                "column": 25
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 1649,
                                              "end": 1651,
                                              "loc": {
                                                "start": {
                                                  "line": 70,
                                                  "column": 17
                                                },
                                                "end": {
                                                  "line": 70,
                                                  "column": 19
                                                },
                                                "identifierName": "op"
                                              },
                                              "name": "op"
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 1652,
                                              "end": 1656,
                                              "loc": {
                                                "start": {
                                                  "line": 70,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 70,
                                                  "column": 24
                                                },
                                                "identifierName": "name"
                                              },
                                              "name": "name"
                                            },
                                            "computed": true
                                          },
                                          "arguments": [
                                            {
                                              "type": "SpreadElement",
                                              "start": 1658,
                                              "end": 1671,
                                              "loc": {
                                                "start": {
                                                  "line": 70,
                                                  "column": 26
                                                },
                                                "end": {
                                                  "line": 70,
                                                  "column": 39
                                                }
                                              },
                                              "argument": {
                                                "type": "Identifier",
                                                "start": 1661,
                                                "end": 1671,
                                                "loc": {
                                                  "start": {
                                                    "line": 70,
                                                    "column": 29
                                                  },
                                                  "end": {
                                                    "line": 70,
                                                    "column": 39
                                                  },
                                                  "identifierName": "methodArgs"
                                                },
                                                "name": "methodArgs"
                                              }
                                            }
                                          ]
                                        },
                                        "trailingComments": [
                                          {
                                            "type": "CommentLine",
                                            "value": " Return as property",
                                            "start": 1685,
                                            "end": 1706,
                                            "loc": {
                                              "start": {
                                                "line": 72,
                                                "column": 10
                                              },
                                              "end": {
                                                "line": 72,
                                                "column": 31
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ],
                                    "directives": []
                                  },
                                  "alternate": {
                                    "type": "BlockStatement",
                                    "start": 1722,
                                    "end": 1760,
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 9
                                      }
                                    },
                                    "body": [
                                      {
                                        "type": "ReturnStatement",
                                        "start": 1734,
                                        "end": 1750,
                                        "loc": {
                                          "start": {
                                            "line": 74,
                                            "column": 10
                                          },
                                          "end": {
                                            "line": 74,
                                            "column": 26
                                          }
                                        },
                                        "argument": {
                                          "type": "MemberExpression",
                                          "start": 1741,
                                          "end": 1749,
                                          "loc": {
                                            "start": {
                                              "line": 74,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 74,
                                              "column": 25
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 1741,
                                            "end": 1743,
                                            "loc": {
                                              "start": {
                                                "line": 74,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 74,
                                                "column": 19
                                              },
                                              "identifierName": "op"
                                            },
                                            "name": "op"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 1744,
                                            "end": 1748,
                                            "loc": {
                                              "start": {
                                                "line": 74,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 74,
                                                "column": 24
                                              },
                                              "identifierName": "name"
                                            },
                                            "name": "name"
                                          },
                                          "computed": true
                                        }
                                      }
                                    ],
                                    "directives": [],
                                    "trailingComments": null
                                  },
                                  "leadingComments": [
                                    {
                                      "type": "CommentLine",
                                      "value": " Execute as function",
                                      "start": 1563,
                                      "end": 1585,
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 30
                                        }
                                      }
                                    }
                                  ],
                                  "trailingComments": [
                                    {
                                      "type": "CommentLine",
                                      "value": " If the name of the method is not defined on the object...",
                                      "start": 1770,
                                      "end": 1830,
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 68
                                        }
                                      }
                                    }
                                  ]
                                }
                              ],
                              "directives": []
                            },
                            "alternate": {
                              "type": "BlockStatement",
                              "start": 1844,
                              "end": 2443,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 13
                                },
                                "end": {
                                  "line": 97,
                                  "column": 7
                                }
                              },
                              "body": [
                                {
                                  "type": "IfStatement",
                                  "start": 1894,
                                  "end": 2092,
                                  "loc": {
                                    "start": {
                                      "line": 80,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 86,
                                      "column": 9
                                    }
                                  },
                                  "test": {
                                    "type": "BinaryExpression",
                                    "start": 1898,
                                    "end": 1915,
                                    "loc": {
                                      "start": {
                                        "line": 80,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 80,
                                        "column": 29
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 1898,
                                      "end": 1900,
                                      "loc": {
                                        "start": {
                                          "line": 80,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 80,
                                          "column": 14
                                        },
                                        "identifierName": "op"
                                      },
                                      "name": "op",
                                      "leadingComments": null
                                    },
                                    "operator": "instanceof",
                                    "right": {
                                      "type": "Identifier",
                                      "start": 1912,
                                      "end": 1915,
                                      "loc": {
                                        "start": {
                                          "line": 80,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 80,
                                          "column": 29
                                        },
                                        "identifierName": "Map"
                                      },
                                      "name": "Map"
                                    },
                                    "leadingComments": null
                                  },
                                  "consequent": {
                                    "type": "BlockStatement",
                                    "start": 1917,
                                    "end": 2092,
                                    "loc": {
                                      "start": {
                                        "line": 80,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 9
                                      }
                                    },
                                    "body": [
                                      {
                                        "type": "IfStatement",
                                        "start": 1929,
                                        "end": 2082,
                                        "loc": {
                                          "start": {
                                            "line": 81,
                                            "column": 10
                                          },
                                          "end": {
                                            "line": 85,
                                            "column": 11
                                          }
                                        },
                                        "test": {
                                          "type": "BinaryExpression",
                                          "start": 1933,
                                          "end": 1967,
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 14
                                            },
                                            "end": {
                                              "line": 81,
                                              "column": 48
                                            }
                                          },
                                          "left": {
                                            "type": "UnaryExpression",
                                            "start": 1933,
                                            "end": 1952,
                                            "loc": {
                                              "start": {
                                                "line": 81,
                                                "column": 14
                                              },
                                              "end": {
                                                "line": 81,
                                                "column": 33
                                              }
                                            },
                                            "operator": "typeof",
                                            "prefix": true,
                                            "argument": {
                                              "type": "CallExpression",
                                              "start": 1940,
                                              "end": 1952,
                                              "loc": {
                                                "start": {
                                                  "line": 81,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 81,
                                                  "column": 33
                                                }
                                              },
                                              "callee": {
                                                "type": "MemberExpression",
                                                "start": 1940,
                                                "end": 1946,
                                                "loc": {
                                                  "start": {
                                                    "line": 81,
                                                    "column": 21
                                                  },
                                                  "end": {
                                                    "line": 81,
                                                    "column": 27
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 1940,
                                                  "end": 1942,
                                                  "loc": {
                                                    "start": {
                                                      "line": 81,
                                                      "column": 21
                                                    },
                                                    "end": {
                                                      "line": 81,
                                                      "column": 23
                                                    },
                                                    "identifierName": "op"
                                                  },
                                                  "name": "op"
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 1943,
                                                  "end": 1946,
                                                  "loc": {
                                                    "start": {
                                                      "line": 81,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 81,
                                                      "column": 27
                                                    },
                                                    "identifierName": "get"
                                                  },
                                                  "name": "get"
                                                },
                                                "computed": false
                                              },
                                              "arguments": [
                                                {
                                                  "type": "Identifier",
                                                  "start": 1947,
                                                  "end": 1951,
                                                  "loc": {
                                                    "start": {
                                                      "line": 81,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 81,
                                                      "column": 32
                                                    },
                                                    "identifierName": "name"
                                                  },
                                                  "name": "name"
                                                }
                                              ]
                                            },
                                            "extra": {
                                              "parenthesizedArgument": false
                                            }
                                          },
                                          "operator": "===",
                                          "right": {
                                            "type": "StringLiteral",
                                            "start": 1957,
                                            "end": 1967,
                                            "loc": {
                                              "start": {
                                                "line": 81,
                                                "column": 38
                                              },
                                              "end": {
                                                "line": 81,
                                                "column": 48
                                              }
                                            },
                                            "extra": {
                                              "rawValue": "function",
                                              "raw": "\"function\""
                                            },
                                            "value": "function"
                                          }
                                        },
                                        "consequent": {
                                          "type": "BlockStatement",
                                          "start": 1969,
                                          "end": 2030,
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 50
                                            },
                                            "end": {
                                              "line": 83,
                                              "column": 11
                                            }
                                          },
                                          "body": [
                                            {
                                              "type": "ReturnStatement",
                                              "start": 1983,
                                              "end": 2018,
                                              "loc": {
                                                "start": {
                                                  "line": 82,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 82,
                                                  "column": 47
                                                }
                                              },
                                              "argument": {
                                                "type": "CallExpression",
                                                "start": 1990,
                                                "end": 2017,
                                                "loc": {
                                                  "start": {
                                                    "line": 82,
                                                    "column": 19
                                                  },
                                                  "end": {
                                                    "line": 82,
                                                    "column": 46
                                                  }
                                                },
                                                "callee": {
                                                  "type": "CallExpression",
                                                  "start": 1990,
                                                  "end": 2002,
                                                  "loc": {
                                                    "start": {
                                                      "line": 82,
                                                      "column": 19
                                                    },
                                                    "end": {
                                                      "line": 82,
                                                      "column": 31
                                                    }
                                                  },
                                                  "callee": {
                                                    "type": "MemberExpression",
                                                    "start": 1990,
                                                    "end": 1996,
                                                    "loc": {
                                                      "start": {
                                                        "line": 82,
                                                        "column": 19
                                                      },
                                                      "end": {
                                                        "line": 82,
                                                        "column": 25
                                                      }
                                                    },
                                                    "object": {
                                                      "type": "Identifier",
                                                      "start": 1990,
                                                      "end": 1992,
                                                      "loc": {
                                                        "start": {
                                                          "line": 82,
                                                          "column": 19
                                                        },
                                                        "end": {
                                                          "line": 82,
                                                          "column": 21
                                                        },
                                                        "identifierName": "op"
                                                      },
                                                      "name": "op"
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "start": 1993,
                                                      "end": 1996,
                                                      "loc": {
                                                        "start": {
                                                          "line": 82,
                                                          "column": 22
                                                        },
                                                        "end": {
                                                          "line": 82,
                                                          "column": 25
                                                        },
                                                        "identifierName": "get"
                                                      },
                                                      "name": "get"
                                                    },
                                                    "computed": false
                                                  },
                                                  "arguments": [
                                                    {
                                                      "type": "Identifier",
                                                      "start": 1997,
                                                      "end": 2001,
                                                      "loc": {
                                                        "start": {
                                                          "line": 82,
                                                          "column": 26
                                                        },
                                                        "end": {
                                                          "line": 82,
                                                          "column": 30
                                                        },
                                                        "identifierName": "name"
                                                      },
                                                      "name": "name"
                                                    }
                                                  ]
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "SpreadElement",
                                                    "start": 2003,
                                                    "end": 2016,
                                                    "loc": {
                                                      "start": {
                                                        "line": 82,
                                                        "column": 32
                                                      },
                                                      "end": {
                                                        "line": 82,
                                                        "column": 45
                                                      }
                                                    },
                                                    "argument": {
                                                      "type": "Identifier",
                                                      "start": 2006,
                                                      "end": 2016,
                                                      "loc": {
                                                        "start": {
                                                          "line": 82,
                                                          "column": 35
                                                        },
                                                        "end": {
                                                          "line": 82,
                                                          "column": 45
                                                        },
                                                        "identifierName": "methodArgs"
                                                      },
                                                      "name": "methodArgs"
                                                    }
                                                  }
                                                ]
                                              }
                                            }
                                          ],
                                          "directives": []
                                        },
                                        "alternate": {
                                          "type": "BlockStatement",
                                          "start": 2036,
                                          "end": 2082,
                                          "loc": {
                                            "start": {
                                              "line": 83,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 85,
                                              "column": 11
                                            }
                                          },
                                          "body": [
                                            {
                                              "type": "ReturnStatement",
                                              "start": 2050,
                                              "end": 2070,
                                              "loc": {
                                                "start": {
                                                  "line": 84,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 84,
                                                  "column": 32
                                                }
                                              },
                                              "argument": {
                                                "type": "CallExpression",
                                                "start": 2057,
                                                "end": 2069,
                                                "loc": {
                                                  "start": {
                                                    "line": 84,
                                                    "column": 19
                                                  },
                                                  "end": {
                                                    "line": 84,
                                                    "column": 31
                                                  }
                                                },
                                                "callee": {
                                                  "type": "MemberExpression",
                                                  "start": 2057,
                                                  "end": 2063,
                                                  "loc": {
                                                    "start": {
                                                      "line": 84,
                                                      "column": 19
                                                    },
                                                    "end": {
                                                      "line": 84,
                                                      "column": 25
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 2057,
                                                    "end": 2059,
                                                    "loc": {
                                                      "start": {
                                                        "line": 84,
                                                        "column": 19
                                                      },
                                                      "end": {
                                                        "line": 84,
                                                        "column": 21
                                                      },
                                                      "identifierName": "op"
                                                    },
                                                    "name": "op"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 2060,
                                                    "end": 2063,
                                                    "loc": {
                                                      "start": {
                                                        "line": 84,
                                                        "column": 22
                                                      },
                                                      "end": {
                                                        "line": 84,
                                                        "column": 25
                                                      },
                                                      "identifierName": "get"
                                                    },
                                                    "name": "get"
                                                  },
                                                  "computed": false
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "start": 2064,
                                                    "end": 2068,
                                                    "loc": {
                                                      "start": {
                                                        "line": 84,
                                                        "column": 26
                                                      },
                                                      "end": {
                                                        "line": 84,
                                                        "column": 30
                                                      },
                                                      "identifierName": "name"
                                                    },
                                                    "name": "name"
                                                  }
                                                ]
                                              }
                                            }
                                          ],
                                          "directives": []
                                        }
                                      }
                                    ],
                                    "directives": [],
                                    "trailingComments": null
                                  },
                                  "alternate": null,
                                  "leadingComments": [
                                    {
                                      "type": "CommentLine",
                                      "value": " Check if its a Map property.",
                                      "start": 1854,
                                      "end": 1885,
                                      "loc": {
                                        "start": {
                                          "line": 79,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 79,
                                          "column": 39
                                        }
                                      }
                                    }
                                  ],
                                  "trailingComments": [
                                    {
                                      "type": "CommentLine",
                                      "value": " Try to call the 'missing' method",
                                      "start": 2102,
                                      "end": 2137,
                                      "loc": {
                                        "start": {
                                          "line": 88,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 88,
                                          "column": 43
                                        }
                                      }
                                    }
                                  ]
                                },
                                {
                                  "type": "IfStatement",
                                  "start": 2146,
                                  "end": 2435,
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 9
                                    }
                                  },
                                  "test": {
                                    "type": "BinaryExpression",
                                    "start": 2150,
                                    "end": 2189,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 51
                                      }
                                    },
                                    "left": {
                                      "type": "UnaryExpression",
                                      "start": 2150,
                                      "end": 2174,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 36
                                        }
                                      },
                                      "operator": "typeof",
                                      "prefix": true,
                                      "argument": {
                                        "type": "MemberExpression",
                                        "start": 2157,
                                        "end": 2174,
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 36
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 2157,
                                          "end": 2159,
                                          "loc": {
                                            "start": {
                                              "line": 89,
                                              "column": 19
                                            },
                                            "end": {
                                              "line": 89,
                                              "column": 21
                                            },
                                            "identifierName": "op"
                                          },
                                          "name": "op",
                                          "leadingComments": null
                                        },
                                        "property": {
                                          "type": "StringLiteral",
                                          "start": 2160,
                                          "end": 2173,
                                          "loc": {
                                            "start": {
                                              "line": 89,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 89,
                                              "column": 35
                                            }
                                          },
                                          "extra": {
                                            "rawValue": "__missing__",
                                            "raw": "\"__missing__\""
                                          },
                                          "value": "__missing__"
                                        },
                                        "computed": true,
                                        "leadingComments": null
                                      },
                                      "extra": {
                                        "parenthesizedArgument": false
                                      },
                                      "leadingComments": null
                                    },
                                    "operator": "===",
                                    "right": {
                                      "type": "StringLiteral",
                                      "start": 2179,
                                      "end": 2189,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 51
                                        }
                                      },
                                      "extra": {
                                        "rawValue": "function",
                                        "raw": "\"function\""
                                      },
                                      "value": "function"
                                    },
                                    "leadingComments": null
                                  },
                                  "consequent": {
                                    "type": "BlockStatement",
                                    "start": 2191,
                                    "end": 2304,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 53
                                      },
                                      "end": {
                                        "line": 93,
                                        "column": 9
                                      }
                                    },
                                    "body": [
                                      {
                                        "type": "ReturnStatement",
                                        "start": 2203,
                                        "end": 2243,
                                        "loc": {
                                          "start": {
                                            "line": 90,
                                            "column": 10
                                          },
                                          "end": {
                                            "line": 90,
                                            "column": 50
                                          }
                                        },
                                        "argument": {
                                          "type": "CallExpression",
                                          "start": 2210,
                                          "end": 2242,
                                          "loc": {
                                            "start": {
                                              "line": 90,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 90,
                                              "column": 49
                                            }
                                          },
                                          "callee": {
                                            "type": "MemberExpression",
                                            "start": 2210,
                                            "end": 2227,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 34
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 2210,
                                              "end": 2212,
                                              "loc": {
                                                "start": {
                                                  "line": 90,
                                                  "column": 17
                                                },
                                                "end": {
                                                  "line": 90,
                                                  "column": 19
                                                },
                                                "identifierName": "op"
                                              },
                                              "name": "op"
                                            },
                                            "property": {
                                              "type": "StringLiteral",
                                              "start": 2213,
                                              "end": 2226,
                                              "loc": {
                                                "start": {
                                                  "line": 90,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 90,
                                                  "column": 33
                                                }
                                              },
                                              "extra": {
                                                "rawValue": "__missing__",
                                                "raw": "\"__missing__\""
                                              },
                                              "value": "__missing__"
                                            },
                                            "computed": true
                                          },
                                          "arguments": [
                                            {
                                              "type": "SpreadElement",
                                              "start": 2228,
                                              "end": 2241,
                                              "loc": {
                                                "start": {
                                                  "line": 90,
                                                  "column": 35
                                                },
                                                "end": {
                                                  "line": 90,
                                                  "column": 48
                                                }
                                              },
                                              "argument": {
                                                "type": "Identifier",
                                                "start": 2231,
                                                "end": 2241,
                                                "loc": {
                                                  "start": {
                                                    "line": 90,
                                                    "column": 38
                                                  },
                                                  "end": {
                                                    "line": 90,
                                                    "column": 48
                                                  },
                                                  "identifierName": "methodArgs"
                                                },
                                                "name": "methodArgs"
                                              }
                                            }
                                          ]
                                        },
                                        "trailingComments": [
                                          {
                                            "type": "CommentLine",
                                            "value": " As a last resort, throw an Exception",
                                            "start": 2255,
                                            "end": 2294,
                                            "loc": {
                                              "start": {
                                                "line": 92,
                                                "column": 10
                                              },
                                              "end": {
                                                "line": 92,
                                                "column": 49
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ],
                                    "directives": []
                                  },
                                  "alternate": {
                                    "type": "BlockStatement",
                                    "start": 2310,
                                    "end": 2435,
                                    "loc": {
                                      "start": {
                                        "line": 93,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 96,
                                        "column": 9
                                      }
                                    },
                                    "body": [
                                      {
                                        "type": "ThrowStatement",
                                        "start": 2322,
                                        "end": 2425,
                                        "loc": {
                                          "start": {
                                            "line": 94,
                                            "column": 10
                                          },
                                          "end": {
                                            "line": 95,
                                            "column": 38
                                          }
                                        },
                                        "argument": {
                                          "type": "NewExpression",
                                          "start": 2328,
                                          "end": 2424,
                                          "loc": {
                                            "start": {
                                              "line": 94,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 95,
                                              "column": 37
                                            }
                                          },
                                          "callee": {
                                            "type": "Identifier",
                                            "start": 2332,
                                            "end": 2343,
                                            "loc": {
                                              "start": {
                                                "line": 94,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 94,
                                                "column": 31
                                              },
                                              "identifierName": "SyntaxError"
                                            },
                                            "name": "SyntaxError"
                                          },
                                          "arguments": [
                                            {
                                              "type": "TemplateLiteral",
                                              "start": 2344,
                                              "end": 2423,
                                              "loc": {
                                                "start": {
                                                  "line": 94,
                                                  "column": 32
                                                },
                                                "end": {
                                                  "line": 95,
                                                  "column": 36
                                                }
                                              },
                                              "expressions": [
                                                {
                                                  "type": "Identifier",
                                                  "start": 2359,
                                                  "end": 2363,
                                                  "loc": {
                                                    "start": {
                                                      "line": 94,
                                                      "column": 47
                                                    },
                                                    "end": {
                                                      "line": 94,
                                                      "column": 51
                                                    },
                                                    "identifierName": "name"
                                                  },
                                                  "name": "name"
                                                },
                                                {
                                                  "type": "CallExpression",
                                                  "start": 2407,
                                                  "end": 2420,
                                                  "loc": {
                                                    "start": {
                                                      "line": 95,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 95,
                                                      "column": 33
                                                    }
                                                  },
                                                  "callee": {
                                                    "type": "MemberExpression",
                                                    "start": 2407,
                                                    "end": 2416,
                                                    "loc": {
                                                      "start": {
                                                        "line": 95,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 95,
                                                        "column": 29
                                                      }
                                                    },
                                                    "object": {
                                                      "type": "Identifier",
                                                      "start": 2407,
                                                      "end": 2412,
                                                      "loc": {
                                                        "start": {
                                                          "line": 95,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 95,
                                                          "column": 25
                                                        },
                                                        "identifierName": "utils"
                                                      },
                                                      "name": "utils"
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "start": 2413,
                                                      "end": 2416,
                                                      "loc": {
                                                        "start": {
                                                          "line": 95,
                                                          "column": 26
                                                        },
                                                        "end": {
                                                          "line": 95,
                                                          "column": 29
                                                        },
                                                        "identifierName": "ins"
                                                      },
                                                      "name": "ins"
                                                    },
                                                    "computed": false
                                                  },
                                                  "arguments": [
                                                    {
                                                      "type": "Identifier",
                                                      "start": 2417,
                                                      "end": 2419,
                                                      "loc": {
                                                        "start": {
                                                          "line": 95,
                                                          "column": 30
                                                        },
                                                        "end": {
                                                          "line": 95,
                                                          "column": 32
                                                        },
                                                        "identifierName": "op"
                                                      },
                                                      "name": "op"
                                                    }
                                                  ]
                                                }
                                              ],
                                              "quasis": [
                                                {
                                                  "type": "TemplateElement",
                                                  "start": 2345,
                                                  "end": 2357,
                                                  "loc": {
                                                    "start": {
                                                      "line": 94,
                                                      "column": 33
                                                    },
                                                    "end": {
                                                      "line": 94,
                                                      "column": 45
                                                    }
                                                  },
                                                  "value": {
                                                    "raw": "The method '",
                                                    "cooked": "The method '"
                                                  },
                                                  "tail": false
                                                },
                                                {
                                                  "type": "TemplateElement",
                                                  "start": 2364,
                                                  "end": 2405,
                                                  "loc": {
                                                    "start": {
                                                      "line": 94,
                                                      "column": 52
                                                    },
                                                    "end": {
                                                      "line": 95,
                                                      "column": 18
                                                    }
                                                  },
                                                  "value": {
                                                    "raw": "' was not found on the\n          object '",
                                                    "cooked": "' was not found on the\n          object '"
                                                  },
                                                  "tail": false
                                                },
                                                {
                                                  "type": "TemplateElement",
                                                  "start": 2421,
                                                  "end": 2422,
                                                  "loc": {
                                                    "start": {
                                                      "line": 95,
                                                      "column": 34
                                                    },
                                                    "end": {
                                                      "line": 95,
                                                      "column": 35
                                                    }
                                                  },
                                                  "value": {
                                                    "raw": "'",
                                                    "cooked": "'"
                                                  },
                                                  "tail": true
                                                }
                                              ]
                                            }
                                          ]
                                        }
                                      }
                                    ],
                                    "directives": []
                                  },
                                  "leadingComments": [
                                    {
                                      "type": "CommentLine",
                                      "value": " Try to call the 'missing' method",
                                      "start": 2102,
                                      "end": 2137,
                                      "loc": {
                                        "start": {
                                          "line": 88,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 88,
                                          "column": 43
                                        }
                                      }
                                    }
                                  ]
                                }
                              ],
                              "directives": []
                            },
                            "leadingComments": [
                              {
                                "type": "CommentLine",
                                "value": " Check if the name of the method/property is defined on the object",
                                "start": 1441,
                                "end": 1509,
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 74
                                  }
                                }
                              }
                            ]
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null
                    },
                    {
                      "type": "ThrowStatement",
                      "start": 2455,
                      "end": 2517,
                      "loc": {
                        "start": {
                          "line": 100,
                          "column": 4
                        },
                        "end": {
                          "line": 100,
                          "column": 66
                        }
                      },
                      "argument": {
                        "type": "NewExpression",
                        "start": 2461,
                        "end": 2516,
                        "loc": {
                          "start": {
                            "line": 100,
                            "column": 10
                          },
                          "end": {
                            "line": 100,
                            "column": 65
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 2465,
                          "end": 2474,
                          "loc": {
                            "start": {
                              "line": 100,
                              "column": 14
                            },
                            "end": {
                              "line": 100,
                              "column": 23
                            },
                            "identifierName": "TypeError"
                          },
                          "name": "TypeError"
                        },
                        "arguments": [
                          {
                            "type": "TemplateLiteral",
                            "start": 2475,
                            "end": 2515,
                            "loc": {
                              "start": {
                                "line": 100,
                                "column": 24
                              },
                              "end": {
                                "line": 100,
                                "column": 64
                              }
                            },
                            "expressions": [],
                            "quasis": [
                              {
                                "type": "TemplateElement",
                                "start": 2476,
                                "end": 2514,
                                "loc": {
                                  "start": {
                                    "line": 100,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 100,
                                    "column": 63
                                  }
                                },
                                "value": {
                                  "raw": "Could not resolve the apply expression",
                                  "cooked": "Could not resolve the apply expression"
                                },
                                "tail": true
                              }
                            ]
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              }
            ]
          },
          "__PseudoExport__": false,
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null,
        "leadingComments": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2720,
        "end": 2763,
        "loc": {
          "start": {
            "line": 117,
            "column": 0
          },
          "end": {
            "line": 120,
            "column": 10
          }
        },
        "declaration": {
          "type": "ClassDeclaration",
          "start": 2525,
          "end": 2718,
          "loc": {
            "start": {
              "line": 104,
              "column": 0
            },
            "end": {
              "line": 115,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 2531,
            "end": 2536,
            "loc": {
              "start": {
                "line": 104,
                "column": 6
              },
              "end": {
                "line": 104,
                "column": 11
              },
              "identifierName": "Regex"
            },
            "name": "Regex"
          },
          "superClass": null,
          "body": {
            "type": "ClassBody",
            "start": 2537,
            "end": 2718,
            "loc": {
              "start": {
                "line": 104,
                "column": 12
              },
              "end": {
                "line": 115,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 2541,
                "end": 2649,
                "loc": {
                  "start": {
                    "line": 105,
                    "column": 2
                  },
                  "end": {
                    "line": 110,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2541,
                  "end": 2552,
                  "loc": {
                    "start": {
                      "line": 105,
                      "column": 2
                    },
                    "end": {
                      "line": 105,
                      "column": 13
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor"
                },
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 2553,
                    "end": 2558,
                    "loc": {
                      "start": {
                        "line": 105,
                        "column": 14
                      },
                      "end": {
                        "line": 105,
                        "column": 19
                      },
                      "identifierName": "token"
                    },
                    "name": "token"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 2560,
                  "end": 2649,
                  "loc": {
                    "start": {
                      "line": 105,
                      "column": 21
                    },
                    "end": {
                      "line": 110,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 2566,
                      "end": 2586,
                      "loc": {
                        "start": {
                          "line": 106,
                          "column": 4
                        },
                        "end": {
                          "line": 106,
                          "column": 24
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2566,
                        "end": 2585,
                        "loc": {
                          "start": {
                            "line": 106,
                            "column": 4
                          },
                          "end": {
                            "line": 106,
                            "column": 23
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2566,
                          "end": 2575,
                          "loc": {
                            "start": {
                              "line": 106,
                              "column": 4
                            },
                            "end": {
                              "line": 106,
                              "column": 13
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2566,
                            "end": 2570,
                            "loc": {
                              "start": {
                                "line": 106,
                                "column": 4
                              },
                              "end": {
                                "line": 106,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2571,
                            "end": 2575,
                            "loc": {
                              "start": {
                                "line": 106,
                                "column": 9
                              },
                              "end": {
                                "line": 106,
                                "column": 13
                              },
                              "identifierName": "type"
                            },
                            "name": "type"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "StringLiteral",
                          "start": 2578,
                          "end": 2585,
                          "loc": {
                            "start": {
                              "line": 106,
                              "column": 16
                            },
                            "end": {
                              "line": 106,
                              "column": 23
                            }
                          },
                          "extra": {
                            "rawValue": "regex",
                            "raw": "\"regex\""
                          },
                          "value": "regex"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2592,
                      "end": 2615,
                      "loc": {
                        "start": {
                          "line": 108,
                          "column": 4
                        },
                        "end": {
                          "line": 108,
                          "column": 27
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2592,
                        "end": 2614,
                        "loc": {
                          "start": {
                            "line": 108,
                            "column": 4
                          },
                          "end": {
                            "line": 108,
                            "column": 26
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2592,
                          "end": 2601,
                          "loc": {
                            "start": {
                              "line": 108,
                              "column": 4
                            },
                            "end": {
                              "line": 108,
                              "column": 13
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2592,
                            "end": 2596,
                            "loc": {
                              "start": {
                                "line": 108,
                                "column": 4
                              },
                              "end": {
                                "line": 108,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2597,
                            "end": 2601,
                            "loc": {
                              "start": {
                                "line": 108,
                                "column": 9
                              },
                              "end": {
                                "line": 108,
                                "column": 13
                              },
                              "identifierName": "body"
                            },
                            "name": "body"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 2604,
                          "end": 2614,
                          "loc": {
                            "start": {
                              "line": 108,
                              "column": 16
                            },
                            "end": {
                              "line": 108,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2604,
                            "end": 2609,
                            "loc": {
                              "start": {
                                "line": 108,
                                "column": 16
                              },
                              "end": {
                                "line": 108,
                                "column": 21
                              },
                              "identifierName": "token"
                            },
                            "name": "token"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2610,
                            "end": 2614,
                            "loc": {
                              "start": {
                                "line": 108,
                                "column": 22
                              },
                              "end": {
                                "line": 108,
                                "column": 26
                              },
                              "identifierName": "body"
                            },
                            "name": "body"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2620,
                      "end": 2645,
                      "loc": {
                        "start": {
                          "line": 109,
                          "column": 4
                        },
                        "end": {
                          "line": 109,
                          "column": 29
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2620,
                        "end": 2644,
                        "loc": {
                          "start": {
                            "line": 109,
                            "column": 4
                          },
                          "end": {
                            "line": 109,
                            "column": 28
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2620,
                          "end": 2630,
                          "loc": {
                            "start": {
                              "line": 109,
                              "column": 4
                            },
                            "end": {
                              "line": 109,
                              "column": 14
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2620,
                            "end": 2624,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 4
                              },
                              "end": {
                                "line": 109,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2625,
                            "end": 2630,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 9
                              },
                              "end": {
                                "line": 109,
                                "column": 14
                              },
                              "identifierName": "flags"
                            },
                            "name": "flags"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 2633,
                          "end": 2644,
                          "loc": {
                            "start": {
                              "line": 109,
                              "column": 17
                            },
                            "end": {
                              "line": 109,
                              "column": 28
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2633,
                            "end": 2638,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 17
                              },
                              "end": {
                                "line": 109,
                                "column": 22
                              },
                              "identifierName": "token"
                            },
                            "name": "token"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2639,
                            "end": 2644,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 23
                              },
                              "end": {
                                "line": 109,
                                "column": 28
                              },
                              "identifierName": "flags"
                            },
                            "name": "flags"
                          },
                          "computed": false
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 2653,
                "end": 2716,
                "loc": {
                  "start": {
                    "line": 112,
                    "column": 2
                  },
                  "end": {
                    "line": 114,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2653,
                  "end": 2661,
                  "loc": {
                    "start": {
                      "line": 112,
                      "column": 2
                    },
                    "end": {
                      "line": 112,
                      "column": 10
                    },
                    "identifierName": "evaluate"
                  },
                  "name": "evaluate"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 2664,
                  "end": 2716,
                  "loc": {
                    "start": {
                      "line": 112,
                      "column": 13
                    },
                    "end": {
                      "line": 114,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 2670,
                      "end": 2712,
                      "loc": {
                        "start": {
                          "line": 113,
                          "column": 4
                        },
                        "end": {
                          "line": 113,
                          "column": 46
                        }
                      },
                      "argument": {
                        "type": "NewExpression",
                        "start": 2677,
                        "end": 2711,
                        "loc": {
                          "start": {
                            "line": 113,
                            "column": 11
                          },
                          "end": {
                            "line": 113,
                            "column": 45
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 2681,
                          "end": 2688,
                          "loc": {
                            "start": {
                              "line": 113,
                              "column": 15
                            },
                            "end": {
                              "line": 113,
                              "column": 22
                            },
                            "identifierName": "xRegExp"
                          },
                          "name": "xRegExp"
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 2689,
                            "end": 2698,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 23
                              },
                              "end": {
                                "line": 113,
                                "column": 32
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2689,
                              "end": 2693,
                              "loc": {
                                "start": {
                                  "line": 113,
                                  "column": 23
                                },
                                "end": {
                                  "line": 113,
                                  "column": 27
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2694,
                              "end": 2698,
                              "loc": {
                                "start": {
                                  "line": 113,
                                  "column": 28
                                },
                                "end": {
                                  "line": 113,
                                  "column": 32
                                },
                                "identifierName": "body"
                              },
                              "name": "body"
                            },
                            "computed": false
                          },
                          {
                            "type": "MemberExpression",
                            "start": 2700,
                            "end": 2710,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 34
                              },
                              "end": {
                                "line": 113,
                                "column": 44
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2700,
                              "end": 2704,
                              "loc": {
                                "start": {
                                  "line": 113,
                                  "column": 34
                                },
                                "end": {
                                  "line": 113,
                                  "column": 38
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2705,
                              "end": 2710,
                              "loc": {
                                "start": {
                                  "line": 113,
                                  "column": 39
                                },
                                "end": {
                                  "line": 113,
                                  "column": 44
                                },
                                "identifierName": "flags"
                              },
                              "name": "flags"
                            },
                            "computed": false
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              }
            ]
          },
          "__PseudoExport__": false,
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null,
        "leadingComments": null
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " AST class nodes",
      "start": 0,
      "end": 18,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 18
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Variable",
      "start": 392,
      "end": 403,
      "loc": {
        "start": {
          "line": 25,
          "column": 4
        },
        "end": {
          "line": 25,
          "column": 15
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Object variable referenced without using 'this'",
      "start": 468,
      "end": 518,
      "loc": {
        "start": {
          "line": 29,
          "column": 6
        },
        "end": {
          "line": 29,
          "column": 56
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Check if its a specialForm function",
      "start": 844,
      "end": 882,
      "loc": {
        "start": {
          "line": 46,
          "column": 4
        },
        "end": {
          "line": 46,
          "column": 42
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Evaluated operator",
      "start": 1036,
      "end": 1057,
      "loc": {
        "start": {
          "line": 51,
          "column": 4
        },
        "end": {
          "line": 51,
          "column": 25
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Evaluated arguments",
      "start": 1104,
      "end": 1126,
      "loc": {
        "start": {
          "line": 53,
          "column": 4
        },
        "end": {
          "line": 53,
          "column": 26
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Is a function",
      "start": 1228,
      "end": 1244,
      "loc": {
        "start": {
          "line": 57,
          "column": 6
        },
        "end": {
          "line": 57,
          "column": 22
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Is an object, number, string or boolean",
      "start": 1323,
      "end": 1365,
      "loc": {
        "start": {
          "line": 62,
          "column": 6
        },
        "end": {
          "line": 62,
          "column": 48
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Check if the name of the method/property is defined on the object",
      "start": 1441,
      "end": 1509,
      "loc": {
        "start": {
          "line": 66,
          "column": 6
        },
        "end": {
          "line": 66,
          "column": 74
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Execute as function",
      "start": 1563,
      "end": 1585,
      "loc": {
        "start": {
          "line": 68,
          "column": 8
        },
        "end": {
          "line": 68,
          "column": 30
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Return as property",
      "start": 1685,
      "end": 1706,
      "loc": {
        "start": {
          "line": 72,
          "column": 10
        },
        "end": {
          "line": 72,
          "column": 31
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " If the name of the method is not defined on the object...",
      "start": 1770,
      "end": 1830,
      "loc": {
        "start": {
          "line": 77,
          "column": 8
        },
        "end": {
          "line": 77,
          "column": 68
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Check if its a Map property.",
      "start": 1854,
      "end": 1885,
      "loc": {
        "start": {
          "line": 79,
          "column": 8
        },
        "end": {
          "line": 79,
          "column": 39
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Try to call the 'missing' method",
      "start": 2102,
      "end": 2137,
      "loc": {
        "start": {
          "line": 88,
          "column": 8
        },
        "end": {
          "line": 88,
          "column": 43
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " As a last resort, throw an Exception",
      "start": 2255,
      "end": 2294,
      "loc": {
        "start": {
          "line": 92,
          "column": 10
        },
        "end": {
          "line": 92,
          "column": 49
        }
      }
    }
  ],
  "tokens": [
    {
      "type": "CommentLine",
      "value": " AST class nodes",
      "start": 0,
      "end": 18,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 19,
      "end": 25,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "xRegExp",
      "start": 26,
      "end": 33,
      "loc": {
        "start": {
          "line": 2,
          "column": 7
        },
        "end": {
          "line": 2,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 34,
      "end": 38,
      "loc": {
        "start": {
          "line": 2,
          "column": 15
        },
        "end": {
          "line": 2,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "xregexp",
      "start": 39,
      "end": 48,
      "loc": {
        "start": {
          "line": 2,
          "column": 20
        },
        "end": {
          "line": 2,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 48,
      "end": 49,
      "loc": {
        "start": {
          "line": 2,
          "column": 29
        },
        "end": {
          "line": 2,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 50,
      "end": 56,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "utils",
      "start": 57,
      "end": 62,
      "loc": {
        "start": {
          "line": 3,
          "column": 7
        },
        "end": {
          "line": 3,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 63,
      "end": 67,
      "loc": {
        "start": {
          "line": 3,
          "column": 13
        },
        "end": {
          "line": 3,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../utils.js",
      "start": 68,
      "end": 81,
      "loc": {
        "start": {
          "line": 3,
          "column": 18
        },
        "end": {
          "line": 3,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 81,
      "end": 82,
      "loc": {
        "start": {
          "line": 3,
          "column": 31
        },
        "end": {
          "line": 3,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 84,
      "end": 90,
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 91,
      "end": 92,
      "loc": {
        "start": {
          "line": 5,
          "column": 7
        },
        "end": {
          "line": 5,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "SpecialForms",
      "start": 93,
      "end": 105,
      "loc": {
        "start": {
          "line": 5,
          "column": 9
        },
        "end": {
          "line": 5,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 106,
      "end": 107,
      "loc": {
        "start": {
          "line": 5,
          "column": 22
        },
        "end": {
          "line": 5,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 108,
      "end": 112,
      "loc": {
        "start": {
          "line": 5,
          "column": 24
        },
        "end": {
          "line": 5,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./environment.js",
      "start": 113,
      "end": 131,
      "loc": {
        "start": {
          "line": 5,
          "column": 29
        },
        "end": {
          "line": 5,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 131,
      "end": 132,
      "loc": {
        "start": {
          "line": 5,
          "column": 47
        },
        "end": {
          "line": 5,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 134,
      "end": 139,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Value",
      "start": 140,
      "end": 145,
      "loc": {
        "start": {
          "line": 7,
          "column": 6
        },
        "end": {
          "line": 7,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 146,
      "end": 147,
      "loc": {
        "start": {
          "line": 7,
          "column": 12
        },
        "end": {
          "line": 7,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 150,
      "end": 161,
      "loc": {
        "start": {
          "line": 8,
          "column": 2
        },
        "end": {
          "line": 8,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 161,
      "end": 162,
      "loc": {
        "start": {
          "line": 8,
          "column": 13
        },
        "end": {
          "line": 8,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 162,
      "end": 167,
      "loc": {
        "start": {
          "line": 8,
          "column": 14
        },
        "end": {
          "line": 8,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 167,
      "end": 168,
      "loc": {
        "start": {
          "line": 8,
          "column": 19
        },
        "end": {
          "line": 8,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 169,
      "end": 170,
      "loc": {
        "start": {
          "line": 8,
          "column": 21
        },
        "end": {
          "line": 8,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 175,
      "end": 179,
      "loc": {
        "start": {
          "line": 9,
          "column": 4
        },
        "end": {
          "line": 9,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 179,
      "end": 180,
      "loc": {
        "start": {
          "line": 9,
          "column": 8
        },
        "end": {
          "line": 9,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 180,
      "end": 184,
      "loc": {
        "start": {
          "line": 9,
          "column": 9
        },
        "end": {
          "line": 9,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 185,
      "end": 186,
      "loc": {
        "start": {
          "line": 9,
          "column": 14
        },
        "end": {
          "line": 9,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "value",
      "start": 187,
      "end": 194,
      "loc": {
        "start": {
          "line": 9,
          "column": 16
        },
        "end": {
          "line": 9,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 194,
      "end": 195,
      "loc": {
        "start": {
          "line": 9,
          "column": 23
        },
        "end": {
          "line": 9,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 200,
      "end": 204,
      "loc": {
        "start": {
          "line": 10,
          "column": 4
        },
        "end": {
          "line": 10,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 204,
      "end": 205,
      "loc": {
        "start": {
          "line": 10,
          "column": 8
        },
        "end": {
          "line": 10,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 205,
      "end": 210,
      "loc": {
        "start": {
          "line": 10,
          "column": 9
        },
        "end": {
          "line": 10,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 211,
      "end": 212,
      "loc": {
        "start": {
          "line": 10,
          "column": 15
        },
        "end": {
          "line": 10,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 213,
      "end": 218,
      "loc": {
        "start": {
          "line": 10,
          "column": 17
        },
        "end": {
          "line": 10,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 218,
      "end": 219,
      "loc": {
        "start": {
          "line": 10,
          "column": 22
        },
        "end": {
          "line": 10,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 219,
      "end": 224,
      "loc": {
        "start": {
          "line": 10,
          "column": 23
        },
        "end": {
          "line": 10,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 224,
      "end": 225,
      "loc": {
        "start": {
          "line": 10,
          "column": 28
        },
        "end": {
          "line": 10,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 228,
      "end": 229,
      "loc": {
        "start": {
          "line": 11,
          "column": 2
        },
        "end": {
          "line": 11,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evaluate",
      "start": 233,
      "end": 241,
      "loc": {
        "start": {
          "line": 13,
          "column": 2
        },
        "end": {
          "line": 13,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 241,
      "end": 242,
      "loc": {
        "start": {
          "line": 13,
          "column": 10
        },
        "end": {
          "line": 13,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 242,
      "end": 243,
      "loc": {
        "start": {
          "line": 13,
          "column": 11
        },
        "end": {
          "line": 13,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 244,
      "end": 245,
      "loc": {
        "start": {
          "line": 13,
          "column": 13
        },
        "end": {
          "line": 13,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 250,
      "end": 256,
      "loc": {
        "start": {
          "line": 14,
          "column": 4
        },
        "end": {
          "line": 14,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 257,
      "end": 261,
      "loc": {
        "start": {
          "line": 14,
          "column": 11
        },
        "end": {
          "line": 14,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 261,
      "end": 262,
      "loc": {
        "start": {
          "line": 14,
          "column": 15
        },
        "end": {
          "line": 14,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 262,
      "end": 267,
      "loc": {
        "start": {
          "line": 14,
          "column": 16
        },
        "end": {
          "line": 14,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 267,
      "end": 268,
      "loc": {
        "start": {
          "line": 14,
          "column": 21
        },
        "end": {
          "line": 14,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 271,
      "end": 272,
      "loc": {
        "start": {
          "line": 15,
          "column": 2
        },
        "end": {
          "line": 15,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 273,
      "end": 274,
      "loc": {
        "start": {
          "line": 16,
          "column": 0
        },
        "end": {
          "line": 16,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 276,
      "end": 281,
      "loc": {
        "start": {
          "line": 18,
          "column": 0
        },
        "end": {
          "line": 18,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Word",
      "start": 282,
      "end": 286,
      "loc": {
        "start": {
          "line": 18,
          "column": 6
        },
        "end": {
          "line": 18,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 287,
      "end": 288,
      "loc": {
        "start": {
          "line": 18,
          "column": 11
        },
        "end": {
          "line": 18,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 291,
      "end": 302,
      "loc": {
        "start": {
          "line": 19,
          "column": 2
        },
        "end": {
          "line": 19,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 302,
      "end": 303,
      "loc": {
        "start": {
          "line": 19,
          "column": 13
        },
        "end": {
          "line": 19,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 303,
      "end": 308,
      "loc": {
        "start": {
          "line": 19,
          "column": 14
        },
        "end": {
          "line": 19,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 308,
      "end": 309,
      "loc": {
        "start": {
          "line": 19,
          "column": 19
        },
        "end": {
          "line": 19,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 310,
      "end": 311,
      "loc": {
        "start": {
          "line": 19,
          "column": 21
        },
        "end": {
          "line": 19,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 316,
      "end": 320,
      "loc": {
        "start": {
          "line": 20,
          "column": 4
        },
        "end": {
          "line": 20,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 320,
      "end": 321,
      "loc": {
        "start": {
          "line": 20,
          "column": 8
        },
        "end": {
          "line": 20,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 321,
      "end": 325,
      "loc": {
        "start": {
          "line": 20,
          "column": 9
        },
        "end": {
          "line": 20,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 326,
      "end": 327,
      "loc": {
        "start": {
          "line": 20,
          "column": 14
        },
        "end": {
          "line": 20,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "word",
      "start": 328,
      "end": 334,
      "loc": {
        "start": {
          "line": 20,
          "column": 16
        },
        "end": {
          "line": 20,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 334,
      "end": 335,
      "loc": {
        "start": {
          "line": 20,
          "column": 22
        },
        "end": {
          "line": 20,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 340,
      "end": 344,
      "loc": {
        "start": {
          "line": 21,
          "column": 4
        },
        "end": {
          "line": 21,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 344,
      "end": 345,
      "loc": {
        "start": {
          "line": 21,
          "column": 8
        },
        "end": {
          "line": 21,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 345,
      "end": 349,
      "loc": {
        "start": {
          "line": 21,
          "column": 9
        },
        "end": {
          "line": 21,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 350,
      "end": 351,
      "loc": {
        "start": {
          "line": 21,
          "column": 14
        },
        "end": {
          "line": 21,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 352,
      "end": 357,
      "loc": {
        "start": {
          "line": 21,
          "column": 16
        },
        "end": {
          "line": 21,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 357,
      "end": 358,
      "loc": {
        "start": {
          "line": 21,
          "column": 21
        },
        "end": {
          "line": 21,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 358,
      "end": 363,
      "loc": {
        "start": {
          "line": 21,
          "column": 22
        },
        "end": {
          "line": 21,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 363,
      "end": 364,
      "loc": {
        "start": {
          "line": 21,
          "column": 27
        },
        "end": {
          "line": 21,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 367,
      "end": 368,
      "loc": {
        "start": {
          "line": 22,
          "column": 2
        },
        "end": {
          "line": 22,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evaluate",
      "start": 372,
      "end": 380,
      "loc": {
        "start": {
          "line": 24,
          "column": 2
        },
        "end": {
          "line": 24,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 380,
      "end": 381,
      "loc": {
        "start": {
          "line": 24,
          "column": 10
        },
        "end": {
          "line": 24,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 381,
      "end": 384,
      "loc": {
        "start": {
          "line": 24,
          "column": 11
        },
        "end": {
          "line": 24,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 384,
      "end": 385,
      "loc": {
        "start": {
          "line": 24,
          "column": 14
        },
        "end": {
          "line": 24,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 386,
      "end": 387,
      "loc": {
        "start": {
          "line": 24,
          "column": 16
        },
        "end": {
          "line": 24,
          "column": 17
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Variable",
      "start": 392,
      "end": 403,
      "loc": {
        "start": {
          "line": 25,
          "column": 4
        },
        "end": {
          "line": 25,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 408,
      "end": 410,
      "loc": {
        "start": {
          "line": 26,
          "column": 4
        },
        "end": {
          "line": 26,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 411,
      "end": 412,
      "loc": {
        "start": {
          "line": 26,
          "column": 7
        },
        "end": {
          "line": 26,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 412,
      "end": 416,
      "loc": {
        "start": {
          "line": 26,
          "column": 8
        },
        "end": {
          "line": 26,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 416,
      "end": 417,
      "loc": {
        "start": {
          "line": 26,
          "column": 12
        },
        "end": {
          "line": 26,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 417,
      "end": 421,
      "loc": {
        "start": {
          "line": 26,
          "column": 13
        },
        "end": {
          "line": 26,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "in",
        "keyword": "in",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "in",
      "start": 422,
      "end": 424,
      "loc": {
        "start": {
          "line": 26,
          "column": 18
        },
        "end": {
          "line": 26,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 425,
      "end": 428,
      "loc": {
        "start": {
          "line": 26,
          "column": 21
        },
        "end": {
          "line": 26,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 428,
      "end": 429,
      "loc": {
        "start": {
          "line": 26,
          "column": 24
        },
        "end": {
          "line": 26,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 430,
      "end": 431,
      "loc": {
        "start": {
          "line": 26,
          "column": 26
        },
        "end": {
          "line": 26,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 438,
      "end": 444,
      "loc": {
        "start": {
          "line": 27,
          "column": 6
        },
        "end": {
          "line": 27,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 445,
      "end": 448,
      "loc": {
        "start": {
          "line": 27,
          "column": 13
        },
        "end": {
          "line": 27,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 448,
      "end": 449,
      "loc": {
        "start": {
          "line": 27,
          "column": 16
        },
        "end": {
          "line": 27,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 449,
      "end": 453,
      "loc": {
        "start": {
          "line": 27,
          "column": 17
        },
        "end": {
          "line": 27,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 453,
      "end": 454,
      "loc": {
        "start": {
          "line": 27,
          "column": 21
        },
        "end": {
          "line": 27,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 454,
      "end": 458,
      "loc": {
        "start": {
          "line": 27,
          "column": 22
        },
        "end": {
          "line": 27,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 458,
      "end": 459,
      "loc": {
        "start": {
          "line": 27,
          "column": 26
        },
        "end": {
          "line": 27,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 459,
      "end": 460,
      "loc": {
        "start": {
          "line": 27,
          "column": 27
        },
        "end": {
          "line": 27,
          "column": 28
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Object variable referenced without using 'this'",
      "start": 468,
      "end": 518,
      "loc": {
        "start": {
          "line": 29,
          "column": 6
        },
        "end": {
          "line": 29,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 523,
      "end": 524,
      "loc": {
        "start": {
          "line": 30,
          "column": 4
        },
        "end": {
          "line": 30,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 525,
      "end": 529,
      "loc": {
        "start": {
          "line": 30,
          "column": 6
        },
        "end": {
          "line": 30,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 530,
      "end": 532,
      "loc": {
        "start": {
          "line": 30,
          "column": 11
        },
        "end": {
          "line": 30,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 533,
      "end": 534,
      "loc": {
        "start": {
          "line": 30,
          "column": 14
        },
        "end": {
          "line": 30,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 534,
      "end": 540,
      "loc": {
        "start": {
          "line": 30,
          "column": 15
        },
        "end": {
          "line": 30,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "in",
        "keyword": "in",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "in",
      "start": 541,
      "end": 543,
      "loc": {
        "start": {
          "line": 30,
          "column": 22
        },
        "end": {
          "line": 30,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 544,
      "end": 547,
      "loc": {
        "start": {
          "line": 30,
          "column": 25
        },
        "end": {
          "line": 30,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 548,
      "end": 550,
      "loc": {
        "start": {
          "line": 30,
          "column": 29
        },
        "end": {
          "line": 30,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 551,
      "end": 555,
      "loc": {
        "start": {
          "line": 30,
          "column": 32
        },
        "end": {
          "line": 30,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 555,
      "end": 556,
      "loc": {
        "start": {
          "line": 30,
          "column": 36
        },
        "end": {
          "line": 30,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 556,
      "end": 560,
      "loc": {
        "start": {
          "line": 30,
          "column": 37
        },
        "end": {
          "line": 30,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "in",
        "keyword": "in",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "in",
      "start": 561,
      "end": 563,
      "loc": {
        "start": {
          "line": 30,
          "column": 42
        },
        "end": {
          "line": 30,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 564,
      "end": 567,
      "loc": {
        "start": {
          "line": 30,
          "column": 45
        },
        "end": {
          "line": 30,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 567,
      "end": 568,
      "loc": {
        "start": {
          "line": 30,
          "column": 48
        },
        "end": {
          "line": 30,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 568,
      "end": 574,
      "loc": {
        "start": {
          "line": 30,
          "column": 49
        },
        "end": {
          "line": 30,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 574,
      "end": 575,
      "loc": {
        "start": {
          "line": 30,
          "column": 55
        },
        "end": {
          "line": 30,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 575,
      "end": 576,
      "loc": {
        "start": {
          "line": 30,
          "column": 56
        },
        "end": {
          "line": 30,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 577,
      "end": 578,
      "loc": {
        "start": {
          "line": 30,
          "column": 58
        },
        "end": {
          "line": 30,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 585,
      "end": 591,
      "loc": {
        "start": {
          "line": 31,
          "column": 6
        },
        "end": {
          "line": 31,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 592,
      "end": 595,
      "loc": {
        "start": {
          "line": 31,
          "column": 13
        },
        "end": {
          "line": 31,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 595,
      "end": 596,
      "loc": {
        "start": {
          "line": 31,
          "column": 16
        },
        "end": {
          "line": 31,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 596,
      "end": 602,
      "loc": {
        "start": {
          "line": 31,
          "column": 17
        },
        "end": {
          "line": 31,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 602,
      "end": 603,
      "loc": {
        "start": {
          "line": 31,
          "column": 23
        },
        "end": {
          "line": 31,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 603,
      "end": 604,
      "loc": {
        "start": {
          "line": 31,
          "column": 24
        },
        "end": {
          "line": 31,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 604,
      "end": 608,
      "loc": {
        "start": {
          "line": 31,
          "column": 25
        },
        "end": {
          "line": 31,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 608,
      "end": 609,
      "loc": {
        "start": {
          "line": 31,
          "column": 29
        },
        "end": {
          "line": 31,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 609,
      "end": 613,
      "loc": {
        "start": {
          "line": 31,
          "column": 30
        },
        "end": {
          "line": 31,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 613,
      "end": 614,
      "loc": {
        "start": {
          "line": 31,
          "column": 34
        },
        "end": {
          "line": 31,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 614,
      "end": 615,
      "loc": {
        "start": {
          "line": 31,
          "column": 35
        },
        "end": {
          "line": 31,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 620,
      "end": 621,
      "loc": {
        "start": {
          "line": 32,
          "column": 4
        },
        "end": {
          "line": 32,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 622,
      "end": 626,
      "loc": {
        "start": {
          "line": 32,
          "column": 6
        },
        "end": {
          "line": 32,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 627,
      "end": 628,
      "loc": {
        "start": {
          "line": 32,
          "column": 11
        },
        "end": {
          "line": 32,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "throw",
        "keyword": "throw",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "throw",
      "start": 635,
      "end": 640,
      "loc": {
        "start": {
          "line": 33,
          "column": 6
        },
        "end": {
          "line": 33,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 641,
      "end": 644,
      "loc": {
        "start": {
          "line": 33,
          "column": 12
        },
        "end": {
          "line": 33,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ReferenceError",
      "start": 645,
      "end": 659,
      "loc": {
        "start": {
          "line": 33,
          "column": 16
        },
        "end": {
          "line": 33,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 659,
      "end": 660,
      "loc": {
        "start": {
          "line": 33,
          "column": 30
        },
        "end": {
          "line": 33,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 660,
      "end": 661,
      "loc": {
        "start": {
          "line": 33,
          "column": 31
        },
        "end": {
          "line": 33,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Undefined variable: ",
      "start": 661,
      "end": 681,
      "loc": {
        "start": {
          "line": 33,
          "column": 32
        },
        "end": {
          "line": 33,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "${",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 681,
      "end": 683,
      "loc": {
        "start": {
          "line": 33,
          "column": 52
        },
        "end": {
          "line": 33,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 683,
      "end": 687,
      "loc": {
        "start": {
          "line": 33,
          "column": 54
        },
        "end": {
          "line": 33,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 687,
      "end": 688,
      "loc": {
        "start": {
          "line": 33,
          "column": 58
        },
        "end": {
          "line": 33,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 688,
      "end": 692,
      "loc": {
        "start": {
          "line": 33,
          "column": 59
        },
        "end": {
          "line": 33,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 692,
      "end": 693,
      "loc": {
        "start": {
          "line": 33,
          "column": 63
        },
        "end": {
          "line": 33,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "",
      "start": 693,
      "end": 693,
      "loc": {
        "start": {
          "line": 33,
          "column": 64
        },
        "end": {
          "line": 33,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 693,
      "end": 694,
      "loc": {
        "start": {
          "line": 33,
          "column": 64
        },
        "end": {
          "line": 33,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 694,
      "end": 695,
      "loc": {
        "start": {
          "line": 33,
          "column": 65
        },
        "end": {
          "line": 33,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 695,
      "end": 696,
      "loc": {
        "start": {
          "line": 33,
          "column": 66
        },
        "end": {
          "line": 33,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 701,
      "end": 702,
      "loc": {
        "start": {
          "line": 34,
          "column": 4
        },
        "end": {
          "line": 34,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 705,
      "end": 706,
      "loc": {
        "start": {
          "line": 35,
          "column": 2
        },
        "end": {
          "line": 35,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 707,
      "end": 708,
      "loc": {
        "start": {
          "line": 36,
          "column": 0
        },
        "end": {
          "line": 36,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 710,
      "end": 715,
      "loc": {
        "start": {
          "line": 38,
          "column": 0
        },
        "end": {
          "line": 38,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Apply",
      "start": 716,
      "end": 721,
      "loc": {
        "start": {
          "line": 38,
          "column": 6
        },
        "end": {
          "line": 38,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 722,
      "end": 723,
      "loc": {
        "start": {
          "line": 38,
          "column": 12
        },
        "end": {
          "line": 38,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 726,
      "end": 737,
      "loc": {
        "start": {
          "line": 39,
          "column": 2
        },
        "end": {
          "line": 39,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 737,
      "end": 738,
      "loc": {
        "start": {
          "line": 39,
          "column": 13
        },
        "end": {
          "line": 39,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 738,
      "end": 742,
      "loc": {
        "start": {
          "line": 39,
          "column": 14
        },
        "end": {
          "line": 39,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 742,
      "end": 743,
      "loc": {
        "start": {
          "line": 39,
          "column": 18
        },
        "end": {
          "line": 39,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 744,
      "end": 745,
      "loc": {
        "start": {
          "line": 39,
          "column": 20
        },
        "end": {
          "line": 39,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 750,
      "end": 754,
      "loc": {
        "start": {
          "line": 40,
          "column": 4
        },
        "end": {
          "line": 40,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 754,
      "end": 755,
      "loc": {
        "start": {
          "line": 40,
          "column": 8
        },
        "end": {
          "line": 40,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 755,
      "end": 759,
      "loc": {
        "start": {
          "line": 40,
          "column": 9
        },
        "end": {
          "line": 40,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 760,
      "end": 761,
      "loc": {
        "start": {
          "line": 40,
          "column": 14
        },
        "end": {
          "line": 40,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "apply",
      "start": 762,
      "end": 769,
      "loc": {
        "start": {
          "line": 40,
          "column": 16
        },
        "end": {
          "line": 40,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 769,
      "end": 770,
      "loc": {
        "start": {
          "line": 40,
          "column": 23
        },
        "end": {
          "line": 40,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 775,
      "end": 779,
      "loc": {
        "start": {
          "line": 41,
          "column": 4
        },
        "end": {
          "line": 41,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 779,
      "end": 780,
      "loc": {
        "start": {
          "line": 41,
          "column": 8
        },
        "end": {
          "line": 41,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "operator",
      "start": 780,
      "end": 788,
      "loc": {
        "start": {
          "line": 41,
          "column": 9
        },
        "end": {
          "line": 41,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 789,
      "end": 790,
      "loc": {
        "start": {
          "line": 41,
          "column": 18
        },
        "end": {
          "line": 41,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 791,
      "end": 795,
      "loc": {
        "start": {
          "line": 41,
          "column": 20
        },
        "end": {
          "line": 41,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 795,
      "end": 796,
      "loc": {
        "start": {
          "line": 41,
          "column": 24
        },
        "end": {
          "line": 41,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 801,
      "end": 805,
      "loc": {
        "start": {
          "line": 42,
          "column": 4
        },
        "end": {
          "line": 42,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 805,
      "end": 806,
      "loc": {
        "start": {
          "line": 42,
          "column": 8
        },
        "end": {
          "line": 42,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 806,
      "end": 810,
      "loc": {
        "start": {
          "line": 42,
          "column": 9
        },
        "end": {
          "line": 42,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 811,
      "end": 812,
      "loc": {
        "start": {
          "line": 42,
          "column": 14
        },
        "end": {
          "line": 42,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 813,
      "end": 814,
      "loc": {
        "start": {
          "line": 42,
          "column": 16
        },
        "end": {
          "line": 42,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 814,
      "end": 815,
      "loc": {
        "start": {
          "line": 42,
          "column": 17
        },
        "end": {
          "line": 42,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 815,
      "end": 816,
      "loc": {
        "start": {
          "line": 42,
          "column": 18
        },
        "end": {
          "line": 42,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 819,
      "end": 820,
      "loc": {
        "start": {
          "line": 43,
          "column": 2
        },
        "end": {
          "line": 43,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evaluate",
      "start": 824,
      "end": 832,
      "loc": {
        "start": {
          "line": 45,
          "column": 2
        },
        "end": {
          "line": 45,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 832,
      "end": 833,
      "loc": {
        "start": {
          "line": 45,
          "column": 10
        },
        "end": {
          "line": 45,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 833,
      "end": 836,
      "loc": {
        "start": {
          "line": 45,
          "column": 11
        },
        "end": {
          "line": 45,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 836,
      "end": 837,
      "loc": {
        "start": {
          "line": 45,
          "column": 14
        },
        "end": {
          "line": 45,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 838,
      "end": 839,
      "loc": {
        "start": {
          "line": 45,
          "column": 16
        },
        "end": {
          "line": 45,
          "column": 17
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Check if its a specialForm function",
      "start": 844,
      "end": 882,
      "loc": {
        "start": {
          "line": 46,
          "column": 4
        },
        "end": {
          "line": 46,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 887,
      "end": 889,
      "loc": {
        "start": {
          "line": 47,
          "column": 4
        },
        "end": {
          "line": 47,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 890,
      "end": 891,
      "loc": {
        "start": {
          "line": 47,
          "column": 7
        },
        "end": {
          "line": 47,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 891,
      "end": 895,
      "loc": {
        "start": {
          "line": 47,
          "column": 8
        },
        "end": {
          "line": 47,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 895,
      "end": 896,
      "loc": {
        "start": {
          "line": 47,
          "column": 12
        },
        "end": {
          "line": 47,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "operator",
      "start": 896,
      "end": 904,
      "loc": {
        "start": {
          "line": 47,
          "column": 13
        },
        "end": {
          "line": 47,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 904,
      "end": 905,
      "loc": {
        "start": {
          "line": 47,
          "column": 21
        },
        "end": {
          "line": 47,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 905,
      "end": 909,
      "loc": {
        "start": {
          "line": 47,
          "column": 22
        },
        "end": {
          "line": 47,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 910,
      "end": 913,
      "loc": {
        "start": {
          "line": 47,
          "column": 27
        },
        "end": {
          "line": 47,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "word",
      "start": 914,
      "end": 920,
      "loc": {
        "start": {
          "line": 47,
          "column": 31
        },
        "end": {
          "line": 47,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 921,
      "end": 923,
      "loc": {
        "start": {
          "line": 47,
          "column": 38
        },
        "end": {
          "line": 47,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 924,
      "end": 928,
      "loc": {
        "start": {
          "line": 47,
          "column": 41
        },
        "end": {
          "line": 47,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 928,
      "end": 929,
      "loc": {
        "start": {
          "line": 47,
          "column": 45
        },
        "end": {
          "line": 47,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "operator",
      "start": 929,
      "end": 937,
      "loc": {
        "start": {
          "line": 47,
          "column": 46
        },
        "end": {
          "line": 47,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 937,
      "end": 938,
      "loc": {
        "start": {
          "line": 47,
          "column": 54
        },
        "end": {
          "line": 47,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 938,
      "end": 942,
      "loc": {
        "start": {
          "line": 47,
          "column": 55
        },
        "end": {
          "line": 47,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "in",
        "keyword": "in",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "in",
      "start": 943,
      "end": 945,
      "loc": {
        "start": {
          "line": 47,
          "column": 60
        },
        "end": {
          "line": 47,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "SpecialForms",
      "start": 946,
      "end": 958,
      "loc": {
        "start": {
          "line": 47,
          "column": 63
        },
        "end": {
          "line": 47,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 958,
      "end": 959,
      "loc": {
        "start": {
          "line": 47,
          "column": 75
        },
        "end": {
          "line": 47,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 960,
      "end": 961,
      "loc": {
        "start": {
          "line": 47,
          "column": 77
        },
        "end": {
          "line": 47,
          "column": 78
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 968,
      "end": 974,
      "loc": {
        "start": {
          "line": 48,
          "column": 6
        },
        "end": {
          "line": 48,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "SpecialForms",
      "start": 975,
      "end": 987,
      "loc": {
        "start": {
          "line": 48,
          "column": 13
        },
        "end": {
          "line": 48,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 987,
      "end": 988,
      "loc": {
        "start": {
          "line": 48,
          "column": 25
        },
        "end": {
          "line": 48,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 988,
      "end": 992,
      "loc": {
        "start": {
          "line": 48,
          "column": 26
        },
        "end": {
          "line": 48,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 992,
      "end": 993,
      "loc": {
        "start": {
          "line": 48,
          "column": 30
        },
        "end": {
          "line": 48,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "operator",
      "start": 993,
      "end": 1001,
      "loc": {
        "start": {
          "line": 48,
          "column": 31
        },
        "end": {
          "line": 48,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1001,
      "end": 1002,
      "loc": {
        "start": {
          "line": 48,
          "column": 39
        },
        "end": {
          "line": 48,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1002,
      "end": 1006,
      "loc": {
        "start": {
          "line": 48,
          "column": 40
        },
        "end": {
          "line": 48,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1006,
      "end": 1007,
      "loc": {
        "start": {
          "line": 48,
          "column": 44
        },
        "end": {
          "line": 48,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1007,
      "end": 1008,
      "loc": {
        "start": {
          "line": 48,
          "column": 45
        },
        "end": {
          "line": 48,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1008,
      "end": 1012,
      "loc": {
        "start": {
          "line": 48,
          "column": 46
        },
        "end": {
          "line": 48,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1012,
      "end": 1013,
      "loc": {
        "start": {
          "line": 48,
          "column": 50
        },
        "end": {
          "line": 48,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 1013,
      "end": 1017,
      "loc": {
        "start": {
          "line": 48,
          "column": 51
        },
        "end": {
          "line": 48,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1017,
      "end": 1018,
      "loc": {
        "start": {
          "line": 48,
          "column": 55
        },
        "end": {
          "line": 48,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 1019,
      "end": 1022,
      "loc": {
        "start": {
          "line": 48,
          "column": 57
        },
        "end": {
          "line": 48,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1022,
      "end": 1023,
      "loc": {
        "start": {
          "line": 48,
          "column": 60
        },
        "end": {
          "line": 48,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1023,
      "end": 1024,
      "loc": {
        "start": {
          "line": 48,
          "column": 61
        },
        "end": {
          "line": 48,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1029,
      "end": 1030,
      "loc": {
        "start": {
          "line": 49,
          "column": 4
        },
        "end": {
          "line": 49,
          "column": 5
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Evaluated operator",
      "start": 1036,
      "end": 1057,
      "loc": {
        "start": {
          "line": 51,
          "column": 4
        },
        "end": {
          "line": 51,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1062,
      "end": 1065,
      "loc": {
        "start": {
          "line": 52,
          "column": 4
        },
        "end": {
          "line": 52,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1066,
      "end": 1068,
      "loc": {
        "start": {
          "line": 52,
          "column": 8
        },
        "end": {
          "line": 52,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1069,
      "end": 1070,
      "loc": {
        "start": {
          "line": 52,
          "column": 11
        },
        "end": {
          "line": 52,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1071,
      "end": 1075,
      "loc": {
        "start": {
          "line": 52,
          "column": 13
        },
        "end": {
          "line": 52,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1075,
      "end": 1076,
      "loc": {
        "start": {
          "line": 52,
          "column": 17
        },
        "end": {
          "line": 52,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "operator",
      "start": 1076,
      "end": 1084,
      "loc": {
        "start": {
          "line": 52,
          "column": 18
        },
        "end": {
          "line": 52,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1084,
      "end": 1085,
      "loc": {
        "start": {
          "line": 52,
          "column": 26
        },
        "end": {
          "line": 52,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evaluate",
      "start": 1085,
      "end": 1093,
      "loc": {
        "start": {
          "line": 52,
          "column": 27
        },
        "end": {
          "line": 52,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1093,
      "end": 1094,
      "loc": {
        "start": {
          "line": 52,
          "column": 35
        },
        "end": {
          "line": 52,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 1094,
      "end": 1097,
      "loc": {
        "start": {
          "line": 52,
          "column": 36
        },
        "end": {
          "line": 52,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1097,
      "end": 1098,
      "loc": {
        "start": {
          "line": 52,
          "column": 39
        },
        "end": {
          "line": 52,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1098,
      "end": 1099,
      "loc": {
        "start": {
          "line": 52,
          "column": 40
        },
        "end": {
          "line": 52,
          "column": 41
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Evaluated arguments",
      "start": 1104,
      "end": 1126,
      "loc": {
        "start": {
          "line": 53,
          "column": 4
        },
        "end": {
          "line": 53,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1131,
      "end": 1134,
      "loc": {
        "start": {
          "line": 54,
          "column": 4
        },
        "end": {
          "line": 54,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evArgs",
      "start": 1135,
      "end": 1141,
      "loc": {
        "start": {
          "line": 54,
          "column": 8
        },
        "end": {
          "line": 54,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1142,
      "end": 1143,
      "loc": {
        "start": {
          "line": 54,
          "column": 15
        },
        "end": {
          "line": 54,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1144,
      "end": 1148,
      "loc": {
        "start": {
          "line": 54,
          "column": 17
        },
        "end": {
          "line": 54,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1148,
      "end": 1149,
      "loc": {
        "start": {
          "line": 54,
          "column": 21
        },
        "end": {
          "line": 54,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 1149,
      "end": 1153,
      "loc": {
        "start": {
          "line": 54,
          "column": 22
        },
        "end": {
          "line": 54,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1153,
      "end": 1154,
      "loc": {
        "start": {
          "line": 54,
          "column": 26
        },
        "end": {
          "line": 54,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "map",
      "start": 1154,
      "end": 1157,
      "loc": {
        "start": {
          "line": 54,
          "column": 27
        },
        "end": {
          "line": 54,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1157,
      "end": 1158,
      "loc": {
        "start": {
          "line": 54,
          "column": 30
        },
        "end": {
          "line": 54,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "arg",
      "start": 1158,
      "end": 1161,
      "loc": {
        "start": {
          "line": 54,
          "column": 31
        },
        "end": {
          "line": 54,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1162,
      "end": 1164,
      "loc": {
        "start": {
          "line": 54,
          "column": 35
        },
        "end": {
          "line": 54,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "arg",
      "start": 1165,
      "end": 1168,
      "loc": {
        "start": {
          "line": 54,
          "column": 38
        },
        "end": {
          "line": 54,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1168,
      "end": 1169,
      "loc": {
        "start": {
          "line": 54,
          "column": 41
        },
        "end": {
          "line": 54,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evaluate",
      "start": 1169,
      "end": 1177,
      "loc": {
        "start": {
          "line": 54,
          "column": 42
        },
        "end": {
          "line": 54,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1177,
      "end": 1178,
      "loc": {
        "start": {
          "line": 54,
          "column": 50
        },
        "end": {
          "line": 54,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "env",
      "start": 1178,
      "end": 1181,
      "loc": {
        "start": {
          "line": 54,
          "column": 51
        },
        "end": {
          "line": 54,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1181,
      "end": 1182,
      "loc": {
        "start": {
          "line": 54,
          "column": 54
        },
        "end": {
          "line": 54,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1182,
      "end": 1183,
      "loc": {
        "start": {
          "line": 54,
          "column": 55
        },
        "end": {
          "line": 54,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1183,
      "end": 1184,
      "loc": {
        "start": {
          "line": 54,
          "column": 56
        },
        "end": {
          "line": 54,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1190,
      "end": 1192,
      "loc": {
        "start": {
          "line": 56,
          "column": 4
        },
        "end": {
          "line": 56,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1193,
      "end": 1194,
      "loc": {
        "start": {
          "line": 56,
          "column": 7
        },
        "end": {
          "line": 56,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "typeof",
        "keyword": "typeof",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "typeof",
      "start": 1194,
      "end": 1200,
      "loc": {
        "start": {
          "line": 56,
          "column": 8
        },
        "end": {
          "line": 56,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1201,
      "end": 1203,
      "loc": {
        "start": {
          "line": 56,
          "column": 15
        },
        "end": {
          "line": 56,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1204,
      "end": 1207,
      "loc": {
        "start": {
          "line": 56,
          "column": 18
        },
        "end": {
          "line": 56,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "function",
      "start": 1208,
      "end": 1218,
      "loc": {
        "start": {
          "line": 56,
          "column": 22
        },
        "end": {
          "line": 56,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1218,
      "end": 1219,
      "loc": {
        "start": {
          "line": 56,
          "column": 32
        },
        "end": {
          "line": 56,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1220,
      "end": 1221,
      "loc": {
        "start": {
          "line": 56,
          "column": 34
        },
        "end": {
          "line": 56,
          "column": 35
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Is a function",
      "start": 1228,
      "end": 1244,
      "loc": {
        "start": {
          "line": 57,
          "column": 6
        },
        "end": {
          "line": 57,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1251,
      "end": 1257,
      "loc": {
        "start": {
          "line": 58,
          "column": 6
        },
        "end": {
          "line": 58,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1258,
      "end": 1260,
      "loc": {
        "start": {
          "line": 58,
          "column": 13
        },
        "end": {
          "line": 58,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1260,
      "end": 1261,
      "loc": {
        "start": {
          "line": 58,
          "column": 15
        },
        "end": {
          "line": 58,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1261,
      "end": 1264,
      "loc": {
        "start": {
          "line": 58,
          "column": 16
        },
        "end": {
          "line": 58,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evArgs",
      "start": 1264,
      "end": 1270,
      "loc": {
        "start": {
          "line": 58,
          "column": 19
        },
        "end": {
          "line": 58,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1270,
      "end": 1271,
      "loc": {
        "start": {
          "line": 58,
          "column": 25
        },
        "end": {
          "line": 58,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1271,
      "end": 1272,
      "loc": {
        "start": {
          "line": 58,
          "column": 26
        },
        "end": {
          "line": 58,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1277,
      "end": 1278,
      "loc": {
        "start": {
          "line": 59,
          "column": 4
        },
        "end": {
          "line": 59,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1284,
      "end": 1286,
      "loc": {
        "start": {
          "line": 61,
          "column": 4
        },
        "end": {
          "line": 61,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1287,
      "end": 1288,
      "loc": {
        "start": {
          "line": 61,
          "column": 7
        },
        "end": {
          "line": 61,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "typeof",
        "keyword": "typeof",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "typeof",
      "start": 1288,
      "end": 1294,
      "loc": {
        "start": {
          "line": 61,
          "column": 8
        },
        "end": {
          "line": 61,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1295,
      "end": 1297,
      "loc": {
        "start": {
          "line": 61,
          "column": 15
        },
        "end": {
          "line": 61,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 1298,
      "end": 1301,
      "loc": {
        "start": {
          "line": 61,
          "column": 18
        },
        "end": {
          "line": 61,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "undefined",
      "start": 1302,
      "end": 1313,
      "loc": {
        "start": {
          "line": 61,
          "column": 22
        },
        "end": {
          "line": 61,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1313,
      "end": 1314,
      "loc": {
        "start": {
          "line": 61,
          "column": 33
        },
        "end": {
          "line": 61,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1315,
      "end": 1316,
      "loc": {
        "start": {
          "line": 61,
          "column": 35
        },
        "end": {
          "line": 61,
          "column": 36
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Is an object, number, string or boolean",
      "start": 1323,
      "end": 1365,
      "loc": {
        "start": {
          "line": 62,
          "column": 6
        },
        "end": {
          "line": 62,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1372,
      "end": 1375,
      "loc": {
        "start": {
          "line": 63,
          "column": 6
        },
        "end": {
          "line": 63,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1376,
      "end": 1380,
      "loc": {
        "start": {
          "line": 63,
          "column": 10
        },
        "end": {
          "line": 63,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1381,
      "end": 1382,
      "loc": {
        "start": {
          "line": 63,
          "column": 15
        },
        "end": {
          "line": 63,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evArgs",
      "start": 1383,
      "end": 1389,
      "loc": {
        "start": {
          "line": 63,
          "column": 17
        },
        "end": {
          "line": 63,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1389,
      "end": 1390,
      "loc": {
        "start": {
          "line": 63,
          "column": 23
        },
        "end": {
          "line": 63,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 1390,
      "end": 1391,
      "loc": {
        "start": {
          "line": 63,
          "column": 24
        },
        "end": {
          "line": 63,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1391,
      "end": 1392,
      "loc": {
        "start": {
          "line": 63,
          "column": 25
        },
        "end": {
          "line": 63,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1392,
      "end": 1393,
      "loc": {
        "start": {
          "line": 63,
          "column": 26
        },
        "end": {
          "line": 63,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1400,
      "end": 1403,
      "loc": {
        "start": {
          "line": 64,
          "column": 6
        },
        "end": {
          "line": 64,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "methodArgs",
      "start": 1404,
      "end": 1414,
      "loc": {
        "start": {
          "line": 64,
          "column": 10
        },
        "end": {
          "line": 64,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1415,
      "end": 1416,
      "loc": {
        "start": {
          "line": 64,
          "column": 21
        },
        "end": {
          "line": 64,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evArgs",
      "start": 1417,
      "end": 1423,
      "loc": {
        "start": {
          "line": 64,
          "column": 23
        },
        "end": {
          "line": 64,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1423,
      "end": 1424,
      "loc": {
        "start": {
          "line": 64,
          "column": 29
        },
        "end": {
          "line": 64,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "slice",
      "start": 1424,
      "end": 1429,
      "loc": {
        "start": {
          "line": 64,
          "column": 30
        },
        "end": {
          "line": 64,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1429,
      "end": 1430,
      "loc": {
        "start": {
          "line": 64,
          "column": 35
        },
        "end": {
          "line": 64,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 1430,
      "end": 1431,
      "loc": {
        "start": {
          "line": 64,
          "column": 36
        },
        "end": {
          "line": 64,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1431,
      "end": 1432,
      "loc": {
        "start": {
          "line": 64,
          "column": 37
        },
        "end": {
          "line": 64,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1432,
      "end": 1433,
      "loc": {
        "start": {
          "line": 64,
          "column": 38
        },
        "end": {
          "line": 64,
          "column": 39
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Check if the name of the method/property is defined on the object",
      "start": 1441,
      "end": 1509,
      "loc": {
        "start": {
          "line": 66,
          "column": 6
        },
        "end": {
          "line": 66,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1516,
      "end": 1518,
      "loc": {
        "start": {
          "line": 67,
          "column": 6
        },
        "end": {
          "line": 67,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1519,
      "end": 1520,
      "loc": {
        "start": {
          "line": 67,
          "column": 9
        },
        "end": {
          "line": 67,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "typeof",
        "keyword": "typeof",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "typeof",
      "start": 1520,
      "end": 1526,
      "loc": {
        "start": {
          "line": 67,
          "column": 10
        },
        "end": {
          "line": 67,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1527,
      "end": 1529,
      "loc": {
        "start": {
          "line": 67,
          "column": 17
        },
        "end": {
          "line": 67,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1529,
      "end": 1530,
      "loc": {
        "start": {
          "line": 67,
          "column": 19
        },
        "end": {
          "line": 67,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1530,
      "end": 1534,
      "loc": {
        "start": {
          "line": 67,
          "column": 20
        },
        "end": {
          "line": 67,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1534,
      "end": 1535,
      "loc": {
        "start": {
          "line": 67,
          "column": 24
        },
        "end": {
          "line": 67,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 1536,
      "end": 1539,
      "loc": {
        "start": {
          "line": 67,
          "column": 26
        },
        "end": {
          "line": 67,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "undefined",
      "start": 1540,
      "end": 1551,
      "loc": {
        "start": {
          "line": 67,
          "column": 30
        },
        "end": {
          "line": 67,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1551,
      "end": 1552,
      "loc": {
        "start": {
          "line": 67,
          "column": 41
        },
        "end": {
          "line": 67,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1553,
      "end": 1554,
      "loc": {
        "start": {
          "line": 67,
          "column": 43
        },
        "end": {
          "line": 67,
          "column": 44
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Execute as function",
      "start": 1563,
      "end": 1585,
      "loc": {
        "start": {
          "line": 68,
          "column": 8
        },
        "end": {
          "line": 68,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1594,
      "end": 1596,
      "loc": {
        "start": {
          "line": 69,
          "column": 8
        },
        "end": {
          "line": 69,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1597,
      "end": 1598,
      "loc": {
        "start": {
          "line": 69,
          "column": 11
        },
        "end": {
          "line": 69,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "typeof",
        "keyword": "typeof",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "typeof",
      "start": 1598,
      "end": 1604,
      "loc": {
        "start": {
          "line": 69,
          "column": 12
        },
        "end": {
          "line": 69,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1605,
      "end": 1607,
      "loc": {
        "start": {
          "line": 69,
          "column": 19
        },
        "end": {
          "line": 69,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1607,
      "end": 1608,
      "loc": {
        "start": {
          "line": 69,
          "column": 21
        },
        "end": {
          "line": 69,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1608,
      "end": 1612,
      "loc": {
        "start": {
          "line": 69,
          "column": 22
        },
        "end": {
          "line": 69,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1612,
      "end": 1613,
      "loc": {
        "start": {
          "line": 69,
          "column": 26
        },
        "end": {
          "line": 69,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1614,
      "end": 1617,
      "loc": {
        "start": {
          "line": 69,
          "column": 28
        },
        "end": {
          "line": 69,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "function",
      "start": 1618,
      "end": 1628,
      "loc": {
        "start": {
          "line": 69,
          "column": 32
        },
        "end": {
          "line": 69,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1628,
      "end": 1629,
      "loc": {
        "start": {
          "line": 69,
          "column": 42
        },
        "end": {
          "line": 69,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1630,
      "end": 1631,
      "loc": {
        "start": {
          "line": 69,
          "column": 44
        },
        "end": {
          "line": 69,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1642,
      "end": 1648,
      "loc": {
        "start": {
          "line": 70,
          "column": 10
        },
        "end": {
          "line": 70,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1649,
      "end": 1651,
      "loc": {
        "start": {
          "line": 70,
          "column": 17
        },
        "end": {
          "line": 70,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1651,
      "end": 1652,
      "loc": {
        "start": {
          "line": 70,
          "column": 19
        },
        "end": {
          "line": 70,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1652,
      "end": 1656,
      "loc": {
        "start": {
          "line": 70,
          "column": 20
        },
        "end": {
          "line": 70,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1656,
      "end": 1657,
      "loc": {
        "start": {
          "line": 70,
          "column": 24
        },
        "end": {
          "line": 70,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1657,
      "end": 1658,
      "loc": {
        "start": {
          "line": 70,
          "column": 25
        },
        "end": {
          "line": 70,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1658,
      "end": 1661,
      "loc": {
        "start": {
          "line": 70,
          "column": 26
        },
        "end": {
          "line": 70,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "methodArgs",
      "start": 1661,
      "end": 1671,
      "loc": {
        "start": {
          "line": 70,
          "column": 29
        },
        "end": {
          "line": 70,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1671,
      "end": 1672,
      "loc": {
        "start": {
          "line": 70,
          "column": 39
        },
        "end": {
          "line": 70,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1672,
      "end": 1673,
      "loc": {
        "start": {
          "line": 70,
          "column": 40
        },
        "end": {
          "line": 70,
          "column": 41
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Return as property",
      "start": 1685,
      "end": 1706,
      "loc": {
        "start": {
          "line": 72,
          "column": 10
        },
        "end": {
          "line": 72,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1715,
      "end": 1716,
      "loc": {
        "start": {
          "line": 73,
          "column": 8
        },
        "end": {
          "line": 73,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 1717,
      "end": 1721,
      "loc": {
        "start": {
          "line": 73,
          "column": 10
        },
        "end": {
          "line": 73,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1722,
      "end": 1723,
      "loc": {
        "start": {
          "line": 73,
          "column": 15
        },
        "end": {
          "line": 73,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1734,
      "end": 1740,
      "loc": {
        "start": {
          "line": 74,
          "column": 10
        },
        "end": {
          "line": 74,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1741,
      "end": 1743,
      "loc": {
        "start": {
          "line": 74,
          "column": 17
        },
        "end": {
          "line": 74,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1743,
      "end": 1744,
      "loc": {
        "start": {
          "line": 74,
          "column": 19
        },
        "end": {
          "line": 74,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1744,
      "end": 1748,
      "loc": {
        "start": {
          "line": 74,
          "column": 20
        },
        "end": {
          "line": 74,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1748,
      "end": 1749,
      "loc": {
        "start": {
          "line": 74,
          "column": 24
        },
        "end": {
          "line": 74,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1749,
      "end": 1750,
      "loc": {
        "start": {
          "line": 74,
          "column": 25
        },
        "end": {
          "line": 74,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1759,
      "end": 1760,
      "loc": {
        "start": {
          "line": 75,
          "column": 8
        },
        "end": {
          "line": 75,
          "column": 9
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " If the name of the method is not defined on the object...",
      "start": 1770,
      "end": 1830,
      "loc": {
        "start": {
          "line": 77,
          "column": 8
        },
        "end": {
          "line": 77,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1837,
      "end": 1838,
      "loc": {
        "start": {
          "line": 78,
          "column": 6
        },
        "end": {
          "line": 78,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 1839,
      "end": 1843,
      "loc": {
        "start": {
          "line": 78,
          "column": 8
        },
        "end": {
          "line": 78,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1844,
      "end": 1845,
      "loc": {
        "start": {
          "line": 78,
          "column": 13
        },
        "end": {
          "line": 78,
          "column": 14
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Check if its a Map property.",
      "start": 1854,
      "end": 1885,
      "loc": {
        "start": {
          "line": 79,
          "column": 8
        },
        "end": {
          "line": 79,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1894,
      "end": 1896,
      "loc": {
        "start": {
          "line": 80,
          "column": 8
        },
        "end": {
          "line": 80,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1897,
      "end": 1898,
      "loc": {
        "start": {
          "line": 80,
          "column": 11
        },
        "end": {
          "line": 80,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1898,
      "end": 1900,
      "loc": {
        "start": {
          "line": 80,
          "column": 12
        },
        "end": {
          "line": 80,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "instanceof",
        "keyword": "instanceof",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "instanceof",
      "start": 1901,
      "end": 1911,
      "loc": {
        "start": {
          "line": 80,
          "column": 15
        },
        "end": {
          "line": 80,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Map",
      "start": 1912,
      "end": 1915,
      "loc": {
        "start": {
          "line": 80,
          "column": 26
        },
        "end": {
          "line": 80,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1915,
      "end": 1916,
      "loc": {
        "start": {
          "line": 80,
          "column": 29
        },
        "end": {
          "line": 80,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1917,
      "end": 1918,
      "loc": {
        "start": {
          "line": 80,
          "column": 31
        },
        "end": {
          "line": 80,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1929,
      "end": 1931,
      "loc": {
        "start": {
          "line": 81,
          "column": 10
        },
        "end": {
          "line": 81,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1932,
      "end": 1933,
      "loc": {
        "start": {
          "line": 81,
          "column": 13
        },
        "end": {
          "line": 81,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "typeof",
        "keyword": "typeof",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "typeof",
      "start": 1933,
      "end": 1939,
      "loc": {
        "start": {
          "line": 81,
          "column": 14
        },
        "end": {
          "line": 81,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1940,
      "end": 1942,
      "loc": {
        "start": {
          "line": 81,
          "column": 21
        },
        "end": {
          "line": 81,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1942,
      "end": 1943,
      "loc": {
        "start": {
          "line": 81,
          "column": 23
        },
        "end": {
          "line": 81,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 1943,
      "end": 1946,
      "loc": {
        "start": {
          "line": 81,
          "column": 24
        },
        "end": {
          "line": 81,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1946,
      "end": 1947,
      "loc": {
        "start": {
          "line": 81,
          "column": 27
        },
        "end": {
          "line": 81,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1947,
      "end": 1951,
      "loc": {
        "start": {
          "line": 81,
          "column": 28
        },
        "end": {
          "line": 81,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1951,
      "end": 1952,
      "loc": {
        "start": {
          "line": 81,
          "column": 32
        },
        "end": {
          "line": 81,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1953,
      "end": 1956,
      "loc": {
        "start": {
          "line": 81,
          "column": 34
        },
        "end": {
          "line": 81,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "function",
      "start": 1957,
      "end": 1967,
      "loc": {
        "start": {
          "line": 81,
          "column": 38
        },
        "end": {
          "line": 81,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1967,
      "end": 1968,
      "loc": {
        "start": {
          "line": 81,
          "column": 48
        },
        "end": {
          "line": 81,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1969,
      "end": 1970,
      "loc": {
        "start": {
          "line": 81,
          "column": 50
        },
        "end": {
          "line": 81,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1983,
      "end": 1989,
      "loc": {
        "start": {
          "line": 82,
          "column": 12
        },
        "end": {
          "line": 82,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 1990,
      "end": 1992,
      "loc": {
        "start": {
          "line": 82,
          "column": 19
        },
        "end": {
          "line": 82,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1992,
      "end": 1993,
      "loc": {
        "start": {
          "line": 82,
          "column": 21
        },
        "end": {
          "line": 82,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 1993,
      "end": 1996,
      "loc": {
        "start": {
          "line": 82,
          "column": 22
        },
        "end": {
          "line": 82,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1996,
      "end": 1997,
      "loc": {
        "start": {
          "line": 82,
          "column": 25
        },
        "end": {
          "line": 82,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1997,
      "end": 2001,
      "loc": {
        "start": {
          "line": 82,
          "column": 26
        },
        "end": {
          "line": 82,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2001,
      "end": 2002,
      "loc": {
        "start": {
          "line": 82,
          "column": 30
        },
        "end": {
          "line": 82,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2002,
      "end": 2003,
      "loc": {
        "start": {
          "line": 82,
          "column": 31
        },
        "end": {
          "line": 82,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2003,
      "end": 2006,
      "loc": {
        "start": {
          "line": 82,
          "column": 32
        },
        "end": {
          "line": 82,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "methodArgs",
      "start": 2006,
      "end": 2016,
      "loc": {
        "start": {
          "line": 82,
          "column": 35
        },
        "end": {
          "line": 82,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2016,
      "end": 2017,
      "loc": {
        "start": {
          "line": 82,
          "column": 45
        },
        "end": {
          "line": 82,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2017,
      "end": 2018,
      "loc": {
        "start": {
          "line": 82,
          "column": 46
        },
        "end": {
          "line": 82,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2029,
      "end": 2030,
      "loc": {
        "start": {
          "line": 83,
          "column": 10
        },
        "end": {
          "line": 83,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 2031,
      "end": 2035,
      "loc": {
        "start": {
          "line": 83,
          "column": 12
        },
        "end": {
          "line": 83,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2036,
      "end": 2037,
      "loc": {
        "start": {
          "line": 83,
          "column": 17
        },
        "end": {
          "line": 83,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2050,
      "end": 2056,
      "loc": {
        "start": {
          "line": 84,
          "column": 12
        },
        "end": {
          "line": 84,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 2057,
      "end": 2059,
      "loc": {
        "start": {
          "line": 84,
          "column": 19
        },
        "end": {
          "line": 84,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2059,
      "end": 2060,
      "loc": {
        "start": {
          "line": 84,
          "column": 21
        },
        "end": {
          "line": 84,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 2060,
      "end": 2063,
      "loc": {
        "start": {
          "line": 84,
          "column": 22
        },
        "end": {
          "line": 84,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2063,
      "end": 2064,
      "loc": {
        "start": {
          "line": 84,
          "column": 25
        },
        "end": {
          "line": 84,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 2064,
      "end": 2068,
      "loc": {
        "start": {
          "line": 84,
          "column": 26
        },
        "end": {
          "line": 84,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2068,
      "end": 2069,
      "loc": {
        "start": {
          "line": 84,
          "column": 30
        },
        "end": {
          "line": 84,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2069,
      "end": 2070,
      "loc": {
        "start": {
          "line": 84,
          "column": 31
        },
        "end": {
          "line": 84,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2081,
      "end": 2082,
      "loc": {
        "start": {
          "line": 85,
          "column": 10
        },
        "end": {
          "line": 85,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2091,
      "end": 2092,
      "loc": {
        "start": {
          "line": 86,
          "column": 8
        },
        "end": {
          "line": 86,
          "column": 9
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Try to call the 'missing' method",
      "start": 2102,
      "end": 2137,
      "loc": {
        "start": {
          "line": 88,
          "column": 8
        },
        "end": {
          "line": 88,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2146,
      "end": 2148,
      "loc": {
        "start": {
          "line": 89,
          "column": 8
        },
        "end": {
          "line": 89,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2149,
      "end": 2150,
      "loc": {
        "start": {
          "line": 89,
          "column": 11
        },
        "end": {
          "line": 89,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "typeof",
        "keyword": "typeof",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "typeof",
      "start": 2150,
      "end": 2156,
      "loc": {
        "start": {
          "line": 89,
          "column": 12
        },
        "end": {
          "line": 89,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 2157,
      "end": 2159,
      "loc": {
        "start": {
          "line": 89,
          "column": 19
        },
        "end": {
          "line": 89,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2159,
      "end": 2160,
      "loc": {
        "start": {
          "line": 89,
          "column": 21
        },
        "end": {
          "line": 89,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "__missing__",
      "start": 2160,
      "end": 2173,
      "loc": {
        "start": {
          "line": 89,
          "column": 22
        },
        "end": {
          "line": 89,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2173,
      "end": 2174,
      "loc": {
        "start": {
          "line": 89,
          "column": 35
        },
        "end": {
          "line": 89,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 2175,
      "end": 2178,
      "loc": {
        "start": {
          "line": 89,
          "column": 37
        },
        "end": {
          "line": 89,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "function",
      "start": 2179,
      "end": 2189,
      "loc": {
        "start": {
          "line": 89,
          "column": 41
        },
        "end": {
          "line": 89,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2189,
      "end": 2190,
      "loc": {
        "start": {
          "line": 89,
          "column": 51
        },
        "end": {
          "line": 89,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2191,
      "end": 2192,
      "loc": {
        "start": {
          "line": 89,
          "column": 53
        },
        "end": {
          "line": 89,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2203,
      "end": 2209,
      "loc": {
        "start": {
          "line": 90,
          "column": 10
        },
        "end": {
          "line": 90,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 2210,
      "end": 2212,
      "loc": {
        "start": {
          "line": 90,
          "column": 17
        },
        "end": {
          "line": 90,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2212,
      "end": 2213,
      "loc": {
        "start": {
          "line": 90,
          "column": 19
        },
        "end": {
          "line": 90,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "__missing__",
      "start": 2213,
      "end": 2226,
      "loc": {
        "start": {
          "line": 90,
          "column": 20
        },
        "end": {
          "line": 90,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2226,
      "end": 2227,
      "loc": {
        "start": {
          "line": 90,
          "column": 33
        },
        "end": {
          "line": 90,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2227,
      "end": 2228,
      "loc": {
        "start": {
          "line": 90,
          "column": 34
        },
        "end": {
          "line": 90,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2228,
      "end": 2231,
      "loc": {
        "start": {
          "line": 90,
          "column": 35
        },
        "end": {
          "line": 90,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "methodArgs",
      "start": 2231,
      "end": 2241,
      "loc": {
        "start": {
          "line": 90,
          "column": 38
        },
        "end": {
          "line": 90,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2241,
      "end": 2242,
      "loc": {
        "start": {
          "line": 90,
          "column": 48
        },
        "end": {
          "line": 90,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2242,
      "end": 2243,
      "loc": {
        "start": {
          "line": 90,
          "column": 49
        },
        "end": {
          "line": 90,
          "column": 50
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " As a last resort, throw an Exception",
      "start": 2255,
      "end": 2294,
      "loc": {
        "start": {
          "line": 92,
          "column": 10
        },
        "end": {
          "line": 92,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2303,
      "end": 2304,
      "loc": {
        "start": {
          "line": 93,
          "column": 8
        },
        "end": {
          "line": 93,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 2305,
      "end": 2309,
      "loc": {
        "start": {
          "line": 93,
          "column": 10
        },
        "end": {
          "line": 93,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2310,
      "end": 2311,
      "loc": {
        "start": {
          "line": 93,
          "column": 15
        },
        "end": {
          "line": 93,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "throw",
        "keyword": "throw",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "throw",
      "start": 2322,
      "end": 2327,
      "loc": {
        "start": {
          "line": 94,
          "column": 10
        },
        "end": {
          "line": 94,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 2328,
      "end": 2331,
      "loc": {
        "start": {
          "line": 94,
          "column": 16
        },
        "end": {
          "line": 94,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "SyntaxError",
      "start": 2332,
      "end": 2343,
      "loc": {
        "start": {
          "line": 94,
          "column": 20
        },
        "end": {
          "line": 94,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2343,
      "end": 2344,
      "loc": {
        "start": {
          "line": 94,
          "column": 31
        },
        "end": {
          "line": 94,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2344,
      "end": 2345,
      "loc": {
        "start": {
          "line": 94,
          "column": 32
        },
        "end": {
          "line": 94,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "The method '",
      "start": 2345,
      "end": 2357,
      "loc": {
        "start": {
          "line": 94,
          "column": 33
        },
        "end": {
          "line": 94,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "${",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2357,
      "end": 2359,
      "loc": {
        "start": {
          "line": 94,
          "column": 45
        },
        "end": {
          "line": 94,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 2359,
      "end": 2363,
      "loc": {
        "start": {
          "line": 94,
          "column": 47
        },
        "end": {
          "line": 94,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2363,
      "end": 2364,
      "loc": {
        "start": {
          "line": 94,
          "column": 51
        },
        "end": {
          "line": 94,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "' was not found on the\n          object '",
      "start": 2364,
      "end": 2405,
      "loc": {
        "start": {
          "line": 94,
          "column": 52
        },
        "end": {
          "line": 95,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "${",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2405,
      "end": 2407,
      "loc": {
        "start": {
          "line": 95,
          "column": 18
        },
        "end": {
          "line": 95,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "utils",
      "start": 2407,
      "end": 2412,
      "loc": {
        "start": {
          "line": 95,
          "column": 20
        },
        "end": {
          "line": 95,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2412,
      "end": 2413,
      "loc": {
        "start": {
          "line": 95,
          "column": 25
        },
        "end": {
          "line": 95,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ins",
      "start": 2413,
      "end": 2416,
      "loc": {
        "start": {
          "line": 95,
          "column": 26
        },
        "end": {
          "line": 95,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2416,
      "end": 2417,
      "loc": {
        "start": {
          "line": 95,
          "column": 29
        },
        "end": {
          "line": 95,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "op",
      "start": 2417,
      "end": 2419,
      "loc": {
        "start": {
          "line": 95,
          "column": 30
        },
        "end": {
          "line": 95,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2419,
      "end": 2420,
      "loc": {
        "start": {
          "line": 95,
          "column": 32
        },
        "end": {
          "line": 95,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2420,
      "end": 2421,
      "loc": {
        "start": {
          "line": 95,
          "column": 33
        },
        "end": {
          "line": 95,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "'",
      "start": 2421,
      "end": 2422,
      "loc": {
        "start": {
          "line": 95,
          "column": 34
        },
        "end": {
          "line": 95,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2422,
      "end": 2423,
      "loc": {
        "start": {
          "line": 95,
          "column": 35
        },
        "end": {
          "line": 95,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2423,
      "end": 2424,
      "loc": {
        "start": {
          "line": 95,
          "column": 36
        },
        "end": {
          "line": 95,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2424,
      "end": 2425,
      "loc": {
        "start": {
          "line": 95,
          "column": 37
        },
        "end": {
          "line": 95,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2434,
      "end": 2435,
      "loc": {
        "start": {
          "line": 96,
          "column": 8
        },
        "end": {
          "line": 96,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2442,
      "end": 2443,
      "loc": {
        "start": {
          "line": 97,
          "column": 6
        },
        "end": {
          "line": 97,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2448,
      "end": 2449,
      "loc": {
        "start": {
          "line": 98,
          "column": 4
        },
        "end": {
          "line": 98,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "throw",
        "keyword": "throw",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "throw",
      "start": 2455,
      "end": 2460,
      "loc": {
        "start": {
          "line": 100,
          "column": 4
        },
        "end": {
          "line": 100,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 2461,
      "end": 2464,
      "loc": {
        "start": {
          "line": 100,
          "column": 10
        },
        "end": {
          "line": 100,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TypeError",
      "start": 2465,
      "end": 2474,
      "loc": {
        "start": {
          "line": 100,
          "column": 14
        },
        "end": {
          "line": 100,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2474,
      "end": 2475,
      "loc": {
        "start": {
          "line": 100,
          "column": 23
        },
        "end": {
          "line": 100,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2475,
      "end": 2476,
      "loc": {
        "start": {
          "line": 100,
          "column": 24
        },
        "end": {
          "line": 100,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Could not resolve the apply expression",
      "start": 2476,
      "end": 2514,
      "loc": {
        "start": {
          "line": 100,
          "column": 25
        },
        "end": {
          "line": 100,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2514,
      "end": 2515,
      "loc": {
        "start": {
          "line": 100,
          "column": 63
        },
        "end": {
          "line": 100,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2515,
      "end": 2516,
      "loc": {
        "start": {
          "line": 100,
          "column": 64
        },
        "end": {
          "line": 100,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2516,
      "end": 2517,
      "loc": {
        "start": {
          "line": 100,
          "column": 65
        },
        "end": {
          "line": 100,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2520,
      "end": 2521,
      "loc": {
        "start": {
          "line": 101,
          "column": 2
        },
        "end": {
          "line": 101,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2522,
      "end": 2523,
      "loc": {
        "start": {
          "line": 102,
          "column": 0
        },
        "end": {
          "line": 102,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 2525,
      "end": 2530,
      "loc": {
        "start": {
          "line": 104,
          "column": 0
        },
        "end": {
          "line": 104,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Regex",
      "start": 2531,
      "end": 2536,
      "loc": {
        "start": {
          "line": 104,
          "column": 6
        },
        "end": {
          "line": 104,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2537,
      "end": 2538,
      "loc": {
        "start": {
          "line": 104,
          "column": 12
        },
        "end": {
          "line": 104,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 2541,
      "end": 2552,
      "loc": {
        "start": {
          "line": 105,
          "column": 2
        },
        "end": {
          "line": 105,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2552,
      "end": 2553,
      "loc": {
        "start": {
          "line": 105,
          "column": 13
        },
        "end": {
          "line": 105,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 2553,
      "end": 2558,
      "loc": {
        "start": {
          "line": 105,
          "column": 14
        },
        "end": {
          "line": 105,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2558,
      "end": 2559,
      "loc": {
        "start": {
          "line": 105,
          "column": 19
        },
        "end": {
          "line": 105,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2560,
      "end": 2561,
      "loc": {
        "start": {
          "line": 105,
          "column": 21
        },
        "end": {
          "line": 105,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2566,
      "end": 2570,
      "loc": {
        "start": {
          "line": 106,
          "column": 4
        },
        "end": {
          "line": 106,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2570,
      "end": 2571,
      "loc": {
        "start": {
          "line": 106,
          "column": 8
        },
        "end": {
          "line": 106,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 2571,
      "end": 2575,
      "loc": {
        "start": {
          "line": 106,
          "column": 9
        },
        "end": {
          "line": 106,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2576,
      "end": 2577,
      "loc": {
        "start": {
          "line": 106,
          "column": 14
        },
        "end": {
          "line": 106,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "regex",
      "start": 2578,
      "end": 2585,
      "loc": {
        "start": {
          "line": 106,
          "column": 16
        },
        "end": {
          "line": 106,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2585,
      "end": 2586,
      "loc": {
        "start": {
          "line": 106,
          "column": 23
        },
        "end": {
          "line": 106,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2592,
      "end": 2596,
      "loc": {
        "start": {
          "line": 108,
          "column": 4
        },
        "end": {
          "line": 108,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2596,
      "end": 2597,
      "loc": {
        "start": {
          "line": 108,
          "column": 8
        },
        "end": {
          "line": 108,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "body",
      "start": 2597,
      "end": 2601,
      "loc": {
        "start": {
          "line": 108,
          "column": 9
        },
        "end": {
          "line": 108,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2602,
      "end": 2603,
      "loc": {
        "start": {
          "line": 108,
          "column": 14
        },
        "end": {
          "line": 108,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 2604,
      "end": 2609,
      "loc": {
        "start": {
          "line": 108,
          "column": 16
        },
        "end": {
          "line": 108,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2609,
      "end": 2610,
      "loc": {
        "start": {
          "line": 108,
          "column": 21
        },
        "end": {
          "line": 108,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "body",
      "start": 2610,
      "end": 2614,
      "loc": {
        "start": {
          "line": 108,
          "column": 22
        },
        "end": {
          "line": 108,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2614,
      "end": 2615,
      "loc": {
        "start": {
          "line": 108,
          "column": 26
        },
        "end": {
          "line": 108,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2620,
      "end": 2624,
      "loc": {
        "start": {
          "line": 109,
          "column": 4
        },
        "end": {
          "line": 109,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2624,
      "end": 2625,
      "loc": {
        "start": {
          "line": 109,
          "column": 8
        },
        "end": {
          "line": 109,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "flags",
      "start": 2625,
      "end": 2630,
      "loc": {
        "start": {
          "line": 109,
          "column": 9
        },
        "end": {
          "line": 109,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2631,
      "end": 2632,
      "loc": {
        "start": {
          "line": 109,
          "column": 15
        },
        "end": {
          "line": 109,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 2633,
      "end": 2638,
      "loc": {
        "start": {
          "line": 109,
          "column": 17
        },
        "end": {
          "line": 109,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2638,
      "end": 2639,
      "loc": {
        "start": {
          "line": 109,
          "column": 22
        },
        "end": {
          "line": 109,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "flags",
      "start": 2639,
      "end": 2644,
      "loc": {
        "start": {
          "line": 109,
          "column": 23
        },
        "end": {
          "line": 109,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2644,
      "end": 2645,
      "loc": {
        "start": {
          "line": 109,
          "column": 28
        },
        "end": {
          "line": 109,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2648,
      "end": 2649,
      "loc": {
        "start": {
          "line": 110,
          "column": 2
        },
        "end": {
          "line": 110,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "evaluate",
      "start": 2653,
      "end": 2661,
      "loc": {
        "start": {
          "line": 112,
          "column": 2
        },
        "end": {
          "line": 112,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2661,
      "end": 2662,
      "loc": {
        "start": {
          "line": 112,
          "column": 10
        },
        "end": {
          "line": 112,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2662,
      "end": 2663,
      "loc": {
        "start": {
          "line": 112,
          "column": 11
        },
        "end": {
          "line": 112,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2664,
      "end": 2665,
      "loc": {
        "start": {
          "line": 112,
          "column": 13
        },
        "end": {
          "line": 112,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2670,
      "end": 2676,
      "loc": {
        "start": {
          "line": 113,
          "column": 4
        },
        "end": {
          "line": 113,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 2677,
      "end": 2680,
      "loc": {
        "start": {
          "line": 113,
          "column": 11
        },
        "end": {
          "line": 113,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "xRegExp",
      "start": 2681,
      "end": 2688,
      "loc": {
        "start": {
          "line": 113,
          "column": 15
        },
        "end": {
          "line": 113,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2688,
      "end": 2689,
      "loc": {
        "start": {
          "line": 113,
          "column": 22
        },
        "end": {
          "line": 113,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2689,
      "end": 2693,
      "loc": {
        "start": {
          "line": 113,
          "column": 23
        },
        "end": {
          "line": 113,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2693,
      "end": 2694,
      "loc": {
        "start": {
          "line": 113,
          "column": 27
        },
        "end": {
          "line": 113,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "body",
      "start": 2694,
      "end": 2698,
      "loc": {
        "start": {
          "line": 113,
          "column": 28
        },
        "end": {
          "line": 113,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2698,
      "end": 2699,
      "loc": {
        "start": {
          "line": 113,
          "column": 32
        },
        "end": {
          "line": 113,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2700,
      "end": 2704,
      "loc": {
        "start": {
          "line": 113,
          "column": 34
        },
        "end": {
          "line": 113,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2704,
      "end": 2705,
      "loc": {
        "start": {
          "line": 113,
          "column": 38
        },
        "end": {
          "line": 113,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "flags",
      "start": 2705,
      "end": 2710,
      "loc": {
        "start": {
          "line": 113,
          "column": 39
        },
        "end": {
          "line": 113,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2710,
      "end": 2711,
      "loc": {
        "start": {
          "line": 113,
          "column": 44
        },
        "end": {
          "line": 113,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2711,
      "end": 2712,
      "loc": {
        "start": {
          "line": 113,
          "column": 45
        },
        "end": {
          "line": 113,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2715,
      "end": 2716,
      "loc": {
        "start": {
          "line": 114,
          "column": 2
        },
        "end": {
          "line": 114,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2717,
      "end": 2718,
      "loc": {
        "start": {
          "line": 115,
          "column": 0
        },
        "end": {
          "line": 115,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 2720,
      "end": 2726,
      "loc": {
        "start": {
          "line": 117,
          "column": 0
        },
        "end": {
          "line": 117,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2727,
      "end": 2728,
      "loc": {
        "start": {
          "line": 117,
          "column": 7
        },
        "end": {
          "line": 117,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Value",
      "start": 2729,
      "end": 2734,
      "loc": {
        "start": {
          "line": 117,
          "column": 9
        },
        "end": {
          "line": 117,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2734,
      "end": 2735,
      "loc": {
        "start": {
          "line": 117,
          "column": 14
        },
        "end": {
          "line": 117,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Word",
      "start": 2738,
      "end": 2742,
      "loc": {
        "start": {
          "line": 118,
          "column": 2
        },
        "end": {
          "line": 118,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2742,
      "end": 2743,
      "loc": {
        "start": {
          "line": 118,
          "column": 6
        },
        "end": {
          "line": 118,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Apply",
      "start": 2746,
      "end": 2751,
      "loc": {
        "start": {
          "line": 119,
          "column": 2
        },
        "end": {
          "line": 119,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2751,
      "end": 2752,
      "loc": {
        "start": {
          "line": 119,
          "column": 7
        },
        "end": {
          "line": 119,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Regex",
      "start": 2755,
      "end": 2760,
      "loc": {
        "start": {
          "line": 120,
          "column": 2
        },
        "end": {
          "line": 120,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2761,
      "end": 2762,
      "loc": {
        "start": {
          "line": 120,
          "column": 8
        },
        "end": {
          "line": 120,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2762,
      "end": 2763,
      "loc": {
        "start": {
          "line": 120,
          "column": 9
        },
        "end": {
          "line": 120,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2764,
      "end": 2764,
      "loc": {
        "start": {
          "line": 121,
          "column": 0
        },
        "end": {
          "line": 121,
          "column": 0
        }
      }
    }
  ]
}