1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860 |
- /**
- * Modules in this bundle
- * @license
- *
- * call-matcher:
- * license: MIT (http://opensource.org/licenses/MIT)
- * author: Takuto Wada <takuto.wada@gmail.com>
- * homepage: https://github.com/twada/call-matcher
- * version: 1.1.0
- *
- * core-js:
- * license: MIT (http://opensource.org/licenses/MIT)
- * homepage: https://github.com/zloirock/core-js#readme
- * version: 2.5.7
- *
- * deep-equal:
- * license: MIT (http://opensource.org/licenses/MIT)
- * author: James Halliday <mail@substack.net>
- * homepage: https://github.com/substack/node-deep-equal#readme
- * version: 1.0.1
- *
- * espurify:
- * license: MIT (http://opensource.org/licenses/MIT)
- * author: Takuto Wada <takuto.wada@gmail.com>
- * homepage: https://github.com/estools/espurify
- * version: 1.8.1
- *
- * estraverse:
- * license: BSD-2-Clause (http://opensource.org/licenses/BSD-2-Clause)
- * maintainers: Yusuke Suzuki <utatane.tea@gmail.com>
- * homepage: https://github.com/estools/estraverse
- * version: 4.2.0
- *
- * This header is generated by licensify (https://github.com/twada/licensify)
- */
- (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.CallMatcher = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw (a.code="MODULE_NOT_FOUND", a)}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(_dereq_,module,exports){
- /**
- * call-matcher:
- * ECMAScript CallExpression matcher made from function/method signature
- *
- * https://github.com/twada/call-matcher
- *
- * Copyright (c) 2015-2018 Takuto Wada
- * Licensed under the MIT license.
- * https://github.com/twada/call-matcher/blob/master/MIT-LICENSE.txt
- */
- 'use strict';
- /* jshint -W024 */
- var estraverse = _dereq_('estraverse');
- var espurify = _dereq_('espurify');
- var syntax = estraverse.Syntax;
- var hasOwn = Object.prototype.hasOwnProperty;
- var forEach = _dereq_('core-js/library/fn/array/for-each');
- var map = _dereq_('core-js/library/fn/array/map');
- var filter = _dereq_('core-js/library/fn/array/filter');
- var reduce = _dereq_('core-js/library/fn/array/reduce');
- var indexOf = _dereq_('core-js/library/fn/array/index-of');
- var deepEqual = _dereq_('deep-equal');
- var notCallExprMessage = 'Argument should be in the form of CallExpression';
- var duplicatedArgMessage = 'Duplicate argument name: ';
- var invalidFormMessage = 'Argument should be in the form of `name` or `[name]`';
- function CallMatcher (signatureAst, options) {
- validateApiExpression(signatureAst);
- options = options || {};
- this.visitorKeys = options.visitorKeys || estraverse.VisitorKeys;
- if (options.astWhiteList) {
- this.purifyAst = espurify.cloneWithWhitelist(options.astWhiteList);
- } else {
- this.purifyAst = espurify;
- }
- this.signatureAst = signatureAst;
- this.signatureCalleeDepth = astDepth(signatureAst.callee, this.visitorKeys);
- this.numMaxArgs = this.signatureAst.arguments.length;
- this.numMinArgs = filter(this.signatureAst.arguments, identifiers).length;
- }
- CallMatcher.prototype.test = function (currentNode) {
- var calleeMatched = this.isCalleeMatched(currentNode);
- var numArgs;
- if (calleeMatched) {
- numArgs = currentNode.arguments.length;
- return this.numMinArgs <= numArgs && numArgs <= this.numMaxArgs;
- }
- return false;
- };
- CallMatcher.prototype.matchArgument = function (currentNode, parentNode) {
- if (isCalleeOfParent(currentNode, parentNode)) {
- return null;
- }
- if (this.test(parentNode)) {
- var indexOfCurrentArg = indexOf(parentNode.arguments, currentNode);
- var numOptional = parentNode.arguments.length - this.numMinArgs;
- var matchedSignatures = reduce(this.argumentSignatures(), function (accum, argSig) {
- if (argSig.kind === 'mandatory') {
- accum.push(argSig);
- }
- if (argSig.kind === 'optional' && 0 < numOptional) {
- numOptional -= 1;
- accum.push(argSig);
- }
- return accum;
- }, []);
- return matchedSignatures[indexOfCurrentArg];
- }
- return null;
- };
- CallMatcher.prototype.calleeAst = function () {
- return this.purifyAst(this.signatureAst.callee);
- };
- CallMatcher.prototype.argumentSignatures = function () {
- return map(this.signatureAst.arguments, toArgumentSignature);
- };
- CallMatcher.prototype.isCalleeMatched = function (node) {
- if (!isCallExpression(node)) {
- return false;
- }
- if (!this.isSameDepthAsSignatureCallee(node.callee)) {
- return false;
- }
- return deepEqual(this.purifyAst(this.signatureAst.callee), this.purifyAst(node.callee));
- };
- CallMatcher.prototype.isSameDepthAsSignatureCallee = function (ast) {
- var depth = this.signatureCalleeDepth;
- var currentDepth = 0;
- estraverse.traverse(ast, {
- keys: this.visitorKeys,
- enter: function (currentNode, parentNode) {
- var path = this.path();
- var pathDepth = path ? path.length : 0;
- if (currentDepth < pathDepth) {
- currentDepth = pathDepth;
- }
- if (depth < currentDepth) {
- this['break']();
- }
- }
- });
- return (depth === currentDepth);
- };
- function toArgumentSignature (argSignatureNode, idx) {
- switch(argSignatureNode.type) {
- case syntax.Identifier:
- return {
- index: idx,
- name: argSignatureNode.name,
- kind: 'mandatory'
- };
- case syntax.ArrayExpression:
- return {
- index: idx,
- name: argSignatureNode.elements[0].name,
- kind: 'optional'
- };
- default:
- return null;
- }
- }
- function astDepth (ast, visitorKeys) {
- var maxDepth = 0;
- estraverse.traverse(ast, {
- keys: visitorKeys,
- enter: function (currentNode, parentNode) {
- var path = this.path();
- var pathDepth = path ? path.length : 0;
- if (maxDepth < pathDepth) {
- maxDepth = pathDepth;
- }
- }
- });
- return maxDepth;
- }
- function isCallExpression (node) {
- return node && node.type === syntax.CallExpression;
- }
- function isCalleeOfParent(currentNode, parentNode) {
- return parentNode && currentNode &&
- parentNode.type === syntax.CallExpression &&
- parentNode.callee === currentNode;
- }
- function identifiers (node) {
- return node.type === syntax.Identifier;
- }
- function validateApiExpression (callExpression) {
- if (!callExpression || !callExpression.type) {
- throw new Error(notCallExprMessage);
- }
- if (callExpression.type !== syntax.CallExpression) {
- throw new Error(notCallExprMessage);
- }
- var names = {};
- forEach(callExpression.arguments, function (arg) {
- var name = validateArg(arg);
- if (hasOwn.call(names, name)) {
- throw new Error(duplicatedArgMessage + name);
- } else {
- names[name] = name;
- }
- });
- }
- function validateArg (arg) {
- var inner;
- switch(arg.type) {
- case syntax.Identifier:
- return arg.name;
- case syntax.ArrayExpression:
- if (arg.elements.length !== 1) {
- throw new Error(invalidFormMessage);
- }
- inner = arg.elements[0];
- if (inner.type !== syntax.Identifier) {
- throw new Error(invalidFormMessage);
- }
- return inner.name;
- default:
- throw new Error(invalidFormMessage);
- }
- }
- module.exports = CallMatcher;
- },{"core-js/library/fn/array/filter":2,"core-js/library/fn/array/for-each":3,"core-js/library/fn/array/index-of":4,"core-js/library/fn/array/map":6,"core-js/library/fn/array/reduce":7,"deep-equal":98,"espurify":101,"estraverse":105}],2:[function(_dereq_,module,exports){
- _dereq_('../../modules/es6.array.filter');
- module.exports = _dereq_('../../modules/_core').Array.filter;
- },{"../../modules/_core":26,"../../modules/es6.array.filter":82}],3:[function(_dereq_,module,exports){
- _dereq_('../../modules/es6.array.for-each');
- module.exports = _dereq_('../../modules/_core').Array.forEach;
- },{"../../modules/_core":26,"../../modules/es6.array.for-each":83}],4:[function(_dereq_,module,exports){
- _dereq_('../../modules/es6.array.index-of');
- module.exports = _dereq_('../../modules/_core').Array.indexOf;
- },{"../../modules/_core":26,"../../modules/es6.array.index-of":84}],5:[function(_dereq_,module,exports){
- _dereq_('../../modules/es6.array.is-array');
- module.exports = _dereq_('../../modules/_core').Array.isArray;
- },{"../../modules/_core":26,"../../modules/es6.array.is-array":85}],6:[function(_dereq_,module,exports){
- _dereq_('../../modules/es6.array.map');
- module.exports = _dereq_('../../modules/_core').Array.map;
- },{"../../modules/_core":26,"../../modules/es6.array.map":87}],7:[function(_dereq_,module,exports){
- _dereq_('../../modules/es6.array.reduce');
- module.exports = _dereq_('../../modules/_core').Array.reduce;
- },{"../../modules/_core":26,"../../modules/es6.array.reduce":88}],8:[function(_dereq_,module,exports){
- _dereq_('../modules/es6.object.to-string');
- _dereq_('../modules/es6.string.iterator');
- _dereq_('../modules/web.dom.iterable');
- _dereq_('../modules/es6.map');
- _dereq_('../modules/es7.map.to-json');
- _dereq_('../modules/es7.map.of');
- _dereq_('../modules/es7.map.from');
- module.exports = _dereq_('../modules/_core').Map;
- },{"../modules/_core":26,"../modules/es6.map":89,"../modules/es6.object.to-string":92,"../modules/es6.string.iterator":93,"../modules/es7.map.from":94,"../modules/es7.map.of":95,"../modules/es7.map.to-json":96,"../modules/web.dom.iterable":97}],9:[function(_dereq_,module,exports){
- _dereq_('../../modules/es6.object.assign');
- module.exports = _dereq_('../../modules/_core').Object.assign;
- },{"../../modules/_core":26,"../../modules/es6.object.assign":90}],10:[function(_dereq_,module,exports){
- _dereq_('../../modules/es6.object.keys');
- module.exports = _dereq_('../../modules/_core').Object.keys;
- },{"../../modules/_core":26,"../../modules/es6.object.keys":91}],11:[function(_dereq_,module,exports){
- module.exports = function (it) {
- if (typeof it != 'function') throw TypeError(it + ' is not a function!');
- return it;
- };
- },{}],12:[function(_dereq_,module,exports){
- module.exports = function () { /* empty */ };
- },{}],13:[function(_dereq_,module,exports){
- module.exports = function (it, Constructor, name, forbiddenField) {
- if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
- throw TypeError(name + ': incorrect invocation!');
- } return it;
- };
- },{}],14:[function(_dereq_,module,exports){
- var isObject = _dereq_('./_is-object');
- module.exports = function (it) {
- if (!isObject(it)) throw TypeError(it + ' is not an object!');
- return it;
- };
- },{"./_is-object":43}],15:[function(_dereq_,module,exports){
- var forOf = _dereq_('./_for-of');
- module.exports = function (iter, ITERATOR) {
- var result = [];
- forOf(iter, false, result.push, result, ITERATOR);
- return result;
- };
- },{"./_for-of":34}],16:[function(_dereq_,module,exports){
- // false -> Array#indexOf
- // true -> Array#includes
- var toIObject = _dereq_('./_to-iobject');
- var toLength = _dereq_('./_to-length');
- var toAbsoluteIndex = _dereq_('./_to-absolute-index');
- module.exports = function (IS_INCLUDES) {
- return function ($this, el, fromIndex) {
- var O = toIObject($this);
- var length = toLength(O.length);
- var index = toAbsoluteIndex(fromIndex, length);
- var value;
- // Array#includes uses SameValueZero equality algorithm
- // eslint-disable-next-line no-self-compare
- if (IS_INCLUDES && el != el) while (length > index) {
- value = O[index++];
- // eslint-disable-next-line no-self-compare
- if (value != value) return true;
- // Array#indexOf ignores holes, Array#includes - not
- } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
- if (O[index] === el) return IS_INCLUDES || index || 0;
- } return !IS_INCLUDES && -1;
- };
- };
- },{"./_to-absolute-index":72,"./_to-iobject":74,"./_to-length":75}],17:[function(_dereq_,module,exports){
- // 0 -> Array#forEach
- // 1 -> Array#map
- // 2 -> Array#filter
- // 3 -> Array#some
- // 4 -> Array#every
- // 5 -> Array#find
- // 6 -> Array#findIndex
- var ctx = _dereq_('./_ctx');
- var IObject = _dereq_('./_iobject');
- var toObject = _dereq_('./_to-object');
- var toLength = _dereq_('./_to-length');
- var asc = _dereq_('./_array-species-create');
- module.exports = function (TYPE, $create) {
- var IS_MAP = TYPE == 1;
- var IS_FILTER = TYPE == 2;
- var IS_SOME = TYPE == 3;
- var IS_EVERY = TYPE == 4;
- var IS_FIND_INDEX = TYPE == 6;
- var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- var create = $create || asc;
- return function ($this, callbackfn, that) {
- var O = toObject($this);
- var self = IObject(O);
- var f = ctx(callbackfn, that, 3);
- var length = toLength(self.length);
- var index = 0;
- var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
- var val, res;
- for (;length > index; index++) if (NO_HOLES || index in self) {
- val = self[index];
- res = f(val, index, O);
- if (TYPE) {
- if (IS_MAP) result[index] = res; // map
- else if (res) switch (TYPE) {
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if (IS_EVERY) return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
- };
- },{"./_array-species-create":20,"./_ctx":27,"./_iobject":40,"./_to-length":75,"./_to-object":76}],18:[function(_dereq_,module,exports){
- var aFunction = _dereq_('./_a-function');
- var toObject = _dereq_('./_to-object');
- var IObject = _dereq_('./_iobject');
- var toLength = _dereq_('./_to-length');
- module.exports = function (that, callbackfn, aLen, memo, isRight) {
- aFunction(callbackfn);
- var O = toObject(that);
- var self = IObject(O);
- var length = toLength(O.length);
- var index = isRight ? length - 1 : 0;
- var i = isRight ? -1 : 1;
- if (aLen < 2) for (;;) {
- if (index in self) {
- memo = self[index];
- index += i;
- break;
- }
- index += i;
- if (isRight ? index < 0 : length <= index) {
- throw TypeError('Reduce of empty array with no initial value');
- }
- }
- for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {
- memo = callbackfn(memo, self[index], index, O);
- }
- return memo;
- };
- },{"./_a-function":11,"./_iobject":40,"./_to-length":75,"./_to-object":76}],19:[function(_dereq_,module,exports){
- var isObject = _dereq_('./_is-object');
- var isArray = _dereq_('./_is-array');
- var SPECIES = _dereq_('./_wks')('species');
- module.exports = function (original) {
- var C;
- if (isArray(original)) {
- C = original.constructor;
- // cross-realm fallback
- if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
- if (isObject(C)) {
- C = C[SPECIES];
- if (C === null) C = undefined;
- }
- } return C === undefined ? Array : C;
- };
- },{"./_is-array":42,"./_is-object":43,"./_wks":80}],20:[function(_dereq_,module,exports){
- // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
- var speciesConstructor = _dereq_('./_array-species-constructor');
- module.exports = function (original, length) {
- return new (speciesConstructor(original))(length);
- };
- },{"./_array-species-constructor":19}],21:[function(_dereq_,module,exports){
- // getting tag from 19.1.3.6 Object.prototype.toString()
- var cof = _dereq_('./_cof');
- var TAG = _dereq_('./_wks')('toStringTag');
- // ES3 wrong here
- var ARG = cof(function () { return arguments; }()) == 'Arguments';
- // fallback for IE11 Script Access Denied error
- var tryGet = function (it, key) {
- try {
- return it[key];
- } catch (e) { /* empty */ }
- };
- module.exports = function (it) {
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
- // @@toStringTag case
- : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
- // builtinTag case
- : ARG ? cof(O)
- // ES3 arguments fallback
- : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
- };
- },{"./_cof":22,"./_wks":80}],22:[function(_dereq_,module,exports){
- var toString = {}.toString;
- module.exports = function (it) {
- return toString.call(it).slice(8, -1);
- };
- },{}],23:[function(_dereq_,module,exports){
- 'use strict';
- var dP = _dereq_('./_object-dp').f;
- var create = _dereq_('./_object-create');
- var redefineAll = _dereq_('./_redefine-all');
- var ctx = _dereq_('./_ctx');
- var anInstance = _dereq_('./_an-instance');
- var forOf = _dereq_('./_for-of');
- var $iterDefine = _dereq_('./_iter-define');
- var step = _dereq_('./_iter-step');
- var setSpecies = _dereq_('./_set-species');
- var DESCRIPTORS = _dereq_('./_descriptors');
- var fastKey = _dereq_('./_meta').fastKey;
- var validate = _dereq_('./_validate-collection');
- var SIZE = DESCRIPTORS ? '_s' : 'size';
- var getEntry = function (that, key) {
- // fast case
- var index = fastKey(key);
- var entry;
- if (index !== 'F') return that._i[index];
- // frozen object case
- for (entry = that._f; entry; entry = entry.n) {
- if (entry.k == key) return entry;
- }
- };
- module.exports = {
- getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
- var C = wrapper(function (that, iterable) {
- anInstance(that, C, NAME, '_i');
- that._t = NAME; // collection type
- that._i = create(null); // index
- that._f = undefined; // first entry
- that._l = undefined; // last entry
- that[SIZE] = 0; // size
- if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- // 23.1.3.1 Map.prototype.clear()
- // 23.2.3.2 Set.prototype.clear()
- clear: function clear() {
- for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
- entry.r = true;
- if (entry.p) entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that._f = that._l = undefined;
- that[SIZE] = 0;
- },
- // 23.1.3.3 Map.prototype.delete(key)
- // 23.2.3.4 Set.prototype.delete(value)
- 'delete': function (key) {
- var that = validate(this, NAME);
- var entry = getEntry(that, key);
- if (entry) {
- var next = entry.n;
- var prev = entry.p;
- delete that._i[entry.i];
- entry.r = true;
- if (prev) prev.n = next;
- if (next) next.p = prev;
- if (that._f == entry) that._f = next;
- if (that._l == entry) that._l = prev;
- that[SIZE]--;
- } return !!entry;
- },
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
- forEach: function forEach(callbackfn /* , that = undefined */) {
- validate(this, NAME);
- var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
- var entry;
- while (entry = entry ? entry.n : this._f) {
- f(entry.v, entry.k, this);
- // revert to the last existing entry
- while (entry && entry.r) entry = entry.p;
- }
- },
- // 23.1.3.7 Map.prototype.has(key)
- // 23.2.3.7 Set.prototype.has(value)
- has: function has(key) {
- return !!getEntry(validate(this, NAME), key);
- }
- });
- if (DESCRIPTORS) dP(C.prototype, 'size', {
- get: function () {
- return validate(this, NAME)[SIZE];
- }
- });
- return C;
- },
- def: function (that, key, value) {
- var entry = getEntry(that, key);
- var prev, index;
- // change existing entry
- if (entry) {
- entry.v = value;
- // create new entry
- } else {
- that._l = entry = {
- i: index = fastKey(key, true), // <- index
- k: key, // <- key
- v: value, // <- value
- p: prev = that._l, // <- previous entry
- n: undefined, // <- next entry
- r: false // <- removed
- };
- if (!that._f) that._f = entry;
- if (prev) prev.n = entry;
- that[SIZE]++;
- // add to index
- if (index !== 'F') that._i[index] = entry;
- } return that;
- },
- getEntry: getEntry,
- setStrong: function (C, NAME, IS_MAP) {
- // add .keys, .values, .entries, [@@iterator]
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- $iterDefine(C, NAME, function (iterated, kind) {
- this._t = validate(iterated, NAME); // target
- this._k = kind; // kind
- this._l = undefined; // previous
- }, function () {
- var that = this;
- var kind = that._k;
- var entry = that._l;
- // revert to the last existing entry
- while (entry && entry.r) entry = entry.p;
- // get next entry
- if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
- // or finish the iteration
- that._t = undefined;
- return step(1);
- }
- // return step by kind
- if (kind == 'keys') return step(0, entry.k);
- if (kind == 'values') return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
- }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
- // add [@@species], 23.1.2.2, 23.2.2.2
- setSpecies(NAME);
- }
- };
- },{"./_an-instance":13,"./_ctx":27,"./_descriptors":29,"./_for-of":34,"./_iter-define":46,"./_iter-step":47,"./_meta":50,"./_object-create":52,"./_object-dp":53,"./_redefine-all":62,"./_set-species":66,"./_validate-collection":79}],24:[function(_dereq_,module,exports){
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var classof = _dereq_('./_classof');
- var from = _dereq_('./_array-from-iterable');
- module.exports = function (NAME) {
- return function toJSON() {
- if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
- return from(this);
- };
- };
- },{"./_array-from-iterable":15,"./_classof":21}],25:[function(_dereq_,module,exports){
- 'use strict';
- var global = _dereq_('./_global');
- var $export = _dereq_('./_export');
- var meta = _dereq_('./_meta');
- var fails = _dereq_('./_fails');
- var hide = _dereq_('./_hide');
- var redefineAll = _dereq_('./_redefine-all');
- var forOf = _dereq_('./_for-of');
- var anInstance = _dereq_('./_an-instance');
- var isObject = _dereq_('./_is-object');
- var setToStringTag = _dereq_('./_set-to-string-tag');
- var dP = _dereq_('./_object-dp').f;
- var each = _dereq_('./_array-methods')(0);
- var DESCRIPTORS = _dereq_('./_descriptors');
- module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
- var Base = global[NAME];
- var C = Base;
- var ADDER = IS_MAP ? 'set' : 'add';
- var proto = C && C.prototype;
- var O = {};
- if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
- new C().entries().next();
- }))) {
- // create collection constructor
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- meta.NEED = true;
- } else {
- C = wrapper(function (target, iterable) {
- anInstance(target, C, NAME, '_c');
- target._c = new Base();
- if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
- });
- each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
- var IS_ADDER = KEY == 'add' || KEY == 'set';
- if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
- anInstance(this, C, KEY);
- if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
- var result = this._c[KEY](a === 0 ? 0 : a, b);
- return IS_ADDER ? this : result;
- });
- });
- IS_WEAK || dP(C.prototype, 'size', {
- get: function () {
- return this._c.size;
- }
- });
- }
- setToStringTag(C, NAME);
- O[NAME] = C;
- $export($export.G + $export.W + $export.F, O);
- if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
- return C;
- };
- },{"./_an-instance":13,"./_array-methods":17,"./_descriptors":29,"./_export":32,"./_fails":33,"./_for-of":34,"./_global":35,"./_hide":37,"./_is-object":43,"./_meta":50,"./_object-dp":53,"./_redefine-all":62,"./_set-to-string-tag":67}],26:[function(_dereq_,module,exports){
- var core = module.exports = { version: '2.5.7' };
- if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
- },{}],27:[function(_dereq_,module,exports){
- // optional / simple context binding
- var aFunction = _dereq_('./_a-function');
- module.exports = function (fn, that, length) {
- aFunction(fn);
- if (that === undefined) return fn;
- switch (length) {
- case 1: return function (a) {
- return fn.call(that, a);
- };
- case 2: return function (a, b) {
- return fn.call(that, a, b);
- };
- case 3: return function (a, b, c) {
- return fn.call(that, a, b, c);
- };
- }
- return function (/* ...args */) {
- return fn.apply(that, arguments);
- };
- };
- },{"./_a-function":11}],28:[function(_dereq_,module,exports){
- // 7.2.1 RequireObjectCoercible(argument)
- module.exports = function (it) {
- if (it == undefined) throw TypeError("Can't call method on " + it);
- return it;
- };
- },{}],29:[function(_dereq_,module,exports){
- // Thank's IE8 for his funny defineProperty
- module.exports = !_dereq_('./_fails')(function () {
- return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
- });
- },{"./_fails":33}],30:[function(_dereq_,module,exports){
- var isObject = _dereq_('./_is-object');
- var document = _dereq_('./_global').document;
- // typeof document.createElement is 'object' in old IE
- var is = isObject(document) && isObject(document.createElement);
- module.exports = function (it) {
- return is ? document.createElement(it) : {};
- };
- },{"./_global":35,"./_is-object":43}],31:[function(_dereq_,module,exports){
- // IE 8- don't enum bug keys
- module.exports = (
- 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
- ).split(',');
- },{}],32:[function(_dereq_,module,exports){
- var global = _dereq_('./_global');
- var core = _dereq_('./_core');
- var ctx = _dereq_('./_ctx');
- var hide = _dereq_('./_hide');
- var has = _dereq_('./_has');
- var PROTOTYPE = 'prototype';
- var $export = function (type, name, source) {
- var IS_FORCED = type & $export.F;
- var IS_GLOBAL = type & $export.G;
- var IS_STATIC = type & $export.S;
- var IS_PROTO = type & $export.P;
- var IS_BIND = type & $export.B;
- var IS_WRAP = type & $export.W;
- var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
- var expProto = exports[PROTOTYPE];
- var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
- var key, own, out;
- if (IS_GLOBAL) source = name;
- for (key in source) {
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- if (own && has(exports, key)) continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function (C) {
- var F = function (a, b, c) {
- if (this instanceof C) {
- switch (arguments.length) {
- case 0: return new C();
- case 1: return new C(a);
- case 2: return new C(a, b);
- } return new C(a, b, c);
- } return C.apply(this, arguments);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
- if (IS_PROTO) {
- (exports.virtual || (exports.virtual = {}))[key] = out;
- // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
- if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
- }
- }
- };
- // type bitmap
- $export.F = 1; // forced
- $export.G = 2; // global
- $export.S = 4; // static
- $export.P = 8; // proto
- $export.B = 16; // bind
- $export.W = 32; // wrap
- $export.U = 64; // safe
- $export.R = 128; // real proto method for `library`
- module.exports = $export;
- },{"./_core":26,"./_ctx":27,"./_global":35,"./_has":36,"./_hide":37}],33:[function(_dereq_,module,exports){
- module.exports = function (exec) {
- try {
- return !!exec();
- } catch (e) {
- return true;
- }
- };
- },{}],34:[function(_dereq_,module,exports){
- var ctx = _dereq_('./_ctx');
- var call = _dereq_('./_iter-call');
- var isArrayIter = _dereq_('./_is-array-iter');
- var anObject = _dereq_('./_an-object');
- var toLength = _dereq_('./_to-length');
- var getIterFn = _dereq_('./core.get-iterator-method');
- var BREAK = {};
- var RETURN = {};
- var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
- var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
- var f = ctx(fn, that, entries ? 2 : 1);
- var index = 0;
- var length, step, iterator, result;
- if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
- // fast case for arrays with default iterator
- if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
- result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if (result === BREAK || result === RETURN) return result;
- } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
- result = call(iterator, f, step.value, entries);
- if (result === BREAK || result === RETURN) return result;
- }
- };
- exports.BREAK = BREAK;
- exports.RETURN = RETURN;
- },{"./_an-object":14,"./_ctx":27,"./_is-array-iter":41,"./_iter-call":44,"./_to-length":75,"./core.get-iterator-method":81}],35:[function(_dereq_,module,exports){
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self
- // eslint-disable-next-line no-new-func
- : Function('return this')();
- if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
- },{}],36:[function(_dereq_,module,exports){
- var hasOwnProperty = {}.hasOwnProperty;
- module.exports = function (it, key) {
- return hasOwnProperty.call(it, key);
- };
- },{}],37:[function(_dereq_,module,exports){
- var dP = _dereq_('./_object-dp');
- var createDesc = _dereq_('./_property-desc');
- module.exports = _dereq_('./_descriptors') ? function (object, key, value) {
- return dP.f(object, key, createDesc(1, value));
- } : function (object, key, value) {
- object[key] = value;
- return object;
- };
- },{"./_descriptors":29,"./_object-dp":53,"./_property-desc":61}],38:[function(_dereq_,module,exports){
- var document = _dereq_('./_global').document;
- module.exports = document && document.documentElement;
- },{"./_global":35}],39:[function(_dereq_,module,exports){
- module.exports = !_dereq_('./_descriptors') && !_dereq_('./_fails')(function () {
- return Object.defineProperty(_dereq_('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;
- });
- },{"./_descriptors":29,"./_dom-create":30,"./_fails":33}],40:[function(_dereq_,module,exports){
- // fallback for non-array-like ES3 and non-enumerable old V8 strings
- var cof = _dereq_('./_cof');
- // eslint-disable-next-line no-prototype-builtins
- module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
- return cof(it) == 'String' ? it.split('') : Object(it);
- };
- },{"./_cof":22}],41:[function(_dereq_,module,exports){
- // check on default Array iterator
- var Iterators = _dereq_('./_iterators');
- var ITERATOR = _dereq_('./_wks')('iterator');
- var ArrayProto = Array.prototype;
- module.exports = function (it) {
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
- };
- },{"./_iterators":48,"./_wks":80}],42:[function(_dereq_,module,exports){
- // 7.2.2 IsArray(argument)
- var cof = _dereq_('./_cof');
- module.exports = Array.isArray || function isArray(arg) {
- return cof(arg) == 'Array';
- };
- },{"./_cof":22}],43:[function(_dereq_,module,exports){
- module.exports = function (it) {
- return typeof it === 'object' ? it !== null : typeof it === 'function';
- };
- },{}],44:[function(_dereq_,module,exports){
- // call something on iterator step with safe closing on error
- var anObject = _dereq_('./_an-object');
- module.exports = function (iterator, fn, value, entries) {
- try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
- // 7.4.6 IteratorClose(iterator, completion)
- } catch (e) {
- var ret = iterator['return'];
- if (ret !== undefined) anObject(ret.call(iterator));
- throw e;
- }
- };
- },{"./_an-object":14}],45:[function(_dereq_,module,exports){
- 'use strict';
- var create = _dereq_('./_object-create');
- var descriptor = _dereq_('./_property-desc');
- var setToStringTag = _dereq_('./_set-to-string-tag');
- var IteratorPrototype = {};
- // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
- _dereq_('./_hide')(IteratorPrototype, _dereq_('./_wks')('iterator'), function () { return this; });
- module.exports = function (Constructor, NAME, next) {
- Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
- setToStringTag(Constructor, NAME + ' Iterator');
- };
- },{"./_hide":37,"./_object-create":52,"./_property-desc":61,"./_set-to-string-tag":67,"./_wks":80}],46:[function(_dereq_,module,exports){
- 'use strict';
- var LIBRARY = _dereq_('./_library');
- var $export = _dereq_('./_export');
- var redefine = _dereq_('./_redefine');
- var hide = _dereq_('./_hide');
- var Iterators = _dereq_('./_iterators');
- var $iterCreate = _dereq_('./_iter-create');
- var setToStringTag = _dereq_('./_set-to-string-tag');
- var getPrototypeOf = _dereq_('./_object-gpo');
- var ITERATOR = _dereq_('./_wks')('iterator');
- var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
- var FF_ITERATOR = '@@iterator';
- var KEYS = 'keys';
- var VALUES = 'values';
- var returnThis = function () { return this; };
- module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
- $iterCreate(Constructor, NAME, next);
- var getMethod = function (kind) {
- if (!BUGGY && kind in proto) return proto[kind];
- switch (kind) {
- case KEYS: return function keys() { return new Constructor(this, kind); };
- case VALUES: return function values() { return new Constructor(this, kind); };
- } return function entries() { return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator';
- var DEF_VALUES = DEFAULT == VALUES;
- var VALUES_BUG = false;
- var proto = Base.prototype;
- var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
- var $default = $native || getMethod(DEFAULT);
- var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
- var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
- var methods, key, IteratorPrototype;
- // Fix native
- if ($anyNative) {
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
- if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // fix for some old engines
- if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
- // fix Array#{values, @@iterator}.name in V8 / FF
- if (DEF_VALUES && $native && $native.name !== VALUES) {
- VALUES_BUG = true;
- $default = function values() { return $native.call(this); };
- }
- // Define iterator
- if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if (DEFAULT) {
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if (FORCED) for (key in methods) {
- if (!(key in proto)) redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
- };
- },{"./_export":32,"./_hide":37,"./_iter-create":45,"./_iterators":48,"./_library":49,"./_object-gpo":56,"./_redefine":63,"./_set-to-string-tag":67,"./_wks":80}],47:[function(_dereq_,module,exports){
- module.exports = function (done, value) {
- return { value: value, done: !!done };
- };
- },{}],48:[function(_dereq_,module,exports){
- module.exports = {};
- },{}],49:[function(_dereq_,module,exports){
- module.exports = true;
- },{}],50:[function(_dereq_,module,exports){
- var META = _dereq_('./_uid')('meta');
- var isObject = _dereq_('./_is-object');
- var has = _dereq_('./_has');
- var setDesc = _dereq_('./_object-dp').f;
- var id = 0;
- var isExtensible = Object.isExtensible || function () {
- return true;
- };
- var FREEZE = !_dereq_('./_fails')(function () {
- return isExtensible(Object.preventExtensions({}));
- });
- var setMeta = function (it) {
- setDesc(it, META, { value: {
- i: 'O' + ++id, // object ID
- w: {} // weak collections IDs
- } });
- };
- var fastKey = function (it, create) {
- // return primitive with prefix
- if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if (!has(it, META)) {
- // can't set metadata to uncaught frozen object
- if (!isExtensible(it)) return 'F';
- // not necessary to add metadata
- if (!create) return 'E';
- // add missing metadata
- setMeta(it);
- // return object ID
- } return it[META].i;
- };
- var getWeak = function (it, create) {
- if (!has(it, META)) {
- // can't set metadata to uncaught frozen object
- if (!isExtensible(it)) return true;
- // not necessary to add metadata
- if (!create) return false;
- // add missing metadata
- setMeta(it);
- // return hash weak collections IDs
- } return it[META].w;
- };
- // add metadata on freeze-family methods calling
- var onFreeze = function (it) {
- if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
- return it;
- };
- var meta = module.exports = {
- KEY: META,
- NEED: false,
- fastKey: fastKey,
- getWeak: getWeak,
- onFreeze: onFreeze
- };
- },{"./_fails":33,"./_has":36,"./_is-object":43,"./_object-dp":53,"./_uid":78}],51:[function(_dereq_,module,exports){
- 'use strict';
- // 19.1.2.1 Object.assign(target, source, ...)
- var getKeys = _dereq_('./_object-keys');
- var gOPS = _dereq_('./_object-gops');
- var pIE = _dereq_('./_object-pie');
- var toObject = _dereq_('./_to-object');
- var IObject = _dereq_('./_iobject');
- var $assign = Object.assign;
- // should work with symbols and should have deterministic property order (V8 bug)
- module.exports = !$assign || _dereq_('./_fails')(function () {
- var A = {};
- var B = {};
- // eslint-disable-next-line no-undef
- var S = Symbol();
- var K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function (k) { B[k] = k; });
- return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
- }) ? function assign(target, source) { // eslint-disable-line no-unused-vars
- var T = toObject(target);
- var aLen = arguments.length;
- var index = 1;
- var getSymbols = gOPS.f;
- var isEnum = pIE.f;
- while (aLen > index) {
- var S = IObject(arguments[index++]);
- var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
- var length = keys.length;
- var j = 0;
- var key;
- while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
- } return T;
- } : $assign;
- },{"./_fails":33,"./_iobject":40,"./_object-gops":55,"./_object-keys":58,"./_object-pie":59,"./_to-object":76}],52:[function(_dereq_,module,exports){
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
- var anObject = _dereq_('./_an-object');
- var dPs = _dereq_('./_object-dps');
- var enumBugKeys = _dereq_('./_enum-bug-keys');
- var IE_PROTO = _dereq_('./_shared-key')('IE_PROTO');
- var Empty = function () { /* empty */ };
- var PROTOTYPE = 'prototype';
- // Create object with fake `null` prototype: use iframe Object with cleared prototype
- var createDict = function () {
- // Thrash, waste and sodomy: IE GC bug
- var iframe = _dereq_('./_dom-create')('iframe');
- var i = enumBugKeys.length;
- var lt = '<';
- var gt = '>';
- var iframeDocument;
- iframe.style.display = 'none';
- _dereq_('./_html').appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
- return createDict();
- };
- module.exports = Object.create || function create(O, Properties) {
- var result;
- if (O !== null) {
- Empty[PROTOTYPE] = anObject(O);
- result = new Empty();
- Empty[PROTOTYPE] = null;
- // add "__proto__" for Object.getPrototypeOf polyfill
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : dPs(result, Properties);
- };
- },{"./_an-object":14,"./_dom-create":30,"./_enum-bug-keys":31,"./_html":38,"./_object-dps":54,"./_shared-key":68}],53:[function(_dereq_,module,exports){
- var anObject = _dereq_('./_an-object');
- var IE8_DOM_DEFINE = _dereq_('./_ie8-dom-define');
- var toPrimitive = _dereq_('./_to-primitive');
- var dP = Object.defineProperty;
- exports.f = _dereq_('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if (IE8_DOM_DEFINE) try {
- return dP(O, P, Attributes);
- } catch (e) { /* empty */ }
- if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
- if ('value' in Attributes) O[P] = Attributes.value;
- return O;
- };
- },{"./_an-object":14,"./_descriptors":29,"./_ie8-dom-define":39,"./_to-primitive":77}],54:[function(_dereq_,module,exports){
- var dP = _dereq_('./_object-dp');
- var anObject = _dereq_('./_an-object');
- var getKeys = _dereq_('./_object-keys');
- module.exports = _dereq_('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {
- anObject(O);
- var keys = getKeys(Properties);
- var length = keys.length;
- var i = 0;
- var P;
- while (length > i) dP.f(O, P = keys[i++], Properties[P]);
- return O;
- };
- },{"./_an-object":14,"./_descriptors":29,"./_object-dp":53,"./_object-keys":58}],55:[function(_dereq_,module,exports){
- exports.f = Object.getOwnPropertySymbols;
- },{}],56:[function(_dereq_,module,exports){
- // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
- var has = _dereq_('./_has');
- var toObject = _dereq_('./_to-object');
- var IE_PROTO = _dereq_('./_shared-key')('IE_PROTO');
- var ObjectProto = Object.prototype;
- module.exports = Object.getPrototypeOf || function (O) {
- O = toObject(O);
- if (has(O, IE_PROTO)) return O[IE_PROTO];
- if (typeof O.constructor == 'function' && O instanceof O.constructor) {
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
- };
- },{"./_has":36,"./_shared-key":68,"./_to-object":76}],57:[function(_dereq_,module,exports){
- var has = _dereq_('./_has');
- var toIObject = _dereq_('./_to-iobject');
- var arrayIndexOf = _dereq_('./_array-includes')(false);
- var IE_PROTO = _dereq_('./_shared-key')('IE_PROTO');
- module.exports = function (object, names) {
- var O = toIObject(object);
- var i = 0;
- var result = [];
- var key;
- for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while (names.length > i) if (has(O, key = names[i++])) {
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
- },{"./_array-includes":16,"./_has":36,"./_shared-key":68,"./_to-iobject":74}],58:[function(_dereq_,module,exports){
- // 19.1.2.14 / 15.2.3.14 Object.keys(O)
- var $keys = _dereq_('./_object-keys-internal');
- var enumBugKeys = _dereq_('./_enum-bug-keys');
- module.exports = Object.keys || function keys(O) {
- return $keys(O, enumBugKeys);
- };
- },{"./_enum-bug-keys":31,"./_object-keys-internal":57}],59:[function(_dereq_,module,exports){
- exports.f = {}.propertyIsEnumerable;
- },{}],60:[function(_dereq_,module,exports){
- // most Object methods by ES6 should accept primitives
- var $export = _dereq_('./_export');
- var core = _dereq_('./_core');
- var fails = _dereq_('./_fails');
- module.exports = function (KEY, exec) {
- var fn = (core.Object || {})[KEY] || Object[KEY];
- var exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
- };
- },{"./_core":26,"./_export":32,"./_fails":33}],61:[function(_dereq_,module,exports){
- module.exports = function (bitmap, value) {
- return {
- enumerable: !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable: !(bitmap & 4),
- value: value
- };
- };
- },{}],62:[function(_dereq_,module,exports){
- var hide = _dereq_('./_hide');
- module.exports = function (target, src, safe) {
- for (var key in src) {
- if (safe && target[key]) target[key] = src[key];
- else hide(target, key, src[key]);
- } return target;
- };
- },{"./_hide":37}],63:[function(_dereq_,module,exports){
- module.exports = _dereq_('./_hide');
- },{"./_hide":37}],64:[function(_dereq_,module,exports){
- 'use strict';
- // https://tc39.github.io/proposal-setmap-offrom/
- var $export = _dereq_('./_export');
- var aFunction = _dereq_('./_a-function');
- var ctx = _dereq_('./_ctx');
- var forOf = _dereq_('./_for-of');
- module.exports = function (COLLECTION) {
- $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
- var mapFn = arguments[1];
- var mapping, A, n, cb;
- aFunction(this);
- mapping = mapFn !== undefined;
- if (mapping) aFunction(mapFn);
- if (source == undefined) return new this();
- A = [];
- if (mapping) {
- n = 0;
- cb = ctx(mapFn, arguments[2], 2);
- forOf(source, false, function (nextItem) {
- A.push(cb(nextItem, n++));
- });
- } else {
- forOf(source, false, A.push, A);
- }
- return new this(A);
- } });
- };
- },{"./_a-function":11,"./_ctx":27,"./_export":32,"./_for-of":34}],65:[function(_dereq_,module,exports){
- 'use strict';
- // https://tc39.github.io/proposal-setmap-offrom/
- var $export = _dereq_('./_export');
- module.exports = function (COLLECTION) {
- $export($export.S, COLLECTION, { of: function of() {
- var length = arguments.length;
- var A = new Array(length);
- while (length--) A[length] = arguments[length];
- return new this(A);
- } });
- };
- },{"./_export":32}],66:[function(_dereq_,module,exports){
- 'use strict';
- var global = _dereq_('./_global');
- var core = _dereq_('./_core');
- var dP = _dereq_('./_object-dp');
- var DESCRIPTORS = _dereq_('./_descriptors');
- var SPECIES = _dereq_('./_wks')('species');
- module.exports = function (KEY) {
- var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
- if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
- configurable: true,
- get: function () { return this; }
- });
- };
- },{"./_core":26,"./_descriptors":29,"./_global":35,"./_object-dp":53,"./_wks":80}],67:[function(_dereq_,module,exports){
- var def = _dereq_('./_object-dp').f;
- var has = _dereq_('./_has');
- var TAG = _dereq_('./_wks')('toStringTag');
- module.exports = function (it, tag, stat) {
- if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
- };
- },{"./_has":36,"./_object-dp":53,"./_wks":80}],68:[function(_dereq_,module,exports){
- var shared = _dereq_('./_shared')('keys');
- var uid = _dereq_('./_uid');
- module.exports = function (key) {
- return shared[key] || (shared[key] = uid(key));
- };
- },{"./_shared":69,"./_uid":78}],69:[function(_dereq_,module,exports){
- var core = _dereq_('./_core');
- var global = _dereq_('./_global');
- var SHARED = '__core-js_shared__';
- var store = global[SHARED] || (global[SHARED] = {});
- (module.exports = function (key, value) {
- return store[key] || (store[key] = value !== undefined ? value : {});
- })('versions', []).push({
- version: core.version,
- mode: _dereq_('./_library') ? 'pure' : 'global',
- copyright: '© 2018 Denis Pushkarev (zloirock.ru)'
- });
- },{"./_core":26,"./_global":35,"./_library":49}],70:[function(_dereq_,module,exports){
- 'use strict';
- var fails = _dereq_('./_fails');
- module.exports = function (method, arg) {
- return !!method && fails(function () {
- // eslint-disable-next-line no-useless-call
- arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
- });
- };
- },{"./_fails":33}],71:[function(_dereq_,module,exports){
- var toInteger = _dereq_('./_to-integer');
- var defined = _dereq_('./_defined');
- // true -> String#at
- // false -> String#codePointAt
- module.exports = function (TO_STRING) {
- return function (that, pos) {
- var s = String(defined(that));
- var i = toInteger(pos);
- var l = s.length;
- var a, b;
- if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
- };
- },{"./_defined":28,"./_to-integer":73}],72:[function(_dereq_,module,exports){
- var toInteger = _dereq_('./_to-integer');
- var max = Math.max;
- var min = Math.min;
- module.exports = function (index, length) {
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
- };
- },{"./_to-integer":73}],73:[function(_dereq_,module,exports){
- // 7.1.4 ToInteger
- var ceil = Math.ceil;
- var floor = Math.floor;
- module.exports = function (it) {
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
- };
- },{}],74:[function(_dereq_,module,exports){
- // to indexed object, toObject with fallback for non-array-like ES3 strings
- var IObject = _dereq_('./_iobject');
- var defined = _dereq_('./_defined');
- module.exports = function (it) {
- return IObject(defined(it));
- };
- },{"./_defined":28,"./_iobject":40}],75:[function(_dereq_,module,exports){
- // 7.1.15 ToLength
- var toInteger = _dereq_('./_to-integer');
- var min = Math.min;
- module.exports = function (it) {
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
- };
- },{"./_to-integer":73}],76:[function(_dereq_,module,exports){
- // 7.1.13 ToObject(argument)
- var defined = _dereq_('./_defined');
- module.exports = function (it) {
- return Object(defined(it));
- };
- },{"./_defined":28}],77:[function(_dereq_,module,exports){
- // 7.1.1 ToPrimitive(input [, PreferredType])
- var isObject = _dereq_('./_is-object');
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
- // and the second argument - flag - preferred type is a string
- module.exports = function (it, S) {
- if (!isObject(it)) return it;
- var fn, val;
- if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
- if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
- if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
- throw TypeError("Can't convert object to primitive value");
- };
- },{"./_is-object":43}],78:[function(_dereq_,module,exports){
- var id = 0;
- var px = Math.random();
- module.exports = function (key) {
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
- };
- },{}],79:[function(_dereq_,module,exports){
- var isObject = _dereq_('./_is-object');
- module.exports = function (it, TYPE) {
- if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
- return it;
- };
- },{"./_is-object":43}],80:[function(_dereq_,module,exports){
- var store = _dereq_('./_shared')('wks');
- var uid = _dereq_('./_uid');
- var Symbol = _dereq_('./_global').Symbol;
- var USE_SYMBOL = typeof Symbol == 'function';
- var $exports = module.exports = function (name) {
- return store[name] || (store[name] =
- USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
- };
- $exports.store = store;
- },{"./_global":35,"./_shared":69,"./_uid":78}],81:[function(_dereq_,module,exports){
- var classof = _dereq_('./_classof');
- var ITERATOR = _dereq_('./_wks')('iterator');
- var Iterators = _dereq_('./_iterators');
- module.exports = _dereq_('./_core').getIteratorMethod = function (it) {
- if (it != undefined) return it[ITERATOR]
- || it['@@iterator']
- || Iterators[classof(it)];
- };
- },{"./_classof":21,"./_core":26,"./_iterators":48,"./_wks":80}],82:[function(_dereq_,module,exports){
- 'use strict';
- var $export = _dereq_('./_export');
- var $filter = _dereq_('./_array-methods')(2);
- $export($export.P + $export.F * !_dereq_('./_strict-method')([].filter, true), 'Array', {
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
- filter: function filter(callbackfn /* , thisArg */) {
- return $filter(this, callbackfn, arguments[1]);
- }
- });
- },{"./_array-methods":17,"./_export":32,"./_strict-method":70}],83:[function(_dereq_,module,exports){
- 'use strict';
- var $export = _dereq_('./_export');
- var $forEach = _dereq_('./_array-methods')(0);
- var STRICT = _dereq_('./_strict-method')([].forEach, true);
- $export($export.P + $export.F * !STRICT, 'Array', {
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
- forEach: function forEach(callbackfn /* , thisArg */) {
- return $forEach(this, callbackfn, arguments[1]);
- }
- });
- },{"./_array-methods":17,"./_export":32,"./_strict-method":70}],84:[function(_dereq_,module,exports){
- 'use strict';
- var $export = _dereq_('./_export');
- var $indexOf = _dereq_('./_array-includes')(false);
- var $native = [].indexOf;
- var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
- $export($export.P + $export.F * (NEGATIVE_ZERO || !_dereq_('./_strict-method')($native)), 'Array', {
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
- indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
- return NEGATIVE_ZERO
- // convert -0 to +0
- ? $native.apply(this, arguments) || 0
- : $indexOf(this, searchElement, arguments[1]);
- }
- });
- },{"./_array-includes":16,"./_export":32,"./_strict-method":70}],85:[function(_dereq_,module,exports){
- // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
- var $export = _dereq_('./_export');
- $export($export.S, 'Array', { isArray: _dereq_('./_is-array') });
- },{"./_export":32,"./_is-array":42}],86:[function(_dereq_,module,exports){
- 'use strict';
- var addToUnscopables = _dereq_('./_add-to-unscopables');
- var step = _dereq_('./_iter-step');
- var Iterators = _dereq_('./_iterators');
- var toIObject = _dereq_('./_to-iobject');
- // 22.1.3.4 Array.prototype.entries()
- // 22.1.3.13 Array.prototype.keys()
- // 22.1.3.29 Array.prototype.values()
- // 22.1.3.30 Array.prototype[@@iterator]()
- module.exports = _dereq_('./_iter-define')(Array, 'Array', function (iterated, kind) {
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
- // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
- }, function () {
- var O = this._t;
- var kind = this._k;
- var index = this._i++;
- if (!O || index >= O.length) {
- this._t = undefined;
- return step(1);
- }
- if (kind == 'keys') return step(0, index);
- if (kind == 'values') return step(0, O[index]);
- return step(0, [index, O[index]]);
- }, 'values');
- // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
- Iterators.Arguments = Iterators.Array;
- addToUnscopables('keys');
- addToUnscopables('values');
- addToUnscopables('entries');
- },{"./_add-to-unscopables":12,"./_iter-define":46,"./_iter-step":47,"./_iterators":48,"./_to-iobject":74}],87:[function(_dereq_,module,exports){
- 'use strict';
- var $export = _dereq_('./_export');
- var $map = _dereq_('./_array-methods')(1);
- $export($export.P + $export.F * !_dereq_('./_strict-method')([].map, true), 'Array', {
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
- map: function map(callbackfn /* , thisArg */) {
- return $map(this, callbackfn, arguments[1]);
- }
- });
- },{"./_array-methods":17,"./_export":32,"./_strict-method":70}],88:[function(_dereq_,module,exports){
- 'use strict';
- var $export = _dereq_('./_export');
- var $reduce = _dereq_('./_array-reduce');
- $export($export.P + $export.F * !_dereq_('./_strict-method')([].reduce, true), 'Array', {
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
- reduce: function reduce(callbackfn /* , initialValue */) {
- return $reduce(this, callbackfn, arguments.length, arguments[1], false);
- }
- });
- },{"./_array-reduce":18,"./_export":32,"./_strict-method":70}],89:[function(_dereq_,module,exports){
- 'use strict';
- var strong = _dereq_('./_collection-strong');
- var validate = _dereq_('./_validate-collection');
- var MAP = 'Map';
- // 23.1 Map Objects
- module.exports = _dereq_('./_collection')(MAP, function (get) {
- return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
- }, {
- // 23.1.3.6 Map.prototype.get(key)
- get: function get(key) {
- var entry = strong.getEntry(validate(this, MAP), key);
- return entry && entry.v;
- },
- // 23.1.3.9 Map.prototype.set(key, value)
- set: function set(key, value) {
- return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
- }
- }, strong, true);
- },{"./_collection":25,"./_collection-strong":23,"./_validate-collection":79}],90:[function(_dereq_,module,exports){
- // 19.1.3.1 Object.assign(target, source)
- var $export = _dereq_('./_export');
- $export($export.S + $export.F, 'Object', { assign: _dereq_('./_object-assign') });
- },{"./_export":32,"./_object-assign":51}],91:[function(_dereq_,module,exports){
- // 19.1.2.14 Object.keys(O)
- var toObject = _dereq_('./_to-object');
- var $keys = _dereq_('./_object-keys');
- _dereq_('./_object-sap')('keys', function () {
- return function keys(it) {
- return $keys(toObject(it));
- };
- });
- },{"./_object-keys":58,"./_object-sap":60,"./_to-object":76}],92:[function(_dereq_,module,exports){
- },{}],93:[function(_dereq_,module,exports){
- 'use strict';
- var $at = _dereq_('./_string-at')(true);
- // 21.1.3.27 String.prototype[@@iterator]()
- _dereq_('./_iter-define')(String, 'String', function (iterated) {
- this._t = String(iterated); // target
- this._i = 0; // next index
- // 21.1.5.2.1 %StringIteratorPrototype%.next()
- }, function () {
- var O = this._t;
- var index = this._i;
- var point;
- if (index >= O.length) return { value: undefined, done: true };
- point = $at(O, index);
- this._i += point.length;
- return { value: point, done: false };
- });
- },{"./_iter-define":46,"./_string-at":71}],94:[function(_dereq_,module,exports){
- // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
- _dereq_('./_set-collection-from')('Map');
- },{"./_set-collection-from":64}],95:[function(_dereq_,module,exports){
- // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
- _dereq_('./_set-collection-of')('Map');
- },{"./_set-collection-of":65}],96:[function(_dereq_,module,exports){
- // https://github.com/DavidBruant/Map-Set.prototype.toJSON
- var $export = _dereq_('./_export');
- $export($export.P + $export.R, 'Map', { toJSON: _dereq_('./_collection-to-json')('Map') });
- },{"./_collection-to-json":24,"./_export":32}],97:[function(_dereq_,module,exports){
- _dereq_('./es6.array.iterator');
- var global = _dereq_('./_global');
- var hide = _dereq_('./_hide');
- var Iterators = _dereq_('./_iterators');
- var TO_STRING_TAG = _dereq_('./_wks')('toStringTag');
- var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
- 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
- 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
- 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
- 'TextTrackList,TouchList').split(',');
- for (var i = 0; i < DOMIterables.length; i++) {
- var NAME = DOMIterables[i];
- var Collection = global[NAME];
- var proto = Collection && Collection.prototype;
- if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
- Iterators[NAME] = Iterators.Array;
- }
- },{"./_global":35,"./_hide":37,"./_iterators":48,"./_wks":80,"./es6.array.iterator":86}],98:[function(_dereq_,module,exports){
- var pSlice = Array.prototype.slice;
- var objectKeys = _dereq_('./lib/keys.js');
- var isArguments = _dereq_('./lib/is_arguments.js');
- var deepEqual = module.exports = function (actual, expected, opts) {
- if (!opts) opts = {};
- // 7.1. All identical values are equivalent, as determined by ===.
- if (actual === expected) {
- return true;
- } else if (actual instanceof Date && expected instanceof Date) {
- return actual.getTime() === expected.getTime();
- // 7.3. Other pairs that do not both pass typeof value == 'object',
- // equivalence is determined by ==.
- } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {
- return opts.strict ? actual === expected : actual == expected;
- // 7.4. For all other Object pairs, including Array objects, equivalence is
- // determined by having the same number of owned properties (as verified
- // with Object.prototype.hasOwnProperty.call), the same set of keys
- // (although not necessarily the same order), equivalent values for every
- // corresponding key, and an identical 'prototype' property. Note: this
- // accounts for both named and indexed properties on Arrays.
- } else {
- return objEquiv(actual, expected, opts);
- }
- }
- function isUndefinedOrNull(value) {
- return value === null || value === undefined;
- }
- function isBuffer (x) {
- if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;
- if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {
- return false;
- }
- if (x.length > 0 && typeof x[0] !== 'number') return false;
- return true;
- }
- function objEquiv(a, b, opts) {
- var i, key;
- if (isUndefinedOrNull(a) || isUndefinedOrNull(b))
- return false;
- // an identical 'prototype' property.
- if (a.prototype !== b.prototype) return false;
- //~~~I've managed to break Object.keys through screwy arguments passing.
- // Converting to array solves the problem.
- if (isArguments(a)) {
- if (!isArguments(b)) {
- return false;
- }
- a = pSlice.call(a);
- b = pSlice.call(b);
- return deepEqual(a, b, opts);
- }
- if (isBuffer(a)) {
- if (!isBuffer(b)) {
- return false;
- }
- if (a.length !== b.length) return false;
- for (i = 0; i < a.length; i++) {
- if (a[i] !== b[i]) return false;
- }
- return true;
- }
- try {
- var ka = objectKeys(a),
- kb = objectKeys(b);
- } catch (e) {//happens when one is a string literal and the other isn't
- return false;
- }
- // having the same number of owned properties (keys incorporates
- // hasOwnProperty)
- if (ka.length != kb.length)
- return false;
- //the same set of keys (although not necessarily the same order),
- ka.sort();
- kb.sort();
- //~~~cheap key test
- for (i = ka.length - 1; i >= 0; i--) {
- if (ka[i] != kb[i])
- return false;
- }
- //equivalent values for every corresponding key, and
- //~~~possibly expensive deep test
- for (i = ka.length - 1; i >= 0; i--) {
- key = ka[i];
- if (!deepEqual(a[key], b[key], opts)) return false;
- }
- return typeof a === typeof b;
- }
- },{"./lib/is_arguments.js":99,"./lib/keys.js":100}],99:[function(_dereq_,module,exports){
- var supportsArgumentsClass = (function(){
- return Object.prototype.toString.call(arguments)
- })() == '[object Arguments]';
- exports = module.exports = supportsArgumentsClass ? supported : unsupported;
- exports.supported = supported;
- function supported(object) {
- return Object.prototype.toString.call(object) == '[object Arguments]';
- };
- exports.unsupported = unsupported;
- function unsupported(object){
- return object &&
- typeof object == 'object' &&
- typeof object.length == 'number' &&
- Object.prototype.hasOwnProperty.call(object, 'callee') &&
- !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||
- false;
- };
- },{}],100:[function(_dereq_,module,exports){
- exports = module.exports = typeof Object.keys === 'function'
- ? Object.keys : shim;
- exports.shim = shim;
- function shim (obj) {
- var keys = [];
- for (var key in obj) keys.push(key);
- return keys;
- }
- },{}],101:[function(_dereq_,module,exports){
- /**
- * espurify - Clone new AST without extra properties
- *
- * https://github.com/estools/espurify
- *
- * Copyright (c) 2014-2018 Takuto Wada
- * Licensed under the MIT license.
- * https://github.com/estools/espurify/blob/master/MIT-LICENSE.txt
- */
- 'use strict';
- var createWhitelist = _dereq_('./lib/create-whitelist');
- var cloneWithWhitelist = _dereq_('./lib/clone-ast');
- function createCloneFunction (options) {
- return cloneWithWhitelist(createWhitelist(options));
- }
- var espurify = createCloneFunction();
- espurify.customize = createCloneFunction;
- espurify.cloneWithWhitelist = cloneWithWhitelist;
- module.exports = espurify;
- },{"./lib/clone-ast":103,"./lib/create-whitelist":104}],102:[function(_dereq_,module,exports){
- module.exports = {
- ArrayExpression: ['type', 'elements'],
- ArrayPattern: ['type', 'elements'],
- ArrowFunctionExpression: ['type', 'id', 'params', 'body', 'generator', 'expression', 'async'],
- AssignmentExpression: ['type', 'operator', 'left', 'right'],
- AssignmentPattern: ['type', 'left', 'right'],
- AwaitExpression: ['type', 'argument'],
- BinaryExpression: ['type', 'operator', 'left', 'right'],
- BlockStatement: ['type', 'body'],
- BreakStatement: ['type', 'label'],
- CallExpression: ['type', 'callee', 'arguments'],
- CatchClause: ['type', 'param', 'guard', 'body'],
- ClassBody: ['type', 'body'],
- ClassDeclaration: ['type', 'id', 'superClass', 'body'],
- ClassExpression: ['type', 'id', 'superClass', 'body'],
- ConditionalExpression: ['type', 'test', 'consequent', 'alternate'],
- ContinueStatement: ['type', 'label'],
- DebuggerStatement: ['type'],
- DoWhileStatement: ['type', 'body', 'test'],
- EmptyStatement: ['type'],
- ExportAllDeclaration: ['type', 'source'],
- ExportDefaultDeclaration: ['type', 'declaration'],
- ExportNamedDeclaration: ['type', 'declaration', 'specifiers', 'source'],
- ExportSpecifier: ['type', 'exported', 'local'],
- ExpressionStatement: ['type', 'expression'],
- ForInStatement: ['type', 'left', 'right', 'body'],
- ForOfStatement: ['type', 'left', 'right', 'body', 'await'],
- ForStatement: ['type', 'init', 'test', 'update', 'body'],
- FunctionDeclaration: ['type', 'id', 'params', 'body', 'generator', 'async'],
- FunctionExpression: ['type', 'id', 'params', 'body', 'generator', 'async'],
- Identifier: ['type', 'name'],
- IfStatement: ['type', 'test', 'consequent', 'alternate'],
- ImportDeclaration: ['type', 'specifiers', 'source'],
- ImportDefaultSpecifier: ['type', 'local'],
- ImportNamespaceSpecifier: ['type', 'local'],
- ImportSpecifier: ['type', 'imported', 'local'],
- LabeledStatement: ['type', 'label', 'body'],
- Literal: ['type', 'value', 'regex'],
- LogicalExpression: ['type', 'operator', 'left', 'right'],
- MemberExpression: ['type', 'object', 'property', 'computed'],
- MetaProperty: ['type', 'meta', 'property'],
- MethodDefinition: ['type', 'key', 'value', 'kind', 'computed', 'static'],
- NewExpression: ['type', 'callee', 'arguments'],
- ObjectExpression: ['type', 'properties'],
- ObjectPattern: ['type', 'properties'],
- Program: ['type', 'body', 'sourceType'],
- Property: ['type', 'key', 'value', 'kind', 'method', 'shorthand', 'computed'],
- RestElement: ['type', 'argument'],
- ReturnStatement: ['type', 'argument'],
- SequenceExpression: ['type', 'expressions'],
- SpreadElement: ['type', 'argument'],
- Super: ['type'],
- SwitchCase: ['type', 'test', 'consequent'],
- SwitchStatement: ['type', 'discriminant', 'cases', 'lexical'],
- TaggedTemplateExpression: ['type', 'tag', 'quasi'],
- TemplateElement: ['type', 'tail', 'value'],
- TemplateLiteral: ['type', 'quasis', 'expressions'],
- ThisExpression: ['type'],
- ThrowStatement: ['type', 'argument'],
- TryStatement: ['type', 'block', 'handler', 'finalizer'],
- UnaryExpression: ['type', 'operator', 'prefix', 'argument'],
- UpdateExpression: ['type', 'operator', 'argument', 'prefix'],
- VariableDeclaration: ['type', 'declarations', 'kind'],
- VariableDeclarator: ['type', 'id', 'init'],
- WhileStatement: ['type', 'test', 'body'],
- WithStatement: ['type', 'object', 'body'],
- YieldExpression: ['type', 'argument', 'delegate']
- };
- },{}],103:[function(_dereq_,module,exports){
- 'use strict';
- var isArray = _dereq_('core-js/library/fn/array/is-array');
- var objectKeys = _dereq_('core-js/library/fn/object/keys');
- var indexOf = _dereq_('core-js/library/fn/array/index-of');
- var Map = _dereq_('core-js/library/fn/map');
- var reduce = _dereq_('core-js/library/fn/array/reduce');
- module.exports = function cloneWithWhitelist (astWhiteList) {
- var whitelist = reduce(objectKeys(astWhiteList), function (props, key) {
- var propNames = astWhiteList[key];
- var prepend = (indexOf(propNames, 'type') === -1) ? ['type'] : [];
- props[key] = prepend.concat(propNames || []);
- return props;
- }, {});
- function cloneNodeOrObject (obj, seen) {
- var props = obj.type ? whitelist[obj.type] : null;
- if (props) {
- return cloneNode(obj, props, seen);
- } else {
- return cloneObject(obj, seen);
- }
- }
- function cloneArray (ary, seen) {
- var i = ary.length;
- var clone = [];
- while (i--) {
- clone[i] = cloneOf(ary[i], seen);
- }
- return clone;
- }
- function cloneNode (node, props, seen) {
- var i, len, key;
- var clone = {};
- for (i = 0, len = props.length; i < len; i += 1) {
- key = props[i];
- if (node.hasOwnProperty(key)) {
- clone[key] = cloneOf(node[key], seen);
- }
- }
- return clone;
- }
- function cloneObject (obj, seen) {
- var props = objectKeys(obj);
- var i, len, key, value;
- var clone = {};
- for (i = 0, len = props.length; i < len; i += 1) {
- key = props[i];
- value = obj[key];
- if (seen.has(value)) {
- continue;
- }
- clone[key] = cloneOf(value, seen);
- }
- return clone;
- }
- function cloneOf (val, seen) {
- if (typeof val === 'object' && val !== null) {
- seen.set(val, true);
- if (val instanceof RegExp) {
- return new RegExp(val);
- } else if (isArray(val)) {
- return cloneArray(val, seen);
- } else {
- return cloneNodeOrObject(val, seen);
- }
- } else {
- return val;
- }
- }
- function cloneRoot (obj) {
- var seen = new Map();
- seen.set(obj, true);
- return cloneNodeOrObject(obj, seen);
- }
- return cloneRoot;
- };
- },{"core-js/library/fn/array/index-of":4,"core-js/library/fn/array/is-array":5,"core-js/library/fn/array/reduce":7,"core-js/library/fn/map":8,"core-js/library/fn/object/keys":10}],104:[function(_dereq_,module,exports){
- 'use strict';
- var defaultProps = _dereq_('./ast-properties');
- var objectKeys = _dereq_('core-js/library/fn/object/keys');
- var assign = _dereq_('core-js/library/fn/object/assign');
- module.exports = function createWhitelist (options) {
- var opts = assign({}, options);
- var typeName, i, len;
- var keys = objectKeys(defaultProps);
- var result = {};
- for (i = 0, len = keys.length; i < len; i += 1) {
- typeName = keys[i];
- result[typeName] = defaultProps[typeName].concat(opts.extra || []);
- }
- return result;
- };
- },{"./ast-properties":102,"core-js/library/fn/object/assign":9,"core-js/library/fn/object/keys":10}],105:[function(_dereq_,module,exports){
- /*
- Copyright (C) 2012-2013 Yusuke Suzuki <utatane.tea@gmail.com>
- Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- /*jslint vars:false, bitwise:true*/
- /*jshint indent:4*/
- /*global exports:true*/
- (function clone(exports) {
- 'use strict';
- var Syntax,
- isArray,
- VisitorOption,
- VisitorKeys,
- objectCreate,
- objectKeys,
- BREAK,
- SKIP,
- REMOVE;
- function ignoreJSHintError() { }
- isArray = Array.isArray;
- if (!isArray) {
- isArray = function isArray(array) {
- return Object.prototype.toString.call(array) === '[object Array]';
- };
- }
- function deepCopy(obj) {
- var ret = {}, key, val;
- for (key in obj) {
- if (obj.hasOwnProperty(key)) {
- val = obj[key];
- if (typeof val === 'object' && val !== null) {
- ret[key] = deepCopy(val);
- } else {
- ret[key] = val;
- }
- }
- }
- return ret;
- }
- function shallowCopy(obj) {
- var ret = {}, key;
- for (key in obj) {
- if (obj.hasOwnProperty(key)) {
- ret[key] = obj[key];
- }
- }
- return ret;
- }
- ignoreJSHintError(shallowCopy);
- // based on LLVM libc++ upper_bound / lower_bound
- // MIT License
- function upperBound(array, func) {
- var diff, len, i, current;
- len = array.length;
- i = 0;
- while (len) {
- diff = len >>> 1;
- current = i + diff;
- if (func(array[current])) {
- len = diff;
- } else {
- i = current + 1;
- len -= diff + 1;
- }
- }
- return i;
- }
- function lowerBound(array, func) {
- var diff, len, i, current;
- len = array.length;
- i = 0;
- while (len) {
- diff = len >>> 1;
- current = i + diff;
- if (func(array[current])) {
- i = current + 1;
- len -= diff + 1;
- } else {
- len = diff;
- }
- }
- return i;
- }
- ignoreJSHintError(lowerBound);
- objectCreate = Object.create || (function () {
- function F() { }
- return function (o) {
- F.prototype = o;
- return new F();
- };
- })();
- objectKeys = Object.keys || function (o) {
- var keys = [], key;
- for (key in o) {
- keys.push(key);
- }
- return keys;
- };
- function extend(to, from) {
- var keys = objectKeys(from), key, i, len;
- for (i = 0, len = keys.length; i < len; i += 1) {
- key = keys[i];
- to[key] = from[key];
- }
- return to;
- }
- Syntax = {
- AssignmentExpression: 'AssignmentExpression',
- AssignmentPattern: 'AssignmentPattern',
- ArrayExpression: 'ArrayExpression',
- ArrayPattern: 'ArrayPattern',
- ArrowFunctionExpression: 'ArrowFunctionExpression',
- AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.
- BlockStatement: 'BlockStatement',
- BinaryExpression: 'BinaryExpression',
- BreakStatement: 'BreakStatement',
- CallExpression: 'CallExpression',
- CatchClause: 'CatchClause',
- ClassBody: 'ClassBody',
- ClassDeclaration: 'ClassDeclaration',
- ClassExpression: 'ClassExpression',
- ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7.
- ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7.
- ConditionalExpression: 'ConditionalExpression',
- ContinueStatement: 'ContinueStatement',
- DebuggerStatement: 'DebuggerStatement',
- DirectiveStatement: 'DirectiveStatement',
- DoWhileStatement: 'DoWhileStatement',
- EmptyStatement: 'EmptyStatement',
- ExportAllDeclaration: 'ExportAllDeclaration',
- ExportDefaultDeclaration: 'ExportDefaultDeclaration',
- ExportNamedDeclaration: 'ExportNamedDeclaration',
- ExportSpecifier: 'ExportSpecifier',
- ExpressionStatement: 'ExpressionStatement',
- ForStatement: 'ForStatement',
- ForInStatement: 'ForInStatement',
- ForOfStatement: 'ForOfStatement',
- FunctionDeclaration: 'FunctionDeclaration',
- FunctionExpression: 'FunctionExpression',
- GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7.
- Identifier: 'Identifier',
- IfStatement: 'IfStatement',
- ImportDeclaration: 'ImportDeclaration',
- ImportDefaultSpecifier: 'ImportDefaultSpecifier',
- ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',
- ImportSpecifier: 'ImportSpecifier',
- Literal: 'Literal',
- LabeledStatement: 'LabeledStatement',
- LogicalExpression: 'LogicalExpression',
- MemberExpression: 'MemberExpression',
- MetaProperty: 'MetaProperty',
- MethodDefinition: 'MethodDefinition',
- ModuleSpecifier: 'ModuleSpecifier',
- NewExpression: 'NewExpression',
- ObjectExpression: 'ObjectExpression',
- ObjectPattern: 'ObjectPattern',
- Program: 'Program',
- Property: 'Property',
- RestElement: 'RestElement',
- ReturnStatement: 'ReturnStatement',
- SequenceExpression: 'SequenceExpression',
- SpreadElement: 'SpreadElement',
- Super: 'Super',
- SwitchStatement: 'SwitchStatement',
- SwitchCase: 'SwitchCase',
- TaggedTemplateExpression: 'TaggedTemplateExpression',
- TemplateElement: 'TemplateElement',
- TemplateLiteral: 'TemplateLiteral',
- ThisExpression: 'ThisExpression',
- ThrowStatement: 'ThrowStatement',
- TryStatement: 'TryStatement',
- UnaryExpression: 'UnaryExpression',
- UpdateExpression: 'UpdateExpression',
- VariableDeclaration: 'VariableDeclaration',
- VariableDeclarator: 'VariableDeclarator',
- WhileStatement: 'WhileStatement',
- WithStatement: 'WithStatement',
- YieldExpression: 'YieldExpression'
- };
- VisitorKeys = {
- AssignmentExpression: ['left', 'right'],
- AssignmentPattern: ['left', 'right'],
- ArrayExpression: ['elements'],
- ArrayPattern: ['elements'],
- ArrowFunctionExpression: ['params', 'body'],
- AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.
- BlockStatement: ['body'],
- BinaryExpression: ['left', 'right'],
- BreakStatement: ['label'],
- CallExpression: ['callee', 'arguments'],
- CatchClause: ['param', 'body'],
- ClassBody: ['body'],
- ClassDeclaration: ['id', 'superClass', 'body'],
- ClassExpression: ['id', 'superClass', 'body'],
- ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7.
- ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.
- ConditionalExpression: ['test', 'consequent', 'alternate'],
- ContinueStatement: ['label'],
- DebuggerStatement: [],
- DirectiveStatement: [],
- DoWhileStatement: ['body', 'test'],
- EmptyStatement: [],
- ExportAllDeclaration: ['source'],
- ExportDefaultDeclaration: ['declaration'],
- ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],
- ExportSpecifier: ['exported', 'local'],
- ExpressionStatement: ['expression'],
- ForStatement: ['init', 'test', 'update', 'body'],
- ForInStatement: ['left', 'right', 'body'],
- ForOfStatement: ['left', 'right', 'body'],
- FunctionDeclaration: ['id', 'params', 'body'],
- FunctionExpression: ['id', 'params', 'body'],
- GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.
- Identifier: [],
- IfStatement: ['test', 'consequent', 'alternate'],
- ImportDeclaration: ['specifiers', 'source'],
- ImportDefaultSpecifier: ['local'],
- ImportNamespaceSpecifier: ['local'],
- ImportSpecifier: ['imported', 'local'],
- Literal: [],
- LabeledStatement: ['label', 'body'],
- LogicalExpression: ['left', 'right'],
- MemberExpression: ['object', 'property'],
- MetaProperty: ['meta', 'property'],
- MethodDefinition: ['key', 'value'],
- ModuleSpecifier: [],
- NewExpression: ['callee', 'arguments'],
- ObjectExpression: ['properties'],
- ObjectPattern: ['properties'],
- Program: ['body'],
- Property: ['key', 'value'],
- RestElement: [ 'argument' ],
- ReturnStatement: ['argument'],
- SequenceExpression: ['expressions'],
- SpreadElement: ['argument'],
- Super: [],
- SwitchStatement: ['discriminant', 'cases'],
- SwitchCase: ['test', 'consequent'],
- TaggedTemplateExpression: ['tag', 'quasi'],
- TemplateElement: [],
- TemplateLiteral: ['quasis', 'expressions'],
- ThisExpression: [],
- ThrowStatement: ['argument'],
- TryStatement: ['block', 'handler', 'finalizer'],
- UnaryExpression: ['argument'],
- UpdateExpression: ['argument'],
- VariableDeclaration: ['declarations'],
- VariableDeclarator: ['id', 'init'],
- WhileStatement: ['test', 'body'],
- WithStatement: ['object', 'body'],
- YieldExpression: ['argument']
- };
- // unique id
- BREAK = {};
- SKIP = {};
- REMOVE = {};
- VisitorOption = {
- Break: BREAK,
- Skip: SKIP,
- Remove: REMOVE
- };
- function Reference(parent, key) {
- this.parent = parent;
- this.key = key;
- }
- Reference.prototype.replace = function replace(node) {
- this.parent[this.key] = node;
- };
- Reference.prototype.remove = function remove() {
- if (isArray(this.parent)) {
- this.parent.splice(this.key, 1);
- return true;
- } else {
- this.replace(null);
- return false;
- }
- };
- function Element(node, path, wrap, ref) {
- this.node = node;
- this.path = path;
- this.wrap = wrap;
- this.ref = ref;
- }
- function Controller() { }
- // API:
- // return property path array from root to current node
- Controller.prototype.path = function path() {
- var i, iz, j, jz, result, element;
- function addToPath(result, path) {
- if (isArray(path)) {
- for (j = 0, jz = path.length; j < jz; ++j) {
- result.push(path[j]);
- }
- } else {
- result.push(path);
- }
- }
- // root node
- if (!this.__current.path) {
- return null;
- }
- // first node is sentinel, second node is root element
- result = [];
- for (i = 2, iz = this.__leavelist.length; i < iz; ++i) {
- element = this.__leavelist[i];
- addToPath(result, element.path);
- }
- addToPath(result, this.__current.path);
- return result;
- };
- // API:
- // return type of current node
- Controller.prototype.type = function () {
- var node = this.current();
- return node.type || this.__current.wrap;
- };
- // API:
- // return array of parent elements
- Controller.prototype.parents = function parents() {
- var i, iz, result;
- // first node is sentinel
- result = [];
- for (i = 1, iz = this.__leavelist.length; i < iz; ++i) {
- result.push(this.__leavelist[i].node);
- }
- return result;
- };
- // API:
- // return current node
- Controller.prototype.current = function current() {
- return this.__current.node;
- };
- Controller.prototype.__execute = function __execute(callback, element) {
- var previous, result;
- result = undefined;
- previous = this.__current;
- this.__current = element;
- this.__state = null;
- if (callback) {
- result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node);
- }
- this.__current = previous;
- return result;
- };
- // API:
- // notify control skip / break
- Controller.prototype.notify = function notify(flag) {
- this.__state = flag;
- };
- // API:
- // skip child nodes of current node
- Controller.prototype.skip = function () {
- this.notify(SKIP);
- };
- // API:
- // break traversals
- Controller.prototype['break'] = function () {
- this.notify(BREAK);
- };
- // API:
- // remove node
- Controller.prototype.remove = function () {
- this.notify(REMOVE);
- };
- Controller.prototype.__initialize = function(root, visitor) {
- this.visitor = visitor;
- this.root = root;
- this.__worklist = [];
- this.__leavelist = [];
- this.__current = null;
- this.__state = null;
- this.__fallback = null;
- if (visitor.fallback === 'iteration') {
- this.__fallback = objectKeys;
- } else if (typeof visitor.fallback === 'function') {
- this.__fallback = visitor.fallback;
- }
- this.__keys = VisitorKeys;
- if (visitor.keys) {
- this.__keys = extend(objectCreate(this.__keys), visitor.keys);
- }
- };
- function isNode(node) {
- if (node == null) {
- return false;
- }
- return typeof node === 'object' && typeof node.type === 'string';
- }
- function isProperty(nodeType, key) {
- return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key;
- }
- Controller.prototype.traverse = function traverse(root, visitor) {
- var worklist,
- leavelist,
- element,
- node,
- nodeType,
- ret,
- key,
- current,
- current2,
- candidates,
- candidate,
- sentinel;
- this.__initialize(root, visitor);
- sentinel = {};
- // reference
- worklist = this.__worklist;
- leavelist = this.__leavelist;
- // initialize
- worklist.push(new Element(root, null, null, null));
- leavelist.push(new Element(null, null, null, null));
- while (worklist.length) {
- element = worklist.pop();
- if (element === sentinel) {
- element = leavelist.pop();
- ret = this.__execute(visitor.leave, element);
- if (this.__state === BREAK || ret === BREAK) {
- return;
- }
- continue;
- }
- if (element.node) {
- ret = this.__execute(visitor.enter, element);
- if (this.__state === BREAK || ret === BREAK) {
- return;
- }
- worklist.push(sentinel);
- leavelist.push(element);
- if (this.__state === SKIP || ret === SKIP) {
- continue;
- }
- node = element.node;
- nodeType = node.type || element.wrap;
- candidates = this.__keys[nodeType];
- if (!candidates) {
- if (this.__fallback) {
- candidates = this.__fallback(node);
- } else {
- throw new Error('Unknown node type ' + nodeType + '.');
- }
- }
- current = candidates.length;
- while ((current -= 1) >= 0) {
- key = candidates[current];
- candidate = node[key];
- if (!candidate) {
- continue;
- }
- if (isArray(candidate)) {
- current2 = candidate.length;
- while ((current2 -= 1) >= 0) {
- if (!candidate[current2]) {
- continue;
- }
- if (isProperty(nodeType, candidates[current])) {
- element = new Element(candidate[current2], [key, current2], 'Property', null);
- } else if (isNode(candidate[current2])) {
- element = new Element(candidate[current2], [key, current2], null, null);
- } else {
- continue;
- }
- worklist.push(element);
- }
- } else if (isNode(candidate)) {
- worklist.push(new Element(candidate, key, null, null));
- }
- }
- }
- }
- };
- Controller.prototype.replace = function replace(root, visitor) {
- var worklist,
- leavelist,
- node,
- nodeType,
- target,
- element,
- current,
- current2,
- candidates,
- candidate,
- sentinel,
- outer,
- key;
- function removeElem(element) {
- var i,
- key,
- nextElem,
- parent;
- if (element.ref.remove()) {
- // When the reference is an element of an array.
- key = element.ref.key;
- parent = element.ref.parent;
- // If removed from array, then decrease following items' keys.
- i = worklist.length;
- while (i--) {
- nextElem = worklist[i];
- if (nextElem.ref && nextElem.ref.parent === parent) {
- if (nextElem.ref.key < key) {
- break;
- }
- --nextElem.ref.key;
- }
- }
- }
- }
- this.__initialize(root, visitor);
- sentinel = {};
- // reference
- worklist = this.__worklist;
- leavelist = this.__leavelist;
- // initialize
- outer = {
- root: root
- };
- element = new Element(root, null, null, new Reference(outer, 'root'));
- worklist.push(element);
- leavelist.push(element);
- while (worklist.length) {
- element = worklist.pop();
- if (element === sentinel) {
- element = leavelist.pop();
- target = this.__execute(visitor.leave, element);
- // node may be replaced with null,
- // so distinguish between undefined and null in this place
- if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {
- // replace
- element.ref.replace(target);
- }
- if (this.__state === REMOVE || target === REMOVE) {
- removeElem(element);
- }
- if (this.__state === BREAK || target === BREAK) {
- return outer.root;
- }
- continue;
- }
- target = this.__execute(visitor.enter, element);
- // node may be replaced with null,
- // so distinguish between undefined and null in this place
- if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {
- // replace
- element.ref.replace(target);
- element.node = target;
- }
- if (this.__state === REMOVE || target === REMOVE) {
- removeElem(element);
- element.node = null;
- }
- if (this.__state === BREAK || target === BREAK) {
- return outer.root;
- }
- // node may be null
- node = element.node;
- if (!node) {
- continue;
- }
- worklist.push(sentinel);
- leavelist.push(element);
- if (this.__state === SKIP || target === SKIP) {
- continue;
- }
- nodeType = node.type || element.wrap;
- candidates = this.__keys[nodeType];
- if (!candidates) {
- if (this.__fallback) {
- candidates = this.__fallback(node);
- } else {
- throw new Error('Unknown node type ' + nodeType + '.');
- }
- }
- current = candidates.length;
- while ((current -= 1) >= 0) {
- key = candidates[current];
- candidate = node[key];
- if (!candidate) {
- continue;
- }
- if (isArray(candidate)) {
- current2 = candidate.length;
- while ((current2 -= 1) >= 0) {
- if (!candidate[current2]) {
- continue;
- }
- if (isProperty(nodeType, candidates[current])) {
- element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2));
- } else if (isNode(candidate[current2])) {
- element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2));
- } else {
- continue;
- }
- worklist.push(element);
- }
- } else if (isNode(candidate)) {
- worklist.push(new Element(candidate, key, null, new Reference(node, key)));
- }
- }
- }
- return outer.root;
- };
- function traverse(root, visitor) {
- var controller = new Controller();
- return controller.traverse(root, visitor);
- }
- function replace(root, visitor) {
- var controller = new Controller();
- return controller.replace(root, visitor);
- }
- function extendCommentRange(comment, tokens) {
- var target;
- target = upperBound(tokens, function search(token) {
- return token.range[0] > comment.range[0];
- });
- comment.extendedRange = [comment.range[0], comment.range[1]];
- if (target !== tokens.length) {
- comment.extendedRange[1] = tokens[target].range[0];
- }
- target -= 1;
- if (target >= 0) {
- comment.extendedRange[0] = tokens[target].range[1];
- }
- return comment;
- }
- function attachComments(tree, providedComments, tokens) {
- // At first, we should calculate extended comment ranges.
- var comments = [], comment, len, i, cursor;
- if (!tree.range) {
- throw new Error('attachComments needs range information');
- }
- // tokens array is empty, we attach comments to tree as 'leadingComments'
- if (!tokens.length) {
- if (providedComments.length) {
- for (i = 0, len = providedComments.length; i < len; i += 1) {
- comment = deepCopy(providedComments[i]);
- comment.extendedRange = [0, tree.range[0]];
- comments.push(comment);
- }
- tree.leadingComments = comments;
- }
- return tree;
- }
- for (i = 0, len = providedComments.length; i < len; i += 1) {
- comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));
- }
- // This is based on John Freeman's implementation.
- cursor = 0;
- traverse(tree, {
- enter: function (node) {
- var comment;
- while (cursor < comments.length) {
- comment = comments[cursor];
- if (comment.extendedRange[1] > node.range[0]) {
- break;
- }
- if (comment.extendedRange[1] === node.range[0]) {
- if (!node.leadingComments) {
- node.leadingComments = [];
- }
- node.leadingComments.push(comment);
- comments.splice(cursor, 1);
- } else {
- cursor += 1;
- }
- }
- // already out of owned node
- if (cursor === comments.length) {
- return VisitorOption.Break;
- }
- if (comments[cursor].extendedRange[0] > node.range[1]) {
- return VisitorOption.Skip;
- }
- }
- });
- cursor = 0;
- traverse(tree, {
- leave: function (node) {
- var comment;
- while (cursor < comments.length) {
- comment = comments[cursor];
- if (node.range[1] < comment.extendedRange[0]) {
- break;
- }
- if (node.range[1] === comment.extendedRange[0]) {
- if (!node.trailingComments) {
- node.trailingComments = [];
- }
- node.trailingComments.push(comment);
- comments.splice(cursor, 1);
- } else {
- cursor += 1;
- }
- }
- // already out of owned node
- if (cursor === comments.length) {
- return VisitorOption.Break;
- }
- if (comments[cursor].extendedRange[0] > node.range[1]) {
- return VisitorOption.Skip;
- }
- }
- });
- return tree;
- }
- exports.version = _dereq_('./package.json').version;
- exports.Syntax = Syntax;
- exports.traverse = traverse;
- exports.replace = replace;
- exports.attachComments = attachComments;
- exports.VisitorKeys = VisitorKeys;
- exports.VisitorOption = VisitorOption;
- exports.Controller = Controller;
- exports.cloneEnvironment = function () { return clone({}); };
- return exports;
- }(exports));
- /* vim: set sw=4 ts=4 et tw=80 : */
- },{"./package.json":106}],106:[function(_dereq_,module,exports){
- module.exports={"name":"estraverse","version":"4.2.0"}
- },{}]},{},[1])(1)
- });
|