onsenui
Version:
HTML5 Mobile Framework & UI Components
1,686 lines (1,415 loc) • 2.82 MB
JavaScript
/* onsenui v2.11.2 - 2021-01-12 */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global.ons = factory());
}(this, (function () { 'use strict';
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
var classCallCheck = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
};
var createClass = function () {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function (Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
var defineProperty = function (obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
};
var _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
var get = function get(object, property, receiver) {
if (object === null) object = Function.prototype;
var desc = Object.getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent === null) {
return undefined;
} else {
return get(parent, property, receiver);
}
} else if ("value" in desc) {
return desc.value;
} else {
var getter = desc.get;
if (getter === undefined) {
return undefined;
}
return getter.call(receiver);
}
};
var inherits = function (subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
};
var objectWithoutProperties = function (obj, keys) {
var target = {};
for (var i in obj) {
if (keys.indexOf(i) >= 0) continue;
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
target[i] = obj[i];
}
return target;
};
var possibleConstructorReturn = function (self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return call && (typeof call === "object" || typeof call === "function") ? call : self;
};
var toConsumableArray = function (arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
} else {
return Array.from(arr);
}
};
/*
Copyright 2013-2015 ASIAL CORPORATION
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Save HTMLElement object before Custom Elements polyfill patch global HTMLElement.
var NativeHTMLElement = window.HTMLElement;
/**
* @object ons.platform
* @category util
* @description
* [en]Utility methods to detect current platform.[/en]
* [ja]現在実行されているプラットフォームを検知するためのユーティリティメソッドを収めたオブジェクトです。[/ja]
*/
var Platform = function () {
/**
* All elements will be rendered as if the app was running on this platform.
* @type {String}
*/
function Platform() {
classCallCheck(this, Platform);
this._selectedPlatform = null;
this._ignorePlatformSelect = false;
}
/**
* @method select
* @signature select(platform)
* @param {string} platform Name of the platform.
* [en]Possible values are: "opera", "firefox", "safari", "chrome", "ie", "android", "blackberry", "ios" or "wp".[/en]
* [ja]"opera", "firefox", "safari", "chrome", "ie", "android", "blackberry", "ios", "wp"のいずれかを指定します。[/ja]
* @description
* [en]Sets the platform used to render the elements. Useful for testing.[/en]
* [ja]要素を描画するために利用するプラットフォーム名を設定します。テストに便利です。[/ja]
*/
createClass(Platform, [{
key: 'select',
value: function select(platform) {
if (typeof platform === 'string') {
this._selectedPlatform = platform.trim().toLowerCase();
}
}
}, {
key: '_getSelectedPlatform',
value: function _getSelectedPlatform() {
return this._ignorePlatformSelect ? null : this._selectedPlatform;
}
}, {
key: '_runOnActualPlatform',
value: function _runOnActualPlatform(fn) {
this._ignorePlatformSelect = true;
var result = fn();
this._ignorePlatformSelect = false;
return result;
}
//----------------
// General
//----------------
/**
* @method isWebView
* @signature isWebView()
* @description
* [en]Returns whether app is running in Cordova.[/en]
* [ja]Cordova内で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isWebView',
value: function isWebView() {
if (document.readyState === 'loading' || document.readyState == 'uninitialized') {
throw new Error('isWebView() method is available after dom contents loaded.');
}
return !!(window.cordova || window.phonegap || window.PhoneGap);
}
//----------------
// iOS devices
//----------------
/**
* @method isIPhone
* @signature isIPhone()
* @description
* [en]Returns whether the device is iPhone.[/en]
* [ja]iPhone上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isIPhone',
value: function isIPhone() {
return (/iPhone/i.test(navigator.userAgent)
);
}
/**
* @method isIPhoneX
* @signature isIPhoneX()
* @description
* [en]Returns whether the device is iPhone X, XS, XS Max, XR, 11, 11 Pro, 11 Pro Max, 12 Mini, 12, 12 Pro or 12 Pro Max.[/en]
* [ja]iPhone X や XS、XS Max、XR、11、11 Pro、11 Pro Max、12 Mini、12、12 Pro、または12 Pro Max上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isIPhoneX',
value: function isIPhoneX() {
// iOS WebViews on the same iOS version have the same user agent.
// We cannot avoid using window.screen.
// We also cannot use cordova-plugin-device since its behavior is different between simulators and real devices.
// This works well both in iOS Safari and (UI|WK)WebView of iPhone X.
return this.isIPhone() && (
// X, XS, 11 Pro, 12 Mini
window.screen.width === 375 && window.screen.height === 812 || // portrait
window.screen.width === 812 && window.screen.height === 375 || // landscape
// XS Max, XR, 11, 11 Pro Max
window.screen.width === 414 && window.screen.height === 896 || // portrait
window.screen.width === 896 && window.screen.height === 414 || // landscape
// 12, 12 Pro
window.screen.width === 390 && window.screen.height === 844 || // portrait
window.screen.width === 844 && window.screen.height === 390 || // landscape
// 12 Pro Max
window.screen.width === 428 && window.screen.height === 926 || // portrait
window.screen.width === 926 && window.screen.height === 428 // landscape
);
}
/**
* @method isIPad
* @signature isIPad()
* @description
* [en]Returns whether the device is iPad.[/en]
* [ja]iPad上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isIPad',
value: function isIPad() {
return (/iPad/i.test(navigator.userAgent) || this.isIPadOS()
);
}
/**
* @return {Boolean}
*/
}, {
key: 'isIPod',
value: function isIPod() {
return (/iPod/i.test(navigator.userAgent)
);
}
//----------------
// iOS versions
//----------------
/**
* @method isIOS
* @signature isIOS([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the OS is iOS. By default will return manually selected platform if it is set.[/en]
* [ja]iOS上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isIOS',
value: function isIOS(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'ios';
}
if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
return (/iOS/i.test(device.platform)
);
} else {
return (/iPhone|iPad|iPod/i.test(navigator.userAgent) || this.isIPadOS()
);
}
}
/**
* @method isIOS7above
* @signature isIOS7above()
* @description
* [en]Returns whether the iOS version is 7 or above.[/en]
* [ja]iOS7以上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isIOS7above',
value: function isIOS7above() {
if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
return (/iOS/i.test(device.platform) && parseInt(device.version.split('.')[0]) >= 7
);
} else if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) {
var ver = (navigator.userAgent.match(/\b[0-9]+_[0-9]+(?:_[0-9]+)?\b/) || [''])[0].replace(/_/g, '.');
return parseInt(ver.split('.')[0]) >= 7;
}
return false;
}
/**
* @method isIPadOS
* @signature isIPadOS()
* @description
* [en]Returns whether the OS is iPadOS.[/en]
* [ja][/ja]
* @return {Boolean}
*/
}, {
key: 'isIPadOS',
value: function isIPadOS() {
// The iPadOS User Agent string is the same as MacOS so as a
// workaround we test the max touch points, which is 5 for
// iPads and 0 for desktop browsers.
return !!(/Macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints === 5);
}
//----------------
// iOS browsers
//----------------
/**
* @method isIOSSafari
* @signature isIOSSafari()
* @description
* [en]Returns whether app is running in iOS Safari.[/en]
* [ja]iOS Safariで実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isIOSSafari',
value: function isIOSSafari() {
var navigator = window.navigator;
var ua = navigator.userAgent;
return !!(this.isIOS() && ua.indexOf('Safari') !== -1 && ua.indexOf('Version') !== -1 && !navigator.standalone);
}
/**
* @method isWKWebView
* @signature isWKWebView()
* @description
* [en]Returns whether app is running in WKWebView.[/en]
* [ja]WKWebViewで実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isWKWebView',
value: function isWKWebView() {
var lte9 = /constructor/i.test(NativeHTMLElement);
return !!(this.isIOS() && window.webkit && window.webkit.messageHandlers && window.indexedDB && !lte9);
}
//----------------
// Android devices
//----------------
/**
* @method isAndroidPhone
* @signature isAndroidPhone()
* @description
* [en]Returns whether the device is Android phone.[/en]
* [ja]Android携帯上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isAndroidPhone',
value: function isAndroidPhone() {
return (/Android/i.test(navigator.userAgent) && /Mobile/i.test(navigator.userAgent)
);
}
/**
* @method isAndroidTablet
* @signature isAndroidTablet()
* @description
* [en]Returns whether the device is Android tablet.[/en]
* [ja]Androidタブレット上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isAndroidTablet',
value: function isAndroidTablet() {
return (/Android/i.test(navigator.userAgent) && !/Mobile/i.test(navigator.userAgent)
);
}
//----------------
// Android versions
//----------------
/**
* @method isAndroid
* @signature isAndroid([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the OS is Android. By default will return manually selected platform if it is set.[/en]
* [ja]Android上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isAndroid',
value: function isAndroid(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'android';
}
if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
return (/Android/i.test(device.platform)
);
} else {
return (/Android/i.test(navigator.userAgent)
);
}
}
//----------------
// Other devices
//----------------
/**
* @method isWP
* @signature isWP([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the OS is Windows phone. By default will return manually selected platform if it is set.[/en]
* [ja][/ja]
* @return {Boolean}
*/
}, {
key: 'isWP',
value: function isWP(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'wp';
}
if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
return (/Win32NT|WinCE/i.test(device.platform)
);
} else {
return (/Windows Phone|IEMobile|WPDesktop/i.test(navigator.userAgent)
);
}
}
/**
* @method isBlackBerry
* @signature isBlackBerry([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the device is BlackBerry. By default will return manually selected platform if it is set.[/en]
* [ja]BlackBerry上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isBlackBerry',
value: function isBlackBerry(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'blackberry';
}
if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
return (/BlackBerry/i.test(device.platform)
);
} else {
return (/BlackBerry|RIM Tablet OS|BB10/i.test(navigator.userAgent)
);
}
}
//----------------
// Other browsers
//----------------
/**
* @method isOpera
* @signature isOpera([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the browser is Opera. By default will return manually selected platform if it is set.[/en]
* [ja]Opera上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isOpera',
value: function isOpera(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'opera';
}
return !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
}
/**
* @method isFirefox
* @signature isFirefox([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the browser is Firefox. By default will return manually selected platform if it is set.[/en]
* [ja]Firefox上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isFirefox',
value: function isFirefox(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'firefox';
}
return typeof InstallTrigger !== 'undefined';
}
/**
* @method isSafari
* @signature isSafari([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the browser is Safari. By default will return manually selected platform if it is set.[/en]
* [ja]Safari上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isSafari',
value: function isSafari(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'safari';
}
return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 || function (p) {
return p.toString() === '[object SafariRemoteNotification]';
}(!window['safari'] || safari.pushNotification);
}
/**
* @method isChrome
* @signature isChrome([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the browser is Chrome. By default will return manually selected platform if it is set.[/en]
* [ja]Chrome上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isChrome',
value: function isChrome(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'chrome';
}
return !!window.chrome && !(!!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0) && !(navigator.userAgent.indexOf(' Edge/') >= 0);
}
/**
* @method isIE
* @signature isIE([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the browser is Internet Explorer. By default will return manually selected platform if it is set.[/en]
* [ja]Internet Explorer上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isIE',
value: function isIE(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'ie';
}
return false || !!document.documentMode;
}
/**
* @method isEdge
* @signature isEdge([forceActualPlatform])
* @param {Boolean} forceActualPlatform
* [en]If true, selected platform is ignored and the actual platform is returned.[/en]
* [ja][/ja]
* @description
* [en]Returns whether the browser is Edge. By default will return manually selected platform if it is set.[/en]
* [ja]Edge上で実行されているかどうかを返します。[/ja]
* @return {Boolean}
*/
}, {
key: 'isEdge',
value: function isEdge(forceActualPlatform) {
if (!forceActualPlatform && this._getSelectedPlatform()) {
return this._getSelectedPlatform() === 'edge';
}
return navigator.userAgent.indexOf(' Edge/') >= 0;
}
//----------------
// Utility functions
//----------------
/**
* @return {String}
*/
}, {
key: 'getMobileOS',
value: function getMobileOS() {
if (this.isAndroid()) {
return 'android';
} else if (this.isIOS()) {
return 'ios';
} else if (this.isWP()) {
return 'wp';
} else {
return 'other';
}
}
/**
* @return {String}
*/
}, {
key: 'getIOSDevice',
value: function getIOSDevice() {
if (this.isIPhone()) {
return 'iphone';
} else if (this.isIPad()) {
return 'ipad';
} else if (this.isIPod()) {
return 'ipod';
} else {
return 'na';
}
}
}]);
return Platform;
}();
var platform = new Platform();
// For @onsenui/custom-elements
if (window.customElements) {
// even if native CE1 impl exists, use polyfill
window.customElements.forcePolyfill = true;
}
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var _global = createCommonjsModule(function (module) {
// 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
});
var _core = createCommonjsModule(function (module) {
var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
});
var _core_1 = _core.version;
var _isObject = function _isObject(it) {
return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) === 'object' ? it !== null : typeof it === 'function';
};
var _anObject = function _anObject(it) {
if (!_isObject(it)) throw TypeError(it + ' is not an object!');
return it;
};
var _fails = function _fails(exec) {
try {
return !!exec();
} catch (e) {
return true;
}
};
// Thank's IE8 for his funny defineProperty
var _descriptors = !_fails(function () {
return Object.defineProperty({}, 'a', { get: function get() {
return 7;
} }).a != 7;
});
var document$1 = _global.document;
// typeof document.createElement is 'object' in old IE
var is = _isObject(document$1) && _isObject(document$1.createElement);
var _domCreate = function _domCreate(it) {
return is ? document$1.createElement(it) : {};
};
var _ie8DomDefine = !_descriptors && !_fails(function () {
return Object.defineProperty(_domCreate('div'), 'a', { get: function get() {
return 7;
} }).a != 7;
});
// 7.1.1 ToPrimitive(input [, PreferredType])
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
var _toPrimitive = function _toPrimitive(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");
};
var dP = Object.defineProperty;
var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
_anObject(O);
P = _toPrimitive(P, true);
_anObject(Attributes);
if (_ie8DomDefine) 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;
};
var _objectDp = {
f: f
};
var _propertyDesc = function _propertyDesc(bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
var _hide = _descriptors ? function (object, key, value) {
return _objectDp.f(object, key, _propertyDesc(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
var hasOwnProperty = {}.hasOwnProperty;
var _has = function _has(it, key) {
return hasOwnProperty.call(it, key);
};
var id = 0;
var px = Math.random();
var _uid = function _uid(key) {
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
var _library = false;
var _shared = createCommonjsModule(function (module) {
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: _library ? 'pure' : 'global',
copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});
});
var _functionToString = _shared('native-function-to-string', Function.toString);
var _redefine = createCommonjsModule(function (module) {
var SRC = _uid('src');
var TO_STRING = 'toString';
var TPL = ('' + _functionToString).split(TO_STRING);
_core.inspectSource = function (it) {
return _functionToString.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] || _functionToString.call(this);
});
});
var _aFunction = function _aFunction(it) {
if (typeof it != 'function') throw TypeError(it + ' is not a function!');
return it;
};
// optional / simple context binding
var _ctx = function _ctx(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);
};
};
var PROTOTYPE = 'prototype';
var $export = function $export(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`
var _export = $export;
var f$2 = {}.propertyIsEnumerable;
var _objectPie = {
f: f$2
};
var toString = {}.toString;
var _cof = function _cof(it) {
return toString.call(it).slice(8, -1);
};
// fallback for non-array-like ES3 and non-enumerable old V8 strings
// eslint-disable-next-line no-prototype-builtins
var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
return _cof(it) == 'String' ? it.split('') : Object(it);
};
// 7.2.1 RequireObjectCoercible(argument)
var _defined = function _defined(it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
// to indexed object, toObject with fallback for non-array-like ES3 strings
var _toIobject = function _toIobject(it) {
return _iobject(_defined(it));
};
var gOPD = Object.getOwnPropertyDescriptor;
var f$1 = _descriptors ? gOPD : function getOwnPropertyDescriptor(O, P) {
O = _toIobject(O);
P = _toPrimitive(P, true);
if (_ie8DomDefine) try {
return gOPD(O, P);
} catch (e) {/* empty */}
if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);
};
var _objectGopd = {
f: f$1
};
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var check = function check(O, proto) {
_anObject(O);
if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
var _setProto = {
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function (test, buggy, set) {
try {
set = _ctx(Function.call, _objectGopd.f(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch (e) {
buggy = true;
}
return function setPrototypeOf(O, proto) {
check(O, proto);
if (buggy) O.__proto__ = proto;else set(O, proto);
return O;
};
}({}, false) : undefined),
check: check
};
// 19.1.3.19 Object.setPrototypeOf(O, proto)
_export(_export.S, 'Object', { setPrototypeOf: _setProto.set });
var setPrototypeOf = _core.Object.setPrototypeOf;
var _wks = createCommonjsModule(function (module) {
var store = _shared('wks');
var _Symbol = _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;
});
// getting tag from 19.1.3.6 Object.prototype.toString()
var TAG = _wks('toStringTag');
// ES3 wrong here
var ARG = _cof(function () {
return arguments;
}()) == 'Arguments';
// fallback for IE11 Script Access Denied error
var tryGet = function tryGet(it, key) {
try {
return it[key];
} catch (e) {/* empty */}
};
var _classof = function _classof(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;
};
// 19.1.3.6 Object.prototype.toString()
var test = {};
test[_wks('toStringTag')] = 'z';
if (test + '' != '[object z]') {
_redefine(Object.prototype, 'toString', function toString() {
return '[object ' + _classof(this) + ']';
}, true);
}
// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
var _toInteger = function _toInteger(it) {
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};
// true -> String#at
// false -> String#codePointAt
var _stringAt = function _stringAt(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;
};
};
var _iterators = {};
// 7.1.15 ToLength
var min = Math.min;
var _toLength = function _toLength(it) {
return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
var max = Math.max;
var min$1 = Math.min;
var _toAbsoluteIndex = function _toAbsoluteIndex(index, length) {
index = _toInteger(index);
return index < 0 ? max(index + length, 0) : min$1(index, length);
};
// false -> Array#indexOf
// true -> Array#includes
var _arrayIncludes = function _arrayIncludes(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;
};
};
var shared = _shared('keys');
var _sharedKey = function _sharedKey(key) {
return shared[key] || (shared[key] = _uid(key));
};
var arrayIndexOf = _arrayIncludes(false);
var IE_PROTO$1 = _sharedKey('IE_PROTO');
var _objectKeysInternal = function _objectKeysInternal(object, names) {
var O = _toIobject(object);
var i = 0;
var result = [];
var key;
for (key in O) {
if (key != IE_PROTO$1) _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;
};
// IE 8- don't enum bug keys
var _enumBugKeys = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var _objectKeys = Object.keys || function keys(O) {
return _objectKeysInternal(O, _enumBugKeys);
};
var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
_anObject(O);
var keys = _objectKeys(Properties);
var length = keys.length;
var i = 0;
var P;
while (length > i) {
_objectDp.f(O, P = keys[i++], Properties[P]);
}return O;
};
var document$2 = _global.document;
var _html = document$2 && document$2.documentElement;
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var IE_PROTO = _sharedKey('IE_PROTO');
var Empty = function Empty() {/* empty */};
var PROTOTYPE$1 = 'prototype';
// Create object with fake `null` prototype: use iframe Object with cleared prototype
var _createDict = function createDict() {
// Thrash, waste and sodomy: IE GC bug
var iframe = _domCreate('iframe');
var i = _enumBugKeys.length;
var lt = '<';
var gt = '>';
var iframeDocument;
iframe.style.display = 'none';
_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$1][_enumBugKeys[i]];
}return _createDict();
};
var _objectCreate = Object.create || function create(O, Properties) {
var result;
if (O !== null) {
Empty[PROTOTYPE$1] = _anObject(O);
result = new Empty();
Empty[PROTOTYPE$1] = null;
// add "__proto__" for Object.getPrototypeOf polyfill
result[IE_PROTO] = O;
} else result = _createDict();
return Properties === undefined ? result : _objectDps(result, Properties);
};
var def = _objectDp.f;
var TAG$1 = _wks('toStringTag');
var _setToStringTag = function _setToStringTag(it, tag, stat) {
if (it && !_has(it = stat ? it : it.prototype, TAG$1)) def(it, TAG$1, { configurable: true, value: tag });
};
var IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
_hide(IteratorPrototype, _wks('iterator'), function () {
return this;
});
var _iterCreate = function _iterCreate(Constructor, NAME, next) {
Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });
_setToStringTag(Constructor, NAME + ' Iterator');
};
// 7.1.13 ToObject(argument)
var _toObject = function _toObject(it) {
return Object(_defined(it));
};
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var IE_PROTO$2 = _sharedKey('IE_PROTO');
var ObjectProto = Object.prototype;
var _objectGpo = Object.getPrototypeOf || function (O) {
O = _toObject(O);
if (_has(O, IE_PROTO$2)) return O[IE_PROTO$2];
if (typeof O.constructor == 'function' && O instanceof O.constructor) {
return O.constructor.prototype;
}return O instanceof Object ? ObjectProto : null;
};
var ITERATOR = _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 returnThis() {
return this;
};
var _iterDefine = function _iterDefine(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
_iterCreate(Constructor, NAME, next);
var getMethod = function getMethod(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 = _objectGpo($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;
};
var $at = _stringAt(true);
// 21.1.3.27 String.prototype[@@iterator]()
_iterDefine(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 };
});
// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = _wks('unscopables');
var ArrayProto = Array.prototype;
if (ArrayProto[UNSCOPABLES] == undefined) _hide(ArrayProto, UNSCOPABLES, {});
var _addToUnscopables = function _addToUnscopables(key) {
ArrayProto[UNSCOPABLES][key] = true;
};
var _iterStep = function _iterStep(done, value) {
return { value: value, done: !!done };
};
// 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]()
var es6_array_iterator = _iterDefine(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 _iterStep(1);
}
if (kind == 'keys') return _iterStep(0, index);
if (kind == 'values') return _iterStep(0, O[index]);
return _iterStep(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');
var ITERATOR$1 = _wks('iterator');
var TO_STRING_TAG = _wks('toStringTag');
var ArrayValues = _iterators.Array;
var DOMIterables = {
CSSRuleList: true, // TODO: Not spec compliant, should be false.
CSSStyleDeclaration: false,
CSSValueList: false,
ClientRectList: false,
DOMRectList: false,
DOMStringList: false,
DOMTokenList: true,
DataTransferItemList: false,
FileList: false,
HTMLAllCollection: false,
HTMLCollection: false,
HTMLFormElement: false,
HTMLSelectElement: false,
MediaList: true, // TODO: Not spec compliant, should be false.
MimeTypeArray: false,
NamedNodeMap: false,
NodeList: true,
PaintRequestList: false,
Plugin: false,
PluginArray: false,
SVGLengthList: false,
SVGNumberList: false,
SVGPathSegList: false,
SVGPointList: false,
SVGStringList: false,
SVGTransformList: false,
SourceBufferList: false,
StyleSheetList: true, // TODO: Not spec compliant, should be false.
TextTrackCueList: false,
TextTrackList: false,
TouchList: false
};
for (var collections = _objectKeys(DOMIterables), i = 0; i < collections.length; i++) {
var NAME = collections[i];
var explicit = DOMIterables[NAME];
var Collection = _global[NAME];
var proto = Collection && Collection.prototype;
var key;
if (proto) {
if (!proto[ITERATOR$1]) _hide(proto, ITERATOR$1, ArrayValues);
if (!proto[TO_STRING_TAG]) _hide(proto, TO_STRING_TAG, NAME);
_iterators[NAME] = ArrayValues;
if (explicit) for (key in es6_array_iterator) {
if (!proto[key]) _redefine(proto, key, es6_array_iterator[key], true);
}
}
}
var _redefineAll = function _redefineAll(target, src, safe) {
for (var key in src) {
_redefine(target, key, src[key], safe);
}return target;
};
var _anInstance = function _anInstance(it, Constructor, name, forbiddenField) {
if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {
throw TypeError(name + ': incorrect invocation!');
}return it;
};
// call something on iterator step with safe closing on error
var _iterCall = function _iterCall(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;
}
};
// check on default Array iterator
var ITERATOR$2 = _wks('iterator');
var ArrayProto$1 = Array.prototype;
var _isArrayIter = function _isArrayIter(it) {
return it !== undefined && (_iterators.Array === it || ArrayProto$1[ITERATOR$2] === it);
};
var ITERATOR$3 = _wks('iterator');
var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
if (it != undefined) return it[ITERATOR$3] || it['@@iterator'] || _iterators[_classof(it)];
};
var _forOf = createCommonjsModule(function (module) {
var BREAK = {};
var RETURN = {};
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
var iterFn = ITERATOR ? function () {
return iterable;
} : core_getIteratorMethod(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 = _iterCall(iterator, f, step.value, entries);
if (result === BREAK || result === RETURN) return result;
}
};
exports.BREAK = BREAK;
exports.RETURN = RETURN;
});
var SPECIES = _wks('species');
var _setSpecies = function _setSpecies(KEY) {
var C = _global[KEY];
if (_descriptors && C && !C[SPECIES]) _objectDp.f(C, SPECIES, {
configurable: true,
get: function get() {
return this;
}
});
};
var _meta = createCommonjsModule(function (module) {
var META = _uid('meta');
var setDesc = _objectDp.f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
return true;
};
var FREEZE = !_fails(function () {
return isExtensible(Object.preventExtensions({}));
});
var setMeta = function setMeta(it) {
setDesc(it, META, { value: {
i: 'O' + ++id, // object ID
w: {} // weak collections IDs
} });
};
var fastKey = function fastKey(it, create) {
// return primitive with prefix
if (!_isObject(it)) return (typeof it === 'undefined' ? 'undefined' : _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 getWeak(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 onFreeze(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
};
});
var _meta_1 = _meta.KEY;
var _meta_2 = _meta.NEED;
var _meta_3 = _meta.fastKey;
var _meta_4 = _meta.getWeak;
var _meta_5 = _meta.onFreeze;
var _validateCollection = function _validateCollection(it, TYPE) {
if (!_isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
return it;
};
var dP$1 = _objectDp.f;
var fastKey = _meta.fastKey;
var SIZE = _descriptors ? '_s' : 'size';
var getEntry = function getEntry(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;
}
};
var _collectionStrong = {
getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {
var C = wrapper(function (that, iterable) {
_anInstance(that, C, NAME, '_i');
that._t = NAME; // collection type
that._i = _objectCreate(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 = _vali