prebid.js 6.8.0 → 6.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2020) hide show
  1. package/.babelrc.js +2 -1
  2. package/.circleci/config.yml +3 -3
  3. package/.eslintrc.js +8 -1
  4. package/README.md +11 -5
  5. package/dist/33acrossBidAdapter.js +1 -0
  6. package/dist/a4gBidAdapter.js +1 -0
  7. package/dist/ablidaBidAdapter.js +1 -0
  8. package/dist/adWMGAnalyticsAdapter.js +1 -0
  9. package/dist/adWMGBidAdapter.js +1 -0
  10. package/dist/adagioAnalyticsAdapter.js +1 -0
  11. package/dist/adagioBidAdapter.js +1 -0
  12. package/dist/adbookpspBidAdapter.js +1 -0
  13. package/dist/addefendBidAdapter.js +1 -0
  14. package/dist/adfBidAdapter.js +1 -0
  15. package/dist/adgenerationBidAdapter.js +1 -0
  16. package/dist/adhashBidAdapter.js +1 -0
  17. package/dist/adheseBidAdapter.js +1 -0
  18. package/dist/adkernelAdnAnalyticsAdapter.js +1 -0
  19. package/dist/adkernelAdnBidAdapter.js +1 -0
  20. package/dist/adkernelBidAdapter.js +1 -0
  21. package/dist/adlooxAdServerVideo.js +1 -0
  22. package/dist/adlooxAnalyticsAdapter.js +1 -0
  23. package/dist/adlooxRtdProvider.js +1 -0
  24. package/dist/admanBidAdapter.js +1 -0
  25. package/dist/admixerBidAdapter.js +1 -0
  26. package/dist/admixerIdSystem.js +1 -0
  27. package/dist/adnowBidAdapter.js +1 -0
  28. package/dist/adnuntiusBidAdapter.js +1 -0
  29. package/dist/adnuntiusRtdProvider.js +1 -0
  30. package/dist/adoceanBidAdapter.js +1 -0
  31. package/dist/adomikAnalyticsAdapter.js +1 -0
  32. package/dist/adotBidAdapter.js +1 -0
  33. package/dist/adpartnerBidAdapter.js +1 -0
  34. package/dist/adplusBidAdapter.js +1 -0
  35. package/dist/adpod.js +1 -0
  36. package/dist/adponeBidAdapter.js +1 -0
  37. package/dist/adprimeBidAdapter.js +1 -0
  38. package/dist/adqueryBidAdapter.js +1 -0
  39. package/dist/adqueryIdSystem.js +1 -0
  40. package/dist/adrelevantisBidAdapter.js +1 -0
  41. package/dist/adriverBidAdapter.js +1 -0
  42. package/dist/adtargetBidAdapter.js +1 -0
  43. package/dist/adtelligentBidAdapter.js +1 -0
  44. package/dist/adtelligentIdSystem.js +1 -0
  45. package/dist/adtrueBidAdapter.js +1 -0
  46. package/dist/aduptechBidAdapter.js +1 -0
  47. package/dist/advangelistsBidAdapter.js +1 -0
  48. package/dist/adxcgAnalyticsAdapter.js +1 -0
  49. package/dist/adxcgBidAdapter.js +1 -0
  50. package/dist/adxpremiumAnalyticsAdapter.js +1 -0
  51. package/dist/adyoulikeBidAdapter.js +1 -0
  52. package/dist/afpBidAdapter.js +1 -0
  53. package/dist/airgridRtdProvider.js +1 -0
  54. package/dist/ajaBidAdapter.js +1 -0
  55. package/dist/akamaiDAPIdSystem.js +1 -0
  56. package/dist/akamaiDapRtdProvider.js +1 -0
  57. package/dist/amxBidAdapter.js +1 -0
  58. package/dist/amxIdSystem.js +1 -0
  59. package/dist/aniviewBidAdapter.js +1 -0
  60. package/dist/aolBidAdapter.js +1 -0
  61. package/dist/apacdexBidAdapter.js +1 -0
  62. package/dist/appierAnalyticsAdapter.js +1 -0
  63. package/dist/appierBidAdapter.js +1 -0
  64. package/dist/appnexusAnalyticsAdapter.js +1 -0
  65. package/dist/appnexusBidAdapter.js +1 -0
  66. package/dist/apstreamBidAdapter.js +1 -0
  67. package/dist/asealBidAdapter.js +1 -0
  68. package/dist/asoBidAdapter.js +1 -0
  69. package/dist/astraoneBidAdapter.js +1 -0
  70. package/dist/atsAnalyticsAdapter.js +1 -0
  71. package/dist/audiencerunBidAdapter.js +1 -0
  72. package/dist/automatadBidAdapter.js +1 -0
  73. package/dist/axonixBidAdapter.js +1 -0
  74. package/dist/beachfrontBidAdapter.js +1 -0
  75. package/dist/beopBidAdapter.js +1 -0
  76. package/dist/betweenBidAdapter.js +1 -0
  77. package/dist/bidViewability.js +1 -0
  78. package/dist/bidViewabilityIO.js +1 -0
  79. package/dist/bidglassBidAdapter.js +1 -0
  80. package/dist/bidscubeBidAdapter.js +1 -0
  81. package/dist/big-richmediaBidAdapter.js +1 -0
  82. package/dist/bizzclickBidAdapter.js +1 -0
  83. package/dist/bliinkBidAdapter.js +1 -0
  84. package/dist/bluebillywigBidAdapter.js +1 -0
  85. package/dist/boldwinBidAdapter.js +1 -0
  86. package/dist/brandmetricsRtdProvider.js +1 -0
  87. package/dist/braveBidAdapter.js +1 -0
  88. package/dist/bridgewellBidAdapter.js +1 -0
  89. package/dist/brightMountainMediaBidAdapter.js +1 -0
  90. package/dist/brightcomBidAdapter.js +1 -0
  91. package/dist/britepoolIdSystem.js +1 -0
  92. package/dist/browsiRtdProvider.js +1 -0
  93. package/dist/bucksenseBidAdapter.js +1 -0
  94. package/dist/buzzoolaBidAdapter.js +1 -0
  95. package/dist/byDataAnalyticsAdapter.js +1 -0
  96. package/dist/categoryTranslation.js +1 -0
  97. package/dist/ccxBidAdapter.js +1 -0
  98. package/dist/cleanioRtdProvider.js +1 -0
  99. package/dist/cleanmedianetBidAdapter.js +1 -0
  100. package/dist/clickforceBidAdapter.js +1 -0
  101. package/dist/codefuelBidAdapter.js +1 -0
  102. package/dist/cointrafficBidAdapter.js +1 -0
  103. package/dist/coinzillaBidAdapter.js +1 -0
  104. package/dist/colossussspBidAdapter.js +1 -0
  105. package/dist/compassBidAdapter.js +1 -0
  106. package/dist/concertAnalyticsAdapter.js +1 -0
  107. package/dist/concertBidAdapter.js +1 -0
  108. package/dist/connectIdSystem.js +1 -0
  109. package/dist/connectadBidAdapter.js +1 -0
  110. package/dist/consentManagement.js +1 -0
  111. package/dist/consentManagementUsp.js +1 -0
  112. package/dist/consumableBidAdapter.js +1 -0
  113. package/dist/contentexchangeBidAdapter.js +1 -0
  114. package/dist/conversantBidAdapter.js +1 -0
  115. package/dist/cpmstarBidAdapter.js +1 -0
  116. package/dist/craftBidAdapter.js +1 -0
  117. package/dist/criteoBidAdapter.js +1 -0
  118. package/dist/criteoIdSystem.js +1 -0
  119. package/dist/currency.js +1 -0
  120. package/dist/cwireBidAdapter.js +1 -0
  121. package/dist/dailyhuntBidAdapter.js +1 -0
  122. package/dist/datablocksAnalyticsAdapter.js +1 -0
  123. package/dist/datablocksBidAdapter.js +1 -0
  124. package/dist/dchain.js +1 -0
  125. package/dist/debugging.js +1 -0
  126. package/dist/deepintentBidAdapter.js +1 -0
  127. package/dist/deepintentDpesIdSystem.js +1 -0
  128. package/dist/deltaprojectsBidAdapter.js +1 -0
  129. package/dist/dfpAdServerVideo.js +1 -0
  130. package/dist/dgkeywordRtdProvider.js +1 -0
  131. package/dist/displayioBidAdapter.js +1 -0
  132. package/dist/districtmDMXBidAdapter.js +1 -0
  133. package/dist/dmdIdSystem.js +1 -0
  134. package/dist/docereeBidAdapter.js +1 -0
  135. package/dist/dspxBidAdapter.js +1 -0
  136. package/dist/e_volutionBidAdapter.js +1 -0
  137. package/dist/ebdrBidAdapter.js +1 -0
  138. package/dist/emx_digitalBidAdapter.js +1 -0
  139. package/dist/engageyaBidAdapter.js +1 -0
  140. package/dist/enrichmentFpdModule.js +1 -0
  141. package/dist/eplanningAnalyticsAdapter.js +1 -0
  142. package/dist/eplanningBidAdapter.js +1 -0
  143. package/dist/etargetBidAdapter.js +1 -0
  144. package/dist/express.js +1 -0
  145. package/dist/fabrickIdSystem.js +1 -0
  146. package/dist/feedadBidAdapter.js +1 -0
  147. package/dist/fintezaAnalyticsAdapter.js +1 -0
  148. package/dist/flocIdSystem.js +1 -0
  149. package/dist/fluctBidAdapter.js +1 -0
  150. package/dist/fpdModule.js +1 -0
  151. package/dist/freeWheelAdserverVideo.js +1 -0
  152. package/dist/freewheel-sspBidAdapter.js +1 -0
  153. package/dist/gammaBidAdapter.js +1 -0
  154. package/dist/gamoshiBidAdapter.js +1 -0
  155. package/dist/gdprEnforcement.js +1 -0
  156. package/dist/geoedgeRtdProvider.js +1 -0
  157. package/dist/getintentBidAdapter.js +1 -0
  158. package/dist/gjirafaBidAdapter.js +1 -0
  159. package/dist/glimpseBidAdapter.js +1 -0
  160. package/dist/glomexBidAdapter.js +1 -0
  161. package/dist/gmosspBidAdapter.js +1 -0
  162. package/dist/gnetBidAdapter.js +1 -0
  163. package/dist/goldbachBidAdapter.js +1 -0
  164. package/dist/googleAnalyticsAdapter.js +1 -0
  165. package/dist/gothamadsBidAdapter.js +1 -0
  166. package/dist/gptPreAuction.js +1 -0
  167. package/dist/gridBidAdapter.js +1 -0
  168. package/dist/gridNMBidAdapter.js +1 -0
  169. package/dist/growadvertisingBidAdapter.js +1 -0
  170. package/dist/gumgumBidAdapter.js +1 -0
  171. package/dist/h12mediaBidAdapter.js +1 -0
  172. package/dist/hadronIdSystem.js +1 -0
  173. package/dist/hadronRtdProvider.js +1 -0
  174. package/dist/haloIdSystem.js +1 -0
  175. package/dist/haloRtdProvider.js +1 -0
  176. package/dist/hybridBidAdapter.js +1 -0
  177. package/dist/iasRtdProvider.js +1 -0
  178. package/dist/id5AnalyticsAdapter.js +1 -0
  179. package/dist/id5IdSystem.js +1 -0
  180. package/dist/idImportLibrary.js +1 -0
  181. package/dist/identityLinkIdSystem.js +1 -0
  182. package/dist/idxIdSystem.js +1 -0
  183. package/dist/imRtdProvider.js +1 -0
  184. package/dist/impactifyBidAdapter.js +1 -0
  185. package/dist/improvedigitalBidAdapter.js +1 -0
  186. package/dist/imuIdSystem.js +1 -0
  187. package/dist/inmarBidAdapter.js +1 -0
  188. package/dist/innityBidAdapter.js +1 -0
  189. package/dist/inskinBidAdapter.js +1 -0
  190. package/dist/insticatorBidAdapter.js +1 -0
  191. package/dist/instreamTracking.js +1 -0
  192. package/dist/integr8BidAdapter.js +1 -0
  193. package/dist/intentIqIdSystem.js +1 -0
  194. package/dist/interactiveOffersBidAdapter.js +1 -0
  195. package/dist/intersectionRtdProvider.js +1 -0
  196. package/dist/invamiaBidAdapter.js +1 -0
  197. package/dist/invibesBidAdapter.js +1 -0
  198. package/dist/invisiblyAnalyticsAdapter.js +1 -0
  199. package/dist/ipromBidAdapter.js +1 -0
  200. package/dist/iqmBidAdapter.js +1 -0
  201. package/dist/iqzoneBidAdapter.js +1 -0
  202. package/dist/ixBidAdapter.js +1 -0
  203. package/dist/jixieBidAdapter.js +1 -0
  204. package/dist/justIdSystem.js +1 -0
  205. package/dist/justpremiumBidAdapter.js +1 -0
  206. package/dist/jwplayerRtdProvider.js +1 -0
  207. package/dist/kargoAnalyticsAdapter.js +1 -0
  208. package/dist/kargoBidAdapter.js +1 -0
  209. package/dist/kinessoIdSystem.js +1 -0
  210. package/dist/koblerBidAdapter.js +1 -0
  211. package/dist/konduitAnalyticsAdapter.js +1 -0
  212. package/dist/konduitWrapper.js +1 -0
  213. package/dist/krushmediaBidAdapter.js +1 -0
  214. package/dist/kubientBidAdapter.js +1 -0
  215. package/dist/limelightDigitalBidAdapter.js +1 -0
  216. package/dist/liveIntentIdSystem.js +1 -0
  217. package/dist/livewrappedAnalyticsAdapter.js +1 -0
  218. package/dist/livewrappedBidAdapter.js +1 -0
  219. package/dist/liveyieldAnalyticsAdapter.js +1 -0
  220. package/dist/lkqdBidAdapter.js +1 -0
  221. package/dist/lockerdomeBidAdapter.js +1 -0
  222. package/dist/loganBidAdapter.js +1 -0
  223. package/dist/logicadBidAdapter.js +1 -0
  224. package/dist/loglyliftBidAdapter.js +1 -0
  225. package/dist/lotamePanoramaIdSystem.js +1 -0
  226. package/dist/lunamediahbBidAdapter.js +1 -0
  227. package/dist/luponmediaBidAdapter.js +1 -0
  228. package/dist/madvertiseBidAdapter.js +1 -0
  229. package/dist/malltvAnalyticsAdapter.js +1 -0
  230. package/dist/malltvBidAdapter.js +1 -0
  231. package/dist/mantisBidAdapter.js +1 -0
  232. package/dist/marsmediaAnalyticsAdapter.js +1 -0
  233. package/dist/marsmediaBidAdapter.js +1 -0
  234. package/dist/mass.js +1 -0
  235. package/dist/mathildeadsBidAdapter.js +1 -0
  236. package/dist/mediaforceBidAdapter.js +1 -0
  237. package/dist/mediakeysBidAdapter.js +1 -0
  238. package/dist/medianetAnalyticsAdapter.js +1 -0
  239. package/dist/medianetBidAdapter.js +1 -0
  240. package/dist/medianetRtdProvider.js +1 -0
  241. package/dist/mediasquareBidAdapter.js +1 -0
  242. package/dist/merkleIdSystem.js +1 -0
  243. package/dist/mgidBidAdapter.js +1 -0
  244. package/dist/microadBidAdapter.js +1 -0
  245. package/dist/missenaBidAdapter.js +1 -0
  246. package/dist/multibid.js +1 -0
  247. package/dist/mwOpenLinkIdSystem.js +1 -0
  248. package/dist/my6senseBidAdapter.js +1 -0
  249. package/dist/mytargetBidAdapter.js +1 -0
  250. package/dist/nativoBidAdapter.js +1 -0
  251. package/dist/naveggIdSystem.js +1 -0
  252. package/dist/netIdSystem.js +1 -0
  253. package/dist/nextMillenniumBidAdapter.js +1 -0
  254. package/dist/nextrollBidAdapter.js +1 -0
  255. package/dist/nextrollIdSystem.js +1 -0
  256. package/dist/nexx360BidAdapter.js +1 -0
  257. package/dist/nobidBidAdapter.js +1 -0
  258. package/dist/not-for-prod/prebid.js +418 -0
  259. package/dist/novatiqIdSystem.js +1 -0
  260. package/dist/oguryBidAdapter.js +1 -0
  261. package/dist/oneVideoBidAdapter.js +1 -0
  262. package/dist/onetagBidAdapter.js +1 -0
  263. package/dist/onomagicBidAdapter.js +1 -0
  264. package/dist/ooloAnalyticsAdapter.js +1 -0
  265. package/dist/openwebBidAdapter.js +1 -0
  266. package/dist/openxAnalyticsAdapter.js +1 -0
  267. package/dist/openxBidAdapter.js +1 -0
  268. package/dist/operaadsBidAdapter.js +1 -0
  269. package/dist/optimeraRtdProvider.js +1 -0
  270. package/dist/optimonAnalyticsAdapter.js +1 -0
  271. package/dist/optoutBidAdapter.js +1 -0
  272. package/dist/orbidderBidAdapter.js +1 -0
  273. package/dist/otmBidAdapter.js +1 -0
  274. package/dist/outbrainBidAdapter.js +1 -0
  275. package/dist/ozoneBidAdapter.js +1 -0
  276. package/dist/padsquadBidAdapter.js +1 -0
  277. package/dist/parrableIdSystem.js +1 -0
  278. package/dist/permutiveRtdProvider.js +1 -0
  279. package/dist/pilotxBidAdapter.js +1 -0
  280. package/dist/pixfutureBidAdapter.js +1 -0
  281. package/dist/prebid-core.js +9 -0
  282. package/dist/prebidServerBidAdapter.js +1 -0
  283. package/dist/prebidmanagerAnalyticsAdapter.js +1 -0
  284. package/dist/priceFloors.js +1 -0
  285. package/dist/proxistoreBidAdapter.js +1 -0
  286. package/dist/pubCommonId.js +1 -0
  287. package/dist/pubProvidedIdSystem.js +1 -0
  288. package/dist/pubgeniusBidAdapter.js +1 -0
  289. package/dist/publinkIdSystem.js +1 -0
  290. package/dist/pubmaticAnalyticsAdapter.js +1 -0
  291. package/dist/pubmaticBidAdapter.js +1 -0
  292. package/dist/pubperfAnalyticsAdapter.js +1 -0
  293. package/dist/pubstackAnalyticsAdapter.js +1 -0
  294. package/dist/pubwiseAnalyticsAdapter.js +1 -0
  295. package/dist/pubwiseBidAdapter.js +1 -0
  296. package/dist/pubxBidAdapter.js +1 -0
  297. package/dist/pubxaiAnalyticsAdapter.js +1 -0
  298. package/dist/pulsepointAnalyticsAdapter.js +1 -0
  299. package/dist/pulsepointBidAdapter.js +1 -0
  300. package/dist/pxyzBidAdapter.js +1 -0
  301. package/dist/quantcastBidAdapter.js +1 -0
  302. package/dist/quantcastIdSystem.js +1 -0
  303. package/dist/qwarryBidAdapter.js +1 -0
  304. package/dist/radsBidAdapter.js +1 -0
  305. package/dist/rakutenBidAdapter.js +1 -0
  306. package/dist/readpeakBidAdapter.js +1 -0
  307. package/dist/realvuAnalyticsAdapter.js +1 -0
  308. package/dist/reconciliationRtdProvider.js +1 -0
  309. package/dist/relaidoBidAdapter.js +1 -0
  310. package/dist/relevantAnalyticsAdapter.js +1 -0
  311. package/dist/resetdigitalBidAdapter.js +1 -0
  312. package/dist/revcontentBidAdapter.js +1 -0
  313. package/dist/rhythmoneBidAdapter.js +1 -0
  314. package/dist/richaudienceBidAdapter.js +1 -0
  315. package/dist/riseBidAdapter.js +1 -0
  316. package/dist/rivrAnalyticsAdapter.js +1 -0
  317. package/dist/roxotAnalyticsAdapter.js +1 -0
  318. package/dist/rtbhouseBidAdapter.js +1 -0
  319. package/dist/rtbsapeBidAdapter.js +1 -0
  320. package/dist/rtdModule.js +1 -0
  321. package/dist/rubiconAnalyticsAdapter.js +1 -0
  322. package/dist/rubiconBidAdapter.js +1 -0
  323. package/dist/s2sTesting.js +1 -0
  324. package/dist/saambaaBidAdapter.js +1 -0
  325. package/dist/scaleableAnalyticsAdapter.js +1 -0
  326. package/dist/schain.js +1 -0
  327. package/dist/seedingAllianceBidAdapter.js +1 -0
  328. package/dist/seedtagBidAdapter.js +1 -0
  329. package/dist/sharedIdSystem.js +1 -0
  330. package/dist/sharethroughAnalyticsAdapter.js +1 -0
  331. package/dist/sharethroughBidAdapter.js +1 -0
  332. package/dist/showheroes-bsBidAdapter.js +1 -0
  333. package/dist/sigmoidAnalyticsAdapter.js +1 -0
  334. package/dist/sirdataRtdProvider.js +1 -0
  335. package/dist/sizeMappingV2.js +1 -0
  336. package/dist/slimcutBidAdapter.js +1 -0
  337. package/dist/smaatoBidAdapter.js +1 -0
  338. package/dist/smartadserverBidAdapter.js +1 -0
  339. package/dist/smarticoBidAdapter.js +1 -0
  340. package/dist/smartxBidAdapter.js +1 -0
  341. package/dist/smartyadsBidAdapter.js +1 -0
  342. package/dist/smilewantedBidAdapter.js +1 -0
  343. package/dist/sonobiAnalyticsAdapter.js +1 -0
  344. package/dist/sonobiBidAdapter.js +1 -0
  345. package/dist/sortableAnalyticsAdapter.js +1 -0
  346. package/dist/sortableBidAdapter.js +1 -0
  347. package/dist/sovrnAnalyticsAdapter.js +1 -0
  348. package/dist/sovrnBidAdapter.js +1 -0
  349. package/dist/spotxBidAdapter.js +1 -0
  350. package/dist/sspBCBidAdapter.js +1 -0
  351. package/dist/staqAnalyticsAdapter.js +1 -0
  352. package/dist/stroeerCoreBidAdapter.js +1 -0
  353. package/dist/sublimeBidAdapter.js +1 -0
  354. package/dist/synacormediaBidAdapter.js +1 -0
  355. package/dist/talkadsBidAdapter.js +1 -0
  356. package/dist/tapadIdSystem.js +1 -0
  357. package/dist/tappxBidAdapter.js +1 -0
  358. package/dist/targetVideoBidAdapter.js +1 -0
  359. package/dist/teadsBidAdapter.js +1 -0
  360. package/dist/telariaBidAdapter.js +1 -0
  361. package/dist/temedyaBidAdapter.js +1 -0
  362. package/dist/terceptAnalyticsAdapter.js +1 -0
  363. package/dist/theAdxBidAdapter.js +1 -0
  364. package/dist/timeoutRtdProvider.js +1 -0
  365. package/dist/tpmnBidAdapter.js +1 -0
  366. package/dist/trionBidAdapter.js +1 -0
  367. package/dist/tripleliftBidAdapter.js +1 -0
  368. package/dist/truereachBidAdapter.js +1 -0
  369. package/dist/trustpidSystem.js +1 -0
  370. package/dist/trustxBidAdapter.js +1 -0
  371. package/dist/ucfunnelAnalyticsAdapter.js +1 -0
  372. package/dist/ucfunnelBidAdapter.js +1 -0
  373. package/dist/uid2IdSystem.js +1 -0
  374. package/dist/underdogmediaBidAdapter.js +1 -0
  375. package/dist/undertoneBidAdapter.js +1 -0
  376. package/dist/unicornBidAdapter.js +1 -0
  377. package/dist/unifiedIdSystem.js +1 -0
  378. package/dist/unrulyBidAdapter.js +1 -0
  379. package/dist/userId.js +1 -0
  380. package/dist/userIdTargeting.js +1 -0
  381. package/dist/validationFpdModule.js +1 -0
  382. package/dist/vdoaiBidAdapter.js +1 -0
  383. package/dist/ventesBidAdapter.js +1 -0
  384. package/dist/verizonMediaIdSystem.js +1 -0
  385. package/dist/vibrantmediaBidAdapter.js +1 -0
  386. package/dist/vidazooBidAdapter.js +1 -0
  387. package/dist/videobyteBidAdapter.js +1 -0
  388. package/dist/videoreachBidAdapter.js +1 -0
  389. package/dist/vidoomyBidAdapter.js +1 -0
  390. package/dist/viewability.js +1 -0
  391. package/dist/viewdeosDXBidAdapter.js +1 -0
  392. package/dist/visxBidAdapter.js +1 -0
  393. package/dist/vlybyBidAdapter.js +1 -0
  394. package/dist/voxBidAdapter.js +1 -0
  395. package/dist/vrtcalBidAdapter.js +1 -0
  396. package/dist/vuukleBidAdapter.js +1 -0
  397. package/dist/waardexBidAdapter.js +1 -0
  398. package/dist/weboramaRtdProvider.js +1 -0
  399. package/dist/welectBidAdapter.js +1 -0
  400. package/dist/widespaceBidAdapter.js +1 -0
  401. package/dist/winrBidAdapter.js +1 -0
  402. package/dist/wipesBidAdapter.js +1 -0
  403. package/dist/yahoosspBidAdapter.js +1 -0
  404. package/dist/yieldlabBidAdapter.js +1 -0
  405. package/dist/yieldliftBidAdapter.js +1 -0
  406. package/dist/yieldmoBidAdapter.js +1 -0
  407. package/dist/yieldmoSyntheticInventoryModule.js +1 -0
  408. package/dist/yieldoneAnalyticsAdapter.js +1 -0
  409. package/dist/yieldoneBidAdapter.js +1 -0
  410. package/dist/yuktamediaAnalyticsAdapter.js +1 -0
  411. package/dist/zeotapIdPlusIdSystem.js +1 -0
  412. package/dist/zetaBidAdapter.js +1 -0
  413. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -0
  414. package/dist/zeta_global_sspBidAdapter.js +1 -0
  415. package/integrationExamples/gpt/{haloRtdProvider_example.html → hadronRtdProvider_example.html} +9 -9
  416. package/integrationExamples/gpt/idImportLibrary_example.html +2 -2
  417. package/integrationExamples/gpt/userId_example.html +2 -2
  418. package/integrationExamples/gpt/weboramaRtdProvider_example.html +154 -115
  419. package/integrationExamples/gpt/x-domain/creative.html +13 -6
  420. package/modules/.submodules.json +4 -0
  421. package/modules/adkernelBidAdapter.js +2 -1
  422. package/modules/adnuntiusRtdProvider.js +96 -0
  423. package/modules/adnuntiusRtdProvider.md +41 -0
  424. package/modules/adotBidAdapter.js +516 -567
  425. package/modules/adotBidAdapter.md +6 -44
  426. package/modules/adpod.js +12 -14
  427. package/modules/adyoulikeBidAdapter.js +3 -1
  428. package/modules/appnexusBidAdapter.js +3 -2
  429. package/modules/asealBidAdapter.js +58 -0
  430. package/modules/asealBidAdapter.md +52 -0
  431. package/modules/automatadBidAdapter.js +10 -7
  432. package/modules/big-richmediaBidAdapter.js +117 -0
  433. package/modules/big-richmediaBidAdapter.md +82 -0
  434. package/modules/bizzclickBidAdapter.js +5 -3
  435. package/modules/conversantBidAdapter.js +7 -0
  436. package/modules/currency.js +1 -4
  437. package/modules/debugging/bidInterceptor.js +229 -0
  438. package/modules/debugging/index.js +62 -0
  439. package/modules/debugging/pbsInterceptor.js +38 -0
  440. package/modules/dspxBidAdapter.js +69 -29
  441. package/modules/dspxBidAdapter.md +2 -1
  442. package/modules/fluctBidAdapter.js +18 -1
  443. package/modules/googleAnalyticsAdapter.js +22 -4
  444. package/modules/googleAnalyticsAdapter.md +1 -0
  445. package/modules/gridBidAdapter.js +26 -7
  446. package/modules/hadronIdSystem.js +96 -0
  447. package/modules/hadronIdSystem.md +35 -0
  448. package/modules/hadronRtdProvider.js +254 -0
  449. package/modules/hadronRtdProvider.md +126 -0
  450. package/modules/haloIdSystem.md +4 -35
  451. package/modules/haloRtdProvider.md +3 -126
  452. package/modules/imRtdProvider.js +10 -0
  453. package/modules/improvedigitalBidAdapter.js +5 -0
  454. package/modules/iqzoneBidAdapter.js +10 -3
  455. package/modules/iqzoneBidAdapter.md +16 -0
  456. package/modules/ixBidAdapter.js +35 -21
  457. package/modules/justIdSystem.js +206 -0
  458. package/modules/justIdSystem.md +70 -0
  459. package/modules/kubientBidAdapter.js +60 -28
  460. package/modules/lkqdBidAdapter.js +234 -0
  461. package/modules/lkqdBidAdapter.md +1 -1
  462. package/modules/lunamediahbBidAdapter.js +32 -4
  463. package/modules/malltvBidAdapter.js +7 -3
  464. package/modules/malltvBidAdapter.md +64 -51
  465. package/modules/mass.js +3 -5
  466. package/modules/mediakeysBidAdapter.js +0 -5
  467. package/modules/medianetAnalyticsAdapter.js +1 -1
  468. package/modules/mediasquareBidAdapter.js +9 -1
  469. package/modules/nextMillenniumBidAdapter.js +1 -0
  470. package/modules/nexx360BidAdapter.js +149 -0
  471. package/modules/nexx360BidAdapter.md +35 -0
  472. package/modules/novatiqIdSystem.js +68 -15
  473. package/modules/novatiqIdSystem.md +69 -7
  474. package/modules/oguryBidAdapter.js +7 -14
  475. package/modules/prebidServerBidAdapter/index.js +128 -90
  476. package/modules/priceFloors.js +20 -12
  477. package/modules/pubmaticBidAdapter.js +1 -1
  478. package/modules/richaudienceBidAdapter.js +15 -3
  479. package/modules/riseBidAdapter.js +17 -6
  480. package/modules/rtbhouseBidAdapter.js +2 -0
  481. package/modules/rubiconAnalyticsAdapter.js +5 -0
  482. package/modules/rubiconBidAdapter.js +2 -2
  483. package/modules/sizeMappingV2.js +1 -8
  484. package/modules/sortableAnalyticsAdapter.js +5 -4
  485. package/modules/sspBCBidAdapter.js +53 -20
  486. package/modules/telariaBidAdapter.js +22 -29
  487. package/modules/trustpidSystem.js +197 -0
  488. package/modules/trustpidSystem.md +45 -0
  489. package/modules/trustxBidAdapter.js +11 -6
  490. package/modules/userId/eids.js +22 -1
  491. package/modules/userId/eids.md +18 -2
  492. package/modules/userId/userId.md +17 -2
  493. package/modules/vibrantmediaBidAdapter.js +220 -0
  494. package/modules/vibrantmediaBidAdapter.md +92 -0
  495. package/modules/vidazooBidAdapter.js +3 -2
  496. package/modules/vidoomyBidAdapter.js +8 -0
  497. package/modules/vidoomyBidAdapter.md +4 -2
  498. package/modules/weboramaRtdProvider.js +264 -34
  499. package/modules/weboramaRtdProvider.md +110 -40
  500. package/modules/yahoosspBidAdapter.js +1 -1
  501. package/modules/yieldoneBidAdapter.js +6 -0
  502. package/package.json +2 -1
  503. package/plugins/eslint/node_modules/ansi-regex/index.js +4 -0
  504. package/plugins/eslint/node_modules/ansi-regex/license +21 -0
  505. package/plugins/eslint/node_modules/ansi-regex/package.json +56 -0
  506. package/plugins/eslint/node_modules/ansi-regex/readme.md +33 -0
  507. package/plugins/eslint/node_modules/ansi-styles/index.js +65 -0
  508. package/plugins/eslint/node_modules/ansi-styles/license +21 -0
  509. package/plugins/eslint/node_modules/ansi-styles/package.json +50 -0
  510. package/plugins/eslint/node_modules/ansi-styles/readme.md +86 -0
  511. package/plugins/eslint/node_modules/argparse/CHANGELOG.md +185 -0
  512. package/plugins/eslint/node_modules/argparse/LICENSE +21 -0
  513. package/plugins/eslint/node_modules/argparse/README.md +257 -0
  514. package/plugins/eslint/node_modules/argparse/index.js +3 -0
  515. package/plugins/eslint/node_modules/argparse/lib/action/append/constant.js +47 -0
  516. package/plugins/eslint/node_modules/argparse/lib/action/append.js +53 -0
  517. package/plugins/eslint/node_modules/argparse/lib/action/count.js +40 -0
  518. package/plugins/eslint/node_modules/argparse/lib/action/help.js +47 -0
  519. package/plugins/eslint/node_modules/argparse/lib/action/store/constant.js +43 -0
  520. package/plugins/eslint/node_modules/argparse/lib/action/store/false.js +27 -0
  521. package/plugins/eslint/node_modules/argparse/lib/action/store/true.js +26 -0
  522. package/plugins/eslint/node_modules/argparse/lib/action/store.js +50 -0
  523. package/plugins/eslint/node_modules/argparse/lib/action/subparsers.js +149 -0
  524. package/plugins/eslint/node_modules/argparse/lib/action/version.js +47 -0
  525. package/plugins/eslint/node_modules/argparse/lib/action.js +146 -0
  526. package/plugins/eslint/node_modules/argparse/lib/action_container.js +482 -0
  527. package/plugins/eslint/node_modules/argparse/lib/argparse.js +14 -0
  528. package/plugins/eslint/node_modules/argparse/lib/argument/error.js +50 -0
  529. package/plugins/eslint/node_modules/argparse/lib/argument/exclusive.js +54 -0
  530. package/plugins/eslint/node_modules/argparse/lib/argument/group.js +75 -0
  531. package/plugins/eslint/node_modules/argparse/lib/argument_parser.js +1161 -0
  532. package/plugins/eslint/node_modules/argparse/lib/const.js +21 -0
  533. package/plugins/eslint/node_modules/argparse/lib/help/added_formatters.js +87 -0
  534. package/plugins/eslint/node_modules/argparse/lib/help/formatter.js +795 -0
  535. package/plugins/eslint/node_modules/argparse/lib/namespace.js +76 -0
  536. package/plugins/eslint/node_modules/argparse/lib/utils.js +57 -0
  537. package/plugins/eslint/node_modules/argparse/package.json +34 -0
  538. package/plugins/eslint/node_modules/asn1/LICENSE +19 -0
  539. package/plugins/eslint/node_modules/asn1/README.md +50 -0
  540. package/plugins/eslint/node_modules/asn1/lib/ber/errors.js +13 -0
  541. package/plugins/eslint/node_modules/asn1/lib/ber/index.js +27 -0
  542. package/plugins/eslint/node_modules/asn1/lib/ber/reader.js +267 -0
  543. package/plugins/eslint/node_modules/asn1/lib/ber/types.js +36 -0
  544. package/plugins/eslint/node_modules/asn1/lib/ber/writer.js +317 -0
  545. package/plugins/eslint/node_modules/asn1/lib/index.js +20 -0
  546. package/plugins/eslint/node_modules/asn1/package.json +26 -0
  547. package/plugins/eslint/node_modules/asn1/tst/ber/reader.test.js +172 -0
  548. package/plugins/eslint/node_modules/asn1/tst/ber/writer.test.js +296 -0
  549. package/plugins/eslint/node_modules/assert-plus/README.md +126 -0
  550. package/plugins/eslint/node_modules/assert-plus/assert.js +245 -0
  551. package/plugins/eslint/node_modules/assert-plus/package.json +16 -0
  552. package/plugins/eslint/node_modules/assertion-error/History.md +14 -0
  553. package/plugins/eslint/node_modules/assertion-error/README.md +41 -0
  554. package/plugins/eslint/node_modules/assertion-error/index.js +110 -0
  555. package/plugins/eslint/node_modules/assertion-error/package.json +27 -0
  556. package/plugins/eslint/node_modules/async/CHANGELOG.md +125 -0
  557. package/plugins/eslint/node_modules/async/LICENSE +19 -0
  558. package/plugins/eslint/node_modules/async/README.md +1877 -0
  559. package/plugins/eslint/node_modules/async/dist/async.js +1265 -0
  560. package/plugins/eslint/node_modules/async/dist/async.min.js +2 -0
  561. package/plugins/eslint/node_modules/async/lib/async.js +1265 -0
  562. package/plugins/eslint/node_modules/async/package.json +85 -0
  563. package/plugins/eslint/node_modules/aws-sign2/LICENSE +55 -0
  564. package/plugins/eslint/node_modules/aws-sign2/README.md +4 -0
  565. package/plugins/eslint/node_modules/aws-sign2/index.js +202 -0
  566. package/plugins/eslint/node_modules/aws-sign2/package.json +16 -0
  567. package/plugins/eslint/node_modules/camelcase/index.js +56 -0
  568. package/plugins/eslint/node_modules/camelcase/license +21 -0
  569. package/plugins/eslint/node_modules/camelcase/package.json +39 -0
  570. package/plugins/eslint/node_modules/camelcase/readme.md +57 -0
  571. package/plugins/eslint/node_modules/camelcase-keys/index.js +12 -0
  572. package/plugins/eslint/node_modules/camelcase-keys/license +21 -0
  573. package/plugins/eslint/node_modules/camelcase-keys/package.json +52 -0
  574. package/plugins/eslint/node_modules/camelcase-keys/readme.md +54 -0
  575. package/plugins/eslint/node_modules/chai/CONTRIBUTING.md +173 -0
  576. package/plugins/eslint/node_modules/chai/History.md +937 -0
  577. package/plugins/eslint/node_modules/chai/README.md +109 -0
  578. package/plugins/eslint/node_modules/chai/ReleaseNotes.md +587 -0
  579. package/plugins/eslint/node_modules/chai/bower.json +27 -0
  580. package/plugins/eslint/node_modules/chai/chai.js +4800 -0
  581. package/plugins/eslint/node_modules/chai/index.js +1 -0
  582. package/plugins/eslint/node_modules/chai/karma.conf.js +28 -0
  583. package/plugins/eslint/node_modules/chai/karma.sauce.js +41 -0
  584. package/plugins/eslint/node_modules/chai/lib/chai/assertion.js +135 -0
  585. package/plugins/eslint/node_modules/chai/lib/chai/config.js +50 -0
  586. package/plugins/eslint/node_modules/chai/lib/chai/core/assertions.js +1359 -0
  587. package/plugins/eslint/node_modules/chai/lib/chai/interface/assert.js +1056 -0
  588. package/plugins/eslint/node_modules/chai/lib/chai/interface/expect.js +12 -0
  589. package/plugins/eslint/node_modules/chai/lib/chai/interface/should.js +78 -0
  590. package/plugins/eslint/node_modules/chai/lib/chai/utils/addChainableMethod.js +111 -0
  591. package/plugins/eslint/node_modules/chai/lib/chai/utils/addMethod.js +43 -0
  592. package/plugins/eslint/node_modules/chai/lib/chai/utils/addProperty.js +40 -0
  593. package/plugins/eslint/node_modules/chai/lib/chai/utils/flag.js +32 -0
  594. package/plugins/eslint/node_modules/chai/lib/chai/utils/getActual.js +18 -0
  595. package/plugins/eslint/node_modules/chai/lib/chai/utils/getEnumerableProperties.js +25 -0
  596. package/plugins/eslint/node_modules/chai/lib/chai/utils/getMessage.js +50 -0
  597. package/plugins/eslint/node_modules/chai/lib/chai/utils/getName.js +20 -0
  598. package/plugins/eslint/node_modules/chai/lib/chai/utils/getPathValue.js +102 -0
  599. package/plugins/eslint/node_modules/chai/lib/chai/utils/getProperties.js +35 -0
  600. package/plugins/eslint/node_modules/chai/lib/chai/utils/index.js +114 -0
  601. package/plugins/eslint/node_modules/chai/lib/chai/utils/inspect.js +333 -0
  602. package/plugins/eslint/node_modules/chai/lib/chai/utils/objDisplay.js +49 -0
  603. package/plugins/eslint/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js +53 -0
  604. package/plugins/eslint/node_modules/chai/lib/chai/utils/overwriteMethod.js +51 -0
  605. package/plugins/eslint/node_modules/chai/lib/chai/utils/overwriteProperty.js +54 -0
  606. package/plugins/eslint/node_modules/chai/lib/chai/utils/test.js +26 -0
  607. package/plugins/eslint/node_modules/chai/lib/chai/utils/transferFlags.js +44 -0
  608. package/plugins/eslint/node_modules/chai/lib/chai/utils/type.js +45 -0
  609. package/plugins/eslint/node_modules/chai/lib/chai.js +87 -0
  610. package/plugins/eslint/node_modules/chai/package.json +42 -0
  611. package/plugins/eslint/node_modules/chai/sauce.browsers.js +128 -0
  612. package/plugins/eslint/node_modules/chalk/index.js +116 -0
  613. package/plugins/eslint/node_modules/chalk/license +21 -0
  614. package/plugins/eslint/node_modules/chalk/package.json +70 -0
  615. package/plugins/eslint/node_modules/chalk/readme.md +213 -0
  616. package/plugins/eslint/node_modules/cli-width/.travis.yml +11 -0
  617. package/plugins/eslint/node_modules/cli-width/LICENSE +13 -0
  618. package/plugins/eslint/node_modules/cli-width/README.md +36 -0
  619. package/plugins/eslint/node_modules/cli-width/coverage/coverage.json +1 -0
  620. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/base.css +182 -0
  621. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/cli-width/index.html +73 -0
  622. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/cli-width/index.js.html +129 -0
  623. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/index.html +73 -0
  624. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/prettify.css +1 -0
  625. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/prettify.js +1 -0
  626. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  627. package/plugins/eslint/node_modules/cli-width/coverage/lcov-report/sorter.js +156 -0
  628. package/plugins/eslint/node_modules/cli-width/coverage/lcov.info +32 -0
  629. package/plugins/eslint/node_modules/cli-width/index.js +28 -0
  630. package/plugins/eslint/node_modules/cli-width/package.json +29 -0
  631. package/plugins/eslint/node_modules/combined-stream/License +19 -0
  632. package/plugins/eslint/node_modules/combined-stream/Readme.md +132 -0
  633. package/plugins/eslint/node_modules/combined-stream/lib/combined_stream.js +188 -0
  634. package/plugins/eslint/node_modules/combined-stream/package.json +24 -0
  635. package/plugins/eslint/node_modules/commander/Readme.md +208 -0
  636. package/plugins/eslint/node_modules/commander/index.js +876 -0
  637. package/plugins/eslint/node_modules/commander/package.json +13 -0
  638. package/plugins/eslint/node_modules/coveralls/.travis.yml +6 -0
  639. package/plugins/eslint/node_modules/coveralls/Makefile +20 -0
  640. package/plugins/eslint/node_modules/coveralls/README.md +129 -0
  641. package/plugins/eslint/node_modules/coveralls/fixtures/istanbul.lcov +131 -0
  642. package/plugins/eslint/node_modules/coveralls/fixtures/lib/index.js +172 -0
  643. package/plugins/eslint/node_modules/coveralls/fixtures/onefile.lcov +116 -0
  644. package/plugins/eslint/node_modules/coveralls/index.js +7 -0
  645. package/plugins/eslint/node_modules/coveralls/lib/convertLcovToCoveralls.js +111 -0
  646. package/plugins/eslint/node_modules/coveralls/lib/detectLocalGit.js +27 -0
  647. package/plugins/eslint/node_modules/coveralls/lib/fetchGitData.js +108 -0
  648. package/plugins/eslint/node_modules/coveralls/lib/getOptions.js +125 -0
  649. package/plugins/eslint/node_modules/coveralls/lib/handleInput.js +39 -0
  650. package/plugins/eslint/node_modules/coveralls/lib/logger.js +18 -0
  651. package/plugins/eslint/node_modules/coveralls/lib/sendToCoveralls.js +11 -0
  652. package/plugins/eslint/node_modules/coveralls/package.json +56 -0
  653. package/plugins/eslint/node_modules/coveralls/test/convertLcovToCoveralls.js +82 -0
  654. package/plugins/eslint/node_modules/coveralls/test/fetchGitData.js +182 -0
  655. package/plugins/eslint/node_modules/coveralls/test/getOptions.js +403 -0
  656. package/plugins/eslint/node_modules/coveralls/test/handleInput.js +78 -0
  657. package/plugins/eslint/node_modules/coveralls/test/logger.js +32 -0
  658. package/plugins/eslint/node_modules/coveralls/test/sendToCoveralls.js +27 -0
  659. package/plugins/eslint/node_modules/dateformat/.travis.yml +4 -0
  660. package/plugins/eslint/node_modules/dateformat/LICENSE +20 -0
  661. package/plugins/eslint/node_modules/dateformat/Readme.md +82 -0
  662. package/plugins/eslint/node_modules/dateformat/lib/dateformat.js +226 -0
  663. package/plugins/eslint/node_modules/dateformat/package.json +36 -0
  664. package/plugins/eslint/node_modules/dateformat/test/test_dayofweek.js +15 -0
  665. package/plugins/eslint/node_modules/dateformat/test/test_formats.js +76 -0
  666. package/plugins/eslint/node_modules/dateformat/test/test_isoutcdatetime.js +11 -0
  667. package/plugins/eslint/node_modules/dateformat/test/weekofyear/test_weekofyear.js +4 -0
  668. package/plugins/eslint/node_modules/dateformat/test/weekofyear/test_weekofyear.sh +27 -0
  669. package/plugins/eslint/node_modules/debug/.jshintrc +3 -0
  670. package/plugins/eslint/node_modules/debug/History.md +195 -0
  671. package/plugins/eslint/node_modules/debug/Makefile +36 -0
  672. package/plugins/eslint/node_modules/debug/Readme.md +188 -0
  673. package/plugins/eslint/node_modules/debug/bower.json +28 -0
  674. package/plugins/eslint/node_modules/debug/browser.js +168 -0
  675. package/plugins/eslint/node_modules/debug/component.json +19 -0
  676. package/plugins/eslint/node_modules/debug/debug.js +197 -0
  677. package/plugins/eslint/node_modules/debug/node.js +209 -0
  678. package/plugins/eslint/node_modules/debug/package.json +34 -0
  679. package/plugins/eslint/node_modules/decamelize/index.js +13 -0
  680. package/plugins/eslint/node_modules/decamelize/license +21 -0
  681. package/plugins/eslint/node_modules/decamelize/package.json +38 -0
  682. package/plugins/eslint/node_modules/decamelize/readme.md +48 -0
  683. package/plugins/eslint/node_modules/deep-eql/History.md +28 -0
  684. package/plugins/eslint/node_modules/deep-eql/README.md +52 -0
  685. package/plugins/eslint/node_modules/deep-eql/index.js +1 -0
  686. package/plugins/eslint/node_modules/deep-eql/karma.conf.js +20 -0
  687. package/plugins/eslint/node_modules/deep-eql/lib/eql.js +257 -0
  688. package/plugins/eslint/node_modules/deep-eql/package.json +37 -0
  689. package/plugins/eslint/node_modules/delayed-stream/License +19 -0
  690. package/plugins/eslint/node_modules/delayed-stream/Makefile +7 -0
  691. package/plugins/eslint/node_modules/delayed-stream/Readme.md +154 -0
  692. package/plugins/eslint/node_modules/delayed-stream/lib/delayed_stream.js +99 -0
  693. package/plugins/eslint/node_modules/delayed-stream/package.json +20 -0
  694. package/plugins/eslint/node_modules/delayed-stream/test/common.js +6 -0
  695. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js +38 -0
  696. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js +21 -0
  697. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js +14 -0
  698. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-delayed-stream.js +48 -0
  699. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-handle-source-errors.js +15 -0
  700. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-max-data-size.js +18 -0
  701. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-pipe-resumes.js +13 -0
  702. package/plugins/eslint/node_modules/delayed-stream/test/integration/test-proxy-readable.js +13 -0
  703. package/plugins/eslint/node_modules/delayed-stream/test/run.js +7 -0
  704. package/plugins/eslint/node_modules/diff/README.md +181 -0
  705. package/plugins/eslint/node_modules/diff/diff.js +619 -0
  706. package/plugins/eslint/node_modules/diff/package.json +44 -0
  707. package/plugins/eslint/node_modules/doctrine/.jshintrc +28 -0
  708. package/plugins/eslint/node_modules/doctrine/.scripted +6 -0
  709. package/plugins/eslint/node_modules/doctrine/.travis.yml +7 -0
  710. package/plugins/eslint/node_modules/doctrine/CONTRIBUTING.md +5 -0
  711. package/plugins/eslint/node_modules/doctrine/LICENSE.BSD +19 -0
  712. package/plugins/eslint/node_modules/doctrine/LICENSE.closure-compiler +202 -0
  713. package/plugins/eslint/node_modules/doctrine/LICENSE.esprima +19 -0
  714. package/plugins/eslint/node_modules/doctrine/README.md +176 -0
  715. package/plugins/eslint/node_modules/doctrine/coverage/coverage-final.json +2 -0
  716. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/base.css +182 -0
  717. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/index.html +72 -0
  718. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/prettify.css +1 -0
  719. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/prettify.js +1 -0
  720. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  721. package/plugins/eslint/node_modules/doctrine/coverage/lcov-report/sorter.js +156 -0
  722. package/plugins/eslint/node_modules/doctrine/coverage/lcov.info +0 -0
  723. package/plugins/eslint/node_modules/doctrine/eslint.json +22 -0
  724. package/plugins/eslint/node_modules/doctrine/gulpfile.js +120 -0
  725. package/plugins/eslint/node_modules/doctrine/lib/doctrine.js +809 -0
  726. package/plugins/eslint/node_modules/doctrine/lib/typed.js +1261 -0
  727. package/plugins/eslint/node_modules/doctrine/lib/utility.js +54 -0
  728. package/plugins/eslint/node_modules/doctrine/package.json +54 -0
  729. package/plugins/eslint/node_modules/doctrine/test/midstream.js +61 -0
  730. package/plugins/eslint/node_modules/doctrine/test/parse.js +2219 -0
  731. package/plugins/eslint/node_modules/doctrine/test/strict.js +168 -0
  732. package/plugins/eslint/node_modules/doctrine/test/stringify.js +413 -0
  733. package/plugins/eslint/node_modules/doctrine/test/test.html +31 -0
  734. package/plugins/eslint/node_modules/doctrine/test/unwrap.js +60 -0
  735. package/plugins/eslint/node_modules/escodegen/LICENSE.BSD +19 -0
  736. package/plugins/eslint/node_modules/escodegen/LICENSE.source-map +27 -0
  737. package/plugins/eslint/node_modules/escodegen/README.md +116 -0
  738. package/plugins/eslint/node_modules/escodegen/escodegen.js +2578 -0
  739. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/ChangeLog +77 -0
  740. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/LICENSE.BSD +19 -0
  741. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/README.md +24 -0
  742. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/esprima.js +3772 -0
  743. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/package.json +83 -0
  744. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/compat.js +241 -0
  745. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/reflect.js +422 -0
  746. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/run.js +67 -0
  747. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/runner.js +495 -0
  748. package/plugins/eslint/node_modules/escodegen/node_modules/esprima/test/test.js +25593 -0
  749. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/.editorconfig +10 -0
  750. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/.jshintrc +16 -0
  751. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/LICENSE.BSD +19 -0
  752. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/README.md +124 -0
  753. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/estraverse.js +845 -0
  754. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/gulpfile.js +70 -0
  755. package/plugins/eslint/node_modules/escodegen/node_modules/estraverse/package.json +43 -0
  756. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/LICENSE.BSD +19 -0
  757. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/README.md +174 -0
  758. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/lib/ast.js +144 -0
  759. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/lib/code.js +135 -0
  760. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/lib/keyword.js +165 -0
  761. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/lib/utils.js +33 -0
  762. package/plugins/eslint/node_modules/escodegen/node_modules/esutils/package.json +44 -0
  763. package/plugins/eslint/node_modules/escodegen/package.json +62 -0
  764. package/plugins/eslint/node_modules/espree/README.md +232 -0
  765. package/plugins/eslint/node_modules/espree/espree.js +5533 -0
  766. package/plugins/eslint/node_modules/espree/lib/ast-node-factory.js +964 -0
  767. package/plugins/eslint/node_modules/espree/lib/ast-node-types.js +119 -0
  768. package/plugins/eslint/node_modules/espree/lib/comment-attachment.js +183 -0
  769. package/plugins/eslint/node_modules/espree/lib/features.js +117 -0
  770. package/plugins/eslint/node_modules/espree/lib/messages.js +99 -0
  771. package/plugins/eslint/node_modules/espree/lib/string-map.js +55 -0
  772. package/plugins/eslint/node_modules/espree/lib/syntax.js +189 -0
  773. package/plugins/eslint/node_modules/espree/lib/token-info.js +90 -0
  774. package/plugins/eslint/node_modules/espree/lib/xhtml-entities.js +293 -0
  775. package/plugins/eslint/node_modules/espree/package.json +83 -0
  776. package/plugins/eslint/node_modules/espree/test/compat.js +255 -0
  777. package/plugins/eslint/node_modules/espree/test/reflect.js +422 -0
  778. package/plugins/eslint/node_modules/espree/test/run.js +68 -0
  779. package/plugins/eslint/node_modules/espree/test/runner.js +492 -0
  780. package/plugins/eslint/node_modules/espree/test/test.js +34 -0
  781. package/plugins/eslint/node_modules/esprima/ChangeLog +174 -0
  782. package/plugins/eslint/node_modules/esprima/LICENSE.BSD +21 -0
  783. package/plugins/eslint/node_modules/esprima/README.md +27 -0
  784. package/plugins/eslint/node_modules/esprima/esprima.js +5740 -0
  785. package/plugins/eslint/node_modules/esprima/package.json +99 -0
  786. package/plugins/eslint/node_modules/esutils/LICENSE.BSD +19 -0
  787. package/plugins/eslint/node_modules/esutils/README.md +169 -0
  788. package/plugins/eslint/node_modules/esutils/lib/ast.js +144 -0
  789. package/plugins/eslint/node_modules/esutils/lib/code.js +101 -0
  790. package/plugins/eslint/node_modules/esutils/lib/keyword.js +137 -0
  791. package/plugins/eslint/node_modules/esutils/lib/utils.js +33 -0
  792. package/plugins/eslint/node_modules/esutils/package.json +49 -0
  793. package/plugins/eslint/node_modules/fast-levenshtein/LICENSE.md +25 -0
  794. package/plugins/eslint/node_modules/fast-levenshtein/README.md +120 -0
  795. package/plugins/eslint/node_modules/fast-levenshtein/levenshtein.js +198 -0
  796. package/plugins/eslint/node_modules/fast-levenshtein/package.json +36 -0
  797. package/plugins/eslint/node_modules/figures/index.js +147 -0
  798. package/plugins/eslint/node_modules/figures/license +21 -0
  799. package/plugins/eslint/node_modules/figures/node_modules/object-assign/index.js +90 -0
  800. package/plugins/eslint/node_modules/figures/node_modules/object-assign/license +21 -0
  801. package/plugins/eslint/node_modules/figures/node_modules/object-assign/package.json +42 -0
  802. package/plugins/eslint/node_modules/figures/node_modules/object-assign/readme.md +61 -0
  803. package/plugins/eslint/node_modules/figures/package.json +45 -0
  804. package/plugins/eslint/node_modules/figures/readme.md +115 -0
  805. package/plugins/eslint/node_modules/forever-agent/LICENSE +55 -0
  806. package/plugins/eslint/node_modules/forever-agent/README.md +4 -0
  807. package/plugins/eslint/node_modules/forever-agent/index.js +119 -0
  808. package/plugins/eslint/node_modules/forever-agent/package.json +16 -0
  809. package/plugins/eslint/node_modules/form-data/License +19 -0
  810. package/plugins/eslint/node_modules/form-data/Readme.md +175 -0
  811. package/plugins/eslint/node_modules/form-data/lib/form_data.js +351 -0
  812. package/plugins/eslint/node_modules/form-data/node_modules/async/.travis.yml +5 -0
  813. package/plugins/eslint/node_modules/form-data/node_modules/async/LICENSE +19 -0
  814. package/plugins/eslint/node_modules/form-data/node_modules/async/README.md +1647 -0
  815. package/plugins/eslint/node_modules/form-data/node_modules/async/bower.json +38 -0
  816. package/plugins/eslint/node_modules/form-data/node_modules/async/component.json +16 -0
  817. package/plugins/eslint/node_modules/form-data/node_modules/async/lib/async.js +1123 -0
  818. package/plugins/eslint/node_modules/form-data/node_modules/async/package.json +54 -0
  819. package/plugins/eslint/node_modules/form-data/node_modules/async/support/sync-package-managers.js +53 -0
  820. package/plugins/eslint/node_modules/form-data/package.json +34 -0
  821. package/plugins/eslint/node_modules/glob/.travis.yml +3 -0
  822. package/plugins/eslint/node_modules/glob/LICENSE +27 -0
  823. package/plugins/eslint/node_modules/glob/README.md +250 -0
  824. package/plugins/eslint/node_modules/glob/examples/g.js +9 -0
  825. package/plugins/eslint/node_modules/glob/examples/usr-local.js +9 -0
  826. package/plugins/eslint/node_modules/glob/glob.js +728 -0
  827. package/plugins/eslint/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
  828. package/plugins/eslint/node_modules/glob/node_modules/minimatch/README.md +218 -0
  829. package/plugins/eslint/node_modules/glob/node_modules/minimatch/minimatch.js +1061 -0
  830. package/plugins/eslint/node_modules/glob/node_modules/minimatch/package.json +28 -0
  831. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
  832. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/brace-expand.js +33 -0
  833. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/caching.js +14 -0
  834. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
  835. package/plugins/eslint/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  836. package/plugins/eslint/node_modules/glob/package.json +28 -0
  837. package/plugins/eslint/node_modules/glob/test/00-setup.js +176 -0
  838. package/plugins/eslint/node_modules/glob/test/bash-comparison.js +63 -0
  839. package/plugins/eslint/node_modules/glob/test/bash-results.json +351 -0
  840. package/plugins/eslint/node_modules/glob/test/cwd-test.js +55 -0
  841. package/plugins/eslint/node_modules/glob/test/globstar-match.js +19 -0
  842. package/plugins/eslint/node_modules/glob/test/mark.js +118 -0
  843. package/plugins/eslint/node_modules/glob/test/new-glob-optional-options.js +10 -0
  844. package/plugins/eslint/node_modules/glob/test/nocase-nomagic.js +113 -0
  845. package/plugins/eslint/node_modules/glob/test/pause-resume.js +73 -0
  846. package/plugins/eslint/node_modules/glob/test/readme-issue.js +36 -0
  847. package/plugins/eslint/node_modules/glob/test/root-nomount.js +39 -0
  848. package/plugins/eslint/node_modules/glob/test/root.js +46 -0
  849. package/plugins/eslint/node_modules/glob/test/stat.js +32 -0
  850. package/plugins/eslint/node_modules/glob/test/zz-cleanup.js +11 -0
  851. package/plugins/eslint/node_modules/globals/globals.json +1245 -0
  852. package/plugins/eslint/node_modules/globals/index.js +1 -0
  853. package/plugins/eslint/node_modules/globals/license +21 -0
  854. package/plugins/eslint/node_modules/globals/package.json +35 -0
  855. package/plugins/eslint/node_modules/globals/readme.md +39 -0
  856. package/plugins/eslint/node_modules/growl/History.md +63 -0
  857. package/plugins/eslint/node_modules/growl/Readme.md +108 -0
  858. package/plugins/eslint/node_modules/growl/lib/growl.js +290 -0
  859. package/plugins/eslint/node_modules/growl/package.json +15 -0
  860. package/plugins/eslint/node_modules/growl/test.js +31 -0
  861. package/plugins/eslint/node_modules/has-flag/index.js +10 -0
  862. package/plugins/eslint/node_modules/has-flag/license +21 -0
  863. package/plugins/eslint/node_modules/has-flag/package.json +48 -0
  864. package/plugins/eslint/node_modules/has-flag/readme.md +64 -0
  865. package/plugins/eslint/node_modules/http-signature/.dir-locals.el +6 -0
  866. package/plugins/eslint/node_modules/http-signature/LICENSE +18 -0
  867. package/plugins/eslint/node_modules/http-signature/README.md +79 -0
  868. package/plugins/eslint/node_modules/http-signature/http_signing.md +296 -0
  869. package/plugins/eslint/node_modules/http-signature/lib/index.js +26 -0
  870. package/plugins/eslint/node_modules/http-signature/lib/parser.js +304 -0
  871. package/plugins/eslint/node_modules/http-signature/lib/signer.js +178 -0
  872. package/plugins/eslint/node_modules/http-signature/lib/util.js +304 -0
  873. package/plugins/eslint/node_modules/http-signature/lib/verify.js +42 -0
  874. package/plugins/eslint/node_modules/http-signature/package.json +37 -0
  875. package/plugins/eslint/node_modules/indent-string/index.js +20 -0
  876. package/plugins/eslint/node_modules/indent-string/license +21 -0
  877. package/plugins/eslint/node_modules/indent-string/package.json +36 -0
  878. package/plugins/eslint/node_modules/indent-string/readme.md +58 -0
  879. package/plugins/eslint/node_modules/inquirer/README.md +295 -0
  880. package/plugins/eslint/node_modules/inquirer/lib/inquirer.js +79 -0
  881. package/plugins/eslint/node_modules/inquirer/lib/objects/choice.js +44 -0
  882. package/plugins/eslint/node_modules/inquirer/lib/objects/choices.js +180 -0
  883. package/plugins/eslint/node_modules/inquirer/lib/objects/separator.js +47 -0
  884. package/plugins/eslint/node_modules/inquirer/lib/prompts/base.js +231 -0
  885. package/plugins/eslint/node_modules/inquirer/lib/prompts/checkbox.js +258 -0
  886. package/plugins/eslint/node_modules/inquirer/lib/prompts/confirm.js +105 -0
  887. package/plugins/eslint/node_modules/inquirer/lib/prompts/expand.js +258 -0
  888. package/plugins/eslint/node_modules/inquirer/lib/prompts/input.js +106 -0
  889. package/plugins/eslint/node_modules/inquirer/lib/prompts/list.js +194 -0
  890. package/plugins/eslint/node_modules/inquirer/lib/prompts/password.js +153 -0
  891. package/plugins/eslint/node_modules/inquirer/lib/prompts/rawlist.js +191 -0
  892. package/plugins/eslint/node_modules/inquirer/lib/ui/baseUI.js +83 -0
  893. package/plugins/eslint/node_modules/inquirer/lib/ui/bottom-bar.js +77 -0
  894. package/plugins/eslint/node_modules/inquirer/lib/ui/prompt.js +136 -0
  895. package/plugins/eslint/node_modules/inquirer/lib/utils/events.js +32 -0
  896. package/plugins/eslint/node_modules/inquirer/lib/utils/tty.js +130 -0
  897. package/plugins/eslint/node_modules/inquirer/lib/utils/utils.js +123 -0
  898. package/plugins/eslint/node_modules/inquirer/package.json +44 -0
  899. package/plugins/eslint/node_modules/isarray/README.md +54 -0
  900. package/plugins/eslint/node_modules/isarray/component.json +19 -0
  901. package/plugins/eslint/node_modules/isarray/index.js +3 -0
  902. package/plugins/eslint/node_modules/isarray/package.json +25 -0
  903. package/plugins/eslint/node_modules/istanbul/CHANGELOG.md +304 -0
  904. package/plugins/eslint/node_modules/istanbul/LICENSE +24 -0
  905. package/plugins/eslint/node_modules/istanbul/README.md +269 -0
  906. package/plugins/eslint/node_modules/istanbul/index.js +153 -0
  907. package/plugins/eslint/node_modules/istanbul/lib/assets/base.css +182 -0
  908. package/plugins/eslint/node_modules/istanbul/lib/assets/sort-arrow-sprite.png +0 -0
  909. package/plugins/eslint/node_modules/istanbul/lib/assets/sorter.js +156 -0
  910. package/plugins/eslint/node_modules/istanbul/lib/assets/vendor/prettify.css +1 -0
  911. package/plugins/eslint/node_modules/istanbul/lib/assets/vendor/prettify.js +1 -0
  912. package/plugins/eslint/node_modules/istanbul/lib/cli.js +94 -0
  913. package/plugins/eslint/node_modules/istanbul/lib/collector.js +122 -0
  914. package/plugins/eslint/node_modules/istanbul/lib/command/check-coverage.js +195 -0
  915. package/plugins/eslint/node_modules/istanbul/lib/command/common/run-with-cover.js +261 -0
  916. package/plugins/eslint/node_modules/istanbul/lib/command/cover.js +33 -0
  917. package/plugins/eslint/node_modules/istanbul/lib/command/help.js +102 -0
  918. package/plugins/eslint/node_modules/istanbul/lib/command/index.js +33 -0
  919. package/plugins/eslint/node_modules/istanbul/lib/command/instrument.js +261 -0
  920. package/plugins/eslint/node_modules/istanbul/lib/command/report.js +123 -0
  921. package/plugins/eslint/node_modules/istanbul/lib/command/test.js +31 -0
  922. package/plugins/eslint/node_modules/istanbul/lib/config.js +483 -0
  923. package/plugins/eslint/node_modules/istanbul/lib/hook.js +198 -0
  924. package/plugins/eslint/node_modules/istanbul/lib/instrumenter.js +1040 -0
  925. package/plugins/eslint/node_modules/istanbul/lib/object-utils.js +425 -0
  926. package/plugins/eslint/node_modules/istanbul/lib/register-plugins.js +15 -0
  927. package/plugins/eslint/node_modules/istanbul/lib/report/clover.js +227 -0
  928. package/plugins/eslint/node_modules/istanbul/lib/report/cobertura.js +221 -0
  929. package/plugins/eslint/node_modules/istanbul/lib/report/common/defaults.js +49 -0
  930. package/plugins/eslint/node_modules/istanbul/lib/report/html.js +567 -0
  931. package/plugins/eslint/node_modules/istanbul/lib/report/index.js +104 -0
  932. package/plugins/eslint/node_modules/istanbul/lib/report/json-summary.js +75 -0
  933. package/plugins/eslint/node_modules/istanbul/lib/report/json.js +69 -0
  934. package/plugins/eslint/node_modules/istanbul/lib/report/lcov.js +65 -0
  935. package/plugins/eslint/node_modules/istanbul/lib/report/lcovonly.js +103 -0
  936. package/plugins/eslint/node_modules/istanbul/lib/report/none.js +41 -0
  937. package/plugins/eslint/node_modules/istanbul/lib/report/teamcity.js +92 -0
  938. package/plugins/eslint/node_modules/istanbul/lib/report/templates/foot.txt +18 -0
  939. package/plugins/eslint/node_modules/istanbul/lib/report/templates/head.txt +36 -0
  940. package/plugins/eslint/node_modules/istanbul/lib/report/text-lcov.js +50 -0
  941. package/plugins/eslint/node_modules/istanbul/lib/report/text-summary.js +93 -0
  942. package/plugins/eslint/node_modules/istanbul/lib/report/text.js +234 -0
  943. package/plugins/eslint/node_modules/istanbul/lib/reporter.js +111 -0
  944. package/plugins/eslint/node_modules/istanbul/lib/store/fslookup.js +61 -0
  945. package/plugins/eslint/node_modules/istanbul/lib/store/index.js +123 -0
  946. package/plugins/eslint/node_modules/istanbul/lib/store/memory.js +56 -0
  947. package/plugins/eslint/node_modules/istanbul/lib/store/tmp.js +81 -0
  948. package/plugins/eslint/node_modules/istanbul/lib/util/factory.js +88 -0
  949. package/plugins/eslint/node_modules/istanbul/lib/util/file-matcher.js +76 -0
  950. package/plugins/eslint/node_modules/istanbul/lib/util/file-writer.js +154 -0
  951. package/plugins/eslint/node_modules/istanbul/lib/util/help-formatter.js +30 -0
  952. package/plugins/eslint/node_modules/istanbul/lib/util/input-error.js +12 -0
  953. package/plugins/eslint/node_modules/istanbul/lib/util/insertion-text.js +109 -0
  954. package/plugins/eslint/node_modules/istanbul/lib/util/meta.js +13 -0
  955. package/plugins/eslint/node_modules/istanbul/lib/util/tree-summarizer.js +213 -0
  956. package/plugins/eslint/node_modules/istanbul/lib/util/writer.js +92 -0
  957. package/plugins/eslint/node_modules/istanbul/lib/util/yui-load-hook.js +49 -0
  958. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/ChangeLog +143 -0
  959. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/LICENSE.BSD +21 -0
  960. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/README.md +22 -0
  961. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/esprima.js +5637 -0
  962. package/plugins/eslint/node_modules/istanbul/node_modules/esprima/package.json +87 -0
  963. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/browser.js +2 -0
  964. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/index.js +84 -0
  965. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/license +21 -0
  966. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/package.json +66 -0
  967. package/plugins/eslint/node_modules/istanbul/node_modules/supports-color/readme.md +60 -0
  968. package/plugins/eslint/node_modules/istanbul/package.json +117 -0
  969. package/plugins/eslint/node_modules/js-yaml/CHANGELOG.md +557 -0
  970. package/plugins/eslint/node_modules/js-yaml/LICENSE +21 -0
  971. package/plugins/eslint/node_modules/js-yaml/README.md +299 -0
  972. package/plugins/eslint/node_modules/js-yaml/dist/js-yaml.js +3989 -0
  973. package/plugins/eslint/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
  974. package/plugins/eslint/node_modules/js-yaml/index.js +7 -0
  975. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
  976. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
  977. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
  978. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/loader.js +1644 -0
  979. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
  980. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  981. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  982. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  983. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  984. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  985. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
  986. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
  987. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
  988. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
  989. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
  990. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
  991. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
  992. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
  993. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  994. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  995. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
  996. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
  997. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
  998. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  999. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
  1000. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  1001. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
  1002. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  1003. package/plugins/eslint/node_modules/js-yaml/lib/js-yaml.js +39 -0
  1004. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/ChangeLog +235 -0
  1005. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD +21 -0
  1006. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/README.md +46 -0
  1007. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/dist/esprima.js +6709 -0
  1008. package/plugins/eslint/node_modules/js-yaml/node_modules/esprima/package.json +112 -0
  1009. package/plugins/eslint/node_modules/js-yaml/package.json +49 -0
  1010. package/plugins/eslint/node_modules/lcov-parse/.travis.yml +5 -0
  1011. package/plugins/eslint/node_modules/lcov-parse/LICENSE +25 -0
  1012. package/plugins/eslint/node_modules/lcov-parse/README.md +79 -0
  1013. package/plugins/eslint/node_modules/lcov-parse/lib/index.js +122 -0
  1014. package/plugins/eslint/node_modules/lcov-parse/package.json +39 -0
  1015. package/plugins/eslint/node_modules/lcov-parse/tests/info/parts.info +415 -0
  1016. package/plugins/eslint/node_modules/lcov-parse/tests/parse.js +115 -0
  1017. package/plugins/eslint/node_modules/levn/LICENSE +22 -0
  1018. package/plugins/eslint/node_modules/levn/README.md +195 -0
  1019. package/plugins/eslint/node_modules/levn/lib/cast.js +298 -0
  1020. package/plugins/eslint/node_modules/levn/lib/coerce.js +285 -0
  1021. package/plugins/eslint/node_modules/levn/lib/index.js +22 -0
  1022. package/plugins/eslint/node_modules/levn/lib/parse-string.js +113 -0
  1023. package/plugins/eslint/node_modules/levn/lib/parse.js +102 -0
  1024. package/plugins/eslint/node_modules/levn/package.json +52 -0
  1025. package/plugins/eslint/node_modules/lodash/LICENSE +22 -0
  1026. package/plugins/eslint/node_modules/lodash/README.md +121 -0
  1027. package/plugins/eslint/node_modules/lodash/array/chunk.js +46 -0
  1028. package/plugins/eslint/node_modules/lodash/array/compact.js +30 -0
  1029. package/plugins/eslint/node_modules/lodash/array/difference.js +29 -0
  1030. package/plugins/eslint/node_modules/lodash/array/drop.js +39 -0
  1031. package/plugins/eslint/node_modules/lodash/array/dropRight.js +40 -0
  1032. package/plugins/eslint/node_modules/lodash/array/dropRightWhile.js +59 -0
  1033. package/plugins/eslint/node_modules/lodash/array/dropWhile.js +59 -0
  1034. package/plugins/eslint/node_modules/lodash/array/fill.js +44 -0
  1035. package/plugins/eslint/node_modules/lodash/array/findIndex.js +53 -0
  1036. package/plugins/eslint/node_modules/lodash/array/findLastIndex.js +53 -0
  1037. package/plugins/eslint/node_modules/lodash/array/first.js +22 -0
  1038. package/plugins/eslint/node_modules/lodash/array/flatten.js +32 -0
  1039. package/plugins/eslint/node_modules/lodash/array/flattenDeep.js +21 -0
  1040. package/plugins/eslint/node_modules/lodash/array/head.js +1 -0
  1041. package/plugins/eslint/node_modules/lodash/array/indexOf.js +53 -0
  1042. package/plugins/eslint/node_modules/lodash/array/initial.js +20 -0
  1043. package/plugins/eslint/node_modules/lodash/array/intersection.js +58 -0
  1044. package/plugins/eslint/node_modules/lodash/array/last.js +19 -0
  1045. package/plugins/eslint/node_modules/lodash/array/lastIndexOf.js +60 -0
  1046. package/plugins/eslint/node_modules/lodash/array/object.js +1 -0
  1047. package/plugins/eslint/node_modules/lodash/array/pull.js +52 -0
  1048. package/plugins/eslint/node_modules/lodash/array/pullAt.js +40 -0
  1049. package/plugins/eslint/node_modules/lodash/array/remove.js +64 -0
  1050. package/plugins/eslint/node_modules/lodash/array/rest.js +21 -0
  1051. package/plugins/eslint/node_modules/lodash/array/slice.js +30 -0
  1052. package/plugins/eslint/node_modules/lodash/array/sortedIndex.js +53 -0
  1053. package/plugins/eslint/node_modules/lodash/array/sortedLastIndex.js +25 -0
  1054. package/plugins/eslint/node_modules/lodash/array/tail.js +1 -0
  1055. package/plugins/eslint/node_modules/lodash/array/take.js +39 -0
  1056. package/plugins/eslint/node_modules/lodash/array/takeRight.js +40 -0
  1057. package/plugins/eslint/node_modules/lodash/array/takeRightWhile.js +59 -0
  1058. package/plugins/eslint/node_modules/lodash/array/takeWhile.js +59 -0
  1059. package/plugins/eslint/node_modules/lodash/array/union.js +24 -0
  1060. package/plugins/eslint/node_modules/lodash/array/uniq.js +71 -0
  1061. package/plugins/eslint/node_modules/lodash/array/unique.js +1 -0
  1062. package/plugins/eslint/node_modules/lodash/array/unzip.js +47 -0
  1063. package/plugins/eslint/node_modules/lodash/array/unzipWith.js +41 -0
  1064. package/plugins/eslint/node_modules/lodash/array/without.js +27 -0
  1065. package/plugins/eslint/node_modules/lodash/array/xor.js +35 -0
  1066. package/plugins/eslint/node_modules/lodash/array/zip.js +21 -0
  1067. package/plugins/eslint/node_modules/lodash/array/zipObject.js +43 -0
  1068. package/plugins/eslint/node_modules/lodash/array/zipWith.js +36 -0
  1069. package/plugins/eslint/node_modules/lodash/array.js +44 -0
  1070. package/plugins/eslint/node_modules/lodash/chain/chain.js +35 -0
  1071. package/plugins/eslint/node_modules/lodash/chain/commit.js +1 -0
  1072. package/plugins/eslint/node_modules/lodash/chain/concat.js +1 -0
  1073. package/plugins/eslint/node_modules/lodash/chain/lodash.js +125 -0
  1074. package/plugins/eslint/node_modules/lodash/chain/plant.js +1 -0
  1075. package/plugins/eslint/node_modules/lodash/chain/reverse.js +1 -0
  1076. package/plugins/eslint/node_modules/lodash/chain/run.js +1 -0
  1077. package/plugins/eslint/node_modules/lodash/chain/tap.js +29 -0
  1078. package/plugins/eslint/node_modules/lodash/chain/thru.js +26 -0
  1079. package/plugins/eslint/node_modules/lodash/chain/toJSON.js +1 -0
  1080. package/plugins/eslint/node_modules/lodash/chain/toString.js +1 -0
  1081. package/plugins/eslint/node_modules/lodash/chain/value.js +1 -0
  1082. package/plugins/eslint/node_modules/lodash/chain/valueOf.js +1 -0
  1083. package/plugins/eslint/node_modules/lodash/chain/wrapperChain.js +32 -0
  1084. package/plugins/eslint/node_modules/lodash/chain/wrapperCommit.js +32 -0
  1085. package/plugins/eslint/node_modules/lodash/chain/wrapperConcat.js +34 -0
  1086. package/plugins/eslint/node_modules/lodash/chain/wrapperPlant.js +45 -0
  1087. package/plugins/eslint/node_modules/lodash/chain/wrapperReverse.js +43 -0
  1088. package/plugins/eslint/node_modules/lodash/chain/wrapperToString.js +17 -0
  1089. package/plugins/eslint/node_modules/lodash/chain/wrapperValue.js +20 -0
  1090. package/plugins/eslint/node_modules/lodash/chain.js +16 -0
  1091. package/plugins/eslint/node_modules/lodash/collection/all.js +1 -0
  1092. package/plugins/eslint/node_modules/lodash/collection/any.js +1 -0
  1093. package/plugins/eslint/node_modules/lodash/collection/at.js +29 -0
  1094. package/plugins/eslint/node_modules/lodash/collection/collect.js +1 -0
  1095. package/plugins/eslint/node_modules/lodash/collection/contains.js +1 -0
  1096. package/plugins/eslint/node_modules/lodash/collection/countBy.js +54 -0
  1097. package/plugins/eslint/node_modules/lodash/collection/detect.js +1 -0
  1098. package/plugins/eslint/node_modules/lodash/collection/each.js +1 -0
  1099. package/plugins/eslint/node_modules/lodash/collection/eachRight.js +1 -0
  1100. package/plugins/eslint/node_modules/lodash/collection/every.js +66 -0
  1101. package/plugins/eslint/node_modules/lodash/collection/filter.js +61 -0
  1102. package/plugins/eslint/node_modules/lodash/collection/find.js +56 -0
  1103. package/plugins/eslint/node_modules/lodash/collection/findLast.js +25 -0
  1104. package/plugins/eslint/node_modules/lodash/collection/findWhere.js +37 -0
  1105. package/plugins/eslint/node_modules/lodash/collection/foldl.js +1 -0
  1106. package/plugins/eslint/node_modules/lodash/collection/foldr.js +1 -0
  1107. package/plugins/eslint/node_modules/lodash/collection/forEach.js +37 -0
  1108. package/plugins/eslint/node_modules/lodash/collection/forEachRight.js +26 -0
  1109. package/plugins/eslint/node_modules/lodash/collection/groupBy.js +59 -0
  1110. package/plugins/eslint/node_modules/lodash/collection/include.js +1 -0
  1111. package/plugins/eslint/node_modules/lodash/collection/includes.js +57 -0
  1112. package/plugins/eslint/node_modules/lodash/collection/indexBy.js +53 -0
  1113. package/plugins/eslint/node_modules/lodash/collection/inject.js +1 -0
  1114. package/plugins/eslint/node_modules/lodash/collection/invoke.js +42 -0
  1115. package/plugins/eslint/node_modules/lodash/collection/map.js +68 -0
  1116. package/plugins/eslint/node_modules/lodash/collection/max.js +1 -0
  1117. package/plugins/eslint/node_modules/lodash/collection/min.js +1 -0
  1118. package/plugins/eslint/node_modules/lodash/collection/partition.js +66 -0
  1119. package/plugins/eslint/node_modules/lodash/collection/pluck.js +31 -0
  1120. package/plugins/eslint/node_modules/lodash/collection/reduce.js +44 -0
  1121. package/plugins/eslint/node_modules/lodash/collection/reduceRight.js +29 -0
  1122. package/plugins/eslint/node_modules/lodash/collection/reject.js +50 -0
  1123. package/plugins/eslint/node_modules/lodash/collection/sample.js +50 -0
  1124. package/plugins/eslint/node_modules/lodash/collection/select.js +1 -0
  1125. package/plugins/eslint/node_modules/lodash/collection/shuffle.js +24 -0
  1126. package/plugins/eslint/node_modules/lodash/collection/size.js +30 -0
  1127. package/plugins/eslint/node_modules/lodash/collection/some.js +67 -0
  1128. package/plugins/eslint/node_modules/lodash/collection/sortBy.js +71 -0
  1129. package/plugins/eslint/node_modules/lodash/collection/sortByAll.js +52 -0
  1130. package/plugins/eslint/node_modules/lodash/collection/sortByOrder.js +55 -0
  1131. package/plugins/eslint/node_modules/lodash/collection/sum.js +1 -0
  1132. package/plugins/eslint/node_modules/lodash/collection/where.js +37 -0
  1133. package/plugins/eslint/node_modules/lodash/collection.js +44 -0
  1134. package/plugins/eslint/node_modules/lodash/date/now.js +24 -0
  1135. package/plugins/eslint/node_modules/lodash/date.js +3 -0
  1136. package/plugins/eslint/node_modules/lodash/function/after.js +48 -0
  1137. package/plugins/eslint/node_modules/lodash/function/ary.js +34 -0
  1138. package/plugins/eslint/node_modules/lodash/function/backflow.js +1 -0
  1139. package/plugins/eslint/node_modules/lodash/function/before.js +42 -0
  1140. package/plugins/eslint/node_modules/lodash/function/bind.js +56 -0
  1141. package/plugins/eslint/node_modules/lodash/function/bindAll.js +50 -0
  1142. package/plugins/eslint/node_modules/lodash/function/bindKey.js +66 -0
  1143. package/plugins/eslint/node_modules/lodash/function/compose.js +1 -0
  1144. package/plugins/eslint/node_modules/lodash/function/curry.js +51 -0
  1145. package/plugins/eslint/node_modules/lodash/function/curryRight.js +48 -0
  1146. package/plugins/eslint/node_modules/lodash/function/debounce.js +181 -0
  1147. package/plugins/eslint/node_modules/lodash/function/defer.js +25 -0
  1148. package/plugins/eslint/node_modules/lodash/function/delay.js +26 -0
  1149. package/plugins/eslint/node_modules/lodash/function/flow.js +25 -0
  1150. package/plugins/eslint/node_modules/lodash/function/flowRight.js +25 -0
  1151. package/plugins/eslint/node_modules/lodash/function/memoize.js +80 -0
  1152. package/plugins/eslint/node_modules/lodash/function/modArgs.js +58 -0
  1153. package/plugins/eslint/node_modules/lodash/function/negate.js +32 -0
  1154. package/plugins/eslint/node_modules/lodash/function/once.js +24 -0
  1155. package/plugins/eslint/node_modules/lodash/function/partial.js +43 -0
  1156. package/plugins/eslint/node_modules/lodash/function/partialRight.js +42 -0
  1157. package/plugins/eslint/node_modules/lodash/function/rearg.js +40 -0
  1158. package/plugins/eslint/node_modules/lodash/function/restParam.js +58 -0
  1159. package/plugins/eslint/node_modules/lodash/function/spread.js +44 -0
  1160. package/plugins/eslint/node_modules/lodash/function/throttle.js +62 -0
  1161. package/plugins/eslint/node_modules/lodash/function/wrap.js +33 -0
  1162. package/plugins/eslint/node_modules/lodash/function.js +28 -0
  1163. package/plugins/eslint/node_modules/lodash/index.js +12351 -0
  1164. package/plugins/eslint/node_modules/lodash/internal/LazyWrapper.js +26 -0
  1165. package/plugins/eslint/node_modules/lodash/internal/LodashWrapper.js +21 -0
  1166. package/plugins/eslint/node_modules/lodash/internal/MapCache.js +24 -0
  1167. package/plugins/eslint/node_modules/lodash/internal/SetCache.js +29 -0
  1168. package/plugins/eslint/node_modules/lodash/internal/arrayConcat.js +25 -0
  1169. package/plugins/eslint/node_modules/lodash/internal/arrayCopy.js +20 -0
  1170. package/plugins/eslint/node_modules/lodash/internal/arrayEach.js +22 -0
  1171. package/plugins/eslint/node_modules/lodash/internal/arrayEachRight.js +21 -0
  1172. package/plugins/eslint/node_modules/lodash/internal/arrayEvery.js +23 -0
  1173. package/plugins/eslint/node_modules/lodash/internal/arrayExtremum.js +30 -0
  1174. package/plugins/eslint/node_modules/lodash/internal/arrayFilter.js +25 -0
  1175. package/plugins/eslint/node_modules/lodash/internal/arrayMap.js +21 -0
  1176. package/plugins/eslint/node_modules/lodash/internal/arrayPush.js +20 -0
  1177. package/plugins/eslint/node_modules/lodash/internal/arrayReduce.js +26 -0
  1178. package/plugins/eslint/node_modules/lodash/internal/arrayReduceRight.js +24 -0
  1179. package/plugins/eslint/node_modules/lodash/internal/arraySome.js +23 -0
  1180. package/plugins/eslint/node_modules/lodash/internal/arraySum.js +20 -0
  1181. package/plugins/eslint/node_modules/lodash/internal/assignDefaults.js +13 -0
  1182. package/plugins/eslint/node_modules/lodash/internal/assignOwnDefaults.js +26 -0
  1183. package/plugins/eslint/node_modules/lodash/internal/assignWith.js +32 -0
  1184. package/plugins/eslint/node_modules/lodash/internal/baseAssign.js +19 -0
  1185. package/plugins/eslint/node_modules/lodash/internal/baseAt.js +32 -0
  1186. package/plugins/eslint/node_modules/lodash/internal/baseCallback.js +35 -0
  1187. package/plugins/eslint/node_modules/lodash/internal/baseClone.js +128 -0
  1188. package/plugins/eslint/node_modules/lodash/internal/baseCompareAscending.js +34 -0
  1189. package/plugins/eslint/node_modules/lodash/internal/baseCopy.js +23 -0
  1190. package/plugins/eslint/node_modules/lodash/internal/baseCreate.js +23 -0
  1191. package/plugins/eslint/node_modules/lodash/internal/baseDelay.js +21 -0
  1192. package/plugins/eslint/node_modules/lodash/internal/baseDifference.js +55 -0
  1193. package/plugins/eslint/node_modules/lodash/internal/baseEach.js +15 -0
  1194. package/plugins/eslint/node_modules/lodash/internal/baseEachRight.js +15 -0
  1195. package/plugins/eslint/node_modules/lodash/internal/baseEvery.js +22 -0
  1196. package/plugins/eslint/node_modules/lodash/internal/baseExtremum.js +29 -0
  1197. package/plugins/eslint/node_modules/lodash/internal/baseFill.js +31 -0
  1198. package/plugins/eslint/node_modules/lodash/internal/baseFilter.js +22 -0
  1199. package/plugins/eslint/node_modules/lodash/internal/baseFind.js +25 -0
  1200. package/plugins/eslint/node_modules/lodash/internal/baseFindIndex.js +23 -0
  1201. package/plugins/eslint/node_modules/lodash/internal/baseFlatten.js +41 -0
  1202. package/plugins/eslint/node_modules/lodash/internal/baseFor.js +17 -0
  1203. package/plugins/eslint/node_modules/lodash/internal/baseForIn.js +17 -0
  1204. package/plugins/eslint/node_modules/lodash/internal/baseForOwn.js +17 -0
  1205. package/plugins/eslint/node_modules/lodash/internal/baseForOwnRight.js +17 -0
  1206. package/plugins/eslint/node_modules/lodash/internal/baseForRight.js +15 -0
  1207. package/plugins/eslint/node_modules/lodash/internal/baseFunctions.js +27 -0
  1208. package/plugins/eslint/node_modules/lodash/internal/baseGet.js +29 -0
  1209. package/plugins/eslint/node_modules/lodash/internal/baseIndexOf.js +27 -0
  1210. package/plugins/eslint/node_modules/lodash/internal/baseIsEqual.js +28 -0
  1211. package/plugins/eslint/node_modules/lodash/internal/baseIsEqualDeep.js +102 -0
  1212. package/plugins/eslint/node_modules/lodash/internal/baseIsFunction.js +15 -0
  1213. package/plugins/eslint/node_modules/lodash/internal/baseIsMatch.js +52 -0
  1214. package/plugins/eslint/node_modules/lodash/internal/baseLodash.js +10 -0
  1215. package/plugins/eslint/node_modules/lodash/internal/baseMap.js +23 -0
  1216. package/plugins/eslint/node_modules/lodash/internal/baseMatches.js +30 -0
  1217. package/plugins/eslint/node_modules/lodash/internal/baseMatchesProperty.js +45 -0
  1218. package/plugins/eslint/node_modules/lodash/internal/baseMerge.js +56 -0
  1219. package/plugins/eslint/node_modules/lodash/internal/baseMergeDeep.js +67 -0
  1220. package/plugins/eslint/node_modules/lodash/internal/baseProperty.js +14 -0
  1221. package/plugins/eslint/node_modules/lodash/internal/basePropertyDeep.js +19 -0
  1222. package/plugins/eslint/node_modules/lodash/internal/basePullAt.js +30 -0
  1223. package/plugins/eslint/node_modules/lodash/internal/baseRandom.js +18 -0
  1224. package/plugins/eslint/node_modules/lodash/internal/baseReduce.js +24 -0
  1225. package/plugins/eslint/node_modules/lodash/internal/baseSetData.js +17 -0
  1226. package/plugins/eslint/node_modules/lodash/internal/baseSlice.js +32 -0
  1227. package/plugins/eslint/node_modules/lodash/internal/baseSome.js +23 -0
  1228. package/plugins/eslint/node_modules/lodash/internal/baseSortBy.js +21 -0
  1229. package/plugins/eslint/node_modules/lodash/internal/baseSortByOrder.js +31 -0
  1230. package/plugins/eslint/node_modules/lodash/internal/baseSum.js +20 -0
  1231. package/plugins/eslint/node_modules/lodash/internal/baseToString.js +13 -0
  1232. package/plugins/eslint/node_modules/lodash/internal/baseUniq.js +60 -0
  1233. package/plugins/eslint/node_modules/lodash/internal/baseValues.js +22 -0
  1234. package/plugins/eslint/node_modules/lodash/internal/baseWhile.js +24 -0
  1235. package/plugins/eslint/node_modules/lodash/internal/baseWrapperValue.js +29 -0
  1236. package/plugins/eslint/node_modules/lodash/internal/binaryIndex.js +39 -0
  1237. package/plugins/eslint/node_modules/lodash/internal/binaryIndexBy.js +57 -0
  1238. package/plugins/eslint/node_modules/lodash/internal/bindCallback.js +39 -0
  1239. package/plugins/eslint/node_modules/lodash/internal/bufferClone.js +20 -0
  1240. package/plugins/eslint/node_modules/lodash/internal/cacheIndexOf.js +19 -0
  1241. package/plugins/eslint/node_modules/lodash/internal/cachePush.js +20 -0
  1242. package/plugins/eslint/node_modules/lodash/internal/charsLeftIndex.js +18 -0
  1243. package/plugins/eslint/node_modules/lodash/internal/charsRightIndex.js +17 -0
  1244. package/plugins/eslint/node_modules/lodash/internal/compareAscending.js +16 -0
  1245. package/plugins/eslint/node_modules/lodash/internal/compareMultiple.js +44 -0
  1246. package/plugins/eslint/node_modules/lodash/internal/composeArgs.js +34 -0
  1247. package/plugins/eslint/node_modules/lodash/internal/composeArgsRight.js +36 -0
  1248. package/plugins/eslint/node_modules/lodash/internal/createAggregator.js +35 -0
  1249. package/plugins/eslint/node_modules/lodash/internal/createAssigner.js +41 -0
  1250. package/plugins/eslint/node_modules/lodash/internal/createBaseEach.js +31 -0
  1251. package/plugins/eslint/node_modules/lodash/internal/createBaseFor.js +27 -0
  1252. package/plugins/eslint/node_modules/lodash/internal/createBindWrapper.js +22 -0
  1253. package/plugins/eslint/node_modules/lodash/internal/createCache.js +21 -0
  1254. package/plugins/eslint/node_modules/lodash/internal/createCompounder.js +26 -0
  1255. package/plugins/eslint/node_modules/lodash/internal/createCtorWrapper.js +37 -0
  1256. package/plugins/eslint/node_modules/lodash/internal/createCurry.js +23 -0
  1257. package/plugins/eslint/node_modules/lodash/internal/createDefaults.js +22 -0
  1258. package/plugins/eslint/node_modules/lodash/internal/createExtremum.js +33 -0
  1259. package/plugins/eslint/node_modules/lodash/internal/createFind.js +25 -0
  1260. package/plugins/eslint/node_modules/lodash/internal/createFindIndex.js +21 -0
  1261. package/plugins/eslint/node_modules/lodash/internal/createFindKey.js +18 -0
  1262. package/plugins/eslint/node_modules/lodash/internal/createFlow.js +74 -0
  1263. package/plugins/eslint/node_modules/lodash/internal/createForEach.js +20 -0
  1264. package/plugins/eslint/node_modules/lodash/internal/createForIn.js +20 -0
  1265. package/plugins/eslint/node_modules/lodash/internal/createForOwn.js +19 -0
  1266. package/plugins/eslint/node_modules/lodash/internal/createHybridWrapper.js +111 -0
  1267. package/plugins/eslint/node_modules/lodash/internal/createObjectMapper.js +26 -0
  1268. package/plugins/eslint/node_modules/lodash/internal/createPadDir.js +18 -0
  1269. package/plugins/eslint/node_modules/lodash/internal/createPadding.js +29 -0
  1270. package/plugins/eslint/node_modules/lodash/internal/createPartial.js +20 -0
  1271. package/plugins/eslint/node_modules/lodash/internal/createPartialWrapper.js +43 -0
  1272. package/plugins/eslint/node_modules/lodash/internal/createReduce.js +22 -0
  1273. package/plugins/eslint/node_modules/lodash/internal/createRound.js +23 -0
  1274. package/plugins/eslint/node_modules/lodash/internal/createSortedIndex.js +20 -0
  1275. package/plugins/eslint/node_modules/lodash/internal/createWrapper.js +86 -0
  1276. package/plugins/eslint/node_modules/lodash/internal/deburrLetter.js +33 -0
  1277. package/plugins/eslint/node_modules/lodash/internal/equalArrays.js +51 -0
  1278. package/plugins/eslint/node_modules/lodash/internal/equalByTag.js +48 -0
  1279. package/plugins/eslint/node_modules/lodash/internal/equalObjects.js +67 -0
  1280. package/plugins/eslint/node_modules/lodash/internal/escapeHtmlChar.js +22 -0
  1281. package/plugins/eslint/node_modules/lodash/internal/escapeRegExpChar.js +38 -0
  1282. package/plugins/eslint/node_modules/lodash/internal/escapeStringChar.js +22 -0
  1283. package/plugins/eslint/node_modules/lodash/internal/getData.js +15 -0
  1284. package/plugins/eslint/node_modules/lodash/internal/getFuncName.js +25 -0
  1285. package/plugins/eslint/node_modules/lodash/internal/getLength.js +15 -0
  1286. package/plugins/eslint/node_modules/lodash/internal/getMatchData.js +21 -0
  1287. package/plugins/eslint/node_modules/lodash/internal/getNative.js +16 -0
  1288. package/plugins/eslint/node_modules/lodash/internal/getView.js +33 -0
  1289. package/plugins/eslint/node_modules/lodash/internal/indexOfNaN.js +23 -0
  1290. package/plugins/eslint/node_modules/lodash/internal/initCloneArray.js +26 -0
  1291. package/plugins/eslint/node_modules/lodash/internal/initCloneByTag.js +63 -0
  1292. package/plugins/eslint/node_modules/lodash/internal/initCloneObject.js +16 -0
  1293. package/plugins/eslint/node_modules/lodash/internal/invokePath.js +26 -0
  1294. package/plugins/eslint/node_modules/lodash/internal/isArrayLike.js +15 -0
  1295. package/plugins/eslint/node_modules/lodash/internal/isIndex.js +24 -0
  1296. package/plugins/eslint/node_modules/lodash/internal/isIterateeCall.js +28 -0
  1297. package/plugins/eslint/node_modules/lodash/internal/isKey.js +28 -0
  1298. package/plugins/eslint/node_modules/lodash/internal/isLaziable.js +27 -0
  1299. package/plugins/eslint/node_modules/lodash/internal/isLength.js +20 -0
  1300. package/plugins/eslint/node_modules/lodash/internal/isObjectLike.js +12 -0
  1301. package/plugins/eslint/node_modules/lodash/internal/isSpace.js +14 -0
  1302. package/plugins/eslint/node_modules/lodash/internal/isStrictComparable.js +15 -0
  1303. package/plugins/eslint/node_modules/lodash/internal/lazyClone.js +23 -0
  1304. package/plugins/eslint/node_modules/lodash/internal/lazyReverse.js +23 -0
  1305. package/plugins/eslint/node_modules/lodash/internal/lazyValue.js +72 -0
  1306. package/plugins/eslint/node_modules/lodash/internal/mapDelete.js +14 -0
  1307. package/plugins/eslint/node_modules/lodash/internal/mapGet.js +14 -0
  1308. package/plugins/eslint/node_modules/lodash/internal/mapHas.js +20 -0
  1309. package/plugins/eslint/node_modules/lodash/internal/mapSet.js +18 -0
  1310. package/plugins/eslint/node_modules/lodash/internal/mergeData.js +89 -0
  1311. package/plugins/eslint/node_modules/lodash/internal/mergeDefaults.js +15 -0
  1312. package/plugins/eslint/node_modules/lodash/internal/metaMap.js +9 -0
  1313. package/plugins/eslint/node_modules/lodash/internal/pickByArray.js +28 -0
  1314. package/plugins/eslint/node_modules/lodash/internal/pickByCallback.js +22 -0
  1315. package/plugins/eslint/node_modules/lodash/internal/reEscape.js +4 -0
  1316. package/plugins/eslint/node_modules/lodash/internal/reEvaluate.js +4 -0
  1317. package/plugins/eslint/node_modules/lodash/internal/reInterpolate.js +4 -0
  1318. package/plugins/eslint/node_modules/lodash/internal/realNames.js +4 -0
  1319. package/plugins/eslint/node_modules/lodash/internal/reorder.js +29 -0
  1320. package/plugins/eslint/node_modules/lodash/internal/replaceHolders.js +28 -0
  1321. package/plugins/eslint/node_modules/lodash/internal/setData.js +41 -0
  1322. package/plugins/eslint/node_modules/lodash/internal/shimKeys.js +41 -0
  1323. package/plugins/eslint/node_modules/lodash/internal/sortedUniq.js +29 -0
  1324. package/plugins/eslint/node_modules/lodash/internal/toIterable.js +22 -0
  1325. package/plugins/eslint/node_modules/lodash/internal/toObject.js +14 -0
  1326. package/plugins/eslint/node_modules/lodash/internal/toPath.js +28 -0
  1327. package/plugins/eslint/node_modules/lodash/internal/trimmedLeftIndex.js +19 -0
  1328. package/plugins/eslint/node_modules/lodash/internal/trimmedRightIndex.js +18 -0
  1329. package/plugins/eslint/node_modules/lodash/internal/unescapeHtmlChar.js +22 -0
  1330. package/plugins/eslint/node_modules/lodash/internal/wrapperClone.js +18 -0
  1331. package/plugins/eslint/node_modules/lodash/lang/clone.js +70 -0
  1332. package/plugins/eslint/node_modules/lodash/lang/cloneDeep.js +55 -0
  1333. package/plugins/eslint/node_modules/lodash/lang/eq.js +1 -0
  1334. package/plugins/eslint/node_modules/lodash/lang/gt.js +25 -0
  1335. package/plugins/eslint/node_modules/lodash/lang/gte.js +25 -0
  1336. package/plugins/eslint/node_modules/lodash/lang/isArguments.js +34 -0
  1337. package/plugins/eslint/node_modules/lodash/lang/isArray.js +40 -0
  1338. package/plugins/eslint/node_modules/lodash/lang/isBoolean.js +35 -0
  1339. package/plugins/eslint/node_modules/lodash/lang/isDate.js +35 -0
  1340. package/plugins/eslint/node_modules/lodash/lang/isElement.js +24 -0
  1341. package/plugins/eslint/node_modules/lodash/lang/isEmpty.js +47 -0
  1342. package/plugins/eslint/node_modules/lodash/lang/isEqual.js +54 -0
  1343. package/plugins/eslint/node_modules/lodash/lang/isError.js +36 -0
  1344. package/plugins/eslint/node_modules/lodash/lang/isFinite.js +35 -0
  1345. package/plugins/eslint/node_modules/lodash/lang/isFunction.js +38 -0
  1346. package/plugins/eslint/node_modules/lodash/lang/isMatch.js +49 -0
  1347. package/plugins/eslint/node_modules/lodash/lang/isNaN.js +34 -0
  1348. package/plugins/eslint/node_modules/lodash/lang/isNative.js +48 -0
  1349. package/plugins/eslint/node_modules/lodash/lang/isNull.js +21 -0
  1350. package/plugins/eslint/node_modules/lodash/lang/isNumber.js +41 -0
  1351. package/plugins/eslint/node_modules/lodash/lang/isObject.js +28 -0
  1352. package/plugins/eslint/node_modules/lodash/lang/isPlainObject.js +71 -0
  1353. package/plugins/eslint/node_modules/lodash/lang/isRegExp.js +35 -0
  1354. package/plugins/eslint/node_modules/lodash/lang/isString.js +35 -0
  1355. package/plugins/eslint/node_modules/lodash/lang/isTypedArray.js +74 -0
  1356. package/plugins/eslint/node_modules/lodash/lang/isUndefined.js +21 -0
  1357. package/plugins/eslint/node_modules/lodash/lang/lt.js +25 -0
  1358. package/plugins/eslint/node_modules/lodash/lang/lte.js +25 -0
  1359. package/plugins/eslint/node_modules/lodash/lang/toArray.js +32 -0
  1360. package/plugins/eslint/node_modules/lodash/lang/toPlainObject.js +31 -0
  1361. package/plugins/eslint/node_modules/lodash/lang.js +32 -0
  1362. package/plugins/eslint/node_modules/lodash/math/add.js +19 -0
  1363. package/plugins/eslint/node_modules/lodash/math/ceil.js +25 -0
  1364. package/plugins/eslint/node_modules/lodash/math/floor.js +25 -0
  1365. package/plugins/eslint/node_modules/lodash/math/max.js +56 -0
  1366. package/plugins/eslint/node_modules/lodash/math/min.js +56 -0
  1367. package/plugins/eslint/node_modules/lodash/math/round.js +25 -0
  1368. package/plugins/eslint/node_modules/lodash/math/sum.js +50 -0
  1369. package/plugins/eslint/node_modules/lodash/math.js +9 -0
  1370. package/plugins/eslint/node_modules/lodash/number/inRange.js +47 -0
  1371. package/plugins/eslint/node_modules/lodash/number/random.js +70 -0
  1372. package/plugins/eslint/node_modules/lodash/number.js +4 -0
  1373. package/plugins/eslint/node_modules/lodash/object/assign.js +43 -0
  1374. package/plugins/eslint/node_modules/lodash/object/create.js +47 -0
  1375. package/plugins/eslint/node_modules/lodash/object/defaults.js +25 -0
  1376. package/plugins/eslint/node_modules/lodash/object/defaultsDeep.js +25 -0
  1377. package/plugins/eslint/node_modules/lodash/object/extend.js +1 -0
  1378. package/plugins/eslint/node_modules/lodash/object/findKey.js +54 -0
  1379. package/plugins/eslint/node_modules/lodash/object/findLastKey.js +54 -0
  1380. package/plugins/eslint/node_modules/lodash/object/forIn.js +33 -0
  1381. package/plugins/eslint/node_modules/lodash/object/forInRight.js +31 -0
  1382. package/plugins/eslint/node_modules/lodash/object/forOwn.js +33 -0
  1383. package/plugins/eslint/node_modules/lodash/object/forOwnRight.js +31 -0
  1384. package/plugins/eslint/node_modules/lodash/object/functions.js +23 -0
  1385. package/plugins/eslint/node_modules/lodash/object/get.js +33 -0
  1386. package/plugins/eslint/node_modules/lodash/object/has.js +57 -0
  1387. package/plugins/eslint/node_modules/lodash/object/invert.js +60 -0
  1388. package/plugins/eslint/node_modules/lodash/object/keys.js +45 -0
  1389. package/plugins/eslint/node_modules/lodash/object/keysIn.js +64 -0
  1390. package/plugins/eslint/node_modules/lodash/object/mapKeys.js +25 -0
  1391. package/plugins/eslint/node_modules/lodash/object/mapValues.js +46 -0
  1392. package/plugins/eslint/node_modules/lodash/object/merge.js +54 -0
  1393. package/plugins/eslint/node_modules/lodash/object/methods.js +1 -0
  1394. package/plugins/eslint/node_modules/lodash/object/omit.js +47 -0
  1395. package/plugins/eslint/node_modules/lodash/object/pairs.js +33 -0
  1396. package/plugins/eslint/node_modules/lodash/object/pick.js +42 -0
  1397. package/plugins/eslint/node_modules/lodash/object/result.js +49 -0
  1398. package/plugins/eslint/node_modules/lodash/object/set.js +55 -0
  1399. package/plugins/eslint/node_modules/lodash/object/transform.js +61 -0
  1400. package/plugins/eslint/node_modules/lodash/object/values.js +33 -0
  1401. package/plugins/eslint/node_modules/lodash/object/valuesIn.js +31 -0
  1402. package/plugins/eslint/node_modules/lodash/object.js +31 -0
  1403. package/plugins/eslint/node_modules/lodash/package.json +20 -0
  1404. package/plugins/eslint/node_modules/lodash/string/camelCase.js +27 -0
  1405. package/plugins/eslint/node_modules/lodash/string/capitalize.js +21 -0
  1406. package/plugins/eslint/node_modules/lodash/string/deburr.js +29 -0
  1407. package/plugins/eslint/node_modules/lodash/string/endsWith.js +40 -0
  1408. package/plugins/eslint/node_modules/lodash/string/escape.js +48 -0
  1409. package/plugins/eslint/node_modules/lodash/string/escapeRegExp.js +32 -0
  1410. package/plugins/eslint/node_modules/lodash/string/kebabCase.js +26 -0
  1411. package/plugins/eslint/node_modules/lodash/string/pad.js +47 -0
  1412. package/plugins/eslint/node_modules/lodash/string/padLeft.js +27 -0
  1413. package/plugins/eslint/node_modules/lodash/string/padRight.js +27 -0
  1414. package/plugins/eslint/node_modules/lodash/string/parseInt.js +46 -0
  1415. package/plugins/eslint/node_modules/lodash/string/repeat.js +47 -0
  1416. package/plugins/eslint/node_modules/lodash/string/snakeCase.js +26 -0
  1417. package/plugins/eslint/node_modules/lodash/string/startCase.js +26 -0
  1418. package/plugins/eslint/node_modules/lodash/string/startsWith.js +36 -0
  1419. package/plugins/eslint/node_modules/lodash/string/template.js +226 -0
  1420. package/plugins/eslint/node_modules/lodash/string/templateSettings.js +67 -0
  1421. package/plugins/eslint/node_modules/lodash/string/trim.js +42 -0
  1422. package/plugins/eslint/node_modules/lodash/string/trimLeft.js +36 -0
  1423. package/plugins/eslint/node_modules/lodash/string/trimRight.js +36 -0
  1424. package/plugins/eslint/node_modules/lodash/string/trunc.js +105 -0
  1425. package/plugins/eslint/node_modules/lodash/string/unescape.js +33 -0
  1426. package/plugins/eslint/node_modules/lodash/string/words.js +38 -0
  1427. package/plugins/eslint/node_modules/lodash/string.js +25 -0
  1428. package/plugins/eslint/node_modules/lodash/support.js +10 -0
  1429. package/plugins/eslint/node_modules/lodash/utility/attempt.js +32 -0
  1430. package/plugins/eslint/node_modules/lodash/utility/callback.js +53 -0
  1431. package/plugins/eslint/node_modules/lodash/utility/constant.js +23 -0
  1432. package/plugins/eslint/node_modules/lodash/utility/identity.js +20 -0
  1433. package/plugins/eslint/node_modules/lodash/utility/iteratee.js +1 -0
  1434. package/plugins/eslint/node_modules/lodash/utility/matches.js +33 -0
  1435. package/plugins/eslint/node_modules/lodash/utility/matchesProperty.js +32 -0
  1436. package/plugins/eslint/node_modules/lodash/utility/method.js +33 -0
  1437. package/plugins/eslint/node_modules/lodash/utility/methodOf.js +32 -0
  1438. package/plugins/eslint/node_modules/lodash/utility/mixin.js +82 -0
  1439. package/plugins/eslint/node_modules/lodash/utility/noop.js +19 -0
  1440. package/plugins/eslint/node_modules/lodash/utility/property.js +31 -0
  1441. package/plugins/eslint/node_modules/lodash/utility/propertyOf.js +30 -0
  1442. package/plugins/eslint/node_modules/lodash/utility/range.js +66 -0
  1443. package/plugins/eslint/node_modules/lodash/utility/times.js +60 -0
  1444. package/plugins/eslint/node_modules/lodash/utility/uniqueId.js +27 -0
  1445. package/plugins/eslint/node_modules/lodash/utility.js +18 -0
  1446. package/plugins/eslint/node_modules/lodash.clonedeep/LICENSE +22 -0
  1447. package/plugins/eslint/node_modules/lodash.clonedeep/README.md +20 -0
  1448. package/plugins/eslint/node_modules/lodash.clonedeep/index.js +63 -0
  1449. package/plugins/eslint/node_modules/lodash.clonedeep/package.json +23 -0
  1450. package/plugins/eslint/node_modules/lodash.isplainobject/LICENSE +22 -0
  1451. package/plugins/eslint/node_modules/lodash.isplainobject/README.md +20 -0
  1452. package/plugins/eslint/node_modules/lodash.isplainobject/index.js +103 -0
  1453. package/plugins/eslint/node_modules/lodash.isplainobject/package.json +24 -0
  1454. package/plugins/eslint/node_modules/lodash.keys/LICENSE +22 -0
  1455. package/plugins/eslint/node_modules/lodash.keys/README.md +20 -0
  1456. package/plugins/eslint/node_modules/lodash.keys/index.js +236 -0
  1457. package/plugins/eslint/node_modules/lodash.keys/package.json +24 -0
  1458. package/plugins/eslint/node_modules/lodash.merge/LICENSE +22 -0
  1459. package/plugins/eslint/node_modules/lodash.merge/README.md +20 -0
  1460. package/plugins/eslint/node_modules/lodash.merge/index.js +266 -0
  1461. package/plugins/eslint/node_modules/lodash.merge/package.json +32 -0
  1462. package/plugins/eslint/node_modules/log-driver/.travis.yml +6 -0
  1463. package/plugins/eslint/node_modules/log-driver/Makefile +20 -0
  1464. package/plugins/eslint/node_modules/log-driver/README.md +99 -0
  1465. package/plugins/eslint/node_modules/log-driver/coverage/coverage.json +1 -0
  1466. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/index.html +350 -0
  1467. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/logdriver/index.html +350 -0
  1468. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/logdriver/index.js.html +502 -0
  1469. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/prettify.css +1 -0
  1470. package/plugins/eslint/node_modules/log-driver/coverage/lcov-report/prettify.js +1 -0
  1471. package/plugins/eslint/node_modules/log-driver/coverage/lcov.info +77 -0
  1472. package/plugins/eslint/node_modules/log-driver/index.js +60 -0
  1473. package/plugins/eslint/node_modules/log-driver/package.json +40 -0
  1474. package/plugins/eslint/node_modules/lolex/.min-wd +13 -0
  1475. package/plugins/eslint/node_modules/lolex/LICENSE +27 -0
  1476. package/plugins/eslint/node_modules/lolex/Readme.md +161 -0
  1477. package/plugins/eslint/node_modules/lolex/lolex.js +428 -0
  1478. package/plugins/eslint/node_modules/lolex/package.json +35 -0
  1479. package/plugins/eslint/node_modules/lolex/src/lolex.js +422 -0
  1480. package/plugins/eslint/node_modules/lolex/test/lolex-test.js +1089 -0
  1481. package/plugins/eslint/node_modules/lru-cache/.travis.yml +8 -0
  1482. package/plugins/eslint/node_modules/lru-cache/CONTRIBUTORS +14 -0
  1483. package/plugins/eslint/node_modules/lru-cache/LICENSE +15 -0
  1484. package/plugins/eslint/node_modules/lru-cache/README.md +137 -0
  1485. package/plugins/eslint/node_modules/lru-cache/lib/lru-cache.js +334 -0
  1486. package/plugins/eslint/node_modules/lru-cache/package.json +21 -0
  1487. package/plugins/eslint/node_modules/lru-cache/test/basic.js +396 -0
  1488. package/plugins/eslint/node_modules/lru-cache/test/foreach.js +120 -0
  1489. package/plugins/eslint/node_modules/lru-cache/test/memory-leak.js +51 -0
  1490. package/plugins/eslint/node_modules/lru-cache/test/serialize.js +216 -0
  1491. package/plugins/eslint/node_modules/meow/index.js +82 -0
  1492. package/plugins/eslint/node_modules/meow/license +21 -0
  1493. package/plugins/eslint/node_modules/meow/node_modules/object-assign/index.js +90 -0
  1494. package/plugins/eslint/node_modules/meow/node_modules/object-assign/license +21 -0
  1495. package/plugins/eslint/node_modules/meow/node_modules/object-assign/package.json +42 -0
  1496. package/plugins/eslint/node_modules/meow/node_modules/object-assign/readme.md +61 -0
  1497. package/plugins/eslint/node_modules/meow/package.json +58 -0
  1498. package/plugins/eslint/node_modules/meow/readme.md +159 -0
  1499. package/plugins/eslint/node_modules/mime/LICENSE +19 -0
  1500. package/plugins/eslint/node_modules/mime/README.md +66 -0
  1501. package/plugins/eslint/node_modules/mime/mime.js +114 -0
  1502. package/plugins/eslint/node_modules/mime/package.json +22 -0
  1503. package/plugins/eslint/node_modules/mime/test.js +84 -0
  1504. package/plugins/eslint/node_modules/mime/types/mime.types +1588 -0
  1505. package/plugins/eslint/node_modules/mime/types/node.types +77 -0
  1506. package/plugins/eslint/node_modules/mime-types/.travis.yml +12 -0
  1507. package/plugins/eslint/node_modules/mime-types/LICENSE +22 -0
  1508. package/plugins/eslint/node_modules/mime-types/Makefile +9 -0
  1509. package/plugins/eslint/node_modules/mime-types/README.md +101 -0
  1510. package/plugins/eslint/node_modules/mime-types/SOURCES.md +17 -0
  1511. package/plugins/eslint/node_modules/mime-types/component.json +16 -0
  1512. package/plugins/eslint/node_modules/mime-types/lib/custom.json +27 -0
  1513. package/plugins/eslint/node_modules/mime-types/lib/index.js +75 -0
  1514. package/plugins/eslint/node_modules/mime-types/lib/mime.json +3317 -0
  1515. package/plugins/eslint/node_modules/mime-types/lib/node.json +55 -0
  1516. package/plugins/eslint/node_modules/mime-types/package.json +34 -0
  1517. package/plugins/eslint/node_modules/minimatch/LICENSE +15 -0
  1518. package/plugins/eslint/node_modules/minimatch/README.md +216 -0
  1519. package/plugins/eslint/node_modules/minimatch/browser.js +1159 -0
  1520. package/plugins/eslint/node_modules/minimatch/minimatch.js +912 -0
  1521. package/plugins/eslint/node_modules/minimatch/package.json +32 -0
  1522. package/plugins/eslint/node_modules/mkdirp/LICENSE +21 -0
  1523. package/plugins/eslint/node_modules/mkdirp/index.js +99 -0
  1524. package/plugins/eslint/node_modules/mkdirp/package.json +34 -0
  1525. package/plugins/eslint/node_modules/mkdirp/readme.markdown +100 -0
  1526. package/plugins/eslint/node_modules/mocha/CHANGELOG.md +1262 -0
  1527. package/plugins/eslint/node_modules/mocha/LICENSE +22 -0
  1528. package/plugins/eslint/node_modules/mocha/images/error.png +0 -0
  1529. package/plugins/eslint/node_modules/mocha/images/ok.png +0 -0
  1530. package/plugins/eslint/node_modules/mocha/index.js +3 -0
  1531. package/plugins/eslint/node_modules/mocha/lib/browser/debug.js +4 -0
  1532. package/plugins/eslint/node_modules/mocha/lib/browser/events.js +193 -0
  1533. package/plugins/eslint/node_modules/mocha/lib/browser/progress.js +117 -0
  1534. package/plugins/eslint/node_modules/mocha/lib/browser/tty.js +11 -0
  1535. package/plugins/eslint/node_modules/mocha/lib/context.js +104 -0
  1536. package/plugins/eslint/node_modules/mocha/lib/hook.js +46 -0
  1537. package/plugins/eslint/node_modules/mocha/lib/interfaces/bdd.js +117 -0
  1538. package/plugins/eslint/node_modules/mocha/lib/interfaces/common.js +85 -0
  1539. package/plugins/eslint/node_modules/mocha/lib/interfaces/exports.js +61 -0
  1540. package/plugins/eslint/node_modules/mocha/lib/interfaces/index.js +4 -0
  1541. package/plugins/eslint/node_modules/mocha/lib/interfaces/qunit.js +94 -0
  1542. package/plugins/eslint/node_modules/mocha/lib/interfaces/tdd.js +106 -0
  1543. package/plugins/eslint/node_modules/mocha/lib/mocha.js +503 -0
  1544. package/plugins/eslint/node_modules/mocha/lib/ms.js +128 -0
  1545. package/plugins/eslint/node_modules/mocha/lib/pending.js +15 -0
  1546. package/plugins/eslint/node_modules/mocha/lib/reporters/base.js +487 -0
  1547. package/plugins/eslint/node_modules/mocha/lib/reporters/doc.js +62 -0
  1548. package/plugins/eslint/node_modules/mocha/lib/reporters/dot.js +66 -0
  1549. package/plugins/eslint/node_modules/mocha/lib/reporters/html-cov.js +56 -0
  1550. package/plugins/eslint/node_modules/mocha/lib/reporters/html.js +343 -0
  1551. package/plugins/eslint/node_modules/mocha/lib/reporters/index.js +19 -0
  1552. package/plugins/eslint/node_modules/mocha/lib/reporters/json-cov.js +151 -0
  1553. package/plugins/eslint/node_modules/mocha/lib/reporters/json-stream.js +60 -0
  1554. package/plugins/eslint/node_modules/mocha/lib/reporters/json.js +90 -0
  1555. package/plugins/eslint/node_modules/mocha/lib/reporters/landing.js +92 -0
  1556. package/plugins/eslint/node_modules/mocha/lib/reporters/list.js +61 -0
  1557. package/plugins/eslint/node_modules/mocha/lib/reporters/markdown.js +97 -0
  1558. package/plugins/eslint/node_modules/mocha/lib/reporters/min.js +36 -0
  1559. package/plugins/eslint/node_modules/mocha/lib/reporters/nyan.js +261 -0
  1560. package/plugins/eslint/node_modules/mocha/lib/reporters/progress.js +89 -0
  1561. package/plugins/eslint/node_modules/mocha/lib/reporters/spec.js +83 -0
  1562. package/plugins/eslint/node_modules/mocha/lib/reporters/tap.js +68 -0
  1563. package/plugins/eslint/node_modules/mocha/lib/reporters/templates/coverage.jade +51 -0
  1564. package/plugins/eslint/node_modules/mocha/lib/reporters/templates/menu.jade +13 -0
  1565. package/plugins/eslint/node_modules/mocha/lib/reporters/templates/script.html +34 -0
  1566. package/plugins/eslint/node_modules/mocha/lib/reporters/templates/style.html +324 -0
  1567. package/plugins/eslint/node_modules/mocha/lib/reporters/xunit.js +166 -0
  1568. package/plugins/eslint/node_modules/mocha/lib/runnable.js +363 -0
  1569. package/plugins/eslint/node_modules/mocha/lib/runner.js +894 -0
  1570. package/plugins/eslint/node_modules/mocha/lib/suite.js +395 -0
  1571. package/plugins/eslint/node_modules/mocha/lib/template.html +18 -0
  1572. package/plugins/eslint/node_modules/mocha/lib/test.js +44 -0
  1573. package/plugins/eslint/node_modules/mocha/lib/utils.js +750 -0
  1574. package/plugins/eslint/node_modules/mocha/mocha.css +314 -0
  1575. package/plugins/eslint/node_modules/mocha/mocha.js +13149 -0
  1576. package/plugins/eslint/node_modules/mocha/node_modules/escape-string-regexp/index.js +11 -0
  1577. package/plugins/eslint/node_modules/mocha/node_modules/escape-string-regexp/package.json +36 -0
  1578. package/plugins/eslint/node_modules/mocha/node_modules/escape-string-regexp/readme.md +27 -0
  1579. package/plugins/eslint/node_modules/mocha/node_modules/minimist/.travis.yml +4 -0
  1580. package/plugins/eslint/node_modules/mocha/node_modules/minimist/LICENSE +18 -0
  1581. package/plugins/eslint/node_modules/mocha/node_modules/minimist/example/parse.js +2 -0
  1582. package/plugins/eslint/node_modules/mocha/node_modules/minimist/index.js +187 -0
  1583. package/plugins/eslint/node_modules/mocha/node_modules/minimist/package.json +40 -0
  1584. package/plugins/eslint/node_modules/mocha/node_modules/minimist/readme.markdown +73 -0
  1585. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/dash.js +24 -0
  1586. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/default_bool.js +20 -0
  1587. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/dotted.js +16 -0
  1588. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/long.js +31 -0
  1589. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/parse.js +318 -0
  1590. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/parse_modified.js +9 -0
  1591. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/short.js +67 -0
  1592. package/plugins/eslint/node_modules/mocha/node_modules/minimist/test/whitespace.js +8 -0
  1593. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/.travis.yml +8 -0
  1594. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/LICENSE +21 -0
  1595. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/examples/pow.js +6 -0
  1596. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/index.js +98 -0
  1597. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/package.json +27 -0
  1598. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/readme.markdown +100 -0
  1599. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/chmod.js +41 -0
  1600. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/clobber.js +38 -0
  1601. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/mkdirp.js +28 -0
  1602. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/opts_fs.js +29 -0
  1603. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/opts_fs_sync.js +27 -0
  1604. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/perm.js +32 -0
  1605. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/perm_sync.js +36 -0
  1606. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/race.js +37 -0
  1607. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/rel.js +32 -0
  1608. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/return.js +25 -0
  1609. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/return_sync.js +24 -0
  1610. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/root.js +19 -0
  1611. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/sync.js +32 -0
  1612. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/umask.js +28 -0
  1613. package/plugins/eslint/node_modules/mocha/node_modules/mkdirp/test/umask_sync.js +32 -0
  1614. package/plugins/eslint/node_modules/mocha/node_modules/supports-color/cli.js +29 -0
  1615. package/plugins/eslint/node_modules/mocha/node_modules/supports-color/index.js +39 -0
  1616. package/plugins/eslint/node_modules/mocha/node_modules/supports-color/package.json +51 -0
  1617. package/plugins/eslint/node_modules/mocha/node_modules/supports-color/readme.md +44 -0
  1618. package/plugins/eslint/node_modules/mocha/package.json +374 -0
  1619. package/plugins/eslint/node_modules/ms/LICENSE +20 -0
  1620. package/plugins/eslint/node_modules/ms/README.md +35 -0
  1621. package/plugins/eslint/node_modules/ms/index.js +125 -0
  1622. package/plugins/eslint/node_modules/ms/package.json +20 -0
  1623. package/plugins/eslint/node_modules/oauth-sign/LICENSE +55 -0
  1624. package/plugins/eslint/node_modules/oauth-sign/README.md +4 -0
  1625. package/plugins/eslint/node_modules/oauth-sign/index.js +43 -0
  1626. package/plugins/eslint/node_modules/oauth-sign/package.json +19 -0
  1627. package/plugins/eslint/node_modules/oauth-sign/test.js +49 -0
  1628. package/plugins/eslint/node_modules/object-assign/index.js +26 -0
  1629. package/plugins/eslint/node_modules/object-assign/license +21 -0
  1630. package/plugins/eslint/node_modules/object-assign/package.json +38 -0
  1631. package/plugins/eslint/node_modules/object-assign/readme.md +51 -0
  1632. package/plugins/eslint/node_modules/optionator/LICENSE +22 -0
  1633. package/plugins/eslint/node_modules/optionator/README.md +200 -0
  1634. package/plugins/eslint/node_modules/optionator/lib/coerce.js +367 -0
  1635. package/plugins/eslint/node_modules/optionator/lib/help.js +242 -0
  1636. package/plugins/eslint/node_modules/optionator/lib/index.js +417 -0
  1637. package/plugins/eslint/node_modules/optionator/lib/parse-type.js +143 -0
  1638. package/plugins/eslint/node_modules/optionator/lib/util.js +46 -0
  1639. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/LICENSE +18 -0
  1640. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/README.markdown +70 -0
  1641. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/example/center.js +10 -0
  1642. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/example/meat.js +3 -0
  1643. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/index.js +76 -0
  1644. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/package.json +37 -0
  1645. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/test/break.js +30 -0
  1646. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/test/idleness.txt +63 -0
  1647. package/plugins/eslint/node_modules/optionator/node_modules/wordwrap/test/wrap.js +31 -0
  1648. package/plugins/eslint/node_modules/optionator/package.json +44 -0
  1649. package/plugins/eslint/node_modules/prelude-ls/CHANGELOG.md +99 -0
  1650. package/plugins/eslint/node_modules/prelude-ls/LICENSE +22 -0
  1651. package/plugins/eslint/node_modules/prelude-ls/README.md +15 -0
  1652. package/plugins/eslint/node_modules/prelude-ls/lib/Func.js +65 -0
  1653. package/plugins/eslint/node_modules/prelude-ls/lib/List.js +686 -0
  1654. package/plugins/eslint/node_modules/prelude-ls/lib/Num.js +130 -0
  1655. package/plugins/eslint/node_modules/prelude-ls/lib/Obj.js +154 -0
  1656. package/plugins/eslint/node_modules/prelude-ls/lib/Str.js +92 -0
  1657. package/plugins/eslint/node_modules/prelude-ls/lib/index.js +178 -0
  1658. package/plugins/eslint/node_modules/prelude-ls/package.json +52 -0
  1659. package/plugins/eslint/node_modules/qs/.jshintignore +1 -0
  1660. package/plugins/eslint/node_modules/qs/.jshintrc +10 -0
  1661. package/plugins/eslint/node_modules/qs/.travis.yml +4 -0
  1662. package/plugins/eslint/node_modules/qs/LICENSE +28 -0
  1663. package/plugins/eslint/node_modules/qs/Makefile +8 -0
  1664. package/plugins/eslint/node_modules/qs/README.md +120 -0
  1665. package/plugins/eslint/node_modules/qs/index.js +1 -0
  1666. package/plugins/eslint/node_modules/qs/lib/index.js +15 -0
  1667. package/plugins/eslint/node_modules/qs/lib/parse.js +151 -0
  1668. package/plugins/eslint/node_modules/qs/lib/stringify.js +52 -0
  1669. package/plugins/eslint/node_modules/qs/lib/utils.js +131 -0
  1670. package/plugins/eslint/node_modules/qs/package.json +29 -0
  1671. package/plugins/eslint/node_modules/qs/test/parse.js +236 -0
  1672. package/plugins/eslint/node_modules/qs/test/stringify.js +123 -0
  1673. package/plugins/eslint/node_modules/redent/index.js +7 -0
  1674. package/plugins/eslint/node_modules/redent/license +21 -0
  1675. package/plugins/eslint/node_modules/redent/package.json +43 -0
  1676. package/plugins/eslint/node_modules/redent/readme.md +48 -0
  1677. package/plugins/eslint/node_modules/request/.travis.yml +12 -0
  1678. package/plugins/eslint/node_modules/request/CHANGELOG.md +954 -0
  1679. package/plugins/eslint/node_modules/request/LICENSE +55 -0
  1680. package/plugins/eslint/node_modules/request/README.md +421 -0
  1681. package/plugins/eslint/node_modules/request/index.js +166 -0
  1682. package/plugins/eslint/node_modules/request/lib/cookies.js +40 -0
  1683. package/plugins/eslint/node_modules/request/lib/copy.js +8 -0
  1684. package/plugins/eslint/node_modules/request/lib/debug.js +7 -0
  1685. package/plugins/eslint/node_modules/request/lib/getSafe.js +34 -0
  1686. package/plugins/eslint/node_modules/request/lib/optional.js +5 -0
  1687. package/plugins/eslint/node_modules/request/package.json +44 -0
  1688. package/plugins/eslint/node_modules/request/request.js +1428 -0
  1689. package/plugins/eslint/node_modules/resolve/.travis.yml +4 -0
  1690. package/plugins/eslint/node_modules/resolve/LICENSE +18 -0
  1691. package/plugins/eslint/node_modules/resolve/example/async.js +5 -0
  1692. package/plugins/eslint/node_modules/resolve/example/sync.js +3 -0
  1693. package/plugins/eslint/node_modules/resolve/index.js +5 -0
  1694. package/plugins/eslint/node_modules/resolve/lib/async.js +192 -0
  1695. package/plugins/eslint/node_modules/resolve/lib/caller.js +8 -0
  1696. package/plugins/eslint/node_modules/resolve/lib/core.js +4 -0
  1697. package/plugins/eslint/node_modules/resolve/lib/core.json +38 -0
  1698. package/plugins/eslint/node_modules/resolve/lib/node-modules-paths.js +38 -0
  1699. package/plugins/eslint/node_modules/resolve/lib/sync.js +81 -0
  1700. package/plugins/eslint/node_modules/resolve/package.json +29 -0
  1701. package/plugins/eslint/node_modules/resolve/readme.markdown +148 -0
  1702. package/plugins/eslint/node_modules/resolve/test/core.js +12 -0
  1703. package/plugins/eslint/node_modules/resolve/test/dotdot/abc/index.js +2 -0
  1704. package/plugins/eslint/node_modules/resolve/test/dotdot/index.js +1 -0
  1705. package/plugins/eslint/node_modules/resolve/test/dotdot.js +29 -0
  1706. package/plugins/eslint/node_modules/resolve/test/faulty_basedir.js +17 -0
  1707. package/plugins/eslint/node_modules/resolve/test/filter.js +18 -0
  1708. package/plugins/eslint/node_modules/resolve/test/filter_sync.js +15 -0
  1709. package/plugins/eslint/node_modules/resolve/test/mock.js +142 -0
  1710. package/plugins/eslint/node_modules/resolve/test/mock_sync.js +68 -0
  1711. package/plugins/eslint/node_modules/resolve/test/module_dir/xmodules/aaa/index.js +1 -0
  1712. package/plugins/eslint/node_modules/resolve/test/module_dir/ymodules/aaa/index.js +1 -0
  1713. package/plugins/eslint/node_modules/resolve/test/module_dir/zmodules/bbb/main.js +1 -0
  1714. package/plugins/eslint/node_modules/resolve/test/module_dir/zmodules/bbb/package.json +3 -0
  1715. package/plugins/eslint/node_modules/resolve/test/module_dir.js +56 -0
  1716. package/plugins/eslint/node_modules/resolve/test/node_path/x/aaa/index.js +1 -0
  1717. package/plugins/eslint/node_modules/resolve/test/node_path/x/ccc/index.js +1 -0
  1718. package/plugins/eslint/node_modules/resolve/test/node_path/y/bbb/index.js +1 -0
  1719. package/plugins/eslint/node_modules/resolve/test/node_path/y/ccc/index.js +1 -0
  1720. package/plugins/eslint/node_modules/resolve/test/node_path.js +48 -0
  1721. package/plugins/eslint/node_modules/resolve/test/nonstring.js +9 -0
  1722. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/main.js +0 -0
  1723. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/alt.js +0 -0
  1724. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/deeper/ref.js +0 -0
  1725. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/package.json +4 -0
  1726. package/plugins/eslint/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/ref.js +0 -0
  1727. package/plugins/eslint/node_modules/resolve/test/pathfilter.js +35 -0
  1728. package/plugins/eslint/node_modules/resolve/test/precedence/aaa/index.js +1 -0
  1729. package/plugins/eslint/node_modules/resolve/test/precedence/aaa/main.js +1 -0
  1730. package/plugins/eslint/node_modules/resolve/test/precedence/aaa.js +1 -0
  1731. package/plugins/eslint/node_modules/resolve/test/precedence/bbb/main.js +1 -0
  1732. package/plugins/eslint/node_modules/resolve/test/precedence/bbb.js +1 -0
  1733. package/plugins/eslint/node_modules/resolve/test/precedence.js +23 -0
  1734. package/plugins/eslint/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +1 -0
  1735. package/plugins/eslint/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  1736. package/plugins/eslint/node_modules/resolve/test/resolver/baz/package.json +3 -0
  1737. package/plugins/eslint/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  1738. package/plugins/eslint/node_modules/resolve/test/resolver/biz/node_modules/garply/lib/index.js +1 -0
  1739. package/plugins/eslint/node_modules/resolve/test/resolver/biz/node_modules/garply/package.json +3 -0
  1740. package/plugins/eslint/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +1 -0
  1741. package/plugins/eslint/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +1 -0
  1742. package/plugins/eslint/node_modules/resolve/test/resolver/cup.coffee +1 -0
  1743. package/plugins/eslint/node_modules/resolve/test/resolver/foo.js +1 -0
  1744. package/plugins/eslint/node_modules/resolve/test/resolver/incorrect_main/index.js +2 -0
  1745. package/plugins/eslint/node_modules/resolve/test/resolver/incorrect_main/package.json +3 -0
  1746. package/plugins/eslint/node_modules/resolve/test/resolver/mug.coffee +0 -0
  1747. package/plugins/eslint/node_modules/resolve/test/resolver/mug.js +0 -0
  1748. package/plugins/eslint/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  1749. package/plugins/eslint/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  1750. package/plugins/eslint/node_modules/resolve/test/resolver/punycode/node_modules/punycode/index.js +0 -0
  1751. package/plugins/eslint/node_modules/resolve/test/resolver/quux/foo/index.js +1 -0
  1752. package/plugins/eslint/node_modules/resolve/test/resolver/without_basedir/main.js +6 -0
  1753. package/plugins/eslint/node_modules/resolve/test/resolver/without_basedir/node_modules/mymodule.js +1 -0
  1754. package/plugins/eslint/node_modules/resolve/test/resolver.js +281 -0
  1755. package/plugins/eslint/node_modules/resolve/test/resolver_sync.js +180 -0
  1756. package/plugins/eslint/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json +1 -0
  1757. package/plugins/eslint/node_modules/resolve/test/subdirs/node_modules/a/package.json +1 -0
  1758. package/plugins/eslint/node_modules/resolve/test/subdirs.js +13 -0
  1759. package/plugins/eslint/node_modules/semver/.travis.yml +5 -0
  1760. package/plugins/eslint/node_modules/semver/LICENSE +15 -0
  1761. package/plugins/eslint/node_modules/semver/Makefile +24 -0
  1762. package/plugins/eslint/node_modules/semver/README.md +303 -0
  1763. package/plugins/eslint/node_modules/semver/foot.js.txt +6 -0
  1764. package/plugins/eslint/node_modules/semver/head.js.txt +2 -0
  1765. package/plugins/eslint/node_modules/semver/package.json +21 -0
  1766. package/plugins/eslint/node_modules/semver/semver.browser.js +1201 -0
  1767. package/plugins/eslint/node_modules/semver/semver.browser.js.gz +0 -0
  1768. package/plugins/eslint/node_modules/semver/semver.js +1205 -0
  1769. package/plugins/eslint/node_modules/semver/semver.min.js +1 -0
  1770. package/plugins/eslint/node_modules/semver/semver.min.js.gz +0 -0
  1771. package/plugins/eslint/node_modules/semver/test/amd.js +15 -0
  1772. package/plugins/eslint/node_modules/semver/test/big-numbers.js +31 -0
  1773. package/plugins/eslint/node_modules/semver/test/clean.js +29 -0
  1774. package/plugins/eslint/node_modules/semver/test/gtr.js +173 -0
  1775. package/plugins/eslint/node_modules/semver/test/index.js +685 -0
  1776. package/plugins/eslint/node_modules/semver/test/ltr.js +181 -0
  1777. package/plugins/eslint/node_modules/semver/test/major-minor-patch.js +72 -0
  1778. package/plugins/eslint/node_modules/semver/test/no-module.js +19 -0
  1779. package/plugins/eslint/node_modules/shelljs/.documentup.json +6 -0
  1780. package/plugins/eslint/node_modules/shelljs/.jshintrc +7 -0
  1781. package/plugins/eslint/node_modules/shelljs/.travis.yml +5 -0
  1782. package/plugins/eslint/node_modules/shelljs/LICENSE +26 -0
  1783. package/plugins/eslint/node_modules/shelljs/README.md +569 -0
  1784. package/plugins/eslint/node_modules/shelljs/global.js +3 -0
  1785. package/plugins/eslint/node_modules/shelljs/make.js +47 -0
  1786. package/plugins/eslint/node_modules/shelljs/package.json +35 -0
  1787. package/plugins/eslint/node_modules/shelljs/scripts/generate-docs.js +21 -0
  1788. package/plugins/eslint/node_modules/shelljs/scripts/run-tests.js +50 -0
  1789. package/plugins/eslint/node_modules/shelljs/shell.js +157 -0
  1790. package/plugins/eslint/node_modules/shelljs/src/cat.js +43 -0
  1791. package/plugins/eslint/node_modules/shelljs/src/cd.js +19 -0
  1792. package/plugins/eslint/node_modules/shelljs/src/chmod.js +208 -0
  1793. package/plugins/eslint/node_modules/shelljs/src/common.js +203 -0
  1794. package/plugins/eslint/node_modules/shelljs/src/cp.js +201 -0
  1795. package/plugins/eslint/node_modules/shelljs/src/dirs.js +191 -0
  1796. package/plugins/eslint/node_modules/shelljs/src/echo.js +20 -0
  1797. package/plugins/eslint/node_modules/shelljs/src/error.js +10 -0
  1798. package/plugins/eslint/node_modules/shelljs/src/exec.js +181 -0
  1799. package/plugins/eslint/node_modules/shelljs/src/find.js +51 -0
  1800. package/plugins/eslint/node_modules/shelljs/src/grep.js +52 -0
  1801. package/plugins/eslint/node_modules/shelljs/src/ln.js +53 -0
  1802. package/plugins/eslint/node_modules/shelljs/src/ls.js +126 -0
  1803. package/plugins/eslint/node_modules/shelljs/src/mkdir.js +68 -0
  1804. package/plugins/eslint/node_modules/shelljs/src/mv.js +80 -0
  1805. package/plugins/eslint/node_modules/shelljs/src/popd.js +1 -0
  1806. package/plugins/eslint/node_modules/shelljs/src/pushd.js +1 -0
  1807. package/plugins/eslint/node_modules/shelljs/src/pwd.js +11 -0
  1808. package/plugins/eslint/node_modules/shelljs/src/rm.js +145 -0
  1809. package/plugins/eslint/node_modules/shelljs/src/sed.js +43 -0
  1810. package/plugins/eslint/node_modules/shelljs/src/tempdir.js +56 -0
  1811. package/plugins/eslint/node_modules/shelljs/src/test.js +85 -0
  1812. package/plugins/eslint/node_modules/shelljs/src/to.js +29 -0
  1813. package/plugins/eslint/node_modules/shelljs/src/toEnd.js +29 -0
  1814. package/plugins/eslint/node_modules/shelljs/src/which.js +83 -0
  1815. package/plugins/eslint/node_modules/sinon/.editorconfig +17 -0
  1816. package/plugins/eslint/node_modules/sinon/.jscsrc +13 -0
  1817. package/plugins/eslint/node_modules/sinon/CONTRIBUTING.md +124 -0
  1818. package/plugins/eslint/node_modules/sinon/GPATH +0 -0
  1819. package/plugins/eslint/node_modules/sinon/GRTAGS +0 -0
  1820. package/plugins/eslint/node_modules/sinon/GSYMS +0 -0
  1821. package/plugins/eslint/node_modules/sinon/GTAGS +0 -0
  1822. package/plugins/eslint/node_modules/sinon/LICENSE +27 -0
  1823. package/plugins/eslint/node_modules/sinon/README.md +46 -0
  1824. package/plugins/eslint/node_modules/sinon/lib/sinon/assert.js +214 -0
  1825. package/plugins/eslint/node_modules/sinon/lib/sinon/behavior.js +359 -0
  1826. package/plugins/eslint/node_modules/sinon/lib/sinon/call.js +219 -0
  1827. package/plugins/eslint/node_modules/sinon/lib/sinon/collection.js +167 -0
  1828. package/plugins/eslint/node_modules/sinon/lib/sinon/extend.js +103 -0
  1829. package/plugins/eslint/node_modules/sinon/lib/sinon/format.js +88 -0
  1830. package/plugins/eslint/node_modules/sinon/lib/sinon/log_error.js +68 -0
  1831. package/plugins/eslint/node_modules/sinon/lib/sinon/match.js +254 -0
  1832. package/plugins/eslint/node_modules/sinon/lib/sinon/mock.js +456 -0
  1833. package/plugins/eslint/node_modules/sinon/lib/sinon/sandbox.js +162 -0
  1834. package/plugins/eslint/node_modules/sinon/lib/sinon/spy.js +454 -0
  1835. package/plugins/eslint/node_modules/sinon/lib/sinon/stub.js +180 -0
  1836. package/plugins/eslint/node_modules/sinon/lib/sinon/test.js +101 -0
  1837. package/plugins/eslint/node_modules/sinon/lib/sinon/test_case.js +103 -0
  1838. package/plugins/eslint/node_modules/sinon/lib/sinon/times_in_words.js +43 -0
  1839. package/plugins/eslint/node_modules/sinon/lib/sinon/typeOf.js +50 -0
  1840. package/plugins/eslint/node_modules/sinon/lib/sinon/util/core.js +390 -0
  1841. package/plugins/eslint/node_modules/sinon/lib/sinon/util/event.js +111 -0
  1842. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_server.js +240 -0
  1843. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_server_with_clock.js +101 -0
  1844. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_timers.js +77 -0
  1845. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_xdomain_request.js +223 -0
  1846. package/plugins/eslint/node_modules/sinon/lib/sinon/util/fake_xml_http_request.js +620 -0
  1847. package/plugins/eslint/node_modules/sinon/lib/sinon/util/timers_ie.js +30 -0
  1848. package/plugins/eslint/node_modules/sinon/lib/sinon/util/xdr_ie.js +13 -0
  1849. package/plugins/eslint/node_modules/sinon/lib/sinon/util/xhr_ie.js +18 -0
  1850. package/plugins/eslint/node_modules/sinon/lib/sinon.js +46 -0
  1851. package/plugins/eslint/node_modules/sinon/package.json +44 -0
  1852. package/plugins/eslint/node_modules/sinon/pkg/sinon-1.14.1.js +5931 -0
  1853. package/plugins/eslint/node_modules/sinon/pkg/sinon-ie-1.14.1.js +97 -0
  1854. package/plugins/eslint/node_modules/sinon/pkg/sinon-ie.js +97 -0
  1855. package/plugins/eslint/node_modules/sinon/pkg/sinon-server-1.14.1.js +2104 -0
  1856. package/plugins/eslint/node_modules/sinon/pkg/sinon-timers-1.14.1.js +111 -0
  1857. package/plugins/eslint/node_modules/sinon/pkg/sinon-timers-ie-1.14.1.js +65 -0
  1858. package/plugins/eslint/node_modules/sinon/pkg/sinon.js +5931 -0
  1859. package/plugins/eslint/node_modules/source-map/.travis.yml +4 -0
  1860. package/plugins/eslint/node_modules/source-map/CHANGELOG.md +201 -0
  1861. package/plugins/eslint/node_modules/source-map/LICENSE +28 -0
  1862. package/plugins/eslint/node_modules/source-map/Makefile.dryice.js +166 -0
  1863. package/plugins/eslint/node_modules/source-map/README.md +479 -0
  1864. package/plugins/eslint/node_modules/source-map/lib/source-map/array-set.js +97 -0
  1865. package/plugins/eslint/node_modules/source-map/lib/source-map/base64-vlq.js +142 -0
  1866. package/plugins/eslint/node_modules/source-map/lib/source-map/base64.js +42 -0
  1867. package/plugins/eslint/node_modules/source-map/lib/source-map/basic-source-map-consumer.js +420 -0
  1868. package/plugins/eslint/node_modules/source-map/lib/source-map/binary-search.js +80 -0
  1869. package/plugins/eslint/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js +303 -0
  1870. package/plugins/eslint/node_modules/source-map/lib/source-map/mapping-list.js +86 -0
  1871. package/plugins/eslint/node_modules/source-map/lib/source-map/source-map-consumer.js +222 -0
  1872. package/plugins/eslint/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  1873. package/plugins/eslint/node_modules/source-map/lib/source-map/source-node.js +414 -0
  1874. package/plugins/eslint/node_modules/source-map/lib/source-map/util.js +319 -0
  1875. package/plugins/eslint/node_modules/source-map/lib/source-map.js +8 -0
  1876. package/plugins/eslint/node_modules/source-map/package.json +66 -0
  1877. package/plugins/eslint/node_modules/source-map/test/run-tests.js +62 -0
  1878. package/plugins/eslint/node_modules/source-map/test/source-map/test-api.js +26 -0
  1879. package/plugins/eslint/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  1880. package/plugins/eslint/node_modules/source-map/test/source-map/test-base64-vlq.js +23 -0
  1881. package/plugins/eslint/node_modules/source-map/test/source-map/test-base64.js +35 -0
  1882. package/plugins/eslint/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  1883. package/plugins/eslint/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  1884. package/plugins/eslint/node_modules/source-map/test/source-map/test-source-map-consumer.js +874 -0
  1885. package/plugins/eslint/node_modules/source-map/test/source-map/test-source-map-generator.js +679 -0
  1886. package/plugins/eslint/node_modules/source-map/test/source-map/test-source-node.js +612 -0
  1887. package/plugins/eslint/node_modules/source-map/test/source-map/test-util.js +216 -0
  1888. package/plugins/eslint/node_modules/source-map/test/source-map/util.js +299 -0
  1889. package/plugins/eslint/node_modules/strip-ansi/index.js +6 -0
  1890. package/plugins/eslint/node_modules/strip-ansi/license +21 -0
  1891. package/plugins/eslint/node_modules/strip-ansi/node_modules/ansi-regex/index.js +4 -0
  1892. package/plugins/eslint/node_modules/strip-ansi/node_modules/ansi-regex/license +21 -0
  1893. package/plugins/eslint/node_modules/strip-ansi/node_modules/ansi-regex/package.json +64 -0
  1894. package/plugins/eslint/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +39 -0
  1895. package/plugins/eslint/node_modules/strip-ansi/package.json +57 -0
  1896. package/plugins/eslint/node_modules/strip-ansi/readme.md +33 -0
  1897. package/plugins/eslint/node_modules/strip-indent/cli.js +49 -0
  1898. package/plugins/eslint/node_modules/strip-indent/index.js +16 -0
  1899. package/plugins/eslint/node_modules/strip-indent/license +21 -0
  1900. package/plugins/eslint/node_modules/strip-indent/package.json +46 -0
  1901. package/plugins/eslint/node_modules/strip-indent/readme.md +61 -0
  1902. package/plugins/eslint/node_modules/strip-json-comments/cli.js +41 -0
  1903. package/plugins/eslint/node_modules/strip-json-comments/license +21 -0
  1904. package/plugins/eslint/node_modules/strip-json-comments/package.json +46 -0
  1905. package/plugins/eslint/node_modules/strip-json-comments/readme.md +80 -0
  1906. package/plugins/eslint/node_modules/strip-json-comments/strip-json-comments.js +73 -0
  1907. package/plugins/eslint/node_modules/supports-color/index.js +50 -0
  1908. package/plugins/eslint/node_modules/supports-color/license +21 -0
  1909. package/plugins/eslint/node_modules/supports-color/package.json +49 -0
  1910. package/plugins/eslint/node_modules/supports-color/readme.md +36 -0
  1911. package/plugins/eslint/node_modules/trim-newlines/index.js +13 -0
  1912. package/plugins/eslint/node_modules/trim-newlines/license +21 -0
  1913. package/plugins/eslint/node_modules/trim-newlines/package.json +42 -0
  1914. package/plugins/eslint/node_modules/trim-newlines/readme.md +46 -0
  1915. package/plugins/eslint/node_modules/tunnel-agent/LICENSE +55 -0
  1916. package/plugins/eslint/node_modules/tunnel-agent/README.md +4 -0
  1917. package/plugins/eslint/node_modules/tunnel-agent/index.js +243 -0
  1918. package/plugins/eslint/node_modules/tunnel-agent/package.json +20 -0
  1919. package/plugins/eslint/node_modules/type-check/LICENSE +22 -0
  1920. package/plugins/eslint/node_modules/type-check/README.md +210 -0
  1921. package/plugins/eslint/node_modules/type-check/lib/check.js +126 -0
  1922. package/plugins/eslint/node_modules/type-check/lib/index.js +16 -0
  1923. package/plugins/eslint/node_modules/type-check/lib/parse-type.js +196 -0
  1924. package/plugins/eslint/node_modules/type-check/package.json +40 -0
  1925. package/plugins/eslint/node_modules/type-detect/History.md +18 -0
  1926. package/plugins/eslint/node_modules/type-detect/README.md +193 -0
  1927. package/plugins/eslint/node_modules/type-detect/index.js +1 -0
  1928. package/plugins/eslint/node_modules/type-detect/lib/type.js +142 -0
  1929. package/plugins/eslint/node_modules/type-detect/package.json +31 -0
  1930. package/plugins/eslint/node_modules/underscore/LICENSE +23 -0
  1931. package/plugins/eslint/node_modules/underscore/README.md +22 -0
  1932. package/plugins/eslint/node_modules/underscore/package.json +41 -0
  1933. package/plugins/eslint/node_modules/underscore/underscore-min.js +6 -0
  1934. package/plugins/eslint/node_modules/underscore/underscore.js +1415 -0
  1935. package/plugins/eslint/node_modules/which/CHANGELOG.md +152 -0
  1936. package/plugins/eslint/node_modules/which/LICENSE +15 -0
  1937. package/plugins/eslint/node_modules/which/README.md +51 -0
  1938. package/plugins/eslint/node_modules/which/package.json +30 -0
  1939. package/plugins/eslint/node_modules/which/which.js +135 -0
  1940. package/plugins/pbjsGlobals.js +1 -1
  1941. package/src/adapterManager.js +24 -19
  1942. package/src/adapters/bidderFactory.js +155 -131
  1943. package/src/adloader.js +3 -1
  1944. package/src/auction.js +111 -123
  1945. package/src/auctionIndex.js +85 -0
  1946. package/src/auctionManager.js +3 -0
  1947. package/src/bidderSettings.js +69 -0
  1948. package/src/bidfactory.js +18 -6
  1949. package/src/debugging.js +31 -19
  1950. package/src/native.js +29 -21
  1951. package/src/secureCreatives.js +26 -12
  1952. package/src/targeting.js +11 -2
  1953. package/src/utils.js +24 -17
  1954. package/src/video.js +10 -11
  1955. package/src/videoCache.js +10 -9
  1956. package/test/fixtures/fixtures.js +2 -1
  1957. package/test/helpers/indexStub.js +28 -0
  1958. package/test/spec/auctionmanager_spec.js +145 -98
  1959. package/test/spec/config_spec.js +24 -1
  1960. package/test/spec/debugging_spec.js +29 -6
  1961. package/test/spec/modules/adnuntiusRtdProvider_spec.js +145 -0
  1962. package/test/spec/modules/adotBidAdapter_spec.js +294 -3124
  1963. package/test/spec/modules/adpod_spec.js +91 -156
  1964. package/test/spec/modules/adyoulikeBidAdapter_spec.js +15 -1
  1965. package/test/spec/modules/asealBidAdapter_spec.js +144 -0
  1966. package/test/spec/modules/automatadBidAdapter_spec.js +23 -7
  1967. package/test/spec/modules/big-richmediaBidAdapter_spec.js +310 -0
  1968. package/test/spec/modules/bizzclickBidAdapter_spec.js +16 -0
  1969. package/test/spec/modules/conversantBidAdapter_spec.js +54 -2
  1970. package/test/spec/modules/currency_spec.js +15 -9
  1971. package/test/spec/modules/debugging_mod_spec.js +451 -0
  1972. package/test/spec/modules/dspxBidAdapter_spec.js +20 -15
  1973. package/test/spec/modules/eids_spec.js +2 -2
  1974. package/test/spec/modules/fluctBidAdapter_spec.js +92 -0
  1975. package/test/spec/modules/gridBidAdapter_spec.js +44 -0
  1976. package/test/spec/modules/gumgumBidAdapter_spec.js +3 -3
  1977. package/test/spec/modules/hadronIdSystem_spec.js +57 -0
  1978. package/test/spec/modules/hadronRtdProvider_spec.js +762 -0
  1979. package/test/spec/modules/imRtdProvider_spec.js +30 -1
  1980. package/test/spec/modules/improvedigitalBidAdapter_spec.js +19 -0
  1981. package/test/spec/modules/iqzoneBidAdapter_spec.js +1 -0
  1982. package/test/spec/modules/ixBidAdapter_spec.js +75 -2
  1983. package/test/spec/modules/justIdSystem_spec.js +216 -0
  1984. package/test/spec/modules/kubientBidAdapter_spec.js +183 -87
  1985. package/test/spec/modules/lkqdBidAdapter_spec.js +323 -0
  1986. package/test/spec/modules/lunamediahbBidAdapter_spec.js +27 -1
  1987. package/test/spec/modules/mass_spec.js +2 -14
  1988. package/test/spec/modules/mediakeysBidAdapter_spec.js +9 -5
  1989. package/test/spec/modules/mediasquareBidAdapter_spec.js +25 -1
  1990. package/test/spec/modules/nexx360BidAdapter_spec.js +140 -0
  1991. package/test/spec/modules/novatiqIdSystem_spec.js +18 -0
  1992. package/test/spec/modules/oguryBidAdapter_spec.js +63 -5
  1993. package/test/spec/modules/prebidServerBidAdapter_spec.js +43 -6
  1994. package/test/spec/modules/priceFloors_spec.js +83 -24
  1995. package/test/spec/modules/pubmaticBidAdapter_spec.js +40 -0
  1996. package/test/spec/modules/riseBidAdapter_spec.js +30 -4
  1997. package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +31 -1
  1998. package/test/spec/modules/rubiconBidAdapter_spec.js +1 -1
  1999. package/test/spec/modules/sortableAnalyticsAdapter_spec.js +2 -3
  2000. package/test/spec/modules/sspBCBidAdapter_spec.js +7 -7
  2001. package/test/spec/modules/telariaBidAdapter_spec.js +1 -3
  2002. package/test/spec/modules/trustpidSystem_spec.js +232 -0
  2003. package/test/spec/modules/trustxBidAdapter_spec.js +33 -0
  2004. package/test/spec/modules/userId_spec.js +39 -39
  2005. package/test/spec/modules/vibrantmediaBidAdapter_spec.js +1237 -0
  2006. package/test/spec/modules/vidazooBidAdapter_spec.js +3 -1
  2007. package/test/spec/modules/vidoomyBidAdapter_spec.js +7 -1
  2008. package/test/spec/modules/weboramaRtdProvider_spec.js +536 -20
  2009. package/test/spec/modules/yieldoneBidAdapter_spec.js +33 -0
  2010. package/test/spec/native_spec.js +62 -40
  2011. package/test/spec/unit/core/adapterManager_spec.js +22 -0
  2012. package/test/spec/unit/core/auctionIndex_spec.js +129 -0
  2013. package/test/spec/unit/core/bidderFactory_spec.js +65 -12
  2014. package/test/spec/unit/core/bidderSettings_spec.js +123 -0
  2015. package/test/spec/unit/core/targeting_spec.js +93 -0
  2016. package/test/spec/unit/pbjs_api_spec.js +63 -41
  2017. package/test/spec/unit/secureCreatives_spec.js +66 -32
  2018. package/test/spec/utils_spec.js +8 -1
  2019. package/test/spec/videoCache_spec.js +18 -19
  2020. package/test/spec/video_spec.js +51 -61
@@ -0,0 +1,3772 @@
1
+ /*
2
+ Copyright (C) 2013 Ariya Hidayat <ariya.hidayat@gmail.com>
3
+ Copyright (C) 2013 Thaddee Tyl <thaddee.tyl@gmail.com>
4
+ Copyright (C) 2013 Mathias Bynens <mathias@qiwi.be>
5
+ Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
6
+ Copyright (C) 2012 Mathias Bynens <mathias@qiwi.be>
7
+ Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
8
+ Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com>
9
+ Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
10
+ Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>
11
+ Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>
12
+
13
+ Redistribution and use in source and binary forms, with or without
14
+ modification, are permitted provided that the following conditions are met:
15
+
16
+ * Redistributions of source code must retain the above copyright
17
+ notice, this list of conditions and the following disclaimer.
18
+ * Redistributions in binary form must reproduce the above copyright
19
+ notice, this list of conditions and the following disclaimer in the
20
+ documentation and/or other materials provided with the distribution.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25
+ ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
26
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
27
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
29
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
+ */
33
+
34
+ /*jslint bitwise:true plusplus:true */
35
+ /*global esprima:true, define:true, exports:true, window: true,
36
+ throwErrorTolerant: true,
37
+ throwError: true, generateStatement: true, peek: true,
38
+ parseAssignmentExpression: true, parseBlock: true, parseExpression: true,
39
+ parseFunctionDeclaration: true, parseFunctionExpression: true,
40
+ parseFunctionSourceElements: true, parseVariableIdentifier: true,
41
+ parseLeftHandSideExpression: true,
42
+ parseUnaryExpression: true,
43
+ parseStatement: true, parseSourceElement: true */
44
+
45
+ (function (root, factory) {
46
+ 'use strict';
47
+
48
+ // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js,
49
+ // Rhino, and plain browser loading.
50
+
51
+ /* istanbul ignore next */
52
+ if (typeof define === 'function' && define.amd) {
53
+ define(['exports'], factory);
54
+ } else if (typeof exports !== 'undefined') {
55
+ factory(exports);
56
+ } else {
57
+ factory((root.esprima = {}));
58
+ }
59
+ }(this, function (exports) {
60
+ 'use strict';
61
+
62
+ var Token,
63
+ TokenName,
64
+ FnExprTokens,
65
+ Syntax,
66
+ PropertyKind,
67
+ Messages,
68
+ Regex,
69
+ SyntaxTreeDelegate,
70
+ source,
71
+ strict,
72
+ index,
73
+ lineNumber,
74
+ lineStart,
75
+ length,
76
+ delegate,
77
+ lookahead,
78
+ state,
79
+ extra;
80
+
81
+ Token = {
82
+ BooleanLiteral: 1,
83
+ EOF: 2,
84
+ Identifier: 3,
85
+ Keyword: 4,
86
+ NullLiteral: 5,
87
+ NumericLiteral: 6,
88
+ Punctuator: 7,
89
+ StringLiteral: 8,
90
+ RegularExpression: 9
91
+ };
92
+
93
+ TokenName = {};
94
+ TokenName[Token.BooleanLiteral] = 'Boolean';
95
+ TokenName[Token.EOF] = '<end>';
96
+ TokenName[Token.Identifier] = 'Identifier';
97
+ TokenName[Token.Keyword] = 'Keyword';
98
+ TokenName[Token.NullLiteral] = 'Null';
99
+ TokenName[Token.NumericLiteral] = 'Numeric';
100
+ TokenName[Token.Punctuator] = 'Punctuator';
101
+ TokenName[Token.StringLiteral] = 'String';
102
+ TokenName[Token.RegularExpression] = 'RegularExpression';
103
+
104
+ // A function following one of those tokens is an expression.
105
+ FnExprTokens = ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new',
106
+ 'return', 'case', 'delete', 'throw', 'void',
107
+ // assignment operators
108
+ '=', '+=', '-=', '*=', '/=', '%=', '<<=', '>>=', '>>>=',
109
+ '&=', '|=', '^=', ',',
110
+ // binary/unary operators
111
+ '+', '-', '*', '/', '%', '++', '--', '<<', '>>', '>>>', '&',
112
+ '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=',
113
+ '<=', '<', '>', '!=', '!=='];
114
+
115
+ Syntax = {
116
+ AssignmentExpression: 'AssignmentExpression',
117
+ ArrayExpression: 'ArrayExpression',
118
+ BlockStatement: 'BlockStatement',
119
+ BinaryExpression: 'BinaryExpression',
120
+ BreakStatement: 'BreakStatement',
121
+ CallExpression: 'CallExpression',
122
+ CatchClause: 'CatchClause',
123
+ ConditionalExpression: 'ConditionalExpression',
124
+ ContinueStatement: 'ContinueStatement',
125
+ DoWhileStatement: 'DoWhileStatement',
126
+ DebuggerStatement: 'DebuggerStatement',
127
+ EmptyStatement: 'EmptyStatement',
128
+ ExpressionStatement: 'ExpressionStatement',
129
+ ForStatement: 'ForStatement',
130
+ ForInStatement: 'ForInStatement',
131
+ FunctionDeclaration: 'FunctionDeclaration',
132
+ FunctionExpression: 'FunctionExpression',
133
+ Identifier: 'Identifier',
134
+ IfStatement: 'IfStatement',
135
+ Literal: 'Literal',
136
+ LabeledStatement: 'LabeledStatement',
137
+ LogicalExpression: 'LogicalExpression',
138
+ MemberExpression: 'MemberExpression',
139
+ NewExpression: 'NewExpression',
140
+ ObjectExpression: 'ObjectExpression',
141
+ Program: 'Program',
142
+ Property: 'Property',
143
+ ReturnStatement: 'ReturnStatement',
144
+ SequenceExpression: 'SequenceExpression',
145
+ SwitchStatement: 'SwitchStatement',
146
+ SwitchCase: 'SwitchCase',
147
+ ThisExpression: 'ThisExpression',
148
+ ThrowStatement: 'ThrowStatement',
149
+ TryStatement: 'TryStatement',
150
+ UnaryExpression: 'UnaryExpression',
151
+ UpdateExpression: 'UpdateExpression',
152
+ VariableDeclaration: 'VariableDeclaration',
153
+ VariableDeclarator: 'VariableDeclarator',
154
+ WhileStatement: 'WhileStatement',
155
+ WithStatement: 'WithStatement'
156
+ };
157
+
158
+ PropertyKind = {
159
+ Data: 1,
160
+ Get: 2,
161
+ Set: 4
162
+ };
163
+
164
+ // Error messages should be identical to V8.
165
+ Messages = {
166
+ UnexpectedToken: 'Unexpected token %0',
167
+ UnexpectedNumber: 'Unexpected number',
168
+ UnexpectedString: 'Unexpected string',
169
+ UnexpectedIdentifier: 'Unexpected identifier',
170
+ UnexpectedReserved: 'Unexpected reserved word',
171
+ UnexpectedEOS: 'Unexpected end of input',
172
+ NewlineAfterThrow: 'Illegal newline after throw',
173
+ InvalidRegExp: 'Invalid regular expression',
174
+ UnterminatedRegExp: 'Invalid regular expression: missing /',
175
+ InvalidLHSInAssignment: 'Invalid left-hand side in assignment',
176
+ InvalidLHSInForIn: 'Invalid left-hand side in for-in',
177
+ MultipleDefaultsInSwitch: 'More than one default clause in switch statement',
178
+ NoCatchOrFinally: 'Missing catch or finally after try',
179
+ UnknownLabel: 'Undefined label \'%0\'',
180
+ Redeclaration: '%0 \'%1\' has already been declared',
181
+ IllegalContinue: 'Illegal continue statement',
182
+ IllegalBreak: 'Illegal break statement',
183
+ IllegalReturn: 'Illegal return statement',
184
+ StrictModeWith: 'Strict mode code may not include a with statement',
185
+ StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',
186
+ StrictVarName: 'Variable name may not be eval or arguments in strict mode',
187
+ StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',
188
+ StrictParamDupe: 'Strict mode function may not have duplicate parameter names',
189
+ StrictFunctionName: 'Function name may not be eval or arguments in strict mode',
190
+ StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',
191
+ StrictDelete: 'Delete of an unqualified identifier in strict mode.',
192
+ StrictDuplicateProperty: 'Duplicate data property in object literal not allowed in strict mode',
193
+ AccessorDataProperty: 'Object literal may not have data and accessor property with the same name',
194
+ AccessorGetSet: 'Object literal may not have multiple get/set accessors with the same name',
195
+ StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',
196
+ StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',
197
+ StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',
198
+ StrictReservedWord: 'Use of future reserved word in strict mode'
199
+ };
200
+
201
+ // See also tools/generate-unicode-regex.py.
202
+ Regex = {
203
+ NonAsciiIdentifierStart: new RegExp('[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]'),
204
+ NonAsciiIdentifierPart: new RegExp('[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]')
205
+ };
206
+
207
+ // Ensure the condition is true, otherwise throw an error.
208
+ // This is only to have a better contract semantic, i.e. another safety net
209
+ // to catch a logic error. The condition shall be fulfilled in normal case.
210
+ // Do NOT use this to enforce a certain condition on any user input.
211
+
212
+ function assert(condition, message) {
213
+ /* istanbul ignore if */
214
+ if (!condition) {
215
+ throw new Error('ASSERT: ' + message);
216
+ }
217
+ }
218
+
219
+ function isDecimalDigit(ch) {
220
+ return (ch >= 48 && ch <= 57); // 0..9
221
+ }
222
+
223
+ function isHexDigit(ch) {
224
+ return '0123456789abcdefABCDEF'.indexOf(ch) >= 0;
225
+ }
226
+
227
+ function isOctalDigit(ch) {
228
+ return '01234567'.indexOf(ch) >= 0;
229
+ }
230
+
231
+
232
+ // 7.2 White Space
233
+
234
+ function isWhiteSpace(ch) {
235
+ return (ch === 0x20) || (ch === 0x09) || (ch === 0x0B) || (ch === 0x0C) || (ch === 0xA0) ||
236
+ (ch >= 0x1680 && [0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(ch) >= 0);
237
+ }
238
+
239
+ // 7.3 Line Terminators
240
+
241
+ function isLineTerminator(ch) {
242
+ return (ch === 0x0A) || (ch === 0x0D) || (ch === 0x2028) || (ch === 0x2029);
243
+ }
244
+
245
+ // 7.6 Identifier Names and Identifiers
246
+
247
+ function isIdentifierStart(ch) {
248
+ return (ch === 0x24) || (ch === 0x5F) || // $ (dollar) and _ (underscore)
249
+ (ch >= 0x41 && ch <= 0x5A) || // A..Z
250
+ (ch >= 0x61 && ch <= 0x7A) || // a..z
251
+ (ch === 0x5C) || // \ (backslash)
252
+ ((ch >= 0x80) && Regex.NonAsciiIdentifierStart.test(String.fromCharCode(ch)));
253
+ }
254
+
255
+ function isIdentifierPart(ch) {
256
+ return (ch === 0x24) || (ch === 0x5F) || // $ (dollar) and _ (underscore)
257
+ (ch >= 0x41 && ch <= 0x5A) || // A..Z
258
+ (ch >= 0x61 && ch <= 0x7A) || // a..z
259
+ (ch >= 0x30 && ch <= 0x39) || // 0..9
260
+ (ch === 0x5C) || // \ (backslash)
261
+ ((ch >= 0x80) && Regex.NonAsciiIdentifierPart.test(String.fromCharCode(ch)));
262
+ }
263
+
264
+ // 7.6.1.2 Future Reserved Words
265
+
266
+ function isFutureReservedWord(id) {
267
+ switch (id) {
268
+ case 'class':
269
+ case 'enum':
270
+ case 'export':
271
+ case 'extends':
272
+ case 'import':
273
+ case 'super':
274
+ return true;
275
+ default:
276
+ return false;
277
+ }
278
+ }
279
+
280
+ function isStrictModeReservedWord(id) {
281
+ switch (id) {
282
+ case 'implements':
283
+ case 'interface':
284
+ case 'package':
285
+ case 'private':
286
+ case 'protected':
287
+ case 'public':
288
+ case 'static':
289
+ case 'yield':
290
+ case 'let':
291
+ return true;
292
+ default:
293
+ return false;
294
+ }
295
+ }
296
+
297
+ function isRestrictedWord(id) {
298
+ return id === 'eval' || id === 'arguments';
299
+ }
300
+
301
+ // 7.6.1.1 Keywords
302
+
303
+ function isKeyword(id) {
304
+ if (strict && isStrictModeReservedWord(id)) {
305
+ return true;
306
+ }
307
+
308
+ // 'const' is specialized as Keyword in V8.
309
+ // 'yield' and 'let' are for compatiblity with SpiderMonkey and ES.next.
310
+ // Some others are from future reserved words.
311
+
312
+ switch (id.length) {
313
+ case 2:
314
+ return (id === 'if') || (id === 'in') || (id === 'do');
315
+ case 3:
316
+ return (id === 'var') || (id === 'for') || (id === 'new') ||
317
+ (id === 'try') || (id === 'let');
318
+ case 4:
319
+ return (id === 'this') || (id === 'else') || (id === 'case') ||
320
+ (id === 'void') || (id === 'with') || (id === 'enum');
321
+ case 5:
322
+ return (id === 'while') || (id === 'break') || (id === 'catch') ||
323
+ (id === 'throw') || (id === 'const') || (id === 'yield') ||
324
+ (id === 'class') || (id === 'super');
325
+ case 6:
326
+ return (id === 'return') || (id === 'typeof') || (id === 'delete') ||
327
+ (id === 'switch') || (id === 'export') || (id === 'import');
328
+ case 7:
329
+ return (id === 'default') || (id === 'finally') || (id === 'extends');
330
+ case 8:
331
+ return (id === 'function') || (id === 'continue') || (id === 'debugger');
332
+ case 10:
333
+ return (id === 'instanceof');
334
+ default:
335
+ return false;
336
+ }
337
+ }
338
+
339
+ // 7.4 Comments
340
+
341
+ function addComment(type, value, start, end, loc) {
342
+ var comment, attacher;
343
+
344
+ assert(typeof start === 'number', 'Comment must have valid position');
345
+
346
+ // Because the way the actual token is scanned, often the comments
347
+ // (if any) are skipped twice during the lexical analysis.
348
+ // Thus, we need to skip adding a comment if the comment array already
349
+ // handled it.
350
+ if (state.lastCommentStart >= start) {
351
+ return;
352
+ }
353
+ state.lastCommentStart = start;
354
+
355
+ comment = {
356
+ type: type,
357
+ value: value
358
+ };
359
+ if (extra.range) {
360
+ comment.range = [start, end];
361
+ }
362
+ if (extra.loc) {
363
+ comment.loc = loc;
364
+ }
365
+ extra.comments.push(comment);
366
+ if (extra.attachComment) {
367
+ extra.leadingComments.push(comment);
368
+ extra.trailingComments.push(comment);
369
+ }
370
+ }
371
+
372
+ function skipSingleLineComment(offset) {
373
+ var start, loc, ch, comment;
374
+
375
+ start = index - offset;
376
+ loc = {
377
+ start: {
378
+ line: lineNumber,
379
+ column: index - lineStart - offset
380
+ }
381
+ };
382
+
383
+ while (index < length) {
384
+ ch = source.charCodeAt(index);
385
+ ++index;
386
+ if (isLineTerminator(ch)) {
387
+ if (extra.comments) {
388
+ comment = source.slice(start + offset, index - 1);
389
+ loc.end = {
390
+ line: lineNumber,
391
+ column: index - lineStart - 1
392
+ };
393
+ addComment('Line', comment, start, index - 1, loc);
394
+ }
395
+ if (ch === 13 && source.charCodeAt(index) === 10) {
396
+ ++index;
397
+ }
398
+ ++lineNumber;
399
+ lineStart = index;
400
+ return;
401
+ }
402
+ }
403
+
404
+ if (extra.comments) {
405
+ comment = source.slice(start + offset, index);
406
+ loc.end = {
407
+ line: lineNumber,
408
+ column: index - lineStart
409
+ };
410
+ addComment('Line', comment, start, index, loc);
411
+ }
412
+ }
413
+
414
+ function skipMultiLineComment() {
415
+ var start, loc, ch, comment;
416
+
417
+ if (extra.comments) {
418
+ start = index - 2;
419
+ loc = {
420
+ start: {
421
+ line: lineNumber,
422
+ column: index - lineStart - 2
423
+ }
424
+ };
425
+ }
426
+
427
+ while (index < length) {
428
+ ch = source.charCodeAt(index);
429
+ if (isLineTerminator(ch)) {
430
+ if (ch === 0x0D && source.charCodeAt(index + 1) === 0x0A) {
431
+ ++index;
432
+ }
433
+ ++lineNumber;
434
+ ++index;
435
+ lineStart = index;
436
+ if (index >= length) {
437
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
438
+ }
439
+ } else if (ch === 0x2A) {
440
+ // Block comment ends with '*/'.
441
+ if (source.charCodeAt(index + 1) === 0x2F) {
442
+ ++index;
443
+ ++index;
444
+ if (extra.comments) {
445
+ comment = source.slice(start + 2, index - 2);
446
+ loc.end = {
447
+ line: lineNumber,
448
+ column: index - lineStart
449
+ };
450
+ addComment('Block', comment, start, index, loc);
451
+ }
452
+ return;
453
+ }
454
+ ++index;
455
+ } else {
456
+ ++index;
457
+ }
458
+ }
459
+
460
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
461
+ }
462
+
463
+ function skipComment() {
464
+ var ch, start;
465
+
466
+ start = (index === 0);
467
+ while (index < length) {
468
+ ch = source.charCodeAt(index);
469
+
470
+ if (isWhiteSpace(ch)) {
471
+ ++index;
472
+ } else if (isLineTerminator(ch)) {
473
+ ++index;
474
+ if (ch === 0x0D && source.charCodeAt(index) === 0x0A) {
475
+ ++index;
476
+ }
477
+ ++lineNumber;
478
+ lineStart = index;
479
+ start = true;
480
+ } else if (ch === 0x2F) { // U+002F is '/'
481
+ ch = source.charCodeAt(index + 1);
482
+ if (ch === 0x2F) {
483
+ ++index;
484
+ ++index;
485
+ skipSingleLineComment(2);
486
+ start = true;
487
+ } else if (ch === 0x2A) { // U+002A is '*'
488
+ ++index;
489
+ ++index;
490
+ skipMultiLineComment();
491
+ } else {
492
+ break;
493
+ }
494
+ } else if (start && ch === 0x2D) { // U+002D is '-'
495
+ // U+003E is '>'
496
+ if ((source.charCodeAt(index + 1) === 0x2D) && (source.charCodeAt(index + 2) === 0x3E)) {
497
+ // '-->' is a single-line comment
498
+ index += 3;
499
+ skipSingleLineComment(3);
500
+ } else {
501
+ break;
502
+ }
503
+ } else if (ch === 0x3C) { // U+003C is '<'
504
+ if (source.slice(index + 1, index + 4) === '!--') {
505
+ ++index; // `<`
506
+ ++index; // `!`
507
+ ++index; // `-`
508
+ ++index; // `-`
509
+ skipSingleLineComment(4);
510
+ } else {
511
+ break;
512
+ }
513
+ } else {
514
+ break;
515
+ }
516
+ }
517
+ }
518
+
519
+ function scanHexEscape(prefix) {
520
+ var i, len, ch, code = 0;
521
+
522
+ len = (prefix === 'u') ? 4 : 2;
523
+ for (i = 0; i < len; ++i) {
524
+ if (index < length && isHexDigit(source[index])) {
525
+ ch = source[index++];
526
+ code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());
527
+ } else {
528
+ return '';
529
+ }
530
+ }
531
+ return String.fromCharCode(code);
532
+ }
533
+
534
+ function getEscapedIdentifier() {
535
+ var ch, id;
536
+
537
+ ch = source.charCodeAt(index++);
538
+ id = String.fromCharCode(ch);
539
+
540
+ // '\u' (U+005C, U+0075) denotes an escaped character.
541
+ if (ch === 0x5C) {
542
+ if (source.charCodeAt(index) !== 0x75) {
543
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
544
+ }
545
+ ++index;
546
+ ch = scanHexEscape('u');
547
+ if (!ch || ch === '\\' || !isIdentifierStart(ch.charCodeAt(0))) {
548
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
549
+ }
550
+ id = ch;
551
+ }
552
+
553
+ while (index < length) {
554
+ ch = source.charCodeAt(index);
555
+ if (!isIdentifierPart(ch)) {
556
+ break;
557
+ }
558
+ ++index;
559
+ id += String.fromCharCode(ch);
560
+
561
+ // '\u' (U+005C, U+0075) denotes an escaped character.
562
+ if (ch === 0x5C) {
563
+ id = id.substr(0, id.length - 1);
564
+ if (source.charCodeAt(index) !== 0x75) {
565
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
566
+ }
567
+ ++index;
568
+ ch = scanHexEscape('u');
569
+ if (!ch || ch === '\\' || !isIdentifierPart(ch.charCodeAt(0))) {
570
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
571
+ }
572
+ id += ch;
573
+ }
574
+ }
575
+
576
+ return id;
577
+ }
578
+
579
+ function getIdentifier() {
580
+ var start, ch;
581
+
582
+ start = index++;
583
+ while (index < length) {
584
+ ch = source.charCodeAt(index);
585
+ if (ch === 0x5C) {
586
+ // Blackslash (U+005C) marks Unicode escape sequence.
587
+ index = start;
588
+ return getEscapedIdentifier();
589
+ }
590
+ if (isIdentifierPart(ch)) {
591
+ ++index;
592
+ } else {
593
+ break;
594
+ }
595
+ }
596
+
597
+ return source.slice(start, index);
598
+ }
599
+
600
+ function scanIdentifier() {
601
+ var start, id, type;
602
+
603
+ start = index;
604
+
605
+ // Backslash (U+005C) starts an escaped character.
606
+ id = (source.charCodeAt(index) === 0x5C) ? getEscapedIdentifier() : getIdentifier();
607
+
608
+ // There is no keyword or literal with only one character.
609
+ // Thus, it must be an identifier.
610
+ if (id.length === 1) {
611
+ type = Token.Identifier;
612
+ } else if (isKeyword(id)) {
613
+ type = Token.Keyword;
614
+ } else if (id === 'null') {
615
+ type = Token.NullLiteral;
616
+ } else if (id === 'true' || id === 'false') {
617
+ type = Token.BooleanLiteral;
618
+ } else {
619
+ type = Token.Identifier;
620
+ }
621
+
622
+ return {
623
+ type: type,
624
+ value: id,
625
+ lineNumber: lineNumber,
626
+ lineStart: lineStart,
627
+ start: start,
628
+ end: index
629
+ };
630
+ }
631
+
632
+
633
+ // 7.7 Punctuators
634
+
635
+ function scanPunctuator() {
636
+ var start = index,
637
+ code = source.charCodeAt(index),
638
+ code2,
639
+ ch1 = source[index],
640
+ ch2,
641
+ ch3,
642
+ ch4;
643
+
644
+ switch (code) {
645
+
646
+ // Check for most common single-character punctuators.
647
+ case 0x2E: // . dot
648
+ case 0x28: // ( open bracket
649
+ case 0x29: // ) close bracket
650
+ case 0x3B: // ; semicolon
651
+ case 0x2C: // , comma
652
+ case 0x7B: // { open curly brace
653
+ case 0x7D: // } close curly brace
654
+ case 0x5B: // [
655
+ case 0x5D: // ]
656
+ case 0x3A: // :
657
+ case 0x3F: // ?
658
+ case 0x7E: // ~
659
+ ++index;
660
+ if (extra.tokenize) {
661
+ if (code === 0x28) {
662
+ extra.openParenToken = extra.tokens.length;
663
+ } else if (code === 0x7B) {
664
+ extra.openCurlyToken = extra.tokens.length;
665
+ }
666
+ }
667
+ return {
668
+ type: Token.Punctuator,
669
+ value: String.fromCharCode(code),
670
+ lineNumber: lineNumber,
671
+ lineStart: lineStart,
672
+ start: start,
673
+ end: index
674
+ };
675
+
676
+ default:
677
+ code2 = source.charCodeAt(index + 1);
678
+
679
+ // '=' (U+003D) marks an assignment or comparison operator.
680
+ if (code2 === 0x3D) {
681
+ switch (code) {
682
+ case 0x2B: // +
683
+ case 0x2D: // -
684
+ case 0x2F: // /
685
+ case 0x3C: // <
686
+ case 0x3E: // >
687
+ case 0x5E: // ^
688
+ case 0x7C: // |
689
+ case 0x25: // %
690
+ case 0x26: // &
691
+ case 0x2A: // *
692
+ index += 2;
693
+ return {
694
+ type: Token.Punctuator,
695
+ value: String.fromCharCode(code) + String.fromCharCode(code2),
696
+ lineNumber: lineNumber,
697
+ lineStart: lineStart,
698
+ start: start,
699
+ end: index
700
+ };
701
+
702
+ case 0x21: // !
703
+ case 0x3D: // =
704
+ index += 2;
705
+
706
+ // !== and ===
707
+ if (source.charCodeAt(index) === 0x3D) {
708
+ ++index;
709
+ }
710
+ return {
711
+ type: Token.Punctuator,
712
+ value: source.slice(start, index),
713
+ lineNumber: lineNumber,
714
+ lineStart: lineStart,
715
+ start: start,
716
+ end: index
717
+ };
718
+ }
719
+ }
720
+ }
721
+
722
+ // 4-character punctuator: >>>=
723
+
724
+ ch4 = source.substr(index, 4);
725
+
726
+ if (ch4 === '>>>=') {
727
+ index += 4;
728
+ return {
729
+ type: Token.Punctuator,
730
+ value: ch4,
731
+ lineNumber: lineNumber,
732
+ lineStart: lineStart,
733
+ start: start,
734
+ end: index
735
+ };
736
+ }
737
+
738
+ // 3-character punctuators: === !== >>> <<= >>=
739
+
740
+ ch3 = ch4.substr(0, 3);
741
+
742
+ if (ch3 === '>>>' || ch3 === '<<=' || ch3 === '>>=') {
743
+ index += 3;
744
+ return {
745
+ type: Token.Punctuator,
746
+ value: ch3,
747
+ lineNumber: lineNumber,
748
+ lineStart: lineStart,
749
+ start: start,
750
+ end: index
751
+ };
752
+ }
753
+
754
+ // Other 2-character punctuators: ++ -- << >> && ||
755
+ ch2 = ch3.substr(0, 2);
756
+
757
+ if ((ch1 === ch2[1] && ('+-<>&|'.indexOf(ch1) >= 0)) || ch2 === '=>') {
758
+ index += 2;
759
+ return {
760
+ type: Token.Punctuator,
761
+ value: ch2,
762
+ lineNumber: lineNumber,
763
+ lineStart: lineStart,
764
+ start: start,
765
+ end: index
766
+ };
767
+ }
768
+
769
+ // 1-character punctuators: < > = ! + - * % & | ^ /
770
+ if ('<>=!+-*%&|^/'.indexOf(ch1) >= 0) {
771
+ ++index;
772
+ return {
773
+ type: Token.Punctuator,
774
+ value: ch1,
775
+ lineNumber: lineNumber,
776
+ lineStart: lineStart,
777
+ start: start,
778
+ end: index
779
+ };
780
+ }
781
+
782
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
783
+ }
784
+
785
+ // 7.8.3 Numeric Literals
786
+
787
+ function scanHexLiteral(start) {
788
+ var number = '';
789
+
790
+ while (index < length) {
791
+ if (!isHexDigit(source[index])) {
792
+ break;
793
+ }
794
+ number += source[index++];
795
+ }
796
+
797
+ if (number.length === 0) {
798
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
799
+ }
800
+
801
+ if (isIdentifierStart(source.charCodeAt(index))) {
802
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
803
+ }
804
+
805
+ return {
806
+ type: Token.NumericLiteral,
807
+ value: parseInt('0x' + number, 16),
808
+ lineNumber: lineNumber,
809
+ lineStart: lineStart,
810
+ start: start,
811
+ end: index
812
+ };
813
+ }
814
+
815
+ function scanOctalLiteral(start) {
816
+ var number = '0' + source[index++];
817
+ while (index < length) {
818
+ if (!isOctalDigit(source[index])) {
819
+ break;
820
+ }
821
+ number += source[index++];
822
+ }
823
+
824
+ if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) {
825
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
826
+ }
827
+
828
+ return {
829
+ type: Token.NumericLiteral,
830
+ value: parseInt(number, 8),
831
+ octal: true,
832
+ lineNumber: lineNumber,
833
+ lineStart: lineStart,
834
+ start: start,
835
+ end: index
836
+ };
837
+ }
838
+
839
+ function isImplicitOctalLiteral() {
840
+ var i, ch;
841
+
842
+ // Implicit octal, unless there is a non-octal digit.
843
+ // (Annex B.1.1 on Numeric Literals)
844
+ for (i = index + 1; i < length; ++i) {
845
+ ch = source[i];
846
+ if (ch === '8' || ch === '9') {
847
+ return false;
848
+ }
849
+ if (!isOctalDigit(ch)) {
850
+ return true;
851
+ }
852
+ }
853
+
854
+ return true;
855
+ }
856
+
857
+ function scanNumericLiteral() {
858
+ var number, start, ch;
859
+
860
+ ch = source[index];
861
+ assert(isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'),
862
+ 'Numeric literal must start with a decimal digit or a decimal point');
863
+
864
+ start = index;
865
+ number = '';
866
+ if (ch !== '.') {
867
+ number = source[index++];
868
+ ch = source[index];
869
+
870
+ // Hex number starts with '0x'.
871
+ // Octal number starts with '0'.
872
+ if (number === '0') {
873
+ if (ch === 'x' || ch === 'X') {
874
+ ++index;
875
+ return scanHexLiteral(start);
876
+ }
877
+ if (isOctalDigit(ch)) {
878
+ if (isImplicitOctalLiteral()) {
879
+ return scanOctalLiteral(start);
880
+ }
881
+ }
882
+ }
883
+
884
+ while (isDecimalDigit(source.charCodeAt(index))) {
885
+ number += source[index++];
886
+ }
887
+ ch = source[index];
888
+ }
889
+
890
+ if (ch === '.') {
891
+ number += source[index++];
892
+ while (isDecimalDigit(source.charCodeAt(index))) {
893
+ number += source[index++];
894
+ }
895
+ ch = source[index];
896
+ }
897
+
898
+ if (ch === 'e' || ch === 'E') {
899
+ number += source[index++];
900
+
901
+ ch = source[index];
902
+ if (ch === '+' || ch === '-') {
903
+ number += source[index++];
904
+ }
905
+ if (isDecimalDigit(source.charCodeAt(index))) {
906
+ while (isDecimalDigit(source.charCodeAt(index))) {
907
+ number += source[index++];
908
+ }
909
+ } else {
910
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
911
+ }
912
+ }
913
+
914
+ if (isIdentifierStart(source.charCodeAt(index))) {
915
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
916
+ }
917
+
918
+ return {
919
+ type: Token.NumericLiteral,
920
+ value: parseFloat(number),
921
+ lineNumber: lineNumber,
922
+ lineStart: lineStart,
923
+ start: start,
924
+ end: index
925
+ };
926
+ }
927
+
928
+ // 7.8.4 String Literals
929
+
930
+ function scanStringLiteral() {
931
+ var str = '', quote, start, ch, code, unescaped, restore, octal = false, startLineNumber, startLineStart;
932
+ startLineNumber = lineNumber;
933
+ startLineStart = lineStart;
934
+
935
+ quote = source[index];
936
+ assert((quote === '\'' || quote === '"'),
937
+ 'String literal must starts with a quote');
938
+
939
+ start = index;
940
+ ++index;
941
+
942
+ while (index < length) {
943
+ ch = source[index++];
944
+
945
+ if (ch === quote) {
946
+ quote = '';
947
+ break;
948
+ } else if (ch === '\\') {
949
+ ch = source[index++];
950
+ if (!ch || !isLineTerminator(ch.charCodeAt(0))) {
951
+ switch (ch) {
952
+ case 'u':
953
+ case 'x':
954
+ restore = index;
955
+ unescaped = scanHexEscape(ch);
956
+ if (unescaped) {
957
+ str += unescaped;
958
+ } else {
959
+ index = restore;
960
+ str += ch;
961
+ }
962
+ break;
963
+ case 'n':
964
+ str += '\n';
965
+ break;
966
+ case 'r':
967
+ str += '\r';
968
+ break;
969
+ case 't':
970
+ str += '\t';
971
+ break;
972
+ case 'b':
973
+ str += '\b';
974
+ break;
975
+ case 'f':
976
+ str += '\f';
977
+ break;
978
+ case 'v':
979
+ str += '\x0B';
980
+ break;
981
+
982
+ default:
983
+ if (isOctalDigit(ch)) {
984
+ code = '01234567'.indexOf(ch);
985
+
986
+ // \0 is not octal escape sequence
987
+ if (code !== 0) {
988
+ octal = true;
989
+ }
990
+
991
+ if (index < length && isOctalDigit(source[index])) {
992
+ octal = true;
993
+ code = code * 8 + '01234567'.indexOf(source[index++]);
994
+
995
+ // 3 digits are only allowed when string starts
996
+ // with 0, 1, 2, 3
997
+ if ('0123'.indexOf(ch) >= 0 &&
998
+ index < length &&
999
+ isOctalDigit(source[index])) {
1000
+ code = code * 8 + '01234567'.indexOf(source[index++]);
1001
+ }
1002
+ }
1003
+ str += String.fromCharCode(code);
1004
+ } else {
1005
+ str += ch;
1006
+ }
1007
+ break;
1008
+ }
1009
+ } else {
1010
+ ++lineNumber;
1011
+ if (ch === '\r' && source[index] === '\n') {
1012
+ ++index;
1013
+ }
1014
+ lineStart = index;
1015
+ }
1016
+ } else if (isLineTerminator(ch.charCodeAt(0))) {
1017
+ break;
1018
+ } else {
1019
+ str += ch;
1020
+ }
1021
+ }
1022
+
1023
+ if (quote !== '') {
1024
+ throwError({}, Messages.UnexpectedToken, 'ILLEGAL');
1025
+ }
1026
+
1027
+ return {
1028
+ type: Token.StringLiteral,
1029
+ value: str,
1030
+ octal: octal,
1031
+ startLineNumber: startLineNumber,
1032
+ startLineStart: startLineStart,
1033
+ lineNumber: lineNumber,
1034
+ lineStart: lineStart,
1035
+ start: start,
1036
+ end: index
1037
+ };
1038
+ }
1039
+
1040
+ function testRegExp(pattern, flags) {
1041
+ var value;
1042
+ try {
1043
+ value = new RegExp(pattern, flags);
1044
+ } catch (e) {
1045
+ throwError({}, Messages.InvalidRegExp);
1046
+ }
1047
+ return value;
1048
+ }
1049
+
1050
+ function scanRegExpBody() {
1051
+ var ch, str, classMarker, terminated, body;
1052
+
1053
+ ch = source[index];
1054
+ assert(ch === '/', 'Regular expression literal must start with a slash');
1055
+ str = source[index++];
1056
+
1057
+ classMarker = false;
1058
+ terminated = false;
1059
+ while (index < length) {
1060
+ ch = source[index++];
1061
+ str += ch;
1062
+ if (ch === '\\') {
1063
+ ch = source[index++];
1064
+ // ECMA-262 7.8.5
1065
+ if (isLineTerminator(ch.charCodeAt(0))) {
1066
+ throwError({}, Messages.UnterminatedRegExp);
1067
+ }
1068
+ str += ch;
1069
+ } else if (isLineTerminator(ch.charCodeAt(0))) {
1070
+ throwError({}, Messages.UnterminatedRegExp);
1071
+ } else if (classMarker) {
1072
+ if (ch === ']') {
1073
+ classMarker = false;
1074
+ }
1075
+ } else {
1076
+ if (ch === '/') {
1077
+ terminated = true;
1078
+ break;
1079
+ } else if (ch === '[') {
1080
+ classMarker = true;
1081
+ }
1082
+ }
1083
+ }
1084
+
1085
+ if (!terminated) {
1086
+ throwError({}, Messages.UnterminatedRegExp);
1087
+ }
1088
+
1089
+ // Exclude leading and trailing slash.
1090
+ body = str.substr(1, str.length - 2);
1091
+ return {
1092
+ value: body,
1093
+ literal: str
1094
+ };
1095
+ }
1096
+
1097
+ function scanRegExpFlags() {
1098
+ var ch, str, flags, restore;
1099
+
1100
+ str = '';
1101
+ flags = '';
1102
+ while (index < length) {
1103
+ ch = source[index];
1104
+ if (!isIdentifierPart(ch.charCodeAt(0))) {
1105
+ break;
1106
+ }
1107
+
1108
+ ++index;
1109
+ if (ch === '\\' && index < length) {
1110
+ ch = source[index];
1111
+ if (ch === 'u') {
1112
+ ++index;
1113
+ restore = index;
1114
+ ch = scanHexEscape('u');
1115
+ if (ch) {
1116
+ flags += ch;
1117
+ for (str += '\\u'; restore < index; ++restore) {
1118
+ str += source[restore];
1119
+ }
1120
+ } else {
1121
+ index = restore;
1122
+ flags += 'u';
1123
+ str += '\\u';
1124
+ }
1125
+ throwErrorTolerant({}, Messages.UnexpectedToken, 'ILLEGAL');
1126
+ } else {
1127
+ str += '\\';
1128
+ throwErrorTolerant({}, Messages.UnexpectedToken, 'ILLEGAL');
1129
+ }
1130
+ } else {
1131
+ flags += ch;
1132
+ str += ch;
1133
+ }
1134
+ }
1135
+
1136
+ return {
1137
+ value: flags,
1138
+ literal: str
1139
+ };
1140
+ }
1141
+
1142
+ function scanRegExp() {
1143
+ var start, body, flags, pattern, value;
1144
+
1145
+ lookahead = null;
1146
+ skipComment();
1147
+ start = index;
1148
+
1149
+ body = scanRegExpBody();
1150
+ flags = scanRegExpFlags();
1151
+ value = testRegExp(body.value, flags.value);
1152
+
1153
+ if (extra.tokenize) {
1154
+ return {
1155
+ type: Token.RegularExpression,
1156
+ value: value,
1157
+ lineNumber: lineNumber,
1158
+ lineStart: lineStart,
1159
+ start: start,
1160
+ end: index
1161
+ };
1162
+ }
1163
+
1164
+ return {
1165
+ literal: body.literal + flags.literal,
1166
+ value: value,
1167
+ start: start,
1168
+ end: index
1169
+ };
1170
+ }
1171
+
1172
+ function collectRegex() {
1173
+ var pos, loc, regex, token;
1174
+
1175
+ skipComment();
1176
+
1177
+ pos = index;
1178
+ loc = {
1179
+ start: {
1180
+ line: lineNumber,
1181
+ column: index - lineStart
1182
+ }
1183
+ };
1184
+
1185
+ regex = scanRegExp();
1186
+ loc.end = {
1187
+ line: lineNumber,
1188
+ column: index - lineStart
1189
+ };
1190
+
1191
+ /* istanbul ignore next */
1192
+ if (!extra.tokenize) {
1193
+ // Pop the previous token, which is likely '/' or '/='
1194
+ if (extra.tokens.length > 0) {
1195
+ token = extra.tokens[extra.tokens.length - 1];
1196
+ if (token.range[0] === pos && token.type === 'Punctuator') {
1197
+ if (token.value === '/' || token.value === '/=') {
1198
+ extra.tokens.pop();
1199
+ }
1200
+ }
1201
+ }
1202
+
1203
+ extra.tokens.push({
1204
+ type: 'RegularExpression',
1205
+ value: regex.literal,
1206
+ range: [pos, index],
1207
+ loc: loc
1208
+ });
1209
+ }
1210
+
1211
+ return regex;
1212
+ }
1213
+
1214
+ function isIdentifierName(token) {
1215
+ return token.type === Token.Identifier ||
1216
+ token.type === Token.Keyword ||
1217
+ token.type === Token.BooleanLiteral ||
1218
+ token.type === Token.NullLiteral;
1219
+ }
1220
+
1221
+ function advanceSlash() {
1222
+ var prevToken,
1223
+ checkToken;
1224
+ // Using the following algorithm:
1225
+ // https://github.com/mozilla/sweet.js/wiki/design
1226
+ prevToken = extra.tokens[extra.tokens.length - 1];
1227
+ if (!prevToken) {
1228
+ // Nothing before that: it cannot be a division.
1229
+ return collectRegex();
1230
+ }
1231
+ if (prevToken.type === 'Punctuator') {
1232
+ if (prevToken.value === ']') {
1233
+ return scanPunctuator();
1234
+ }
1235
+ if (prevToken.value === ')') {
1236
+ checkToken = extra.tokens[extra.openParenToken - 1];
1237
+ if (checkToken &&
1238
+ checkToken.type === 'Keyword' &&
1239
+ (checkToken.value === 'if' ||
1240
+ checkToken.value === 'while' ||
1241
+ checkToken.value === 'for' ||
1242
+ checkToken.value === 'with')) {
1243
+ return collectRegex();
1244
+ }
1245
+ return scanPunctuator();
1246
+ }
1247
+ if (prevToken.value === '}') {
1248
+ // Dividing a function by anything makes little sense,
1249
+ // but we have to check for that.
1250
+ if (extra.tokens[extra.openCurlyToken - 3] &&
1251
+ extra.tokens[extra.openCurlyToken - 3].type === 'Keyword') {
1252
+ // Anonymous function.
1253
+ checkToken = extra.tokens[extra.openCurlyToken - 4];
1254
+ if (!checkToken) {
1255
+ return scanPunctuator();
1256
+ }
1257
+ } else if (extra.tokens[extra.openCurlyToken - 4] &&
1258
+ extra.tokens[extra.openCurlyToken - 4].type === 'Keyword') {
1259
+ // Named function.
1260
+ checkToken = extra.tokens[extra.openCurlyToken - 5];
1261
+ if (!checkToken) {
1262
+ return collectRegex();
1263
+ }
1264
+ } else {
1265
+ return scanPunctuator();
1266
+ }
1267
+ // checkToken determines whether the function is
1268
+ // a declaration or an expression.
1269
+ if (FnExprTokens.indexOf(checkToken.value) >= 0) {
1270
+ // It is an expression.
1271
+ return scanPunctuator();
1272
+ }
1273
+ // It is a declaration.
1274
+ return collectRegex();
1275
+ }
1276
+ return collectRegex();
1277
+ }
1278
+ if (prevToken.type === 'Keyword' && prevToken.value !== 'this') {
1279
+ return collectRegex();
1280
+ }
1281
+ return scanPunctuator();
1282
+ }
1283
+
1284
+ function advance() {
1285
+ var ch;
1286
+
1287
+ skipComment();
1288
+
1289
+ if (index >= length) {
1290
+ return {
1291
+ type: Token.EOF,
1292
+ lineNumber: lineNumber,
1293
+ lineStart: lineStart,
1294
+ start: index,
1295
+ end: index
1296
+ };
1297
+ }
1298
+
1299
+ ch = source.charCodeAt(index);
1300
+
1301
+ if (isIdentifierStart(ch)) {
1302
+ return scanIdentifier();
1303
+ }
1304
+
1305
+ // Very common: ( and ) and ;
1306
+ if (ch === 0x28 || ch === 0x29 || ch === 0x3B) {
1307
+ return scanPunctuator();
1308
+ }
1309
+
1310
+ // String literal starts with single quote (U+0027) or double quote (U+0022).
1311
+ if (ch === 0x27 || ch === 0x22) {
1312
+ return scanStringLiteral();
1313
+ }
1314
+
1315
+
1316
+ // Dot (.) U+002E can also start a floating-point number, hence the need
1317
+ // to check the next character.
1318
+ if (ch === 0x2E) {
1319
+ if (isDecimalDigit(source.charCodeAt(index + 1))) {
1320
+ return scanNumericLiteral();
1321
+ }
1322
+ return scanPunctuator();
1323
+ }
1324
+
1325
+ if (isDecimalDigit(ch)) {
1326
+ return scanNumericLiteral();
1327
+ }
1328
+
1329
+ // Slash (/) U+002F can also start a regex.
1330
+ if (extra.tokenize && ch === 0x2F) {
1331
+ return advanceSlash();
1332
+ }
1333
+
1334
+ return scanPunctuator();
1335
+ }
1336
+
1337
+ function collectToken() {
1338
+ var loc, token, range, value;
1339
+
1340
+ skipComment();
1341
+ loc = {
1342
+ start: {
1343
+ line: lineNumber,
1344
+ column: index - lineStart
1345
+ }
1346
+ };
1347
+
1348
+ token = advance();
1349
+ loc.end = {
1350
+ line: lineNumber,
1351
+ column: index - lineStart
1352
+ };
1353
+
1354
+ if (token.type !== Token.EOF) {
1355
+ value = source.slice(token.start, token.end);
1356
+ extra.tokens.push({
1357
+ type: TokenName[token.type],
1358
+ value: value,
1359
+ range: [token.start, token.end],
1360
+ loc: loc
1361
+ });
1362
+ }
1363
+
1364
+ return token;
1365
+ }
1366
+
1367
+ function lex() {
1368
+ var token;
1369
+
1370
+ token = lookahead;
1371
+ index = token.end;
1372
+ lineNumber = token.lineNumber;
1373
+ lineStart = token.lineStart;
1374
+
1375
+ lookahead = (typeof extra.tokens !== 'undefined') ? collectToken() : advance();
1376
+
1377
+ index = token.end;
1378
+ lineNumber = token.lineNumber;
1379
+ lineStart = token.lineStart;
1380
+
1381
+ return token;
1382
+ }
1383
+
1384
+ function peek() {
1385
+ var pos, line, start;
1386
+
1387
+ pos = index;
1388
+ line = lineNumber;
1389
+ start = lineStart;
1390
+ lookahead = (typeof extra.tokens !== 'undefined') ? collectToken() : advance();
1391
+ index = pos;
1392
+ lineNumber = line;
1393
+ lineStart = start;
1394
+ }
1395
+
1396
+ function Position(line, column) {
1397
+ this.line = line;
1398
+ this.column = column;
1399
+ }
1400
+
1401
+ function SourceLocation(startLine, startColumn, line, column) {
1402
+ this.start = new Position(startLine, startColumn);
1403
+ this.end = new Position(line, column);
1404
+ }
1405
+
1406
+ SyntaxTreeDelegate = {
1407
+
1408
+ name: 'SyntaxTree',
1409
+
1410
+ processComment: function (node) {
1411
+ var lastChild, trailingComments;
1412
+
1413
+ if (node.type === Syntax.Program) {
1414
+ if (node.body.length > 0) {
1415
+ return;
1416
+ }
1417
+ }
1418
+
1419
+ if (extra.trailingComments.length > 0) {
1420
+ if (extra.trailingComments[0].range[0] >= node.range[1]) {
1421
+ trailingComments = extra.trailingComments;
1422
+ extra.trailingComments = [];
1423
+ } else {
1424
+ extra.trailingComments.length = 0;
1425
+ }
1426
+ } else {
1427
+ if (extra.bottomRightStack.length > 0 &&
1428
+ extra.bottomRightStack[extra.bottomRightStack.length - 1].trailingComments &&
1429
+ extra.bottomRightStack[extra.bottomRightStack.length - 1].trailingComments[0].range[0] >= node.range[1]) {
1430
+ trailingComments = extra.bottomRightStack[extra.bottomRightStack.length - 1].trailingComments;
1431
+ delete extra.bottomRightStack[extra.bottomRightStack.length - 1].trailingComments;
1432
+ }
1433
+ }
1434
+
1435
+ // Eating the stack.
1436
+ while (extra.bottomRightStack.length > 0 && extra.bottomRightStack[extra.bottomRightStack.length - 1].range[0] >= node.range[0]) {
1437
+ lastChild = extra.bottomRightStack.pop();
1438
+ }
1439
+
1440
+ if (lastChild) {
1441
+ if (lastChild.leadingComments && lastChild.leadingComments[lastChild.leadingComments.length - 1].range[1] <= node.range[0]) {
1442
+ node.leadingComments = lastChild.leadingComments;
1443
+ delete lastChild.leadingComments;
1444
+ }
1445
+ } else if (extra.leadingComments.length > 0 && extra.leadingComments[extra.leadingComments.length - 1].range[1] <= node.range[0]) {
1446
+ node.leadingComments = extra.leadingComments;
1447
+ extra.leadingComments = [];
1448
+ }
1449
+
1450
+
1451
+ if (trailingComments) {
1452
+ node.trailingComments = trailingComments;
1453
+ }
1454
+
1455
+ extra.bottomRightStack.push(node);
1456
+ },
1457
+
1458
+ markEnd: function (node, startToken) {
1459
+ if (extra.range) {
1460
+ node.range = [startToken.start, index];
1461
+ }
1462
+ if (extra.loc) {
1463
+ node.loc = new SourceLocation(
1464
+ startToken.startLineNumber === undefined ? startToken.lineNumber : startToken.startLineNumber,
1465
+ startToken.start - (startToken.startLineStart === undefined ? startToken.lineStart : startToken.startLineStart),
1466
+ lineNumber,
1467
+ index - lineStart
1468
+ );
1469
+ this.postProcess(node);
1470
+ }
1471
+
1472
+ if (extra.attachComment) {
1473
+ this.processComment(node);
1474
+ }
1475
+ return node;
1476
+ },
1477
+
1478
+ postProcess: function (node) {
1479
+ if (extra.source) {
1480
+ node.loc.source = extra.source;
1481
+ }
1482
+ return node;
1483
+ },
1484
+
1485
+ createArrayExpression: function (elements) {
1486
+ return {
1487
+ type: Syntax.ArrayExpression,
1488
+ elements: elements
1489
+ };
1490
+ },
1491
+
1492
+ createAssignmentExpression: function (operator, left, right) {
1493
+ return {
1494
+ type: Syntax.AssignmentExpression,
1495
+ operator: operator,
1496
+ left: left,
1497
+ right: right
1498
+ };
1499
+ },
1500
+
1501
+ createBinaryExpression: function (operator, left, right) {
1502
+ var type = (operator === '||' || operator === '&&') ? Syntax.LogicalExpression :
1503
+ Syntax.BinaryExpression;
1504
+ return {
1505
+ type: type,
1506
+ operator: operator,
1507
+ left: left,
1508
+ right: right
1509
+ };
1510
+ },
1511
+
1512
+ createBlockStatement: function (body) {
1513
+ return {
1514
+ type: Syntax.BlockStatement,
1515
+ body: body
1516
+ };
1517
+ },
1518
+
1519
+ createBreakStatement: function (label) {
1520
+ return {
1521
+ type: Syntax.BreakStatement,
1522
+ label: label
1523
+ };
1524
+ },
1525
+
1526
+ createCallExpression: function (callee, args) {
1527
+ return {
1528
+ type: Syntax.CallExpression,
1529
+ callee: callee,
1530
+ 'arguments': args
1531
+ };
1532
+ },
1533
+
1534
+ createCatchClause: function (param, body) {
1535
+ return {
1536
+ type: Syntax.CatchClause,
1537
+ param: param,
1538
+ body: body
1539
+ };
1540
+ },
1541
+
1542
+ createConditionalExpression: function (test, consequent, alternate) {
1543
+ return {
1544
+ type: Syntax.ConditionalExpression,
1545
+ test: test,
1546
+ consequent: consequent,
1547
+ alternate: alternate
1548
+ };
1549
+ },
1550
+
1551
+ createContinueStatement: function (label) {
1552
+ return {
1553
+ type: Syntax.ContinueStatement,
1554
+ label: label
1555
+ };
1556
+ },
1557
+
1558
+ createDebuggerStatement: function () {
1559
+ return {
1560
+ type: Syntax.DebuggerStatement
1561
+ };
1562
+ },
1563
+
1564
+ createDoWhileStatement: function (body, test) {
1565
+ return {
1566
+ type: Syntax.DoWhileStatement,
1567
+ body: body,
1568
+ test: test
1569
+ };
1570
+ },
1571
+
1572
+ createEmptyStatement: function () {
1573
+ return {
1574
+ type: Syntax.EmptyStatement
1575
+ };
1576
+ },
1577
+
1578
+ createExpressionStatement: function (expression) {
1579
+ return {
1580
+ type: Syntax.ExpressionStatement,
1581
+ expression: expression
1582
+ };
1583
+ },
1584
+
1585
+ createForStatement: function (init, test, update, body) {
1586
+ return {
1587
+ type: Syntax.ForStatement,
1588
+ init: init,
1589
+ test: test,
1590
+ update: update,
1591
+ body: body
1592
+ };
1593
+ },
1594
+
1595
+ createForInStatement: function (left, right, body) {
1596
+ return {
1597
+ type: Syntax.ForInStatement,
1598
+ left: left,
1599
+ right: right,
1600
+ body: body,
1601
+ each: false
1602
+ };
1603
+ },
1604
+
1605
+ createFunctionDeclaration: function (id, params, defaults, body) {
1606
+ return {
1607
+ type: Syntax.FunctionDeclaration,
1608
+ id: id,
1609
+ params: params,
1610
+ defaults: defaults,
1611
+ body: body,
1612
+ rest: null,
1613
+ generator: false,
1614
+ expression: false
1615
+ };
1616
+ },
1617
+
1618
+ createFunctionExpression: function (id, params, defaults, body) {
1619
+ return {
1620
+ type: Syntax.FunctionExpression,
1621
+ id: id,
1622
+ params: params,
1623
+ defaults: defaults,
1624
+ body: body,
1625
+ rest: null,
1626
+ generator: false,
1627
+ expression: false
1628
+ };
1629
+ },
1630
+
1631
+ createIdentifier: function (name) {
1632
+ return {
1633
+ type: Syntax.Identifier,
1634
+ name: name
1635
+ };
1636
+ },
1637
+
1638
+ createIfStatement: function (test, consequent, alternate) {
1639
+ return {
1640
+ type: Syntax.IfStatement,
1641
+ test: test,
1642
+ consequent: consequent,
1643
+ alternate: alternate
1644
+ };
1645
+ },
1646
+
1647
+ createLabeledStatement: function (label, body) {
1648
+ return {
1649
+ type: Syntax.LabeledStatement,
1650
+ label: label,
1651
+ body: body
1652
+ };
1653
+ },
1654
+
1655
+ createLiteral: function (token) {
1656
+ return {
1657
+ type: Syntax.Literal,
1658
+ value: token.value,
1659
+ raw: source.slice(token.start, token.end)
1660
+ };
1661
+ },
1662
+
1663
+ createMemberExpression: function (accessor, object, property) {
1664
+ return {
1665
+ type: Syntax.MemberExpression,
1666
+ computed: accessor === '[',
1667
+ object: object,
1668
+ property: property
1669
+ };
1670
+ },
1671
+
1672
+ createNewExpression: function (callee, args) {
1673
+ return {
1674
+ type: Syntax.NewExpression,
1675
+ callee: callee,
1676
+ 'arguments': args
1677
+ };
1678
+ },
1679
+
1680
+ createObjectExpression: function (properties) {
1681
+ return {
1682
+ type: Syntax.ObjectExpression,
1683
+ properties: properties
1684
+ };
1685
+ },
1686
+
1687
+ createPostfixExpression: function (operator, argument) {
1688
+ return {
1689
+ type: Syntax.UpdateExpression,
1690
+ operator: operator,
1691
+ argument: argument,
1692
+ prefix: false
1693
+ };
1694
+ },
1695
+
1696
+ createProgram: function (body) {
1697
+ return {
1698
+ type: Syntax.Program,
1699
+ body: body
1700
+ };
1701
+ },
1702
+
1703
+ createProperty: function (kind, key, value) {
1704
+ return {
1705
+ type: Syntax.Property,
1706
+ key: key,
1707
+ value: value,
1708
+ kind: kind
1709
+ };
1710
+ },
1711
+
1712
+ createReturnStatement: function (argument) {
1713
+ return {
1714
+ type: Syntax.ReturnStatement,
1715
+ argument: argument
1716
+ };
1717
+ },
1718
+
1719
+ createSequenceExpression: function (expressions) {
1720
+ return {
1721
+ type: Syntax.SequenceExpression,
1722
+ expressions: expressions
1723
+ };
1724
+ },
1725
+
1726
+ createSwitchCase: function (test, consequent) {
1727
+ return {
1728
+ type: Syntax.SwitchCase,
1729
+ test: test,
1730
+ consequent: consequent
1731
+ };
1732
+ },
1733
+
1734
+ createSwitchStatement: function (discriminant, cases) {
1735
+ return {
1736
+ type: Syntax.SwitchStatement,
1737
+ discriminant: discriminant,
1738
+ cases: cases
1739
+ };
1740
+ },
1741
+
1742
+ createThisExpression: function () {
1743
+ return {
1744
+ type: Syntax.ThisExpression
1745
+ };
1746
+ },
1747
+
1748
+ createThrowStatement: function (argument) {
1749
+ return {
1750
+ type: Syntax.ThrowStatement,
1751
+ argument: argument
1752
+ };
1753
+ },
1754
+
1755
+ createTryStatement: function (block, guardedHandlers, handlers, finalizer) {
1756
+ return {
1757
+ type: Syntax.TryStatement,
1758
+ block: block,
1759
+ guardedHandlers: guardedHandlers,
1760
+ handlers: handlers,
1761
+ finalizer: finalizer
1762
+ };
1763
+ },
1764
+
1765
+ createUnaryExpression: function (operator, argument) {
1766
+ if (operator === '++' || operator === '--') {
1767
+ return {
1768
+ type: Syntax.UpdateExpression,
1769
+ operator: operator,
1770
+ argument: argument,
1771
+ prefix: true
1772
+ };
1773
+ }
1774
+ return {
1775
+ type: Syntax.UnaryExpression,
1776
+ operator: operator,
1777
+ argument: argument,
1778
+ prefix: true
1779
+ };
1780
+ },
1781
+
1782
+ createVariableDeclaration: function (declarations, kind) {
1783
+ return {
1784
+ type: Syntax.VariableDeclaration,
1785
+ declarations: declarations,
1786
+ kind: kind
1787
+ };
1788
+ },
1789
+
1790
+ createVariableDeclarator: function (id, init) {
1791
+ return {
1792
+ type: Syntax.VariableDeclarator,
1793
+ id: id,
1794
+ init: init
1795
+ };
1796
+ },
1797
+
1798
+ createWhileStatement: function (test, body) {
1799
+ return {
1800
+ type: Syntax.WhileStatement,
1801
+ test: test,
1802
+ body: body
1803
+ };
1804
+ },
1805
+
1806
+ createWithStatement: function (object, body) {
1807
+ return {
1808
+ type: Syntax.WithStatement,
1809
+ object: object,
1810
+ body: body
1811
+ };
1812
+ }
1813
+ };
1814
+
1815
+ // Return true if there is a line terminator before the next token.
1816
+
1817
+ function peekLineTerminator() {
1818
+ var pos, line, start, found;
1819
+
1820
+ pos = index;
1821
+ line = lineNumber;
1822
+ start = lineStart;
1823
+ skipComment();
1824
+ found = lineNumber !== line;
1825
+ index = pos;
1826
+ lineNumber = line;
1827
+ lineStart = start;
1828
+
1829
+ return found;
1830
+ }
1831
+
1832
+ // Throw an exception
1833
+
1834
+ function throwError(token, messageFormat) {
1835
+ var error,
1836
+ args = Array.prototype.slice.call(arguments, 2),
1837
+ msg = messageFormat.replace(
1838
+ /%(\d)/g,
1839
+ function (whole, index) {
1840
+ assert(index < args.length, 'Message reference must be in range');
1841
+ return args[index];
1842
+ }
1843
+ );
1844
+
1845
+ if (typeof token.lineNumber === 'number') {
1846
+ error = new Error('Line ' + token.lineNumber + ': ' + msg);
1847
+ error.index = token.start;
1848
+ error.lineNumber = token.lineNumber;
1849
+ error.column = token.start - lineStart + 1;
1850
+ } else {
1851
+ error = new Error('Line ' + lineNumber + ': ' + msg);
1852
+ error.index = index;
1853
+ error.lineNumber = lineNumber;
1854
+ error.column = index - lineStart + 1;
1855
+ }
1856
+
1857
+ error.description = msg;
1858
+ throw error;
1859
+ }
1860
+
1861
+ function throwErrorTolerant() {
1862
+ try {
1863
+ throwError.apply(null, arguments);
1864
+ } catch (e) {
1865
+ if (extra.errors) {
1866
+ extra.errors.push(e);
1867
+ } else {
1868
+ throw e;
1869
+ }
1870
+ }
1871
+ }
1872
+
1873
+
1874
+ // Throw an exception because of the token.
1875
+
1876
+ function throwUnexpected(token) {
1877
+ if (token.type === Token.EOF) {
1878
+ throwError(token, Messages.UnexpectedEOS);
1879
+ }
1880
+
1881
+ if (token.type === Token.NumericLiteral) {
1882
+ throwError(token, Messages.UnexpectedNumber);
1883
+ }
1884
+
1885
+ if (token.type === Token.StringLiteral) {
1886
+ throwError(token, Messages.UnexpectedString);
1887
+ }
1888
+
1889
+ if (token.type === Token.Identifier) {
1890
+ throwError(token, Messages.UnexpectedIdentifier);
1891
+ }
1892
+
1893
+ if (token.type === Token.Keyword) {
1894
+ if (isFutureReservedWord(token.value)) {
1895
+ throwError(token, Messages.UnexpectedReserved);
1896
+ } else if (strict && isStrictModeReservedWord(token.value)) {
1897
+ throwErrorTolerant(token, Messages.StrictReservedWord);
1898
+ return;
1899
+ }
1900
+ throwError(token, Messages.UnexpectedToken, token.value);
1901
+ }
1902
+
1903
+ // BooleanLiteral, NullLiteral, or Punctuator.
1904
+ throwError(token, Messages.UnexpectedToken, token.value);
1905
+ }
1906
+
1907
+ // Expect the next token to match the specified punctuator.
1908
+ // If not, an exception will be thrown.
1909
+
1910
+ function expect(value) {
1911
+ var token = lex();
1912
+ if (token.type !== Token.Punctuator || token.value !== value) {
1913
+ throwUnexpected(token);
1914
+ }
1915
+ }
1916
+
1917
+ // Expect the next token to match the specified keyword.
1918
+ // If not, an exception will be thrown.
1919
+
1920
+ function expectKeyword(keyword) {
1921
+ var token = lex();
1922
+ if (token.type !== Token.Keyword || token.value !== keyword) {
1923
+ throwUnexpected(token);
1924
+ }
1925
+ }
1926
+
1927
+ // Return true if the next token matches the specified punctuator.
1928
+
1929
+ function match(value) {
1930
+ return lookahead.type === Token.Punctuator && lookahead.value === value;
1931
+ }
1932
+
1933
+ // Return true if the next token matches the specified keyword
1934
+
1935
+ function matchKeyword(keyword) {
1936
+ return lookahead.type === Token.Keyword && lookahead.value === keyword;
1937
+ }
1938
+
1939
+ // Return true if the next token is an assignment operator
1940
+
1941
+ function matchAssign() {
1942
+ var op;
1943
+
1944
+ if (lookahead.type !== Token.Punctuator) {
1945
+ return false;
1946
+ }
1947
+ op = lookahead.value;
1948
+ return op === '=' ||
1949
+ op === '*=' ||
1950
+ op === '/=' ||
1951
+ op === '%=' ||
1952
+ op === '+=' ||
1953
+ op === '-=' ||
1954
+ op === '<<=' ||
1955
+ op === '>>=' ||
1956
+ op === '>>>=' ||
1957
+ op === '&=' ||
1958
+ op === '^=' ||
1959
+ op === '|=';
1960
+ }
1961
+
1962
+ function consumeSemicolon() {
1963
+ var line, oldIndex = index, oldLineNumber = lineNumber,
1964
+ oldLineStart = lineStart, oldLookahead = lookahead;
1965
+
1966
+ // Catch the very common case first: immediately a semicolon (U+003B).
1967
+ if (source.charCodeAt(index) === 0x3B || match(';')) {
1968
+ lex();
1969
+ return;
1970
+ }
1971
+
1972
+ line = lineNumber;
1973
+ skipComment();
1974
+ if (lineNumber !== line) {
1975
+ index = oldIndex;
1976
+ lineNumber = oldLineNumber;
1977
+ lineStart = oldLineStart;
1978
+ lookahead = oldLookahead;
1979
+ return;
1980
+ }
1981
+
1982
+ if (lookahead.type !== Token.EOF && !match('}')) {
1983
+ throwUnexpected(lookahead);
1984
+ }
1985
+ }
1986
+
1987
+ // Return true if provided expression is LeftHandSideExpression
1988
+
1989
+ function isLeftHandSide(expr) {
1990
+ return expr.type === Syntax.Identifier || expr.type === Syntax.MemberExpression;
1991
+ }
1992
+
1993
+ // 11.1.4 Array Initialiser
1994
+
1995
+ function parseArrayInitialiser() {
1996
+ var elements = [], startToken;
1997
+
1998
+ startToken = lookahead;
1999
+ expect('[');
2000
+
2001
+ while (!match(']')) {
2002
+ if (match(',')) {
2003
+ lex();
2004
+ elements.push(null);
2005
+ } else {
2006
+ elements.push(parseAssignmentExpression());
2007
+
2008
+ if (!match(']')) {
2009
+ expect(',');
2010
+ }
2011
+ }
2012
+ }
2013
+
2014
+ lex();
2015
+
2016
+ return delegate.markEnd(delegate.createArrayExpression(elements), startToken);
2017
+ }
2018
+
2019
+ // 11.1.5 Object Initialiser
2020
+
2021
+ function parsePropertyFunction(param, first) {
2022
+ var previousStrict, body, startToken;
2023
+
2024
+ previousStrict = strict;
2025
+ startToken = lookahead;
2026
+ body = parseFunctionSourceElements();
2027
+ if (first && strict && isRestrictedWord(param[0].name)) {
2028
+ throwErrorTolerant(first, Messages.StrictParamName);
2029
+ }
2030
+ strict = previousStrict;
2031
+ return delegate.markEnd(delegate.createFunctionExpression(null, param, [], body), startToken);
2032
+ }
2033
+
2034
+ function parseObjectPropertyKey() {
2035
+ var token, startToken;
2036
+
2037
+ startToken = lookahead;
2038
+ token = lex();
2039
+
2040
+ // Note: This function is called only from parseObjectProperty(), where
2041
+ // EOF and Punctuator tokens are already filtered out.
2042
+
2043
+ if (token.type === Token.StringLiteral || token.type === Token.NumericLiteral) {
2044
+ if (strict && token.octal) {
2045
+ throwErrorTolerant(token, Messages.StrictOctalLiteral);
2046
+ }
2047
+ return delegate.markEnd(delegate.createLiteral(token), startToken);
2048
+ }
2049
+
2050
+ return delegate.markEnd(delegate.createIdentifier(token.value), startToken);
2051
+ }
2052
+
2053
+ function parseObjectProperty() {
2054
+ var token, key, id, value, param, startToken;
2055
+
2056
+ token = lookahead;
2057
+ startToken = lookahead;
2058
+
2059
+ if (token.type === Token.Identifier) {
2060
+
2061
+ id = parseObjectPropertyKey();
2062
+
2063
+ // Property Assignment: Getter and Setter.
2064
+
2065
+ if (token.value === 'get' && !match(':')) {
2066
+ key = parseObjectPropertyKey();
2067
+ expect('(');
2068
+ expect(')');
2069
+ value = parsePropertyFunction([]);
2070
+ return delegate.markEnd(delegate.createProperty('get', key, value), startToken);
2071
+ }
2072
+ if (token.value === 'set' && !match(':')) {
2073
+ key = parseObjectPropertyKey();
2074
+ expect('(');
2075
+ token = lookahead;
2076
+ if (token.type !== Token.Identifier) {
2077
+ expect(')');
2078
+ throwErrorTolerant(token, Messages.UnexpectedToken, token.value);
2079
+ value = parsePropertyFunction([]);
2080
+ } else {
2081
+ param = [ parseVariableIdentifier() ];
2082
+ expect(')');
2083
+ value = parsePropertyFunction(param, token);
2084
+ }
2085
+ return delegate.markEnd(delegate.createProperty('set', key, value), startToken);
2086
+ }
2087
+ expect(':');
2088
+ value = parseAssignmentExpression();
2089
+ return delegate.markEnd(delegate.createProperty('init', id, value), startToken);
2090
+ }
2091
+ if (token.type === Token.EOF || token.type === Token.Punctuator) {
2092
+ throwUnexpected(token);
2093
+ } else {
2094
+ key = parseObjectPropertyKey();
2095
+ expect(':');
2096
+ value = parseAssignmentExpression();
2097
+ return delegate.markEnd(delegate.createProperty('init', key, value), startToken);
2098
+ }
2099
+ }
2100
+
2101
+ function parseObjectInitialiser() {
2102
+ var properties = [], property, name, key, kind, map = {}, toString = String, startToken;
2103
+
2104
+ startToken = lookahead;
2105
+
2106
+ expect('{');
2107
+
2108
+ while (!match('}')) {
2109
+ property = parseObjectProperty();
2110
+
2111
+ if (property.key.type === Syntax.Identifier) {
2112
+ name = property.key.name;
2113
+ } else {
2114
+ name = toString(property.key.value);
2115
+ }
2116
+ kind = (property.kind === 'init') ? PropertyKind.Data : (property.kind === 'get') ? PropertyKind.Get : PropertyKind.Set;
2117
+
2118
+ key = '$' + name;
2119
+ if (Object.prototype.hasOwnProperty.call(map, key)) {
2120
+ if (map[key] === PropertyKind.Data) {
2121
+ if (strict && kind === PropertyKind.Data) {
2122
+ throwErrorTolerant({}, Messages.StrictDuplicateProperty);
2123
+ } else if (kind !== PropertyKind.Data) {
2124
+ throwErrorTolerant({}, Messages.AccessorDataProperty);
2125
+ }
2126
+ } else {
2127
+ if (kind === PropertyKind.Data) {
2128
+ throwErrorTolerant({}, Messages.AccessorDataProperty);
2129
+ } else if (map[key] & kind) {
2130
+ throwErrorTolerant({}, Messages.AccessorGetSet);
2131
+ }
2132
+ }
2133
+ map[key] |= kind;
2134
+ } else {
2135
+ map[key] = kind;
2136
+ }
2137
+
2138
+ properties.push(property);
2139
+
2140
+ if (!match('}')) {
2141
+ expect(',');
2142
+ }
2143
+ }
2144
+
2145
+ expect('}');
2146
+
2147
+ return delegate.markEnd(delegate.createObjectExpression(properties), startToken);
2148
+ }
2149
+
2150
+ // 11.1.6 The Grouping Operator
2151
+
2152
+ function parseGroupExpression() {
2153
+ var expr;
2154
+
2155
+ expect('(');
2156
+
2157
+ expr = parseExpression();
2158
+
2159
+ expect(')');
2160
+
2161
+ return expr;
2162
+ }
2163
+
2164
+
2165
+ // 11.1 Primary Expressions
2166
+
2167
+ function parsePrimaryExpression() {
2168
+ var type, token, expr, startToken;
2169
+
2170
+ if (match('(')) {
2171
+ return parseGroupExpression();
2172
+ }
2173
+
2174
+ if (match('[')) {
2175
+ return parseArrayInitialiser();
2176
+ }
2177
+
2178
+ if (match('{')) {
2179
+ return parseObjectInitialiser();
2180
+ }
2181
+
2182
+ type = lookahead.type;
2183
+ startToken = lookahead;
2184
+
2185
+ if (type === Token.Identifier) {
2186
+ expr = delegate.createIdentifier(lex().value);
2187
+ } else if (type === Token.StringLiteral || type === Token.NumericLiteral) {
2188
+ if (strict && lookahead.octal) {
2189
+ throwErrorTolerant(lookahead, Messages.StrictOctalLiteral);
2190
+ }
2191
+ expr = delegate.createLiteral(lex());
2192
+ } else if (type === Token.Keyword) {
2193
+ if (matchKeyword('function')) {
2194
+ return parseFunctionExpression();
2195
+ }
2196
+ if (matchKeyword('this')) {
2197
+ lex();
2198
+ expr = delegate.createThisExpression();
2199
+ } else {
2200
+ throwUnexpected(lex());
2201
+ }
2202
+ } else if (type === Token.BooleanLiteral) {
2203
+ token = lex();
2204
+ token.value = (token.value === 'true');
2205
+ expr = delegate.createLiteral(token);
2206
+ } else if (type === Token.NullLiteral) {
2207
+ token = lex();
2208
+ token.value = null;
2209
+ expr = delegate.createLiteral(token);
2210
+ } else if (match('/') || match('/=')) {
2211
+ if (typeof extra.tokens !== 'undefined') {
2212
+ expr = delegate.createLiteral(collectRegex());
2213
+ } else {
2214
+ expr = delegate.createLiteral(scanRegExp());
2215
+ }
2216
+ peek();
2217
+ } else {
2218
+ throwUnexpected(lex());
2219
+ }
2220
+
2221
+ return delegate.markEnd(expr, startToken);
2222
+ }
2223
+
2224
+ // 11.2 Left-Hand-Side Expressions
2225
+
2226
+ function parseArguments() {
2227
+ var args = [];
2228
+
2229
+ expect('(');
2230
+
2231
+ if (!match(')')) {
2232
+ while (index < length) {
2233
+ args.push(parseAssignmentExpression());
2234
+ if (match(')')) {
2235
+ break;
2236
+ }
2237
+ expect(',');
2238
+ }
2239
+ }
2240
+
2241
+ expect(')');
2242
+
2243
+ return args;
2244
+ }
2245
+
2246
+ function parseNonComputedProperty() {
2247
+ var token, startToken;
2248
+
2249
+ startToken = lookahead;
2250
+ token = lex();
2251
+
2252
+ if (!isIdentifierName(token)) {
2253
+ throwUnexpected(token);
2254
+ }
2255
+
2256
+ return delegate.markEnd(delegate.createIdentifier(token.value), startToken);
2257
+ }
2258
+
2259
+ function parseNonComputedMember() {
2260
+ expect('.');
2261
+
2262
+ return parseNonComputedProperty();
2263
+ }
2264
+
2265
+ function parseComputedMember() {
2266
+ var expr;
2267
+
2268
+ expect('[');
2269
+
2270
+ expr = parseExpression();
2271
+
2272
+ expect(']');
2273
+
2274
+ return expr;
2275
+ }
2276
+
2277
+ function parseNewExpression() {
2278
+ var callee, args, startToken;
2279
+
2280
+ startToken = lookahead;
2281
+ expectKeyword('new');
2282
+ callee = parseLeftHandSideExpression();
2283
+ args = match('(') ? parseArguments() : [];
2284
+
2285
+ return delegate.markEnd(delegate.createNewExpression(callee, args), startToken);
2286
+ }
2287
+
2288
+ function parseLeftHandSideExpressionAllowCall() {
2289
+ var expr, args, property, startToken, previousAllowIn = state.allowIn;
2290
+
2291
+ startToken = lookahead;
2292
+ state.allowIn = true;
2293
+ expr = matchKeyword('new') ? parseNewExpression() : parsePrimaryExpression();
2294
+
2295
+ for (;;) {
2296
+ if (match('.')) {
2297
+ property = parseNonComputedMember();
2298
+ expr = delegate.createMemberExpression('.', expr, property);
2299
+ } else if (match('(')) {
2300
+ args = parseArguments();
2301
+ expr = delegate.createCallExpression(expr, args);
2302
+ } else if (match('[')) {
2303
+ property = parseComputedMember();
2304
+ expr = delegate.createMemberExpression('[', expr, property);
2305
+ } else {
2306
+ break;
2307
+ }
2308
+ delegate.markEnd(expr, startToken);
2309
+ }
2310
+ state.allowIn = previousAllowIn;
2311
+
2312
+ return expr;
2313
+ }
2314
+
2315
+ function parseLeftHandSideExpression() {
2316
+ var expr, property, startToken;
2317
+ assert(state.allowIn, 'callee of new expression always allow in keyword.');
2318
+
2319
+ startToken = lookahead;
2320
+
2321
+ expr = matchKeyword('new') ? parseNewExpression() : parsePrimaryExpression();
2322
+
2323
+ while (match('.') || match('[')) {
2324
+ if (match('[')) {
2325
+ property = parseComputedMember();
2326
+ expr = delegate.createMemberExpression('[', expr, property);
2327
+ } else {
2328
+ property = parseNonComputedMember();
2329
+ expr = delegate.createMemberExpression('.', expr, property);
2330
+ }
2331
+ delegate.markEnd(expr, startToken);
2332
+ }
2333
+ return expr;
2334
+ }
2335
+
2336
+ // 11.3 Postfix Expressions
2337
+
2338
+ function parsePostfixExpression() {
2339
+ var expr, token, startToken = lookahead;
2340
+
2341
+ expr = parseLeftHandSideExpressionAllowCall();
2342
+
2343
+ if (lookahead.type === Token.Punctuator) {
2344
+ if ((match('++') || match('--')) && !peekLineTerminator()) {
2345
+ // 11.3.1, 11.3.2
2346
+ if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) {
2347
+ throwErrorTolerant({}, Messages.StrictLHSPostfix);
2348
+ }
2349
+
2350
+ if (!isLeftHandSide(expr)) {
2351
+ throwErrorTolerant({}, Messages.InvalidLHSInAssignment);
2352
+ }
2353
+
2354
+ token = lex();
2355
+ expr = delegate.markEnd(delegate.createPostfixExpression(token.value, expr), startToken);
2356
+ }
2357
+ }
2358
+
2359
+ return expr;
2360
+ }
2361
+
2362
+ // 11.4 Unary Operators
2363
+
2364
+ function parseUnaryExpression() {
2365
+ var token, expr, startToken;
2366
+
2367
+ if (lookahead.type !== Token.Punctuator && lookahead.type !== Token.Keyword) {
2368
+ expr = parsePostfixExpression();
2369
+ } else if (match('++') || match('--')) {
2370
+ startToken = lookahead;
2371
+ token = lex();
2372
+ expr = parseUnaryExpression();
2373
+ // 11.4.4, 11.4.5
2374
+ if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) {
2375
+ throwErrorTolerant({}, Messages.StrictLHSPrefix);
2376
+ }
2377
+
2378
+ if (!isLeftHandSide(expr)) {
2379
+ throwErrorTolerant({}, Messages.InvalidLHSInAssignment);
2380
+ }
2381
+
2382
+ expr = delegate.createUnaryExpression(token.value, expr);
2383
+ expr = delegate.markEnd(expr, startToken);
2384
+ } else if (match('+') || match('-') || match('~') || match('!')) {
2385
+ startToken = lookahead;
2386
+ token = lex();
2387
+ expr = parseUnaryExpression();
2388
+ expr = delegate.createUnaryExpression(token.value, expr);
2389
+ expr = delegate.markEnd(expr, startToken);
2390
+ } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) {
2391
+ startToken = lookahead;
2392
+ token = lex();
2393
+ expr = parseUnaryExpression();
2394
+ expr = delegate.createUnaryExpression(token.value, expr);
2395
+ expr = delegate.markEnd(expr, startToken);
2396
+ if (strict && expr.operator === 'delete' && expr.argument.type === Syntax.Identifier) {
2397
+ throwErrorTolerant({}, Messages.StrictDelete);
2398
+ }
2399
+ } else {
2400
+ expr = parsePostfixExpression();
2401
+ }
2402
+
2403
+ return expr;
2404
+ }
2405
+
2406
+ function binaryPrecedence(token, allowIn) {
2407
+ var prec = 0;
2408
+
2409
+ if (token.type !== Token.Punctuator && token.type !== Token.Keyword) {
2410
+ return 0;
2411
+ }
2412
+
2413
+ switch (token.value) {
2414
+ case '||':
2415
+ prec = 1;
2416
+ break;
2417
+
2418
+ case '&&':
2419
+ prec = 2;
2420
+ break;
2421
+
2422
+ case '|':
2423
+ prec = 3;
2424
+ break;
2425
+
2426
+ case '^':
2427
+ prec = 4;
2428
+ break;
2429
+
2430
+ case '&':
2431
+ prec = 5;
2432
+ break;
2433
+
2434
+ case '==':
2435
+ case '!=':
2436
+ case '===':
2437
+ case '!==':
2438
+ prec = 6;
2439
+ break;
2440
+
2441
+ case '<':
2442
+ case '>':
2443
+ case '<=':
2444
+ case '>=':
2445
+ case 'instanceof':
2446
+ prec = 7;
2447
+ break;
2448
+
2449
+ case 'in':
2450
+ prec = allowIn ? 7 : 0;
2451
+ break;
2452
+
2453
+ case '<<':
2454
+ case '>>':
2455
+ case '>>>':
2456
+ prec = 8;
2457
+ break;
2458
+
2459
+ case '+':
2460
+ case '-':
2461
+ prec = 9;
2462
+ break;
2463
+
2464
+ case '*':
2465
+ case '/':
2466
+ case '%':
2467
+ prec = 11;
2468
+ break;
2469
+
2470
+ default:
2471
+ break;
2472
+ }
2473
+
2474
+ return prec;
2475
+ }
2476
+
2477
+ // 11.5 Multiplicative Operators
2478
+ // 11.6 Additive Operators
2479
+ // 11.7 Bitwise Shift Operators
2480
+ // 11.8 Relational Operators
2481
+ // 11.9 Equality Operators
2482
+ // 11.10 Binary Bitwise Operators
2483
+ // 11.11 Binary Logical Operators
2484
+
2485
+ function parseBinaryExpression() {
2486
+ var marker, markers, expr, token, prec, stack, right, operator, left, i;
2487
+
2488
+ marker = lookahead;
2489
+ left = parseUnaryExpression();
2490
+
2491
+ token = lookahead;
2492
+ prec = binaryPrecedence(token, state.allowIn);
2493
+ if (prec === 0) {
2494
+ return left;
2495
+ }
2496
+ token.prec = prec;
2497
+ lex();
2498
+
2499
+ markers = [marker, lookahead];
2500
+ right = parseUnaryExpression();
2501
+
2502
+ stack = [left, token, right];
2503
+
2504
+ while ((prec = binaryPrecedence(lookahead, state.allowIn)) > 0) {
2505
+
2506
+ // Reduce: make a binary expression from the three topmost entries.
2507
+ while ((stack.length > 2) && (prec <= stack[stack.length - 2].prec)) {
2508
+ right = stack.pop();
2509
+ operator = stack.pop().value;
2510
+ left = stack.pop();
2511
+ expr = delegate.createBinaryExpression(operator, left, right);
2512
+ markers.pop();
2513
+ marker = markers[markers.length - 1];
2514
+ delegate.markEnd(expr, marker);
2515
+ stack.push(expr);
2516
+ }
2517
+
2518
+ // Shift.
2519
+ token = lex();
2520
+ token.prec = prec;
2521
+ stack.push(token);
2522
+ markers.push(lookahead);
2523
+ expr = parseUnaryExpression();
2524
+ stack.push(expr);
2525
+ }
2526
+
2527
+ // Final reduce to clean-up the stack.
2528
+ i = stack.length - 1;
2529
+ expr = stack[i];
2530
+ markers.pop();
2531
+ while (i > 1) {
2532
+ expr = delegate.createBinaryExpression(stack[i - 1].value, stack[i - 2], expr);
2533
+ i -= 2;
2534
+ marker = markers.pop();
2535
+ delegate.markEnd(expr, marker);
2536
+ }
2537
+
2538
+ return expr;
2539
+ }
2540
+
2541
+
2542
+ // 11.12 Conditional Operator
2543
+
2544
+ function parseConditionalExpression() {
2545
+ var expr, previousAllowIn, consequent, alternate, startToken;
2546
+
2547
+ startToken = lookahead;
2548
+
2549
+ expr = parseBinaryExpression();
2550
+
2551
+ if (match('?')) {
2552
+ lex();
2553
+ previousAllowIn = state.allowIn;
2554
+ state.allowIn = true;
2555
+ consequent = parseAssignmentExpression();
2556
+ state.allowIn = previousAllowIn;
2557
+ expect(':');
2558
+ alternate = parseAssignmentExpression();
2559
+
2560
+ expr = delegate.createConditionalExpression(expr, consequent, alternate);
2561
+ delegate.markEnd(expr, startToken);
2562
+ }
2563
+
2564
+ return expr;
2565
+ }
2566
+
2567
+ // 11.13 Assignment Operators
2568
+
2569
+ function parseAssignmentExpression() {
2570
+ var token, left, right, node, startToken;
2571
+
2572
+ token = lookahead;
2573
+ startToken = lookahead;
2574
+
2575
+ node = left = parseConditionalExpression();
2576
+
2577
+ if (matchAssign()) {
2578
+ // LeftHandSideExpression
2579
+ if (!isLeftHandSide(left)) {
2580
+ throwErrorTolerant({}, Messages.InvalidLHSInAssignment);
2581
+ }
2582
+
2583
+ // 11.13.1
2584
+ if (strict && left.type === Syntax.Identifier && isRestrictedWord(left.name)) {
2585
+ throwErrorTolerant(token, Messages.StrictLHSAssignment);
2586
+ }
2587
+
2588
+ token = lex();
2589
+ right = parseAssignmentExpression();
2590
+ node = delegate.markEnd(delegate.createAssignmentExpression(token.value, left, right), startToken);
2591
+ }
2592
+
2593
+ return node;
2594
+ }
2595
+
2596
+ // 11.14 Comma Operator
2597
+
2598
+ function parseExpression() {
2599
+ var expr, startToken = lookahead;
2600
+
2601
+ expr = parseAssignmentExpression();
2602
+
2603
+ if (match(',')) {
2604
+ expr = delegate.createSequenceExpression([ expr ]);
2605
+
2606
+ while (index < length) {
2607
+ if (!match(',')) {
2608
+ break;
2609
+ }
2610
+ lex();
2611
+ expr.expressions.push(parseAssignmentExpression());
2612
+ }
2613
+
2614
+ delegate.markEnd(expr, startToken);
2615
+ }
2616
+
2617
+ return expr;
2618
+ }
2619
+
2620
+ // 12.1 Block
2621
+
2622
+ function parseStatementList() {
2623
+ var list = [],
2624
+ statement;
2625
+
2626
+ while (index < length) {
2627
+ if (match('}')) {
2628
+ break;
2629
+ }
2630
+ statement = parseSourceElement();
2631
+ if (typeof statement === 'undefined') {
2632
+ break;
2633
+ }
2634
+ list.push(statement);
2635
+ }
2636
+
2637
+ return list;
2638
+ }
2639
+
2640
+ function parseBlock() {
2641
+ var block, startToken;
2642
+
2643
+ startToken = lookahead;
2644
+ expect('{');
2645
+
2646
+ block = parseStatementList();
2647
+
2648
+ expect('}');
2649
+
2650
+ return delegate.markEnd(delegate.createBlockStatement(block), startToken);
2651
+ }
2652
+
2653
+ // 12.2 Variable Statement
2654
+
2655
+ function parseVariableIdentifier() {
2656
+ var token, startToken;
2657
+
2658
+ startToken = lookahead;
2659
+ token = lex();
2660
+
2661
+ if (token.type !== Token.Identifier) {
2662
+ throwUnexpected(token);
2663
+ }
2664
+
2665
+ return delegate.markEnd(delegate.createIdentifier(token.value), startToken);
2666
+ }
2667
+
2668
+ function parseVariableDeclaration(kind) {
2669
+ var init = null, id, startToken;
2670
+
2671
+ startToken = lookahead;
2672
+ id = parseVariableIdentifier();
2673
+
2674
+ // 12.2.1
2675
+ if (strict && isRestrictedWord(id.name)) {
2676
+ throwErrorTolerant({}, Messages.StrictVarName);
2677
+ }
2678
+
2679
+ if (kind === 'const') {
2680
+ expect('=');
2681
+ init = parseAssignmentExpression();
2682
+ } else if (match('=')) {
2683
+ lex();
2684
+ init = parseAssignmentExpression();
2685
+ }
2686
+
2687
+ return delegate.markEnd(delegate.createVariableDeclarator(id, init), startToken);
2688
+ }
2689
+
2690
+ function parseVariableDeclarationList(kind) {
2691
+ var list = [];
2692
+
2693
+ do {
2694
+ list.push(parseVariableDeclaration(kind));
2695
+ if (!match(',')) {
2696
+ break;
2697
+ }
2698
+ lex();
2699
+ } while (index < length);
2700
+
2701
+ return list;
2702
+ }
2703
+
2704
+ function parseVariableStatement() {
2705
+ var declarations;
2706
+
2707
+ expectKeyword('var');
2708
+
2709
+ declarations = parseVariableDeclarationList();
2710
+
2711
+ consumeSemicolon();
2712
+
2713
+ return delegate.createVariableDeclaration(declarations, 'var');
2714
+ }
2715
+
2716
+ // kind may be `const` or `let`
2717
+ // Both are experimental and not in the specification yet.
2718
+ // see http://wiki.ecmascript.org/doku.php?id=harmony:const
2719
+ // and http://wiki.ecmascript.org/doku.php?id=harmony:let
2720
+ function parseConstLetDeclaration(kind) {
2721
+ var declarations, startToken;
2722
+
2723
+ startToken = lookahead;
2724
+
2725
+ expectKeyword(kind);
2726
+
2727
+ declarations = parseVariableDeclarationList(kind);
2728
+
2729
+ consumeSemicolon();
2730
+
2731
+ return delegate.markEnd(delegate.createVariableDeclaration(declarations, kind), startToken);
2732
+ }
2733
+
2734
+ // 12.3 Empty Statement
2735
+
2736
+ function parseEmptyStatement() {
2737
+ expect(';');
2738
+ return delegate.createEmptyStatement();
2739
+ }
2740
+
2741
+ // 12.4 Expression Statement
2742
+
2743
+ function parseExpressionStatement() {
2744
+ var expr = parseExpression();
2745
+ consumeSemicolon();
2746
+ return delegate.createExpressionStatement(expr);
2747
+ }
2748
+
2749
+ // 12.5 If statement
2750
+
2751
+ function parseIfStatement() {
2752
+ var test, consequent, alternate;
2753
+
2754
+ expectKeyword('if');
2755
+
2756
+ expect('(');
2757
+
2758
+ test = parseExpression();
2759
+
2760
+ expect(')');
2761
+
2762
+ consequent = parseStatement();
2763
+
2764
+ if (matchKeyword('else')) {
2765
+ lex();
2766
+ alternate = parseStatement();
2767
+ } else {
2768
+ alternate = null;
2769
+ }
2770
+
2771
+ return delegate.createIfStatement(test, consequent, alternate);
2772
+ }
2773
+
2774
+ // 12.6 Iteration Statements
2775
+
2776
+ function parseDoWhileStatement() {
2777
+ var body, test, oldInIteration;
2778
+
2779
+ expectKeyword('do');
2780
+
2781
+ oldInIteration = state.inIteration;
2782
+ state.inIteration = true;
2783
+
2784
+ body = parseStatement();
2785
+
2786
+ state.inIteration = oldInIteration;
2787
+
2788
+ expectKeyword('while');
2789
+
2790
+ expect('(');
2791
+
2792
+ test = parseExpression();
2793
+
2794
+ expect(')');
2795
+
2796
+ if (match(';')) {
2797
+ lex();
2798
+ }
2799
+
2800
+ return delegate.createDoWhileStatement(body, test);
2801
+ }
2802
+
2803
+ function parseWhileStatement() {
2804
+ var test, body, oldInIteration;
2805
+
2806
+ expectKeyword('while');
2807
+
2808
+ expect('(');
2809
+
2810
+ test = parseExpression();
2811
+
2812
+ expect(')');
2813
+
2814
+ oldInIteration = state.inIteration;
2815
+ state.inIteration = true;
2816
+
2817
+ body = parseStatement();
2818
+
2819
+ state.inIteration = oldInIteration;
2820
+
2821
+ return delegate.createWhileStatement(test, body);
2822
+ }
2823
+
2824
+ function parseForVariableDeclaration() {
2825
+ var token, declarations, startToken;
2826
+
2827
+ startToken = lookahead;
2828
+ token = lex();
2829
+ declarations = parseVariableDeclarationList();
2830
+
2831
+ return delegate.markEnd(delegate.createVariableDeclaration(declarations, token.value), startToken);
2832
+ }
2833
+
2834
+ function parseForStatement() {
2835
+ var init, test, update, left, right, body, oldInIteration, previousAllowIn = state.allowIn;
2836
+
2837
+ init = test = update = null;
2838
+
2839
+ expectKeyword('for');
2840
+
2841
+ expect('(');
2842
+
2843
+ if (match(';')) {
2844
+ lex();
2845
+ } else {
2846
+ if (matchKeyword('var') || matchKeyword('let')) {
2847
+ state.allowIn = false;
2848
+ init = parseForVariableDeclaration();
2849
+ state.allowIn = previousAllowIn;
2850
+
2851
+ if (init.declarations.length === 1 && matchKeyword('in')) {
2852
+ lex();
2853
+ left = init;
2854
+ right = parseExpression();
2855
+ init = null;
2856
+ }
2857
+ } else {
2858
+ state.allowIn = false;
2859
+ init = parseExpression();
2860
+ state.allowIn = previousAllowIn;
2861
+
2862
+ if (matchKeyword('in')) {
2863
+ // LeftHandSideExpression
2864
+ if (!isLeftHandSide(init)) {
2865
+ throwErrorTolerant({}, Messages.InvalidLHSInForIn);
2866
+ }
2867
+
2868
+ lex();
2869
+ left = init;
2870
+ right = parseExpression();
2871
+ init = null;
2872
+ }
2873
+ }
2874
+
2875
+ if (typeof left === 'undefined') {
2876
+ expect(';');
2877
+ }
2878
+ }
2879
+
2880
+ if (typeof left === 'undefined') {
2881
+
2882
+ if (!match(';')) {
2883
+ test = parseExpression();
2884
+ }
2885
+ expect(';');
2886
+
2887
+ if (!match(')')) {
2888
+ update = parseExpression();
2889
+ }
2890
+ }
2891
+
2892
+ expect(')');
2893
+
2894
+ oldInIteration = state.inIteration;
2895
+ state.inIteration = true;
2896
+
2897
+ body = parseStatement();
2898
+
2899
+ state.inIteration = oldInIteration;
2900
+
2901
+ return (typeof left === 'undefined') ?
2902
+ delegate.createForStatement(init, test, update, body) :
2903
+ delegate.createForInStatement(left, right, body);
2904
+ }
2905
+
2906
+ // 12.7 The continue statement
2907
+
2908
+ function parseContinueStatement() {
2909
+ var label = null, key;
2910
+
2911
+ expectKeyword('continue');
2912
+
2913
+ // Optimize the most common form: 'continue;'.
2914
+ if (source.charCodeAt(index) === 0x3B) {
2915
+ lex();
2916
+
2917
+ if (!state.inIteration) {
2918
+ throwError({}, Messages.IllegalContinue);
2919
+ }
2920
+
2921
+ return delegate.createContinueStatement(null);
2922
+ }
2923
+
2924
+ if (peekLineTerminator()) {
2925
+ if (!state.inIteration) {
2926
+ throwError({}, Messages.IllegalContinue);
2927
+ }
2928
+
2929
+ return delegate.createContinueStatement(null);
2930
+ }
2931
+
2932
+ if (lookahead.type === Token.Identifier) {
2933
+ label = parseVariableIdentifier();
2934
+
2935
+ key = '$' + label.name;
2936
+ if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) {
2937
+ throwError({}, Messages.UnknownLabel, label.name);
2938
+ }
2939
+ }
2940
+
2941
+ consumeSemicolon();
2942
+
2943
+ if (label === null && !state.inIteration) {
2944
+ throwError({}, Messages.IllegalContinue);
2945
+ }
2946
+
2947
+ return delegate.createContinueStatement(label);
2948
+ }
2949
+
2950
+ // 12.8 The break statement
2951
+
2952
+ function parseBreakStatement() {
2953
+ var label = null, key;
2954
+
2955
+ expectKeyword('break');
2956
+
2957
+ // Catch the very common case first: immediately a semicolon (U+003B).
2958
+ if (source.charCodeAt(index) === 0x3B) {
2959
+ lex();
2960
+
2961
+ if (!(state.inIteration || state.inSwitch)) {
2962
+ throwError({}, Messages.IllegalBreak);
2963
+ }
2964
+
2965
+ return delegate.createBreakStatement(null);
2966
+ }
2967
+
2968
+ if (peekLineTerminator()) {
2969
+ if (!(state.inIteration || state.inSwitch)) {
2970
+ throwError({}, Messages.IllegalBreak);
2971
+ }
2972
+
2973
+ return delegate.createBreakStatement(null);
2974
+ }
2975
+
2976
+ if (lookahead.type === Token.Identifier) {
2977
+ label = parseVariableIdentifier();
2978
+
2979
+ key = '$' + label.name;
2980
+ if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) {
2981
+ throwError({}, Messages.UnknownLabel, label.name);
2982
+ }
2983
+ }
2984
+
2985
+ consumeSemicolon();
2986
+
2987
+ if (label === null && !(state.inIteration || state.inSwitch)) {
2988
+ throwError({}, Messages.IllegalBreak);
2989
+ }
2990
+
2991
+ return delegate.createBreakStatement(label);
2992
+ }
2993
+
2994
+ // 12.9 The return statement
2995
+
2996
+ function parseReturnStatement() {
2997
+ var argument = null;
2998
+
2999
+ expectKeyword('return');
3000
+
3001
+ if (!state.inFunctionBody) {
3002
+ throwErrorTolerant({}, Messages.IllegalReturn);
3003
+ }
3004
+
3005
+ // 'return' followed by a space and an identifier is very common.
3006
+ if (source.charCodeAt(index) === 0x20) {
3007
+ if (isIdentifierStart(source.charCodeAt(index + 1))) {
3008
+ argument = parseExpression();
3009
+ consumeSemicolon();
3010
+ return delegate.createReturnStatement(argument);
3011
+ }
3012
+ }
3013
+
3014
+ if (peekLineTerminator()) {
3015
+ return delegate.createReturnStatement(null);
3016
+ }
3017
+
3018
+ if (!match(';')) {
3019
+ if (!match('}') && lookahead.type !== Token.EOF) {
3020
+ argument = parseExpression();
3021
+ }
3022
+ }
3023
+
3024
+ consumeSemicolon();
3025
+
3026
+ return delegate.createReturnStatement(argument);
3027
+ }
3028
+
3029
+ // 12.10 The with statement
3030
+
3031
+ function parseWithStatement() {
3032
+ var object, body;
3033
+
3034
+ if (strict) {
3035
+ // TODO(ikarienator): Should we update the test cases instead?
3036
+ skipComment();
3037
+ throwErrorTolerant({}, Messages.StrictModeWith);
3038
+ }
3039
+
3040
+ expectKeyword('with');
3041
+
3042
+ expect('(');
3043
+
3044
+ object = parseExpression();
3045
+
3046
+ expect(')');
3047
+
3048
+ body = parseStatement();
3049
+
3050
+ return delegate.createWithStatement(object, body);
3051
+ }
3052
+
3053
+ // 12.10 The swith statement
3054
+
3055
+ function parseSwitchCase() {
3056
+ var test, consequent = [], statement, startToken;
3057
+
3058
+ startToken = lookahead;
3059
+ if (matchKeyword('default')) {
3060
+ lex();
3061
+ test = null;
3062
+ } else {
3063
+ expectKeyword('case');
3064
+ test = parseExpression();
3065
+ }
3066
+ expect(':');
3067
+
3068
+ while (index < length) {
3069
+ if (match('}') || matchKeyword('default') || matchKeyword('case')) {
3070
+ break;
3071
+ }
3072
+ statement = parseStatement();
3073
+ consequent.push(statement);
3074
+ }
3075
+
3076
+ return delegate.markEnd(delegate.createSwitchCase(test, consequent), startToken);
3077
+ }
3078
+
3079
+ function parseSwitchStatement() {
3080
+ var discriminant, cases, clause, oldInSwitch, defaultFound;
3081
+
3082
+ expectKeyword('switch');
3083
+
3084
+ expect('(');
3085
+
3086
+ discriminant = parseExpression();
3087
+
3088
+ expect(')');
3089
+
3090
+ expect('{');
3091
+
3092
+ cases = [];
3093
+
3094
+ if (match('}')) {
3095
+ lex();
3096
+ return delegate.createSwitchStatement(discriminant, cases);
3097
+ }
3098
+
3099
+ oldInSwitch = state.inSwitch;
3100
+ state.inSwitch = true;
3101
+ defaultFound = false;
3102
+
3103
+ while (index < length) {
3104
+ if (match('}')) {
3105
+ break;
3106
+ }
3107
+ clause = parseSwitchCase();
3108
+ if (clause.test === null) {
3109
+ if (defaultFound) {
3110
+ throwError({}, Messages.MultipleDefaultsInSwitch);
3111
+ }
3112
+ defaultFound = true;
3113
+ }
3114
+ cases.push(clause);
3115
+ }
3116
+
3117
+ state.inSwitch = oldInSwitch;
3118
+
3119
+ expect('}');
3120
+
3121
+ return delegate.createSwitchStatement(discriminant, cases);
3122
+ }
3123
+
3124
+ // 12.13 The throw statement
3125
+
3126
+ function parseThrowStatement() {
3127
+ var argument;
3128
+
3129
+ expectKeyword('throw');
3130
+
3131
+ if (peekLineTerminator()) {
3132
+ throwError({}, Messages.NewlineAfterThrow);
3133
+ }
3134
+
3135
+ argument = parseExpression();
3136
+
3137
+ consumeSemicolon();
3138
+
3139
+ return delegate.createThrowStatement(argument);
3140
+ }
3141
+
3142
+ // 12.14 The try statement
3143
+
3144
+ function parseCatchClause() {
3145
+ var param, body, startToken;
3146
+
3147
+ startToken = lookahead;
3148
+ expectKeyword('catch');
3149
+
3150
+ expect('(');
3151
+ if (match(')')) {
3152
+ throwUnexpected(lookahead);
3153
+ }
3154
+
3155
+ param = parseVariableIdentifier();
3156
+ // 12.14.1
3157
+ if (strict && isRestrictedWord(param.name)) {
3158
+ throwErrorTolerant({}, Messages.StrictCatchVariable);
3159
+ }
3160
+
3161
+ expect(')');
3162
+ body = parseBlock();
3163
+ return delegate.markEnd(delegate.createCatchClause(param, body), startToken);
3164
+ }
3165
+
3166
+ function parseTryStatement() {
3167
+ var block, handlers = [], finalizer = null;
3168
+
3169
+ expectKeyword('try');
3170
+
3171
+ block = parseBlock();
3172
+
3173
+ if (matchKeyword('catch')) {
3174
+ handlers.push(parseCatchClause());
3175
+ }
3176
+
3177
+ if (matchKeyword('finally')) {
3178
+ lex();
3179
+ finalizer = parseBlock();
3180
+ }
3181
+
3182
+ if (handlers.length === 0 && !finalizer) {
3183
+ throwError({}, Messages.NoCatchOrFinally);
3184
+ }
3185
+
3186
+ return delegate.createTryStatement(block, [], handlers, finalizer);
3187
+ }
3188
+
3189
+ // 12.15 The debugger statement
3190
+
3191
+ function parseDebuggerStatement() {
3192
+ expectKeyword('debugger');
3193
+
3194
+ consumeSemicolon();
3195
+
3196
+ return delegate.createDebuggerStatement();
3197
+ }
3198
+
3199
+ // 12 Statements
3200
+
3201
+ function parseStatement() {
3202
+ var type = lookahead.type,
3203
+ expr,
3204
+ labeledBody,
3205
+ key,
3206
+ startToken;
3207
+
3208
+ if (type === Token.EOF) {
3209
+ throwUnexpected(lookahead);
3210
+ }
3211
+
3212
+ if (type === Token.Punctuator && lookahead.value === '{') {
3213
+ return parseBlock();
3214
+ }
3215
+
3216
+ startToken = lookahead;
3217
+
3218
+ if (type === Token.Punctuator) {
3219
+ switch (lookahead.value) {
3220
+ case ';':
3221
+ return delegate.markEnd(parseEmptyStatement(), startToken);
3222
+ case '(':
3223
+ return delegate.markEnd(parseExpressionStatement(), startToken);
3224
+ default:
3225
+ break;
3226
+ }
3227
+ }
3228
+
3229
+ if (type === Token.Keyword) {
3230
+ switch (lookahead.value) {
3231
+ case 'break':
3232
+ return delegate.markEnd(parseBreakStatement(), startToken);
3233
+ case 'continue':
3234
+ return delegate.markEnd(parseContinueStatement(), startToken);
3235
+ case 'debugger':
3236
+ return delegate.markEnd(parseDebuggerStatement(), startToken);
3237
+ case 'do':
3238
+ return delegate.markEnd(parseDoWhileStatement(), startToken);
3239
+ case 'for':
3240
+ return delegate.markEnd(parseForStatement(), startToken);
3241
+ case 'function':
3242
+ return delegate.markEnd(parseFunctionDeclaration(), startToken);
3243
+ case 'if':
3244
+ return delegate.markEnd(parseIfStatement(), startToken);
3245
+ case 'return':
3246
+ return delegate.markEnd(parseReturnStatement(), startToken);
3247
+ case 'switch':
3248
+ return delegate.markEnd(parseSwitchStatement(), startToken);
3249
+ case 'throw':
3250
+ return delegate.markEnd(parseThrowStatement(), startToken);
3251
+ case 'try':
3252
+ return delegate.markEnd(parseTryStatement(), startToken);
3253
+ case 'var':
3254
+ return delegate.markEnd(parseVariableStatement(), startToken);
3255
+ case 'while':
3256
+ return delegate.markEnd(parseWhileStatement(), startToken);
3257
+ case 'with':
3258
+ return delegate.markEnd(parseWithStatement(), startToken);
3259
+ default:
3260
+ break;
3261
+ }
3262
+ }
3263
+
3264
+ expr = parseExpression();
3265
+
3266
+ // 12.12 Labelled Statements
3267
+ if ((expr.type === Syntax.Identifier) && match(':')) {
3268
+ lex();
3269
+
3270
+ key = '$' + expr.name;
3271
+ if (Object.prototype.hasOwnProperty.call(state.labelSet, key)) {
3272
+ throwError({}, Messages.Redeclaration, 'Label', expr.name);
3273
+ }
3274
+
3275
+ state.labelSet[key] = true;
3276
+ labeledBody = parseStatement();
3277
+ delete state.labelSet[key];
3278
+ return delegate.markEnd(delegate.createLabeledStatement(expr, labeledBody), startToken);
3279
+ }
3280
+
3281
+ consumeSemicolon();
3282
+
3283
+ return delegate.markEnd(delegate.createExpressionStatement(expr), startToken);
3284
+ }
3285
+
3286
+ // 13 Function Definition
3287
+
3288
+ function parseFunctionSourceElements() {
3289
+ var sourceElement, sourceElements = [], token, directive, firstRestricted,
3290
+ oldLabelSet, oldInIteration, oldInSwitch, oldInFunctionBody, startToken;
3291
+
3292
+ startToken = lookahead;
3293
+ expect('{');
3294
+
3295
+ while (index < length) {
3296
+ if (lookahead.type !== Token.StringLiteral) {
3297
+ break;
3298
+ }
3299
+ token = lookahead;
3300
+
3301
+ sourceElement = parseSourceElement();
3302
+ sourceElements.push(sourceElement);
3303
+ if (sourceElement.expression.type !== Syntax.Literal) {
3304
+ // this is not directive
3305
+ break;
3306
+ }
3307
+ directive = source.slice(token.start + 1, token.end - 1);
3308
+ if (directive === 'use strict') {
3309
+ strict = true;
3310
+ if (firstRestricted) {
3311
+ throwErrorTolerant(firstRestricted, Messages.StrictOctalLiteral);
3312
+ }
3313
+ } else {
3314
+ if (!firstRestricted && token.octal) {
3315
+ firstRestricted = token;
3316
+ }
3317
+ }
3318
+ }
3319
+
3320
+ oldLabelSet = state.labelSet;
3321
+ oldInIteration = state.inIteration;
3322
+ oldInSwitch = state.inSwitch;
3323
+ oldInFunctionBody = state.inFunctionBody;
3324
+
3325
+ state.labelSet = {};
3326
+ state.inIteration = false;
3327
+ state.inSwitch = false;
3328
+ state.inFunctionBody = true;
3329
+
3330
+ while (index < length) {
3331
+ if (match('}')) {
3332
+ break;
3333
+ }
3334
+ sourceElement = parseSourceElement();
3335
+ if (typeof sourceElement === 'undefined') {
3336
+ break;
3337
+ }
3338
+ sourceElements.push(sourceElement);
3339
+ }
3340
+
3341
+ expect('}');
3342
+
3343
+ state.labelSet = oldLabelSet;
3344
+ state.inIteration = oldInIteration;
3345
+ state.inSwitch = oldInSwitch;
3346
+ state.inFunctionBody = oldInFunctionBody;
3347
+
3348
+ return delegate.markEnd(delegate.createBlockStatement(sourceElements), startToken);
3349
+ }
3350
+
3351
+ function parseParams(firstRestricted) {
3352
+ var param, params = [], token, stricted, paramSet, key, message;
3353
+ expect('(');
3354
+
3355
+ if (!match(')')) {
3356
+ paramSet = {};
3357
+ while (index < length) {
3358
+ token = lookahead;
3359
+ param = parseVariableIdentifier();
3360
+ key = '$' + token.value;
3361
+ if (strict) {
3362
+ if (isRestrictedWord(token.value)) {
3363
+ stricted = token;
3364
+ message = Messages.StrictParamName;
3365
+ }
3366
+ if (Object.prototype.hasOwnProperty.call(paramSet, key)) {
3367
+ stricted = token;
3368
+ message = Messages.StrictParamDupe;
3369
+ }
3370
+ } else if (!firstRestricted) {
3371
+ if (isRestrictedWord(token.value)) {
3372
+ firstRestricted = token;
3373
+ message = Messages.StrictParamName;
3374
+ } else if (isStrictModeReservedWord(token.value)) {
3375
+ firstRestricted = token;
3376
+ message = Messages.StrictReservedWord;
3377
+ } else if (Object.prototype.hasOwnProperty.call(paramSet, key)) {
3378
+ firstRestricted = token;
3379
+ message = Messages.StrictParamDupe;
3380
+ }
3381
+ }
3382
+ params.push(param);
3383
+ paramSet[key] = true;
3384
+ if (match(')')) {
3385
+ break;
3386
+ }
3387
+ expect(',');
3388
+ }
3389
+ }
3390
+
3391
+ expect(')');
3392
+
3393
+ return {
3394
+ params: params,
3395
+ stricted: stricted,
3396
+ firstRestricted: firstRestricted,
3397
+ message: message
3398
+ };
3399
+ }
3400
+
3401
+ function parseFunctionDeclaration() {
3402
+ var id, params = [], body, token, stricted, tmp, firstRestricted, message, previousStrict, startToken;
3403
+
3404
+ startToken = lookahead;
3405
+
3406
+ expectKeyword('function');
3407
+ token = lookahead;
3408
+ id = parseVariableIdentifier();
3409
+ if (strict) {
3410
+ if (isRestrictedWord(token.value)) {
3411
+ throwErrorTolerant(token, Messages.StrictFunctionName);
3412
+ }
3413
+ } else {
3414
+ if (isRestrictedWord(token.value)) {
3415
+ firstRestricted = token;
3416
+ message = Messages.StrictFunctionName;
3417
+ } else if (isStrictModeReservedWord(token.value)) {
3418
+ firstRestricted = token;
3419
+ message = Messages.StrictReservedWord;
3420
+ }
3421
+ }
3422
+
3423
+ tmp = parseParams(firstRestricted);
3424
+ params = tmp.params;
3425
+ stricted = tmp.stricted;
3426
+ firstRestricted = tmp.firstRestricted;
3427
+ if (tmp.message) {
3428
+ message = tmp.message;
3429
+ }
3430
+
3431
+ previousStrict = strict;
3432
+ body = parseFunctionSourceElements();
3433
+ if (strict && firstRestricted) {
3434
+ throwError(firstRestricted, message);
3435
+ }
3436
+ if (strict && stricted) {
3437
+ throwErrorTolerant(stricted, message);
3438
+ }
3439
+ strict = previousStrict;
3440
+
3441
+ return delegate.markEnd(delegate.createFunctionDeclaration(id, params, [], body), startToken);
3442
+ }
3443
+
3444
+ function parseFunctionExpression() {
3445
+ var token, id = null, stricted, firstRestricted, message, tmp, params = [], body, previousStrict, startToken;
3446
+
3447
+ startToken = lookahead;
3448
+ expectKeyword('function');
3449
+
3450
+ if (!match('(')) {
3451
+ token = lookahead;
3452
+ id = parseVariableIdentifier();
3453
+ if (strict) {
3454
+ if (isRestrictedWord(token.value)) {
3455
+ throwErrorTolerant(token, Messages.StrictFunctionName);
3456
+ }
3457
+ } else {
3458
+ if (isRestrictedWord(token.value)) {
3459
+ firstRestricted = token;
3460
+ message = Messages.StrictFunctionName;
3461
+ } else if (isStrictModeReservedWord(token.value)) {
3462
+ firstRestricted = token;
3463
+ message = Messages.StrictReservedWord;
3464
+ }
3465
+ }
3466
+ }
3467
+
3468
+ tmp = parseParams(firstRestricted);
3469
+ params = tmp.params;
3470
+ stricted = tmp.stricted;
3471
+ firstRestricted = tmp.firstRestricted;
3472
+ if (tmp.message) {
3473
+ message = tmp.message;
3474
+ }
3475
+
3476
+ previousStrict = strict;
3477
+ body = parseFunctionSourceElements();
3478
+ if (strict && firstRestricted) {
3479
+ throwError(firstRestricted, message);
3480
+ }
3481
+ if (strict && stricted) {
3482
+ throwErrorTolerant(stricted, message);
3483
+ }
3484
+ strict = previousStrict;
3485
+
3486
+ return delegate.markEnd(delegate.createFunctionExpression(id, params, [], body), startToken);
3487
+ }
3488
+
3489
+ // 14 Program
3490
+
3491
+ function parseSourceElement() {
3492
+ if (lookahead.type === Token.Keyword) {
3493
+ switch (lookahead.value) {
3494
+ case 'const':
3495
+ case 'let':
3496
+ return parseConstLetDeclaration(lookahead.value);
3497
+ case 'function':
3498
+ return parseFunctionDeclaration();
3499
+ default:
3500
+ return parseStatement();
3501
+ }
3502
+ }
3503
+
3504
+ if (lookahead.type !== Token.EOF) {
3505
+ return parseStatement();
3506
+ }
3507
+ }
3508
+
3509
+ function parseSourceElements() {
3510
+ var sourceElement, sourceElements = [], token, directive, firstRestricted;
3511
+
3512
+ while (index < length) {
3513
+ token = lookahead;
3514
+ if (token.type !== Token.StringLiteral) {
3515
+ break;
3516
+ }
3517
+
3518
+ sourceElement = parseSourceElement();
3519
+ sourceElements.push(sourceElement);
3520
+ if (sourceElement.expression.type !== Syntax.Literal) {
3521
+ // this is not directive
3522
+ break;
3523
+ }
3524
+ directive = source.slice(token.start + 1, token.end - 1);
3525
+ if (directive === 'use strict') {
3526
+ strict = true;
3527
+ if (firstRestricted) {
3528
+ throwErrorTolerant(firstRestricted, Messages.StrictOctalLiteral);
3529
+ }
3530
+ } else {
3531
+ if (!firstRestricted && token.octal) {
3532
+ firstRestricted = token;
3533
+ }
3534
+ }
3535
+ }
3536
+
3537
+ while (index < length) {
3538
+ sourceElement = parseSourceElement();
3539
+ /* istanbul ignore if */
3540
+ if (typeof sourceElement === 'undefined') {
3541
+ break;
3542
+ }
3543
+ sourceElements.push(sourceElement);
3544
+ }
3545
+ return sourceElements;
3546
+ }
3547
+
3548
+ function parseProgram() {
3549
+ var body, startToken;
3550
+
3551
+ skipComment();
3552
+ peek();
3553
+ startToken = lookahead;
3554
+ strict = false;
3555
+
3556
+ body = parseSourceElements();
3557
+ return delegate.markEnd(delegate.createProgram(body), startToken);
3558
+ }
3559
+
3560
+ function filterTokenLocation() {
3561
+ var i, entry, token, tokens = [];
3562
+
3563
+ for (i = 0; i < extra.tokens.length; ++i) {
3564
+ entry = extra.tokens[i];
3565
+ token = {
3566
+ type: entry.type,
3567
+ value: entry.value
3568
+ };
3569
+ if (extra.range) {
3570
+ token.range = entry.range;
3571
+ }
3572
+ if (extra.loc) {
3573
+ token.loc = entry.loc;
3574
+ }
3575
+ tokens.push(token);
3576
+ }
3577
+
3578
+ extra.tokens = tokens;
3579
+ }
3580
+
3581
+ function tokenize(code, options) {
3582
+ var toString,
3583
+ token,
3584
+ tokens;
3585
+
3586
+ toString = String;
3587
+ if (typeof code !== 'string' && !(code instanceof String)) {
3588
+ code = toString(code);
3589
+ }
3590
+
3591
+ delegate = SyntaxTreeDelegate;
3592
+ source = code;
3593
+ index = 0;
3594
+ lineNumber = (source.length > 0) ? 1 : 0;
3595
+ lineStart = 0;
3596
+ length = source.length;
3597
+ lookahead = null;
3598
+ state = {
3599
+ allowIn: true,
3600
+ labelSet: {},
3601
+ inFunctionBody: false,
3602
+ inIteration: false,
3603
+ inSwitch: false,
3604
+ lastCommentStart: -1
3605
+ };
3606
+
3607
+ extra = {};
3608
+
3609
+ // Options matching.
3610
+ options = options || {};
3611
+
3612
+ // Of course we collect tokens here.
3613
+ options.tokens = true;
3614
+ extra.tokens = [];
3615
+ extra.tokenize = true;
3616
+ // The following two fields are necessary to compute the Regex tokens.
3617
+ extra.openParenToken = -1;
3618
+ extra.openCurlyToken = -1;
3619
+
3620
+ extra.range = (typeof options.range === 'boolean') && options.range;
3621
+ extra.loc = (typeof options.loc === 'boolean') && options.loc;
3622
+
3623
+ if (typeof options.comment === 'boolean' && options.comment) {
3624
+ extra.comments = [];
3625
+ }
3626
+ if (typeof options.tolerant === 'boolean' && options.tolerant) {
3627
+ extra.errors = [];
3628
+ }
3629
+
3630
+ try {
3631
+ peek();
3632
+ if (lookahead.type === Token.EOF) {
3633
+ return extra.tokens;
3634
+ }
3635
+
3636
+ token = lex();
3637
+ while (lookahead.type !== Token.EOF) {
3638
+ try {
3639
+ token = lex();
3640
+ } catch (lexError) {
3641
+ token = lookahead;
3642
+ if (extra.errors) {
3643
+ extra.errors.push(lexError);
3644
+ // We have to break on the first error
3645
+ // to avoid infinite loops.
3646
+ break;
3647
+ } else {
3648
+ throw lexError;
3649
+ }
3650
+ }
3651
+ }
3652
+
3653
+ filterTokenLocation();
3654
+ tokens = extra.tokens;
3655
+ if (typeof extra.comments !== 'undefined') {
3656
+ tokens.comments = extra.comments;
3657
+ }
3658
+ if (typeof extra.errors !== 'undefined') {
3659
+ tokens.errors = extra.errors;
3660
+ }
3661
+ } catch (e) {
3662
+ throw e;
3663
+ } finally {
3664
+ extra = {};
3665
+ }
3666
+ return tokens;
3667
+ }
3668
+
3669
+ function parse(code, options) {
3670
+ var program, toString;
3671
+
3672
+ toString = String;
3673
+ if (typeof code !== 'string' && !(code instanceof String)) {
3674
+ code = toString(code);
3675
+ }
3676
+
3677
+ delegate = SyntaxTreeDelegate;
3678
+ source = code;
3679
+ index = 0;
3680
+ lineNumber = (source.length > 0) ? 1 : 0;
3681
+ lineStart = 0;
3682
+ length = source.length;
3683
+ lookahead = null;
3684
+ state = {
3685
+ allowIn: true,
3686
+ labelSet: {},
3687
+ inFunctionBody: false,
3688
+ inIteration: false,
3689
+ inSwitch: false,
3690
+ lastCommentStart: -1
3691
+ };
3692
+
3693
+ extra = {};
3694
+ if (typeof options !== 'undefined') {
3695
+ extra.range = (typeof options.range === 'boolean') && options.range;
3696
+ extra.loc = (typeof options.loc === 'boolean') && options.loc;
3697
+ extra.attachComment = (typeof options.attachComment === 'boolean') && options.attachComment;
3698
+
3699
+ if (extra.loc && options.source !== null && options.source !== undefined) {
3700
+ extra.source = toString(options.source);
3701
+ }
3702
+
3703
+ if (typeof options.tokens === 'boolean' && options.tokens) {
3704
+ extra.tokens = [];
3705
+ }
3706
+ if (typeof options.comment === 'boolean' && options.comment) {
3707
+ extra.comments = [];
3708
+ }
3709
+ if (typeof options.tolerant === 'boolean' && options.tolerant) {
3710
+ extra.errors = [];
3711
+ }
3712
+ if (extra.attachComment) {
3713
+ extra.range = true;
3714
+ extra.comments = [];
3715
+ extra.bottomRightStack = [];
3716
+ extra.trailingComments = [];
3717
+ extra.leadingComments = [];
3718
+ }
3719
+ }
3720
+
3721
+ try {
3722
+ program = parseProgram();
3723
+ if (typeof extra.comments !== 'undefined') {
3724
+ program.comments = extra.comments;
3725
+ }
3726
+ if (typeof extra.tokens !== 'undefined') {
3727
+ filterTokenLocation();
3728
+ program.tokens = extra.tokens;
3729
+ }
3730
+ if (typeof extra.errors !== 'undefined') {
3731
+ program.errors = extra.errors;
3732
+ }
3733
+ } catch (e) {
3734
+ throw e;
3735
+ } finally {
3736
+ extra = {};
3737
+ }
3738
+
3739
+ return program;
3740
+ }
3741
+
3742
+ // Sync with *.json manifests.
3743
+ exports.version = '1.2.5';
3744
+
3745
+ exports.tokenize = tokenize;
3746
+
3747
+ exports.parse = parse;
3748
+
3749
+ // Deep copy.
3750
+ /* istanbul ignore next */
3751
+ exports.Syntax = (function () {
3752
+ var name, types = {};
3753
+
3754
+ if (typeof Object.create === 'function') {
3755
+ types = Object.create(null);
3756
+ }
3757
+
3758
+ for (name in Syntax) {
3759
+ if (Syntax.hasOwnProperty(name)) {
3760
+ types[name] = Syntax[name];
3761
+ }
3762
+ }
3763
+
3764
+ if (typeof Object.freeze === 'function') {
3765
+ Object.freeze(types);
3766
+ }
3767
+
3768
+ return types;
3769
+ }());
3770
+
3771
+ }));
3772
+ /* vim: set sw=4 ts=4 et tw=80 : */