[
  {
    "name": "x",
    "addr": "/x/",
    "kind": "v",
    "type": "number",
    "lineno": 3,
    "origin": {
      "!span": "21[2:4]-22[2:5]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "y",
    "addr": "/a/",
    "kind": "v",
    "type": "[number]",
    "lineno": 8,
    "origin": {
      "!span": "129[7:4]-130[7:5]",
      "!type": "[number]",
      "!data": {
        "isConstructor": false,
        "type": "Array.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "a",
    "addr": "/a/",
    "kind": "v",
    "type": "[number]",
    "lineno": 8,
    "origin": {
      "!span": "129[7:4]-130[7:5]",
      "!type": "[number]",
      "!data": {
        "isConstructor": false,
        "type": "Array.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "prop2",
    "kind": "v",
    "type": "number",
    "namespace": "extend",
    "origin": {
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "prop1",
    "kind": "v",
    "type": "string",
    "namespace": "extend",
    "origin": {
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "y",
    "addr": "/y/",
    "kind": "v",
    "type": "[number]",
    "lineno": 11,
    "origin": {
      "!span": "206[10:4]-207[10:5]",
      "!type": "[number]",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "Array.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "z",
    "addr": "/z/",
    "kind": "v",
    "type": "number",
    "lineno": 14,
    "origin": {
      "!span": "283[13:4]-284[13:5]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "n",
    "addr": "/n/",
    "kind": "v",
    "type": "number",
    "lineno": 17,
    "origin": {
      "!span": "398[16:4]-399[16:5]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "m",
    "addr": "/m/",
    "kind": "v",
    "type": "number",
    "lineno": 20,
    "origin": {
      "!span": "486[19:4]-487[19:5]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "k",
    "addr": "/k/",
    "kind": "v",
    "type": "number",
    "lineno": 23,
    "origin": {
      "!span": "558[22:4]-559[22:5]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "l",
    "addr": "/l/",
    "kind": "v",
    "type": "number",
    "lineno": 26,
    "origin": {
      "!span": "623[25:4]-624[25:5]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "a2",
    "addr": "/a2/",
    "kind": "v",
    "type": "number",
    "lineno": 29,
    "origin": {
      "!span": "734[28:4]-736[28:6]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "a3",
    "addr": "/a3/",
    "kind": "v",
    "type": "number",
    "lineno": 32,
    "origin": {
      "!span": "813[31:4]-815[31:6]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "a4",
    "addr": "/a4/",
    "kind": "v",
    "type": "number",
    "lineno": 35,
    "origin": {
      "!span": "896[34:4]-898[34:6]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "a5",
    "addr": "/a5/",
    "kind": "v",
    "type": "number",
    "lineno": 38,
    "origin": {
      "!span": "974[37:4]-976[37:6]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "b1",
    "addr": "/b1/",
    "kind": "v",
    "type": "number",
    "lineno": 41,
    "origin": {
      "!span": "1057[40:4]-1059[40:6]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "reg",
    "addr": "/reg/",
    "kind": "v",
    "type": "regexp",
    "lineno": 51,
    "origin": {
      "!span": "1324[50:4]-1327[50:7]",
      "!type": "+RegExp",
      "!data": {
        "isConstructor": false,
        "type": "RegExp.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "pattern1",
    "addr": "/pattern1/",
    "kind": "v",
    "type": "regexp",
    "lineno": 54,
    "origin": {
      "!span": "1394[53:4]-1402[53:12]",
      "!type": "+RegExp",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "RegExp.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "car",
    "addr": "/car/",
    "kind": "v",
    "type": "string",
    "lineno": 69,
    "origin": {
      "!span": "1646[68:4]-1649[68:7]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "s1",
    "addr": "/s1/",
    "kind": "v",
    "type": "string",
    "lineno": 72,
    "origin": {
      "!span": "1711[71:4]-1713[71:6]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "s2",
    "addr": "/s2/",
    "kind": "v",
    "type": "string",
    "lineno": 75,
    "origin": {
      "!span": "1775[74:4]-1777[74:6]",
      "!type": "+String",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "s3",
    "addr": "/s3/",
    "kind": "v",
    "type": "string",
    "lineno": 78,
    "origin": {
      "!span": "1876[77:4]-1878[77:6]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "s4",
    "addr": "/s4/",
    "kind": "v",
    "type": "string",
    "lineno": 81,
    "origin": {
      "!span": "1919[80:4]-1921[80:6]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "person",
    "addr": "/person/",
    "kind": "v",
    "lineno": 86,
    "origin": {
      "!span": "2028[85:4]-2034[85:10]",
      "!data": {
        "isConstructor": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "firstname",
    "addr": "/firstname/",
    "kind": "v",
    "type": "string",
    "lineno": 87,
    "namespace": "person",
    "origin": {
      "!span": "2058[86:7]-2067[86:16]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "lastname",
    "addr": "/lastname/",
    "kind": "v",
    "type": "string",
    "lineno": 88,
    "namespace": "person",
    "origin": {
      "!span": "2085[87:7]-2093[87:15]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "age",
    "addr": "/age/",
    "kind": "v",
    "type": "number",
    "lineno": 89,
    "namespace": "person",
    "origin": {
      "!span": "2110[88:7]-2113[88:10]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "eyecolor",
    "addr": "/eyecolor/",
    "kind": "v",
    "type": "string",
    "lineno": 90,
    "namespace": "person",
    "origin": {
      "!span": "2127[89:7]-2135[89:15]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "eyecolor",
    "addr": "/eyecolor/",
    "kind": "v",
    "type": "string",
    "lineno": 95,
    "namespace": "personType",
    "origin": {
      "!span": "2355[94:46]-2363[94:54]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype",
        "scoped": true,
        "isArg": true
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "age",
    "addr": "/age/",
    "kind": "v",
    "type": "number",
    "lineno": 95,
    "namespace": "personType",
    "origin": {
      "!span": "2350[94:41]-2353[94:44]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype",
        "scoped": true,
        "isArg": true
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "firstname",
    "addr": "/firstname/",
    "kind": "v",
    "type": "string",
    "lineno": 95,
    "namespace": "personType",
    "origin": {
      "!span": "2329[94:20]-2338[94:29]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype",
        "scoped": true,
        "isArg": true
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "personType",
    "addr": "/personType/",
    "kind": "f",
    "type": "void function(string, string, number, string)",
    "lineno": 95,
    "origin": {
      "!span": "2318[94:9]-2328[94:19]",
      "!type": "fn(firstname: string, lastname: string, age: number, eyecolor: string)",
      "!data": {
        "isConstructor": true,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "lastname",
    "addr": "/lastname/",
    "kind": "v",
    "type": "string",
    "lineno": 95,
    "namespace": "personType",
    "origin": {
      "!span": "2340[94:31]-2348[94:39]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype",
        "scoped": true,
        "isArg": true
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "firstname",
    "addr": "/firstname/",
    "kind": "v",
    "type": "string",
    "lineno": 96,
    "namespace": "friend",
    "origin": {
      "!span": "2374[95:7]-2383[95:16]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "lastname",
    "addr": "/lastname/",
    "kind": "v",
    "type": "string",
    "lineno": 97,
    "namespace": "friend",
    "origin": {
      "!span": "2404[96:7]-2412[96:15]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "age",
    "addr": "/age/",
    "kind": "v",
    "type": "number",
    "lineno": 98,
    "namespace": "friend",
    "origin": {
      "!span": "2432[97:7]-2435[97:10]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "eyecolor",
    "addr": "/eyecolor/",
    "kind": "v",
    "type": "string",
    "lineno": 99,
    "namespace": "friend",
    "origin": {
      "!span": "2450[98:7]-2458[98:15]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "changeName",
    "addr": "/changeName/",
    "kind": "f",
    "type": "!this.lastname function(?)",
    "lineno": 100,
    "namespace": "personType",
    "origin": {
      "!span": "2478[99:7]-2488[99:17]",
      "!type": "fn(name: ?) -> !this.lastname",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "name",
    "addr": "/name/",
    "kind": "v",
    "lineno": 104,
    "namespace": "personType.changeName",
    "origin": {
      "!span": "2644[103:22]-2648[103:26]",
      "!data": {
        "isConstructor": false,
        "scoped": true,
        "isArg": true,
        "type": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "friend",
    "addr": "/friend/",
    "kind": "v",
    "type": "personType",
    "lineno": 110,
    "origin": {
      "!span": "2715[109:4]-2721[109:10]",
      "!type": "+personType",
      "!data": {
        "isConstructor": false,
        "type": "personType.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "bar",
    "addr": "/bar/",
    "kind": "v",
    "type": "number",
    "lineno": 119,
    "namespace": "base",
    "origin": {
      "!span": "3069[118:21]-3072[118:24]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "foo2",
    "addr": "/foo2/",
    "kind": "v",
    "lineno": 119,
    "namespace": "base",
    "origin": {
      "!span": "3078[118:30]-3082[118:34]",
      "!data": {
        "isConstructor": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "a",
    "addr": "/a/",
    "kind": "v",
    "type": "number",
    "lineno": 119,
    "namespace": "base.foo2",
    "origin": {
      "!span": "3086[118:38]-3087[118:39]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "foo",
    "addr": "/foo/",
    "kind": "v",
    "type": "number",
    "lineno": 119,
    "namespace": "base",
    "origin": {
      "!span": "3060[118:12]-3063[118:15]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "b",
    "addr": "/b/",
    "kind": "v",
    "type": "string",
    "lineno": 119,
    "namespace": "base.foo2",
    "origin": {
      "!span": "3093[118:45]-3094[118:46]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "base",
    "addr": "/base/",
    "kind": "v",
    "lineno": 119,
    "origin": {
      "!span": "3052[118:4]-3056[118:8]",
      "!data": {
        "isConstructor": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "baz",
    "addr": "/baz/",
    "kind": "v",
    "type": "number",
    "lineno": 129,
    "namespace": "base",
    "origin": {
      "!span": "3399[128:5]-3402[128:8]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "gen1",
    "addr": "/gen1/",
    "kind": "v",
    "lineno": 132,
    "origin": {
      "!span": "3444[131:4]-3448[131:8]",
      "!data": {
        "isConstructor": false,
        "type": "base"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "gen2",
    "addr": "/gen2/",
    "kind": "v",
    "lineno": 133,
    "origin": {
      "!span": "3476[132:4]-3480[132:8]",
      "!data": {
        "isConstructor": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "quux",
    "addr": "/quux/",
    "kind": "v",
    "type": "number",
    "lineno": 134,
    "namespace": "gen1",
    "origin": {
      "!span": "3509[133:5]-3513[133:9]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "kaka",
    "addr": "/kaka/",
    "kind": "v",
    "type": "number",
    "lineno": 135,
    "namespace": "gen2",
    "origin": {
      "!span": "3525[134:5]-3529[134:9]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "extend",
    "addr": "/extend/",
    "kind": "v",
    "lineno": 144,
    "origin": {
      "!span": "3879[143:4]-3885[143:10]",
      "!data": {
        "isConstructor": false,
        "type": "base"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "empty",
    "addr": "/empty/",
    "kind": "v",
    "lineno": 150,
    "origin": {
      "!span": "4190[149:4]-4195[149:9]",
      "!data": {
        "isConstructor": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "prop1",
    "addr": "/prop1/",
    "kind": "v",
    "type": "string",
    "lineno": 151,
    "namespace": "empty",
    "origin": {
      "!span": "4225[150:6]-4230[150:11]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "Ctor1",
    "addr": "/Ctor1/",
    "kind": "f",
    "type": "void function()",
    "lineno": 155,
    "origin": {
      "!span": "4325[154:9]-4330[154:14]",
      "!type": "fn()",
      "!data": {
        "isConstructor": true,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "a",
    "addr": "/a/",
    "kind": "v",
    "type": "number",
    "lineno": 156,
    "namespace": "Ctor1.prototype",
    "origin": {
      "!span": "4369[155:19]-4370[155:20]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "prototype",
    "addr": "/prototype/",
    "kind": "v",
    "lineno": 156,
    "namespace": "Ctor1",
    "origin": {
      "!span": "4356[155:6]-4365[155:15]",
      "!data": {
        "isConstructor": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "Ctor2",
    "addr": "/Ctor2/",
    "kind": "f",
    "type": "void function()",
    "lineno": 159,
    "origin": {
      "!span": "4426[158:9]-4431[158:14]",
      "!type": "fn()",
      "!data": {
        "isConstructor": true,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "singleton",
    "addr": "/singleton/",
    "kind": "v",
    "lineno": 164,
    "origin": {
      "!span": "4483[163:4]-4492[163:13]",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "Foo",
    "addr": "/Foo/",
    "kind": "f",
    "type": "void function(bool)",
    "lineno": 166,
    "origin": {
      "!span": "4531[165:9]-4534[165:12]",
      "!type": "fn(x: bool)",
      "!data": {
        "isConstructor": true,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "x",
    "addr": "/x/",
    "kind": "v",
    "type": "boolean",
    "lineno": 166,
    "namespace": "Foo",
    "origin": {
      "!span": "4535[165:13]-4536[165:14]",
      "!type": "bool",
      "!data": {
        "isConstructor": false,
        "type": "Boolean.prototype",
        "scoped": true,
        "isArg": true
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "x",
    "addr": "/x/",
    "kind": "v",
    "type": "boolean",
    "lineno": 167,
    "namespace": "foo",
    "origin": {
      "!span": "4547[166:7]-4548[166:8]",
      "!type": "bool",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "Boolean.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "y",
    "addr": "/y/",
    "kind": "v",
    "type": "[number]",
    "lineno": 168,
    "namespace": "Foo",
    "origin": {
      "!span": "4561[167:7]-4562[167:8]",
      "!type": "[number]",
      "!data": {
        "isConstructor": false,
        "type": "Array.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "prototype",
    "addr": "/prototype/",
    "kind": "v",
    "lineno": 171,
    "namespace": "Foo",
    "origin": {
      "!span": "4577[170:4]-4586[170:13]",
      "!data": {
        "isConstructor": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "makeString",
    "addr": "/makeString/",
    "kind": "f",
    "type": "string function()",
    "lineno": 172,
    "namespace": "Foo.prototype",
    "origin": {
      "!span": "4593[171:2]-4603[171:12]",
      "!type": "fn() -> string",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "bar",
    "addr": "/bar/",
    "kind": "v",
    "type": "number",
    "lineno": 173,
    "namespace": "Foo.prototype",
    "origin": {
      "!span": "4636[172:2]-4639[172:5]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "foo",
    "addr": "/foo/",
    "kind": "v",
    "type": "Foo",
    "lineno": 176,
    "origin": {
      "!span": "4652[175:4]-4655[175:7]",
      "!type": "+Foo",
      "!data": {
        "isConstructor": false,
        "type": "Foo.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "config",
    "addr": "/config/",
    "kind": "v",
    "lineno": 182,
    "origin": {
      "!span": "4825[181:0]-4831[181:6]",
      "!data": {
        "isConstructor": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "CSS",
    "addr": "/CSS/",
    "kind": "v",
    "lineno": 183,
    "namespace": "config",
    "origin": {
      "!span": "4838[182:2]-4841[182:5]",
      "!data": {
        "isConstructor": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "IDs",
    "addr": "/IDs/",
    "kind": "v",
    "lineno": 184,
    "namespace": "config.CSS",
    "origin": {
      "!span": "4849[183:4]-4852[183:7]",
      "!data": {
        "isConstructor": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "container",
    "addr": "/container/",
    "kind": "v",
    "type": "string",
    "lineno": 185,
    "namespace": "config.CSS.IDs",
    "origin": {
      "!span": "4862[184:6]-4871[184:15]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "canvas",
    "addr": "/canvas/",
    "kind": "v",
    "type": "string",
    "lineno": 186,
    "namespace": "config.CSS.IDs",
    "origin": {
      "!span": "4901[185:6]-4907[185:12]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "player",
    "addr": "/player/",
    "kind": "v",
    "type": "string",
    "lineno": 187,
    "namespace": "config.CSS.IDs",
    "origin": {
      "!span": "4936[186:6]-4942[186:12]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "controls",
    "addr": "/controls/",
    "kind": "v",
    "type": "string",
    "lineno": 188,
    "namespace": "config.CSS.IDs",
    "origin": {
      "!span": "4965[187:6]-4973[187:14]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "years",
    "addr": "/years/",
    "kind": "v",
    "type": "[number]",
    "lineno": 201,
    "origin": {
      "!span": "5184[200:4]-5189[200:9]",
      "!type": "[number]",
      "!data": {
        "isConstructor": false,
        "type": "Array.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "arr1",
    "addr": "/arr1/",
    "kind": "v",
    "type": "[bool]",
    "lineno": 206,
    "origin": {
      "!span": "5342[205:4]-5346[205:8]",
      "!type": "[bool]",
      "!data": {
        "isConstructor": false,
        "type": "Array.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "arr2",
    "addr": "/arr2/",
    "kind": "v",
    "type": "[number]",
    "lineno": 213,
    "origin": {
      "!span": "5559[212:4]-5563[212:8]",
      "!type": "[number]",
      "!data": {
        "isConstructor": false,
        "type": "Array.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "scope1",
    "addr": "/scope1/",
    "kind": "f",
    "type": "void function()",
    "lineno": 216,
    "origin": {
      "!span": "5631[215:9]-5637[215:15]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "f",
    "addr": "/f/",
    "kind": "v",
    "lineno": 218,
    "origin": {
      "!span": "5685[217:4]-5686[217:5]",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "f2",
    "addr": "/f2/",
    "kind": "v",
    "lineno": 220,
    "origin": {
      "!span": "5758[219:4]-5760[219:6]",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "f3",
    "addr": "/f3/",
    "kind": "v",
    "lineno": 222,
    "origin": {
      "!span": "5837[221:4]-5839[221:6]",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "one",
    "addr": "/one/",
    "kind": "f",
    "type": "void function()",
    "lineno": 254,
    "origin": {
      "!span": "6515[253:9]-6518[253:12]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "person",
    "addr": "/person/",
    "kind": "v",
    "type": "string",
    "lineno": 256,
    "namespace": "one",
    "origin": {
      "!span": "6574[255:6]-6580[255:12]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "localVar1InOne",
    "addr": "/localVar1InOne/",
    "kind": "v",
    "type": "string",
    "lineno": 258,
    "namespace": "one",
    "origin": {
      "!span": "6643[257:6]-6657[257:20]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "globalVar1",
    "addr": "/globalVar1/",
    "kind": "v",
    "type": "number",
    "lineno": 259,
    "origin": {
      "!span": "6671[258:2]-6681[258:12]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "f",
    "addr": "/f/",
    "kind": "v",
    "lineno": 272,
    "namespace": "timeout",
    "origin": {
      "!span": "7061[271:17]-7062[271:18]",
      "!data": {
        "isConstructor": false,
        "scoped": true,
        "isArg": true,
        "type": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "timeout",
    "addr": "/timeout/",
    "kind": "f",
    "type": "void function(?, ?)",
    "lineno": 272,
    "namespace": "timeout",
    "origin": {
      "!span": "7064[271:20]-7071[271:27]",
      "!type": "fn(f: ?, timeout: ?)",
      "!data": {
        "isConstructor": false,
        "scoped": true,
        "isArg": true,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "timeout",
    "addr": "/timeout/",
    "kind": "v",
    "lineno": 272,
    "origin": {
      "!span": "7053[271:9]-7060[271:16]",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "obj",
    "addr": "/obj/",
    "kind": "v",
    "lineno": 273,
    "origin": {
      "!span": "7080[272:4]-7083[272:7]",
      "!data": {
        "isConstructor": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "name",
    "addr": "/name/",
    "kind": "v",
    "type": "string",
    "lineno": 274,
    "namespace": "obj",
    "origin": {
      "!span": "7090[273:2]-7094[273:6]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "func",
    "addr": "/func/",
    "kind": "f",
    "type": "void function()",
    "lineno": 275,
    "namespace": "obj",
    "origin": {
      "!span": "7105[274:2]-7109[274:6]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "localVarBecomeGlobal",
    "addr": "/localVarBecomeGlobal/",
    "kind": "v",
    "type": "[number]",
    "lineno": 285,
    "origin": {
      "!span": "7311[284:2]-7331[284:22]",
      "!type": "[number]",
      "!data": {
        "isConstructor": false,
        "type": "Array.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testIfControlFlow1",
    "addr": "/testIfControlFlow1/",
    "kind": "f",
    "type": "void function()",
    "lineno": 291,
    "origin": {
      "!span": "7428[290:9]-7446[290:27]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "varInIf",
    "addr": "/varInIf/",
    "kind": "v",
    "type": "string",
    "lineno": 294,
    "namespace": "testIfControlFlow1",
    "origin": {
      "!span": "7523[293:8]-7530[293:15]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "f",
    "addr": "/f/",
    "kind": "v",
    "lineno": 296,
    "namespace": "testIfControlFlow1",
    "origin": {
      "!span": "7599[295:8]-7600[295:9]",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "Object.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "name",
    "addr": "/name/",
    "kind": "v",
    "type": "string",
    "lineno": 299,
    "namespace": "testIfControlFlow1.f",
    "origin": {
      "!span": "7727[298:19]-7731[298:23]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "inNestedIf",
    "addr": "/inNestedIf/",
    "kind": "v",
    "type": "string",
    "lineno": 303,
    "namespace": "testIfControlFlow1",
    "origin": {
      "!span": "7828[302:10]-7838[302:20]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "t",
    "addr": "/t/",
    "kind": "v",
    "lineno": 305,
    "namespace": "testIfControlFlow1",
    "origin": {
      "!span": "7880[304:10]-7881[304:11]",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testForControlFlow1",
    "addr": "/testForControlFlow1/",
    "kind": "f",
    "type": "void function()",
    "lineno": 317,
    "origin": {
      "!span": "8147[316:9]-8166[316:28]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "m",
    "addr": "/m/",
    "kind": "v",
    "type": "string",
    "lineno": 321,
    "namespace": "testForControlFlow1",
    "origin": {
      "!span": "8302[320:6]-8303[320:7]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "n",
    "addr": "/n/",
    "kind": "v",
    "type": "number",
    "lineno": 322,
    "namespace": "testForControlFlow1",
    "origin": {
      "!span": "8325[321:11]-8326[321:12]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "varInForLoop",
    "addr": "/varInForLoop/",
    "kind": "v",
    "type": "string",
    "lineno": 323,
    "namespace": "testForControlFlow1",
    "origin": {
      "!span": "8355[322:8]-8367[322:20]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "j",
    "addr": "/j/",
    "kind": "v",
    "type": "number",
    "lineno": 324,
    "namespace": "testForControlFlow1",
    "origin": {
      "!span": "8391[323:13]-8392[323:14]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "varInNestedForLoop",
    "addr": "/varInNestedForLoop/",
    "kind": "v",
    "type": "number",
    "lineno": 325,
    "namespace": "testForControlFlow1",
    "origin": {
      "!span": "8423[324:10]-8441[324:28]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testForInLoopFlow1",
    "addr": "/testForInLoopFlow1/",
    "kind": "f",
    "type": "void function()",
    "lineno": 334,
    "origin": {
      "!span": "8604[333:9]-8622[333:27]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testWhileLoopFlow1",
    "addr": "/testWhileLoopFlow1/",
    "kind": "f",
    "type": "void function()",
    "lineno": 341,
    "origin": {
      "!span": "8704[340:9]-8722[340:27]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "n",
    "addr": "/n/",
    "kind": "v",
    "type": "number",
    "lineno": 342,
    "namespace": "testWhileLoopFlow1",
    "origin": {
      "!span": "8733[341:6]-8734[341:7]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "varInWhileLoop",
    "addr": "/varInWhileLoop/",
    "kind": "v",
    "type": "string",
    "lineno": 344,
    "namespace": "testWhileLoopFlow1",
    "origin": {
      "!span": "8769[343:8]-8783[343:22]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testDoWhileLoopFlow1",
    "addr": "/testDoWhileLoopFlow1/",
    "kind": "f",
    "type": "void function()",
    "lineno": 349,
    "origin": {
      "!span": "8831[348:9]-8851[348:29]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "varInDoWhileLoop",
    "addr": "/varInDoWhileLoop/",
    "kind": "v",
    "type": "string",
    "lineno": 352,
    "namespace": "testDoWhileLoopFlow1",
    "origin": {
      "!span": "8881[351:8]-8897[351:24]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testBreakFlow1",
    "addr": "/testBreakFlow1/",
    "kind": "f",
    "type": "void function()",
    "lineno": 359,
    "origin": {
      "!span": "8973[358:9]-8987[358:23]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "i",
    "addr": "/i/",
    "kind": "v",
    "type": "number",
    "lineno": 360,
    "origin": {
      "!span": "8999[359:7]-9000[359:8]",
      "!type": "number",
      "!data": {
        "isConstructor": false,
        "type": "Number.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testBreak",
    "addr": "/testBreak/",
    "kind": "v",
    "type": "string",
    "lineno": 362,
    "namespace": "testBreakFlow1",
    "origin": {
      "!span": "9048[361:10]-9057[361:19]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testContinue",
    "addr": "/testContinue/",
    "kind": "v",
    "type": "string",
    "lineno": 365,
    "namespace": "testBreakFlow1",
    "origin": {
      "!span": "9104[364:10]-9116[364:22]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "n",
    "addr": "/n/",
    "kind": "v",
    "lineno": 377,
    "namespace": "testSwitchFlow1",
    "origin": {
      "!span": "9336[376:25]-9337[376:26]",
      "!data": {
        "isConstructor": false,
        "scoped": true,
        "isArg": true,
        "type": false
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testSwitchFlow1",
    "addr": "/testSwitchFlow1/",
    "kind": "f",
    "type": "void function(?)",
    "lineno": 377,
    "origin": {
      "!span": "9320[376:9]-9335[376:24]",
      "!type": "fn(n: ?)",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "inCase1",
    "addr": "/inCase1/",
    "kind": "v",
    "type": "string",
    "lineno": 381,
    "namespace": "testSwitchFlow1",
    "origin": {
      "!span": "9378[380:10]-9385[380:17]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "inCase2",
    "addr": "/inCase2/",
    "kind": "v",
    "type": "string",
    "lineno": 385,
    "namespace": "testSwitchFlow1",
    "origin": {
      "!span": "9483[384:10]-9490[384:17]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "testTryCatchFlow1",
    "addr": "/testTryCatchFlow1/",
    "kind": "f",
    "type": "void function()",
    "lineno": 398,
    "origin": {
      "!span": "9677[397:9]-9694[397:26]",
      "!type": "fn()",
      "!data": {
        "isConstructor": false,
        "type": "Function.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "varInTry",
    "addr": "/varInTry/",
    "kind": "v",
    "type": "string",
    "lineno": 400,
    "namespace": "testTryCatchFlow1",
    "origin": {
      "!span": "9715[399:8]-9723[399:16]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  },
  {
    "name": "varInCatch",
    "addr": "/varInCatch/",
    "kind": "v",
    "type": "string",
    "lineno": 403,
    "namespace": "testTryCatchFlow1",
    "origin": {
      "!span": "9810[402:8]-9820[402:18]",
      "!type": "string",
      "!data": {
        "isConstructor": false,
        "scoped": false,
        "isArg": false,
        "type": "String.prototype"
      }
    },
    "tagfile": "__DIR__/hint_ecma5.js"
  }
]
