{
  "type": "Program",
  "body": [
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "UNDEFINED",
            "range": [
              38,
              47
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 6
              },
              "end": {
                "line": 5,
                "column": 15
              }
            }
          },
          "init": {
            "type": "UnaryExpression",
            "operator": "void",
            "argument": {
              "type": "Literal",
              "value": 0,
              "raw": "0",
              "range": [
                55,
                56
              ],
              "loc": {
                "start": {
                  "line": 5,
                  "column": 23
                },
                "end": {
                  "line": 5,
                  "column": 24
                }
              }
            },
            "prefix": true,
            "range": [
              50,
              56
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 18
              },
              "end": {
                "line": 5,
                "column": 24
              }
            }
          },
          "range": [
            38,
            56
          ],
          "loc": {
            "start": {
              "line": 5,
              "column": 6
            },
            "end": {
              "line": 5,
              "column": 24
            }
          }
        }
      ],
      "kind": "const",
      "range": [
        32,
        57
      ],
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 25
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\r\n * Types utilities\r\n ",
          "range": [
            0,
            28
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 0
            },
            "end": {
              "line": 3,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportDefaultDeclaration",
      "declaration": {
        "type": "ObjectExpression",
        "properties": [
          {
            "type": "Property",
            "key": {
              "type": "Identifier",
              "name": "isObj",
              "range": [
                223,
                228
              ],
              "loc": {
                "start": {
                  "line": 13,
                  "column": 4
                },
                "end": {
                  "line": 13,
                  "column": 9
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "v",
                  "range": [
                    229,
                    230
                  ],
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 10
                    },
                    "end": {
                      "line": 13,
                      "column": 11
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "id": {
                          "type": "Identifier",
                          "name": "isO",
                          "range": [
                            246,
                            249
                          ],
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 12
                            },
                            "end": {
                              "line": 14,
                              "column": 15
                            }
                          }
                        },
                        "init": {
                          "type": "Literal",
                          "value": false,
                          "raw": "false",
                          "range": [
                            252,
                            257
                          ],
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 18
                            },
                            "end": {
                              "line": 14,
                              "column": 23
                            }
                          }
                        },
                        "range": [
                          246,
                          257
                        ],
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 12
                          },
                          "end": {
                            "line": 14,
                            "column": 23
                          }
                        }
                      }
                    ],
                    "kind": "let",
                    "range": [
                      242,
                      258
                    ],
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 8
                      },
                      "end": {
                        "line": 14,
                        "column": 24
                      }
                    }
                  },
                  {
                    "type": "IfStatement",
                    "test": {
                      "type": "BinaryExpression",
                      "operator": "===",
                      "left": {
                        "type": "UnaryExpression",
                        "operator": "typeof",
                        "argument": {
                          "type": "Identifier",
                          "name": "v",
                          "range": [
                            278,
                            279
                          ],
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 18
                            },
                            "end": {
                              "line": 15,
                              "column": 19
                            }
                          }
                        },
                        "prefix": true,
                        "range": [
                          271,
                          279
                        ],
                        "loc": {
                          "start": {
                            "line": 15,
                            "column": 11
                          },
                          "end": {
                            "line": 15,
                            "column": 19
                          }
                        }
                      },
                      "right": {
                        "type": "Literal",
                        "value": "string",
                        "raw": "'string'",
                        "range": [
                          284,
                          292
                        ],
                        "loc": {
                          "start": {
                            "line": 15,
                            "column": 24
                          },
                          "end": {
                            "line": 15,
                            "column": 32
                          }
                        }
                      },
                      "range": [
                        271,
                        292
                      ],
                      "loc": {
                        "start": {
                          "line": 15,
                          "column": 11
                        },
                        "end": {
                          "line": 15,
                          "column": 32
                        }
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "IfStatement",
                          "test": {
                            "type": "LogicalExpression",
                            "operator": "&&",
                            "left": {
                              "type": "MemberExpression",
                              "computed": true,
                              "object": {
                                "type": "Identifier",
                                "name": "window",
                                "range": [
                                  311,
                                  317
                                ],
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 21
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "v",
                                "range": [
                                  318,
                                  319
                                ],
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 23
                                  }
                                }
                              },
                              "range": [
                                311,
                                320
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 15
                                },
                                "end": {
                                  "line": 16,
                                  "column": 24
                                }
                              }
                            },
                            "right": {
                              "type": "BinaryExpression",
                              "operator": "===",
                              "left": {
                                "type": "UnaryExpression",
                                "operator": "typeof",
                                "argument": {
                                  "type": "MemberExpression",
                                  "computed": true,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "window",
                                    "range": [
                                      331,
                                      337
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 16,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 16,
                                        "column": 41
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "v",
                                    "range": [
                                      338,
                                      339
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 16,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 16,
                                        "column": 43
                                      }
                                    }
                                  },
                                  "range": [
                                    331,
                                    340
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 16,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 16,
                                      "column": 44
                                    }
                                  }
                                },
                                "prefix": true,
                                "range": [
                                  324,
                                  340
                                ],
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 44
                                  }
                                }
                              },
                              "right": {
                                "type": "Literal",
                                "value": "object",
                                "raw": "'object'",
                                "range": [
                                  345,
                                  353
                                ],
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 49
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 57
                                  }
                                }
                              },
                              "range": [
                                324,
                                353
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 28
                                },
                                "end": {
                                  "line": 16,
                                  "column": 57
                                }
                              }
                            },
                            "range": [
                              311,
                              353
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 15
                              },
                              "end": {
                                "line": 16,
                                "column": 57
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "isO",
                                    "range": [
                                      373,
                                      376
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 17,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 17,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": true,
                                    "raw": "true",
                                    "range": [
                                      379,
                                      383
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 17,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 17,
                                        "column": 26
                                      }
                                    }
                                  },
                                  "range": [
                                    373,
                                    383
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 26
                                    }
                                  }
                                },
                                "range": [
                                  373,
                                  384
                                ],
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 27
                                  }
                                }
                              }
                            ],
                            "range": [
                              354,
                              399
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 58
                              },
                              "end": {
                                "line": 18,
                                "column": 13
                              }
                            }
                          },
                          "alternate": null,
                          "range": [
                            308,
                            399
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 12
                            },
                            "end": {
                              "line": 18,
                              "column": 13
                            }
                          }
                        }
                      ],
                      "range": [
                        293,
                        410
                      ],
                      "loc": {
                        "start": {
                          "line": 15,
                          "column": 33
                        },
                        "end": {
                          "line": 19,
                          "column": 9
                        }
                      }
                    },
                    "alternate": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "IfStatement",
                          "test": {
                            "type": "LogicalExpression",
                            "operator": "&&",
                            "left": {
                              "type": "Identifier",
                              "name": "v",
                              "range": [
                                434,
                                435
                              ],
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 15
                                },
                                "end": {
                                  "line": 20,
                                  "column": 16
                                }
                              }
                            },
                            "right": {
                              "type": "BinaryExpression",
                              "operator": "===",
                              "left": {
                                "type": "UnaryExpression",
                                "operator": "typeof",
                                "argument": {
                                  "type": "Identifier",
                                  "name": "v",
                                  "range": [
                                    446,
                                    447
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 28
                                    }
                                  }
                                },
                                "prefix": true,
                                "range": [
                                  439,
                                  447
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 28
                                  }
                                }
                              },
                              "right": {
                                "type": "Literal",
                                "value": "object",
                                "raw": "'object'",
                                "range": [
                                  452,
                                  460
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 41
                                  }
                                }
                              },
                              "range": [
                                439,
                                460
                              ],
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 20
                                },
                                "end": {
                                  "line": 20,
                                  "column": 41
                                }
                              }
                            },
                            "range": [
                              434,
                              460
                            ],
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 15
                              },
                              "end": {
                                "line": 20,
                                "column": 41
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "isO",
                                    "range": [
                                      480,
                                      483
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 21,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 21,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": true,
                                    "raw": "true",
                                    "range": [
                                      486,
                                      490
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 21,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 21,
                                        "column": 26
                                      }
                                    }
                                  },
                                  "range": [
                                    480,
                                    490
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 21,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 21,
                                      "column": 26
                                    }
                                  }
                                },
                                "range": [
                                  480,
                                  491
                                ],
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 27
                                  }
                                }
                              }
                            ],
                            "range": [
                              461,
                              506
                            ],
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 42
                              },
                              "end": {
                                "line": 22,
                                "column": 13
                              }
                            }
                          },
                          "alternate": null,
                          "range": [
                            431,
                            506
                          ],
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 12
                            },
                            "end": {
                              "line": 22,
                              "column": 13
                            }
                          }
                        }
                      ],
                      "range": [
                        416,
                        517
                      ],
                      "loc": {
                        "start": {
                          "line": 19,
                          "column": 15
                        },
                        "end": {
                          "line": 23,
                          "column": 9
                        }
                      }
                    },
                    "range": [
                      268,
                      517
                    ],
                    "loc": {
                      "start": {
                        "line": 15,
                        "column": 8
                      },
                      "end": {
                        "line": 23,
                        "column": 9
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "Identifier",
                      "name": "isO",
                      "range": [
                        534,
                        537
                      ],
                      "loc": {
                        "start": {
                          "line": 24,
                          "column": 15
                        },
                        "end": {
                          "line": 24,
                          "column": 18
                        }
                      }
                    },
                    "range": [
                      527,
                      538
                    ],
                    "loc": {
                      "start": {
                        "line": 24,
                        "column": 8
                      },
                      "end": {
                        "line": 24,
                        "column": 19
                      }
                    }
                  }
                ],
                "range": [
                  231,
                  545
                ],
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 12
                  },
                  "end": {
                    "line": 25,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                228,
                545
              ],
              "loc": {
                "start": {
                  "line": 13,
                  "column": 9
                },
                "end": {
                  "line": 25,
                  "column": 5
                }
              }
            },
            "kind": "init",
            "method": true,
            "shorthand": false,
            "computed": false,
            "range": [
              223,
              545
            ],
            "loc": {
              "start": {
                "line": 13,
                "column": 4
              },
              "end": {
                "line": 25,
                "column": 5
              }
            },
            "leadingComments": [
              {
                "type": "Block",
                "value": "*\r\n     * Check if argument is an object or a global object\r\n     * @param  {String or Object}  v\r\n     * @return {Boolean}\r\n     ",
                "range": [
                  83,
                  217
                ],
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 4
                  },
                  "end": {
                    "line": 12,
                    "column": 7
                  }
                }
              }
            ]
          },
          {
            "type": "Property",
            "key": {
              "type": "Identifier",
              "name": "isFn",
              "range": [
                668,
                672
              ],
              "loc": {
                "start": {
                  "line": 32,
                  "column": 4
                },
                "end": {
                  "line": 32,
                  "column": 8
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "fn",
                  "range": [
                    673,
                    675
                  ],
                  "loc": {
                    "start": {
                      "line": 32,
                      "column": 9
                    },
                    "end": {
                      "line": 32,
                      "column": 11
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "LogicalExpression",
                      "operator": "&&",
                      "left": {
                        "type": "Identifier",
                        "name": "fn",
                        "range": [
                          695,
                          697
                        ],
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 16
                          },
                          "end": {
                            "line": 33,
                            "column": 18
                          }
                        }
                      },
                      "right": {
                        "type": "BinaryExpression",
                        "operator": "==",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "fn",
                            "range": [
                              701,
                              703
                            ],
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 22
                              },
                              "end": {
                                "line": 33,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "constructor",
                            "range": [
                              704,
                              715
                            ],
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 25
                              },
                              "end": {
                                "line": 33,
                                "column": 36
                              }
                            }
                          },
                          "range": [
                            701,
                            715
                          ],
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 22
                            },
                            "end": {
                              "line": 33,
                              "column": 36
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "Function",
                          "range": [
                            719,
                            727
                          ],
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 40
                            },
                            "end": {
                              "line": 33,
                              "column": 48
                            }
                          }
                        },
                        "range": [
                          701,
                          727
                        ],
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 22
                          },
                          "end": {
                            "line": 33,
                            "column": 48
                          }
                        }
                      },
                      "range": [
                        695,
                        727
                      ],
                      "loc": {
                        "start": {
                          "line": 33,
                          "column": 16
                        },
                        "end": {
                          "line": 33,
                          "column": 48
                        }
                      }
                    },
                    "range": [
                      687,
                      729
                    ],
                    "loc": {
                      "start": {
                        "line": 33,
                        "column": 8
                      },
                      "end": {
                        "line": 33,
                        "column": 50
                      }
                    }
                  }
                ],
                "range": [
                  676,
                  736
                ],
                "loc": {
                  "start": {
                    "line": 32,
                    "column": 12
                  },
                  "end": {
                    "line": 34,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                672,
                736
              ],
              "loc": {
                "start": {
                  "line": 32,
                  "column": 8
                },
                "end": {
                  "line": 34,
                  "column": 5
                }
              }
            },
            "kind": "init",
            "method": true,
            "shorthand": false,
            "computed": false,
            "range": [
              668,
              736
            ],
            "loc": {
              "start": {
                "line": 32,
                "column": 4
              },
              "end": {
                "line": 34,
                "column": 5
              }
            },
            "leadingComments": [
              {
                "type": "Block",
                "value": "*\r\n     * Check if argument is a function\r\n     * @param  {Function} fn\r\n     * @return {Boolean}\r\n     ",
                "range": [
                  554,
                  662
                ],
                "loc": {
                  "start": {
                    "line": 27,
                    "column": 4
                  },
                  "end": {
                    "line": 31,
                    "column": 7
                  }
                }
              }
            ]
          },
          {
            "type": "Property",
            "key": {
              "type": "Identifier",
              "name": "isArray",
              "range": [
                856,
                863
              ],
              "loc": {
                "start": {
                  "line": 41,
                  "column": 4
                },
                "end": {
                  "line": 41,
                  "column": 11
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "obj",
                  "range": [
                    864,
                    867
                  ],
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 12
                    },
                    "end": {
                      "line": 41,
                      "column": 15
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "LogicalExpression",
                      "operator": "&&",
                      "left": {
                        "type": "Identifier",
                        "name": "obj",
                        "range": [
                          887,
                          890
                        ],
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 16
                          },
                          "end": {
                            "line": 42,
                            "column": 19
                          }
                        }
                      },
                      "right": {
                        "type": "BinaryExpression",
                        "operator": "==",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "obj",
                            "range": [
                              894,
                              897
                            ],
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 23
                              },
                              "end": {
                                "line": 42,
                                "column": 26
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "constructor",
                            "range": [
                              898,
                              909
                            ],
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 27
                              },
                              "end": {
                                "line": 42,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            894,
                            909
                          ],
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 23
                            },
                            "end": {
                              "line": 42,
                              "column": 38
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "Array",
                          "range": [
                            913,
                            918
                          ],
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 42
                            },
                            "end": {
                              "line": 42,
                              "column": 47
                            }
                          }
                        },
                        "range": [
                          894,
                          918
                        ],
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 23
                          },
                          "end": {
                            "line": 42,
                            "column": 47
                          }
                        }
                      },
                      "range": [
                        887,
                        918
                      ],
                      "loc": {
                        "start": {
                          "line": 42,
                          "column": 16
                        },
                        "end": {
                          "line": 42,
                          "column": 47
                        }
                      }
                    },
                    "range": [
                      879,
                      920
                    ],
                    "loc": {
                      "start": {
                        "line": 42,
                        "column": 8
                      },
                      "end": {
                        "line": 42,
                        "column": 49
                      }
                    }
                  }
                ],
                "range": [
                  868,
                  927
                ],
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 16
                  },
                  "end": {
                    "line": 43,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                863,
                927
              ],
              "loc": {
                "start": {
                  "line": 41,
                  "column": 11
                },
                "end": {
                  "line": 43,
                  "column": 5
                }
              }
            },
            "kind": "init",
            "method": true,
            "shorthand": false,
            "computed": false,
            "range": [
              856,
              927
            ],
            "loc": {
              "start": {
                "line": 41,
                "column": 4
              },
              "end": {
                "line": 43,
                "column": 5
              }
            },
            "leadingComments": [
              {
                "type": "Block",
                "value": "*\r\n     * Check if argument is an array\r\n     * @param  {Array}  obj\r\n     * @return {Boolean}\r\n     ",
                "range": [
                  745,
                  850
                ],
                "loc": {
                  "start": {
                    "line": 36,
                    "column": 4
                  },
                  "end": {
                    "line": 40,
                    "column": 7
                  }
                }
              }
            ]
          },
          {
            "type": "Property",
            "key": {
              "type": "Identifier",
              "name": "isUndef",
              "range": [
                1048,
                1055
              ],
              "loc": {
                "start": {
                  "line": 50,
                  "column": 4
                },
                "end": {
                  "line": 50,
                  "column": 11
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "o",
                  "range": [
                    1056,
                    1057
                  ],
                  "loc": {
                    "start": {
                      "line": 50,
                      "column": 12
                    },
                    "end": {
                      "line": 50,
                      "column": 13
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "BinaryExpression",
                      "operator": "===",
                      "left": {
                        "type": "Identifier",
                        "name": "o",
                        "range": [
                          1077,
                          1078
                        ],
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 16
                          },
                          "end": {
                            "line": 51,
                            "column": 17
                          }
                        }
                      },
                      "right": {
                        "type": "Identifier",
                        "name": "UNDEFINED",
                        "range": [
                          1083,
                          1092
                        ],
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 22
                          },
                          "end": {
                            "line": 51,
                            "column": 31
                          }
                        }
                      },
                      "range": [
                        1077,
                        1092
                      ],
                      "loc": {
                        "start": {
                          "line": 51,
                          "column": 16
                        },
                        "end": {
                          "line": 51,
                          "column": 31
                        }
                      }
                    },
                    "range": [
                      1069,
                      1093
                    ],
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 8
                      },
                      "end": {
                        "line": 51,
                        "column": 32
                      }
                    }
                  }
                ],
                "range": [
                  1058,
                  1100
                ],
                "loc": {
                  "start": {
                    "line": 50,
                    "column": 14
                  },
                  "end": {
                    "line": 52,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                1055,
                1100
              ],
              "loc": {
                "start": {
                  "line": 50,
                  "column": 11
                },
                "end": {
                  "line": 52,
                  "column": 5
                }
              }
            },
            "kind": "init",
            "method": true,
            "shorthand": false,
            "computed": false,
            "range": [
              1048,
              1100
            ],
            "loc": {
              "start": {
                "line": 50,
                "column": 4
              },
              "end": {
                "line": 52,
                "column": 5
              }
            },
            "leadingComments": [
              {
                "type": "Block",
                "value": "*\r\n     * Determine if argument is undefined\r\n     * @param  {Any}  o\r\n     * @return {Boolean}\r\n     ",
                "range": [
                  936,
                  1042
                ],
                "loc": {
                  "start": {
                    "line": 45,
                    "column": 4
                  },
                  "end": {
                    "line": 49,
                    "column": 7
                  }
                }
              }
            ]
          },
          {
            "type": "Property",
            "key": {
              "type": "Identifier",
              "name": "isNull",
              "range": [
                1216,
                1222
              ],
              "loc": {
                "start": {
                  "line": 59,
                  "column": 4
                },
                "end": {
                  "line": 59,
                  "column": 10
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "o",
                  "range": [
                    1223,
                    1224
                  ],
                  "loc": {
                    "start": {
                      "line": 59,
                      "column": 11
                    },
                    "end": {
                      "line": 59,
                      "column": 12
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "BinaryExpression",
                      "operator": "===",
                      "left": {
                        "type": "Identifier",
                        "name": "o",
                        "range": [
                          1243,
                          1244
                        ],
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 15
                          },
                          "end": {
                            "line": 60,
                            "column": 16
                          }
                        }
                      },
                      "right": {
                        "type": "Literal",
                        "value": null,
                        "raw": "null",
                        "range": [
                          1249,
                          1253
                        ],
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 21
                          },
                          "end": {
                            "line": 60,
                            "column": 25
                          }
                        }
                      },
                      "range": [
                        1243,
                        1253
                      ],
                      "loc": {
                        "start": {
                          "line": 60,
                          "column": 15
                        },
                        "end": {
                          "line": 60,
                          "column": 25
                        }
                      }
                    },
                    "range": [
                      1236,
                      1254
                    ],
                    "loc": {
                      "start": {
                        "line": 60,
                        "column": 8
                      },
                      "end": {
                        "line": 60,
                        "column": 26
                      }
                    }
                  }
                ],
                "range": [
                  1225,
                  1261
                ],
                "loc": {
                  "start": {
                    "line": 59,
                    "column": 13
                  },
                  "end": {
                    "line": 61,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                1222,
                1261
              ],
              "loc": {
                "start": {
                  "line": 59,
                  "column": 10
                },
                "end": {
                  "line": 61,
                  "column": 5
                }
              }
            },
            "kind": "init",
            "method": true,
            "shorthand": false,
            "computed": false,
            "range": [
              1216,
              1261
            ],
            "loc": {
              "start": {
                "line": 59,
                "column": 4
              },
              "end": {
                "line": 61,
                "column": 5
              }
            },
            "leadingComments": [
              {
                "type": "Block",
                "value": "*\r\n     * Determine if argument is null\r\n     * @param  {Any}  o\r\n     * @return {Boolean}\r\n     ",
                "range": [
                  1109,
                  1210
                ],
                "loc": {
                  "start": {
                    "line": 54,
                    "column": 4
                  },
                  "end": {
                    "line": 58,
                    "column": 7
                  }
                }
              }
            ]
          },
          {
            "type": "Property",
            "key": {
              "type": "Identifier",
              "name": "isEmpty",
              "range": [
                1412,
                1419
              ],
              "loc": {
                "start": {
                  "line": 68,
                  "column": 4
                },
                "end": {
                  "line": 68,
                  "column": 11
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "o",
                  "range": [
                    1420,
                    1421
                  ],
                  "loc": {
                    "start": {
                      "line": 68,
                      "column": 12
                    },
                    "end": {
                      "line": 68,
                      "column": 13
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "LogicalExpression",
                      "operator": "||",
                      "left": {
                        "type": "LogicalExpression",
                        "operator": "||",
                        "left": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                1440,
                                1444
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 15
                                },
                                "end": {
                                  "line": 69,
                                  "column": 19
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "isUndef",
                              "range": [
                                1445,
                                1452
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 20
                                },
                                "end": {
                                  "line": 69,
                                  "column": 27
                                }
                              }
                            },
                            "range": [
                              1440,
                              1452
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 15
                              },
                              "end": {
                                "line": 69,
                                "column": 27
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "o",
                              "range": [
                                1453,
                                1454
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 28
                                },
                                "end": {
                                  "line": 69,
                                  "column": 29
                                }
                              }
                            }
                          ],
                          "range": [
                            1440,
                            1455
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 15
                            },
                            "end": {
                              "line": 69,
                              "column": 30
                            }
                          }
                        },
                        "right": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                1459,
                                1463
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 34
                                },
                                "end": {
                                  "line": 69,
                                  "column": 38
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "isNull",
                              "range": [
                                1464,
                                1470
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 39
                                },
                                "end": {
                                  "line": 69,
                                  "column": 45
                                }
                              }
                            },
                            "range": [
                              1459,
                              1470
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 34
                              },
                              "end": {
                                "line": 69,
                                "column": 45
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "o",
                              "range": [
                                1471,
                                1472
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 46
                                },
                                "end": {
                                  "line": 69,
                                  "column": 47
                                }
                              }
                            }
                          ],
                          "range": [
                            1459,
                            1473
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 34
                            },
                            "end": {
                              "line": 69,
                              "column": 48
                            }
                          }
                        },
                        "range": [
                          1440,
                          1473
                        ],
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 15
                          },
                          "end": {
                            "line": 69,
                            "column": 48
                          }
                        }
                      },
                      "right": {
                        "type": "BinaryExpression",
                        "operator": "===",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "o",
                            "range": [
                              1477,
                              1478
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 52
                              },
                              "end": {
                                "line": 69,
                                "column": 53
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "length",
                            "range": [
                              1479,
                              1485
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 54
                              },
                              "end": {
                                "line": 69,
                                "column": 60
                              }
                            }
                          },
                          "range": [
                            1477,
                            1485
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 52
                            },
                            "end": {
                              "line": 69,
                              "column": 60
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": 0,
                          "raw": "0",
                          "range": [
                            1488,
                            1489
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 63
                            },
                            "end": {
                              "line": 69,
                              "column": 64
                            }
                          }
                        },
                        "range": [
                          1477,
                          1489
                        ],
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 52
                          },
                          "end": {
                            "line": 69,
                            "column": 64
                          }
                        }
                      },
                      "range": [
                        1440,
                        1489
                      ],
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 15
                        },
                        "end": {
                          "line": 69,
                          "column": 64
                        }
                      }
                    },
                    "range": [
                      1433,
                      1490
                    ],
                    "loc": {
                      "start": {
                        "line": 69,
                        "column": 8
                      },
                      "end": {
                        "line": 69,
                        "column": 65
                      }
                    }
                  }
                ],
                "range": [
                  1422,
                  1497
                ],
                "loc": {
                  "start": {
                    "line": 68,
                    "column": 14
                  },
                  "end": {
                    "line": 70,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                1419,
                1497
              ],
              "loc": {
                "start": {
                  "line": 68,
                  "column": 11
                },
                "end": {
                  "line": 70,
                  "column": 5
                }
              }
            },
            "kind": "init",
            "method": true,
            "shorthand": false,
            "computed": false,
            "range": [
              1412,
              1497
            ],
            "loc": {
              "start": {
                "line": 68,
                "column": 4
              },
              "end": {
                "line": 70,
                "column": 5
              }
            },
            "leadingComments": [
              {
                "type": "Block",
                "value": "*\r\n     * Determine if argument is empty (undefined, null or empty string)\r\n     * @param  {Any}  o\r\n     * @return {Boolean}\r\n     ",
                "range": [
                  1270,
                  1406
                ],
                "loc": {
                  "start": {
                    "line": 63,
                    "column": 4
                  },
                  "end": {
                    "line": 67,
                    "column": 7
                  }
                }
              }
            ]
          }
        ],
        "range": [
          76,
          1500
        ],
        "loc": {
          "start": {
            "line": 7,
            "column": 15
          },
          "end": {
            "line": 71,
            "column": 1
          }
        },
        "leadingComments": [],
        "trailingComments": []
      },
      "range": [
        61,
        1501
      ],
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 71,
          "column": 2
        }
      }
    }
  ],
  "sourceType": "module",
  "range": [
    32,
    1501
  ],
  "loc": {
    "start": {
      "line": 5,
      "column": 0
    },
    "end": {
      "line": 71,
      "column": 2
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\r\n * Types utilities\r\n ",
      "range": [
        0,
        28
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 3
        }
      }
    },
    {
      "type": "Block",
      "value": "*\r\n     * Check if argument is an object or a global object\r\n     * @param  {String or Object}  v\r\n     * @return {Boolean}\r\n     ",
      "range": [
        83,
        217
      ],
      "loc": {
        "start": {
          "line": 8,
          "column": 4
        },
        "end": {
          "line": 12,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\r\n     * Check if argument is a function\r\n     * @param  {Function} fn\r\n     * @return {Boolean}\r\n     ",
      "range": [
        554,
        662
      ],
      "loc": {
        "start": {
          "line": 27,
          "column": 4
        },
        "end": {
          "line": 31,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\r\n     * Check if argument is an array\r\n     * @param  {Array}  obj\r\n     * @return {Boolean}\r\n     ",
      "range": [
        745,
        850
      ],
      "loc": {
        "start": {
          "line": 36,
          "column": 4
        },
        "end": {
          "line": 40,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\r\n     * Determine if argument is undefined\r\n     * @param  {Any}  o\r\n     * @return {Boolean}\r\n     ",
      "range": [
        936,
        1042
      ],
      "loc": {
        "start": {
          "line": 45,
          "column": 4
        },
        "end": {
          "line": 49,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\r\n     * Determine if argument is null\r\n     * @param  {Any}  o\r\n     * @return {Boolean}\r\n     ",
      "range": [
        1109,
        1210
      ],
      "loc": {
        "start": {
          "line": 54,
          "column": 4
        },
        "end": {
          "line": 58,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\r\n     * Determine if argument is empty (undefined, null or empty string)\r\n     * @param  {Any}  o\r\n     * @return {Boolean}\r\n     ",
      "range": [
        1270,
        1406
      ],
      "loc": {
        "start": {
          "line": 63,
          "column": 4
        },
        "end": {
          "line": 67,
          "column": 7
        }
      }
    }
  ]
}