UNPKG

karma-soy

Version:

Spectacular Test Runner for JavaScript.

1,436 lines (1,261 loc) 123 kB
(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(require,module,exports){ module.exports = { VERSION: '%KARMA_VERSION%', KARMA_URL_ROOT: '%KARMA_URL_ROOT%', KARMA_PROXY_PATH: '%KARMA_PROXY_PATH%', CONTEXT_URL: 'context.html' } },{}],2:[function(require,module,exports){ var stringify = require('../common/stringify') var constant = require('./constants') var util = require('../common/util') function Karma (socket, iframe, opener, navigator, location) { var startEmitted = false var reloadingContext = false var self = this var queryParams = util.parseQueryParams(location.search) var browserId = queryParams.id || util.generateId('manual-') var displayName = queryParams.displayName var returnUrl = queryParams['return_url' + ''] || null var resultsBufferLimit = 50 var resultsBuffer = [] this.VERSION = constant.VERSION this.config = {} // Expose for testing purposes as there is no global socket.io // registry anymore. this.socket = socket // Set up postMessage bindings for current window // DEV: These are to allow windows in separate processes execute local tasks // Electron is one of these environments if (window.addEventListener) { window.addEventListener('message', function handleMessage (evt) { // Resolve the origin of our message var origin = evt.origin || evt.originalEvent.origin // If the message isn't from our host, then reject it if (origin !== window.location.origin) { return } // Take action based on the message type var method = evt.data.__karmaMethod if (method) { if (!self[method]) { self.error('Received `postMessage` for "' + method + '" but the method doesn\'t exist') return } self[method].apply(self, evt.data.__karmaArguments) } }, false) } var childWindow = null function navigateContextTo (url) { if (self.config.useIframe === false) { // run in new window if (self.config.runInParent === false) { // If there is a window already open, then close it // DEV: In some environments (e.g. Electron), we don't have setter access for location if (childWindow !== null && childWindow.closed !== true) { childWindow.close() } childWindow = opener(url) // run context on parent element and dynamically loading scripts } else if (url !== 'about:blank') { var loadScript = function (idx) { if (idx < window.__karma__.scriptUrls.length) { var ele = document.createElement('script') ele.src = window.__karma__.scriptUrls[idx] ele.onload = function () { loadScript(idx + 1) } document.body.appendChild(ele) } else { window.__karma__.loaded() } } loadScript(0) } // run in iframe } else { iframe.src = url } } this.onbeforeunload = function () { if (!reloadingContext) { // TODO(vojta): show what test (with explanation about jasmine.UPDATE_INTERVAL) self.error('Some of your tests did a full page reload!') } } this.log = function (type, args) { var values = [] for (var i = 0; i < args.length; i++) { values.push(this.stringify(args[i], 3)) } this.info({log: values.join(', '), type: type}) } this.stringify = stringify function clearContext () { reloadingContext = true navigateContextTo('about:blank') } function getLocation (url, lineno, colno) { var location = '' if (url !== undefined) { location += url } if (lineno !== undefined) { location += ':' + lineno } if (colno !== undefined) { location += ':' + colno } return location } // error during js file loading (most likely syntax error) // we are not going to execute at all. `window.onerror` callback. this.error = function (messageOrEvent, source, lineno, colno, error) { var message = messageOrEvent var location = getLocation(source, lineno, colno) if (location !== '') { message += '\nat ' + location } if (error) { message += '\n\n' + error.stack } // create an object with the string representation of the message to ensure all its content is properly // transferred to the console log message = {message: message, str: message.toString()} socket.emit('karma_error', message) this.complete() return false } this.result = function (originalResult) { var convertedResult = {} // Convert all array-like objects to real arrays. for (var propertyName in originalResult) { if (originalResult.hasOwnProperty(propertyName)) { var propertyValue = originalResult[propertyName] if (Object.prototype.toString.call(propertyValue) === '[object Array]') { convertedResult[propertyName] = Array.prototype.slice.call(propertyValue) } else { convertedResult[propertyName] = propertyValue } } } if (!startEmitted) { socket.emit('start', {total: null}) startEmitted = true } if (resultsBufferLimit === 1) { return socket.emit('result', convertedResult) } resultsBuffer.push(convertedResult) if (resultsBuffer.length === resultsBufferLimit) { socket.emit('result', resultsBuffer) resultsBuffer = [] } } this.complete = function (result) { if (resultsBuffer.length) { socket.emit('result', resultsBuffer) resultsBuffer = [] } if (self.config.clearContext) { // give the browser some time to breath, there could be a page reload, but because a bunch of // tests could run in the same event loop, we wouldn't notice. setTimeout(function () { clearContext() }, 0) } socket.emit('complete', result || {}, function () { if (returnUrl) { location.href = returnUrl } }) } this.info = function (info) { // TODO(vojta): introduce special API for this if (!startEmitted && util.isDefined(info.total)) { socket.emit('start', info) startEmitted = true } else { socket.emit('info', info) } } socket.on('execute', function (cfg) { // reset startEmitted and reload the iframe startEmitted = false self.config = cfg // if not clearing context, reloadingContext always true to prevent beforeUnload error reloadingContext = !self.config.clearContext navigateContextTo(constant.CONTEXT_URL) // clear the console before run // works only on FF (Safari, Chrome do not allow to clear console from js source) if (window.console && window.console.clear) { window.console.clear() } }) socket.on('stop', function () { this.complete() }.bind(this)) // report browser name, id socket.on('connect', function () { socket.io.engine.on('upgrade', function () { resultsBufferLimit = 1 }) var info = { name: navigator.userAgent, id: browserId } if (displayName) { info.displayName = displayName } socket.emit('register', info) }) } module.exports = Karma },{"../common/stringify":5,"../common/util":6,"./constants":1}],3:[function(require,module,exports){ /* global io */ /* eslint-disable no-new */ require('core-js/es5') var Karma = require('./karma') var StatusUpdater = require('./updater') var util = require('../common/util') var constants = require('./constants') var KARMA_URL_ROOT = constants.KARMA_URL_ROOT var KARMA_PROXY_PATH = constants.KARMA_PROXY_PATH // Connect to the server using socket.io http://socket.io var socket = io(location.host, { reconnectionDelay: 500, reconnectionDelayMax: Infinity, timeout: 2000, path: KARMA_PROXY_PATH + KARMA_URL_ROOT.substr(1) + 'socket.io', 'sync disconnect on unload': true }) // instantiate the updater of the view new StatusUpdater(socket, util.elm('title'), util.elm('banner'), util.elm('browsers')) window.karma = new Karma(socket, util.elm('context'), window.open, window.navigator, window.location) },{"../common/util":6,"./constants":1,"./karma":2,"./updater":4,"core-js/es5":7}],4:[function(require,module,exports){ var VERSION = require('./constants').VERSION function StatusUpdater (socket, titleElement, bannerElement, browsersElement) { function updateBrowsersInfo (browsers) { if (!browsersElement) { return } var items = [] var status for (var i = 0; i < browsers.length; i++) { status = browsers[i].isReady ? 'idle' : 'executing' items.push('<li class="' + status + '">' + browsers[i].name + ' is ' + status + '</li>') } browsersElement.innerHTML = items.join('\n') } function updateBanner (status) { return function (param) { if (!titleElement || !bannerElement) { return } var paramStatus = param ? status.replace('$', param) : status titleElement.innerHTML = 'Karma v' + VERSION + ' - ' + paramStatus bannerElement.className = status === 'connected' ? 'online' : 'offline' } } socket.on('connect', updateBanner('connected')) socket.on('disconnect', updateBanner('disconnected')) socket.on('reconnecting', updateBanner('reconnecting in $ seconds...')) socket.on('reconnect', updateBanner('connected')) socket.on('reconnect_failed', updateBanner('failed to reconnect')) socket.on('info', updateBrowsersInfo) socket.on('disconnect', function () { updateBrowsersInfo([]) }) } module.exports = StatusUpdater },{"./constants":1}],5:[function(require,module,exports){ var serialize = require('dom-serialize') var instanceOf = require('./util').instanceOf function isNode (obj) { return (obj.tagName || obj.nodeName) && obj.nodeType } function stringify (obj, depth) { if (depth === 0) { return '...' } if (obj === null) { return 'null' } switch (typeof obj) { case 'symbol': return obj.toString() case 'string': return "'" + obj + "'" case 'undefined': return 'undefined' case 'function': try { // function abc(a, b, c) { /* code goes here */ } // -> function abc(a, b, c) { ... } return obj.toString().replace(/\{[\s\S]*\}/, '{ ... }') } catch (err) { if (err instanceof TypeError) { // Support older browsers return 'function ' + (obj.name || '') + '() { ... }' } else { throw err } } case 'boolean': return obj ? 'true' : 'false' case 'object': var strs = [] if (instanceOf(obj, 'Array')) { strs.push('[') for (var i = 0, ii = obj.length; i < ii; i++) { if (i) { strs.push(', ') } strs.push(stringify(obj[i], depth - 1)) } strs.push(']') } else if (instanceOf(obj, 'Date')) { return obj.toString() } else if (instanceOf(obj, 'Text')) { return obj.nodeValue } else if (instanceOf(obj, 'Comment')) { return '<!--' + obj.nodeValue + '-->' } else if (obj.outerHTML) { return obj.outerHTML } else if (isNode(obj)) { return serialize(obj) } else if (instanceOf(obj, 'Error')) { return obj.toString() + '\n' + obj.stack } else { var constructor = 'Object' if (obj.constructor && typeof obj.constructor === 'function') { constructor = obj.constructor.name } strs.push(constructor) strs.push('{') var first = true for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { if (first) { first = false } else { strs.push(', ') } strs.push(key + ': ' + stringify(obj[key], depth - 1)) } } strs.push('}') } return strs.join('') default: return obj } } module.exports = stringify },{"./util":6,"dom-serialize":106}],6:[function(require,module,exports){ exports.instanceOf = function (value, constructorName) { return Object.prototype.toString.apply(value) === '[object ' + constructorName + ']' } exports.elm = function (id) { return document.getElementById(id) } exports.generateId = function (prefix) { return prefix + Math.floor(Math.random() * 10000) } exports.isUndefined = function (value) { return typeof value === 'undefined' } exports.isDefined = function (value) { return !exports.isUndefined(value) } exports.parseQueryParams = function (locationSearch) { var params = {} var pairs = locationSearch.substr(1).split('&') var keyValue for (var i = 0; i < pairs.length; i++) { keyValue = pairs[i].split('=') params[decodeURIComponent(keyValue[0])] = decodeURIComponent(keyValue[1]) } return params } },{}],7:[function(require,module,exports){ require('../modules/es6.object.create'); require('../modules/es6.object.define-property'); require('../modules/es6.object.define-properties'); require('../modules/es6.object.get-own-property-descriptor'); require('../modules/es6.object.get-prototype-of'); require('../modules/es6.object.keys'); require('../modules/es6.object.get-own-property-names'); require('../modules/es6.object.freeze'); require('../modules/es6.object.seal'); require('../modules/es6.object.prevent-extensions'); require('../modules/es6.object.is-frozen'); require('../modules/es6.object.is-sealed'); require('../modules/es6.object.is-extensible'); require('../modules/es6.function.bind'); require('../modules/es6.array.is-array'); require('../modules/es6.array.join'); require('../modules/es6.array.slice'); require('../modules/es6.array.sort'); require('../modules/es6.array.for-each'); require('../modules/es6.array.map'); require('../modules/es6.array.filter'); require('../modules/es6.array.some'); require('../modules/es6.array.every'); require('../modules/es6.array.reduce'); require('../modules/es6.array.reduce-right'); require('../modules/es6.array.index-of'); require('../modules/es6.array.last-index-of'); require('../modules/es6.number.to-fixed'); require('../modules/es6.number.to-precision'); require('../modules/es6.date.now'); require('../modules/es6.date.to-iso-string'); require('../modules/es6.date.to-json'); require('../modules/es6.parse-int'); require('../modules/es6.parse-float'); require('../modules/es6.string.trim'); require('../modules/es6.regexp.to-string'); module.exports = require('../modules/_core'); },{"../modules/_core":18,"../modules/es6.array.every":68,"../modules/es6.array.filter":69,"../modules/es6.array.for-each":70,"../modules/es6.array.index-of":71,"../modules/es6.array.is-array":72,"../modules/es6.array.join":73,"../modules/es6.array.last-index-of":74,"../modules/es6.array.map":75,"../modules/es6.array.reduce":77,"../modules/es6.array.reduce-right":76,"../modules/es6.array.slice":78,"../modules/es6.array.some":79,"../modules/es6.array.sort":80,"../modules/es6.date.now":81,"../modules/es6.date.to-iso-string":82,"../modules/es6.date.to-json":83,"../modules/es6.function.bind":84,"../modules/es6.number.to-fixed":85,"../modules/es6.number.to-precision":86,"../modules/es6.object.create":87,"../modules/es6.object.define-properties":88,"../modules/es6.object.define-property":89,"../modules/es6.object.freeze":90,"../modules/es6.object.get-own-property-descriptor":91,"../modules/es6.object.get-own-property-names":92,"../modules/es6.object.get-prototype-of":93,"../modules/es6.object.is-extensible":94,"../modules/es6.object.is-frozen":95,"../modules/es6.object.is-sealed":96,"../modules/es6.object.keys":97,"../modules/es6.object.prevent-extensions":98,"../modules/es6.object.seal":99,"../modules/es6.parse-float":100,"../modules/es6.parse-int":101,"../modules/es6.regexp.to-string":103,"../modules/es6.string.trim":104}],8:[function(require,module,exports){ module.exports = function (it) { if (typeof it != 'function') throw TypeError(it + ' is not a function!'); return it; }; },{}],9:[function(require,module,exports){ var cof = require('./_cof'); module.exports = function (it, msg) { if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); return +it; }; },{"./_cof":17}],10:[function(require,module,exports){ var isObject = require('./_is-object'); module.exports = function (it) { if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; }; },{"./_is-object":36}],11:[function(require,module,exports){ // false -> Array#indexOf // true -> Array#includes var toIObject = require('./_to-iobject'); var toLength = require('./_to-length'); var toAbsoluteIndex = require('./_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":60,"./_to-iobject":62,"./_to-length":63}],12:[function(require,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 = require('./_ctx'); var IObject = require('./_iobject'); var toObject = require('./_to-object'); var toLength = require('./_to-length'); var asc = require('./_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":15,"./_ctx":19,"./_iobject":34,"./_to-length":63,"./_to-object":64}],13:[function(require,module,exports){ var aFunction = require('./_a-function'); var toObject = require('./_to-object'); var IObject = require('./_iobject'); var toLength = require('./_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":8,"./_iobject":34,"./_to-length":63,"./_to-object":64}],14:[function(require,module,exports){ var isObject = require('./_is-object'); var isArray = require('./_is-array'); var SPECIES = require('./_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":35,"./_is-object":36,"./_wks":67}],15:[function(require,module,exports){ // 9.4.2.3 ArraySpeciesCreate(originalArray, length) var speciesConstructor = require('./_array-species-constructor'); module.exports = function (original, length) { return new (speciesConstructor(original))(length); }; },{"./_array-species-constructor":14}],16:[function(require,module,exports){ 'use strict'; var aFunction = require('./_a-function'); var isObject = require('./_is-object'); var invoke = require('./_invoke'); var arraySlice = [].slice; var factories = {}; var construct = function (F, len, args) { if (!(len in factories)) { for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; // eslint-disable-next-line no-new-func factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); } return factories[len](F, args); }; module.exports = Function.bind || function bind(that /* , ...args */) { var fn = aFunction(this); var partArgs = arraySlice.call(arguments, 1); var bound = function (/* args... */) { var args = partArgs.concat(arraySlice.call(arguments)); return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); }; if (isObject(fn.prototype)) bound.prototype = fn.prototype; return bound; }; },{"./_a-function":8,"./_invoke":33,"./_is-object":36}],17:[function(require,module,exports){ var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; },{}],18:[function(require,module,exports){ var core = module.exports = { version: '2.5.7' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef },{}],19:[function(require,module,exports){ // optional / simple context binding var aFunction = require('./_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":8}],20:[function(require,module,exports){ 'use strict'; // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() var fails = require('./_fails'); var getTime = Date.prototype.getTime; var $toISOString = Date.prototype.toISOString; var lz = function (num) { return num > 9 ? num : '0' + num; }; // PhantomJS / old WebKit has a broken implementations module.exports = (fails(function () { return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; }) || !fails(function () { $toISOString.call(new Date(NaN)); })) ? function toISOString() { if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); var d = this; var y = d.getUTCFullYear(); var m = d.getUTCMilliseconds(); var s = y < 0 ? '-' : y > 9999 ? '+' : ''; return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; } : $toISOString; },{"./_fails":26}],21:[function(require,module,exports){ // 7.2.1 RequireObjectCoercible(argument) module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; },{}],22:[function(require,module,exports){ // Thank's IE8 for his funny defineProperty module.exports = !require('./_fails')(function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); },{"./_fails":26}],23:[function(require,module,exports){ var isObject = require('./_is-object'); var document = require('./_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":28,"./_is-object":36}],24:[function(require,module,exports){ // IE 8- don't enum bug keys module.exports = ( 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' ).split(','); },{}],25:[function(require,module,exports){ var global = require('./_global'); var core = require('./_core'); var hide = require('./_hide'); var redefine = require('./_redefine'); var ctx = require('./_ctx'); 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 target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); var key, own, out, exp; if (IS_GLOBAL) source = name; for (key in source) { // contains in native own = !IS_FORCED && target && target[key] !== undefined; // export native or passed out = (own ? target : source)[key]; // bind timers to global for call from export context exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // extend global if (target) redefine(target, key, out, type & $export.U); // export if (exports[key] != out) hide(exports, key, exp); if (IS_PROTO && expProto[key] != out) expProto[key] = out; } }; global.core = core; // 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":18,"./_ctx":19,"./_global":28,"./_hide":30,"./_redefine":53}],26:[function(require,module,exports){ module.exports = function (exec) { try { return !!exec(); } catch (e) { return true; } }; },{}],27:[function(require,module,exports){ 'use strict'; // 21.2.5.3 get RegExp.prototype.flags var anObject = require('./_an-object'); module.exports = function () { var that = anObject(this); var result = ''; if (that.global) result += 'g'; if (that.ignoreCase) result += 'i'; if (that.multiline) result += 'm'; if (that.unicode) result += 'u'; if (that.sticky) result += 'y'; return result; }; },{"./_an-object":10}],28:[function(require,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 },{}],29:[function(require,module,exports){ var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; },{}],30:[function(require,module,exports){ var dP = require('./_object-dp'); var createDesc = require('./_property-desc'); module.exports = require('./_descriptors') ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; return object; }; },{"./_descriptors":22,"./_object-dp":40,"./_property-desc":52}],31:[function(require,module,exports){ var document = require('./_global').document; module.exports = document && document.documentElement; },{"./_global":28}],32:[function(require,module,exports){ module.exports = !require('./_descriptors') && !require('./_fails')(function () { return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7; }); },{"./_descriptors":22,"./_dom-create":23,"./_fails":26}],33:[function(require,module,exports){ // fast apply, http://jsperf.lnkit.com/fast-apply/5 module.exports = function (fn, args, that) { var un = that === undefined; switch (args.length) { case 0: return un ? fn() : fn.call(that); case 1: return un ? fn(args[0]) : fn.call(that, args[0]); case 2: return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); case 3: return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); case 4: return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); } return fn.apply(that, args); }; },{}],34:[function(require,module,exports){ // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = require('./_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":17}],35:[function(require,module,exports){ // 7.2.2 IsArray(argument) var cof = require('./_cof'); module.exports = Array.isArray || function isArray(arg) { return cof(arg) == 'Array'; }; },{"./_cof":17}],36:[function(require,module,exports){ module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; },{}],37:[function(require,module,exports){ module.exports = false; },{}],38:[function(require,module,exports){ var META = require('./_uid')('meta'); var isObject = require('./_is-object'); var has = require('./_has'); var setDesc = require('./_object-dp').f; var id = 0; var isExtensible = Object.isExtensible || function () { return true; }; var FREEZE = !require('./_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":26,"./_has":29,"./_is-object":36,"./_object-dp":40,"./_uid":66}],39:[function(require,module,exports){ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) var anObject = require('./_an-object'); var dPs = require('./_object-dps'); var enumBugKeys = require('./_enum-bug-keys'); var IE_PROTO = require('./_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 = require('./_dom-create')('iframe'); var i = enumBugKeys.length; var lt = '<'; var gt = '>'; var iframeDocument; iframe.style.display = 'none'; require('./_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":10,"./_dom-create":23,"./_enum-bug-keys":24,"./_html":31,"./_object-dps":41,"./_shared-key":54}],40:[function(require,module,exports){ var anObject = require('./_an-object'); var IE8_DOM_DEFINE = require('./_ie8-dom-define'); var toPrimitive = require('./_to-primitive'); var dP = Object.defineProperty; exports.f = require('./_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":10,"./_descriptors":22,"./_ie8-dom-define":32,"./_to-primitive":65}],41:[function(require,module,exports){ var dP = require('./_object-dp'); var anObject = require('./_an-object'); var getKeys = require('./_object-keys'); module.exports = require('./_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":10,"./_descriptors":22,"./_object-dp":40,"./_object-keys":47}],42:[function(require,module,exports){ var pIE = require('./_object-pie'); var createDesc = require('./_property-desc'); var toIObject = require('./_to-iobject'); var toPrimitive = require('./_to-primitive'); var has = require('./_has'); var IE8_DOM_DEFINE = require('./_ie8-dom-define'); var gOPD = Object.getOwnPropertyDescriptor; exports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) { O = toIObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return gOPD(O, P); } catch (e) { /* empty */ } if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); }; },{"./_descriptors":22,"./_has":29,"./_ie8-dom-define":32,"./_object-pie":48,"./_property-desc":52,"./_to-iobject":62,"./_to-primitive":65}],43:[function(require,module,exports){ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var toIObject = require('./_to-iobject'); var gOPN = require('./_object-gopn').f; var toString = {}.toString; var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; var getWindowNames = function (it) { try { return gOPN(it); } catch (e) { return windowNames.slice(); } }; module.exports.f = function getOwnPropertyNames(it) { return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); }; },{"./_object-gopn":44,"./_to-iobject":62}],44:[function(require,module,exports){ // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) var $keys = require('./_object-keys-internal'); var hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype'); exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return $keys(O, hiddenKeys); }; },{"./_enum-bug-keys":24,"./_object-keys-internal":46}],45:[function(require,module,exports){ // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) var has = require('./_has'); var toObject = require('./_to-object'); var IE_PROTO = require('./_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":29,"./_shared-key":54,"./_to-object":64}],46:[function(require,module,exports){ var has = require('./_has'); var toIObject = require('./_to-iobject'); var arrayIndexOf = require('./_array-includes')(false); var IE_PROTO = require('./_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":11,"./_has":29,"./_shared-key":54,"./_to-iobject":62}],47:[function(require,module,exports){ // 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = require('./_object-keys-internal'); var enumBugKeys = require('./_enum-bug-keys'); module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; },{"./_enum-bug-keys":24,"./_object-keys-internal":46}],48:[function(require,module,exports){ exports.f = {}.propertyIsEnumerable; },{}],49:[function(require,module,exports){ // most Object methods by ES6 should accept primitives var $export = require('./_export'); var core = require('./_core'); var fails = require('./_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":18,"./_export":25,"./_fails":26}],50:[function(require,module,exports){ var $parseFloat = require('./_global').parseFloat; var $trim = require('./_string-trim').trim; module.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) { var string = $trim(String(str), 3); var result = $parseFloat(string); return result === 0 && string.charAt(0) == '-' ? -0 : result; } : $parseFloat; },{"./_global":28,"./_string-trim":58,"./_string-ws":59}],51:[function(require,module,exports){ var $parseInt = require('./_global').parseInt; var $trim = require('./_string-trim').trim; var ws = require('./_string-ws'); var hex = /^[-+]?0[xX]/; module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { var string = $trim(String(str), 3); return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); } : $parseInt; },{"./_global":28,"./_string-trim":58,"./_string-ws":59}],52:[function(require,module,exports){ module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; },{}],53:[function(require,module,exports){ var global = require('./_global'); var hide = require('./_hide'); var has = require('./_has'); var SRC = require('./_uid')('src'); var TO_STRING = 'toString'; var $toString = Function[TO_STRING]; var TPL = ('' + $toString).split(TO_STRING); require('./_core').inspectSource = function (it) { return $toString.call(it); }; (module.exports = function (O, key, val, safe) { var isFunction = typeof val == 'function'; if (isFunction) has(val, 'name') || hide(val, 'name', key); if (O[key] === val) return; if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); if (O === global) { O[key] = val; } else if (!safe) { delete O[key]; hide(O, key, val); } else if (O[key]) { O[key] = val; } else { hide(O, key, val); } // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, TO_STRING, function toString() { return typeof this == 'function' && this[SRC] || $toString.call(this); }); },{"./_core":18,"./_global":28,"./_has":29,"./_hide":30,"./_uid":66}],54:[function(require,module,exports){ var shared = require('./_shared')('keys'); var uid = require('./_uid'); module.exports = function (key) { return shared[key] || (shared[key] = uid(key)); }; },{"./_shared":55,"./_uid":66}],55:[function(require,module,exports){ var core = require('./_core'); var global = require('./_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: require('./_library') ? 'pure' : 'global', copyright: '© 2018 Denis Pushkarev (zloirock.ru)' }); },{"./_core":18,"./_global":28,"./_library":37}],56:[function(require,module,exports){ 'use strict'; var fails = require('./_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":26}],57:[function(require,module,exports){ 'use strict'; var toInteger = require('./_to-integer'); var defined = require('./_defined'); module.exports = function repeat(count) { var str = String(defined(this)); var res = ''; var n = toInteger(count); if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; return res; }; },{"./_defined":21,"./_to-integer":61}],58:[function(require,module,exports){ var $export = require('./_export'); var defined = require('./_defined'); var fails = require('./_fails'); var spaces = require('./_string-ws'); var space = '[' + spaces + ']'; var non = '\u200b\u0085'; var ltrim = RegExp('^' + space + space + '*'); var rtrim = RegExp(space + space + '*$'); var exporter = function (KEY, exec, ALIAS) { var exp = {}; var FORCE = fails(function () { return !!spaces[KEY]() || non[KEY]() != non; }); var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; if (ALIAS) exp[ALIAS] = fn; $export($export.P + $export.F * FORCE, 'String', exp); }; // 1 -> String#trimLeft // 2 -> String#trimRight // 3 -> String#trim var trim = exporter.trim = function (string, TYPE) { string = String(defined(string)); if (TYPE & 1) string = string.replace(ltrim, ''); if (TYPE & 2) string = string.replace(rtrim, ''); return string; }; module.exports = exporter; },{"./_defined":21,"./_export":25,"./_fails":26,"./_string-ws":59}],59:[function(require,module,exports){ module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; },{}],60:[function(require,module,exports){ var toInteger = require('./_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":61}],61:[function(require,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); }; },{}],62:[function(require,module,exports){ // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = require('./_iobject'); var defined = require('./_defined'); module.exports = function (it) { return IObject(defined(it)); }; },{"./_defined":21,"./_iobject":34}],63:[function(require,module,exports){ // 7.1.15 ToLength var toInteger = require('./_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":61}],64:[function(require,module,exports){ // 7.1.13 ToObject(argument) var defined = require('./_defined'); module.exports = function (it) { return Object(defined(it)); }; },{"./_defined":21}],65:[function(require,module,exports){ // 7.1.1 ToPrimitive(input [, PreferredType]) var isObject = require('./_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":36}],66:[function(require,module,exports){ var id = 0; var px = Math.random(); module.exports = function (key) { return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; },{}],67:[function(require,module,exports){ var store = require('./_shared')('wks'); var uid = require('./_uid'); var Symbol = require('./_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":28,"./_shared":55,"./_uid":66}],68:[function(require,module,exports){ 'use strict'; var $export = require('./_export'); var $every = require('./_array-methods')(4); $export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', { // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) every: function every(callbackfn /* , thisArg */) { return $every(this, callbackfn, arguments[1]); } }); },{"./_array-methods":12,"./_export":25,"./_strict-method":56}],69:[function(require,module,exports){ 'use strict'; var $export = require('./_export'); var $filter = require('./_array-methods')(2); $export($export.P + $export.F * !require('./_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":12,"./_export":25,"./_strict-method":56}],70:[function(require,module,exports){ 'use strict'; var $export = require('./_export'); var $forEach = require('./_array-methods')(0); var STRICT = require('./_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":12,"./_export":25,"./_strict-method":56}],71:[function(require,module,exports){ 'use strict'; var $export = require('./_export'); var $indexOf = require('./_array-includes')(false); var $native = [].indexOf; var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; $export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_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":11,"./_export":25,"./_strict-method":56}],72:[function(require,module,exports){ // 22.1.2.2 / 15.4.3.2 Array.isArray(arg) var $export = require('./_export'); $export($export.S, 'Array', { isArray: require('./_is-array') }); },{"./_export":25,"./_is-array":35}],73:[function(require,module,exports){ 'use strict'; // 22.1.3.13 Array.prototype.join(separator) var $export = require('./_export'); var toIObject = require('./_to-iobject'); var arrayJoin = [].join; // fallback for not array-like strings $export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', { join: function join(separator) { return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); } }); },{"./_export":25,"./_iobject":34,"./_strict-method":56,"./_to-iobject":62}],74:[function(require,module,exports){ 'use strict'; var $export = require('./_export'); var toIObject = require('./_to-iobject'); var toInteger = require('./_to-integer'); var toLength = require('./_to-length'); var $native = [].lastIndexOf; var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; $