UNPKG

hyperformula

Version:

HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas

1,493 lines (1,217 loc) 1.67 MB
/*! * Copyright (c) HANDSONCODE sp. z o. o. * * HYPERFORMULA is a software distributed by HANDSONCODE sp. z o. o., a * Polish corporation based in Gdynia, Poland, at Aleja Zwyciestwa 96-98, * registered by the District Court in Gdansk under number 538651, * EU VAT: PL5862294002, share capital: PLN 62,800.00. * * This software is dual-licensed, giving you the option to use it under * either a proprietary license or the GNU General Public License version 3 * (GPLv3). The specific license under which you use the software is * determined by the license key you apply. Each licensing option comes with * its own terms and conditions as specified below. * * 1. PROPRIETARY LICENSE: * * Your use of this software is subject to the terms included in an * applicable proprietary license agreement between you and HANDSONCODE. * The proprietary license can be purchased from HANDSONCODE or an * authorized reseller. * * 2. GNU GENERAL PUBLIC LICENSE v3: * * This software is also available under the terms of the GNU General * Public License v3. You are permitted to run, modify, and distribute * this software under the terms of the GPLv3, as published by the Free * Software Foundation. The full text of the GPLv3 can be found at * https://www.gnu.org/licenses/. * * UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON * AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO * EVENT AND UNDER NO LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR * DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR * CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM USE OR INABILITY TO * USE THIS SOFTWARE. * * Version: 2.7.1 * Release date: 18/07/2024 (built at 18/07/2024 11:23:21) */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define("HyperFormula", [], factory); else if(typeof exports === 'object') exports["HyperFormula"] = factory(); else root["HyperFormula"] = factory(); })(typeof self !== 'undefined' ? self : this, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = void 0; var _ArraySize = __webpack_require__(1); exports.ArraySize = _ArraySize.ArraySize; var _Cell = __webpack_require__(73); exports.CellError = _Cell.CellError; exports.CellType = _Cell.CellType; exports.CellValueDetailedType = _Cell.CellValueDetailedType; exports.CellValueType = _Cell.CellValueType; exports.ErrorType = _Cell.ErrorType; var _CellValue = __webpack_require__(170); exports.DetailedCellError = _CellValue.DetailedCellError; var _Config = __webpack_require__(171); var _ChooseAddressMappingPolicy = __webpack_require__(175); exports.AlwaysDense = _ChooseAddressMappingPolicy.AlwaysDense; exports.AlwaysSparse = _ChooseAddressMappingPolicy.AlwaysSparse; exports.DenseSparseChooseBasedOnThreshold = _ChooseAddressMappingPolicy.DenseSparseChooseBasedOnThreshold; var _errors = __webpack_require__(147); exports.ConfigValueTooBigError = _errors.ConfigValueTooBigError; exports.ConfigValueTooSmallError = _errors.ConfigValueTooSmallError; exports.EvaluationSuspendedError = _errors.EvaluationSuspendedError; exports.ExpectedOneOfValuesError = _errors.ExpectedOneOfValuesError; exports.ExpectedValueOfTypeError = _errors.ExpectedValueOfTypeError; exports.FunctionPluginValidationError = _errors.FunctionPluginValidationError; exports.InvalidAddressError = _errors.InvalidAddressError; exports.InvalidArgumentsError = _errors.InvalidArgumentsError; exports.LanguageAlreadyRegisteredError = _errors.LanguageAlreadyRegisteredError; exports.LanguageNotRegisteredError = _errors.LanguageNotRegisteredError; exports.MissingTranslationError = _errors.MissingTranslationError; exports.NamedExpressionDoesNotExistError = _errors.NamedExpressionDoesNotExistError; exports.NamedExpressionNameIsAlreadyTakenError = _errors.NamedExpressionNameIsAlreadyTakenError; exports.NamedExpressionNameIsInvalidError = _errors.NamedExpressionNameIsInvalidError; exports.NoOperationToRedoError = _errors.NoOperationToRedoError; exports.NoOperationToUndoError = _errors.NoOperationToUndoError; exports.NoRelativeAddressesAllowedError = _errors.NoRelativeAddressesAllowedError; exports.NoSheetWithIdError = _errors.NoSheetWithIdError; exports.NoSheetWithNameError = _errors.NoSheetWithNameError; exports.NotAFormulaError = _errors.NotAFormulaError; exports.NothingToPasteError = _errors.NothingToPasteError; exports.ProtectedFunctionTranslationError = _errors.ProtectedFunctionTranslationError; exports.SheetNameAlreadyTakenError = _errors.SheetNameAlreadyTakenError; exports.SheetSizeLimitExceededError = _errors.SheetSizeLimitExceededError; exports.SourceLocationHasArrayError = _errors.SourceLocationHasArrayError; exports.TargetLocationHasArrayError = _errors.TargetLocationHasArrayError; exports.UnableToParseError = _errors.UnableToParseError; var _Exporter = __webpack_require__(198); exports.ExportedCellChange = _Exporter.ExportedCellChange; exports.ExportedNamedExpressionChange = _Exporter.ExportedNamedExpressionChange; var _HyperFormula = __webpack_require__(180); exports.HyperFormula = _HyperFormula.HyperFormula; var _enGB = _interopRequireDefault(__webpack_require__(216)); var _interpreter = __webpack_require__(166); exports.FunctionPlugin = _interpreter.FunctionPlugin; exports.FunctionArgumentType = _interpreter.FunctionArgumentType; exports.EmptyValue = _interpreter.EmptyValue; var plugins = _interopRequireWildcard(__webpack_require__(217)); var _SimpleRangeValue = __webpack_require__(139); exports.SimpleRangeValue = _SimpleRangeValue.SimpleRangeValue; function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * @license * Copyright (c) 2024 Handsoncode. All rights reserved. */ /** * Aggregate class for default export */ class HyperFormulaNS extends _HyperFormula.HyperFormula {} HyperFormulaNS.HyperFormula = _HyperFormula.HyperFormula; HyperFormulaNS.ErrorType = _Cell.ErrorType; HyperFormulaNS.CellError = _Cell.CellError; HyperFormulaNS.CellType = _Cell.CellType; HyperFormulaNS.CellValueType = _Cell.CellValueType; HyperFormulaNS.CellValueDetailedType = _Cell.CellValueDetailedType; HyperFormulaNS.DetailedCellError = _CellValue.DetailedCellError; HyperFormulaNS.ExportedCellChange = _Exporter.ExportedCellChange; HyperFormulaNS.ExportedNamedExpressionChange = _Exporter.ExportedNamedExpressionChange; HyperFormulaNS.ConfigValueTooBigError = _errors.ConfigValueTooBigError; HyperFormulaNS.ConfigValueTooSmallError = _errors.ConfigValueTooSmallError; HyperFormulaNS.EvaluationSuspendedError = _errors.EvaluationSuspendedError; HyperFormulaNS.ExpectedOneOfValuesError = _errors.ExpectedOneOfValuesError; HyperFormulaNS.ExpectedValueOfTypeError = _errors.ExpectedValueOfTypeError; HyperFormulaNS.ArraySize = _ArraySize.ArraySize; HyperFormulaNS.SimpleRangeValue = _SimpleRangeValue.SimpleRangeValue; HyperFormulaNS.EmptyValue = _interpreter.EmptyValue; HyperFormulaNS.FunctionPlugin = _interpreter.FunctionPlugin; HyperFormulaNS.FunctionArgumentType = _interpreter.FunctionArgumentType; HyperFormulaNS.FunctionPluginValidationError = _errors.FunctionPluginValidationError; HyperFormulaNS.InvalidAddressError = _errors.InvalidAddressError; HyperFormulaNS.InvalidArgumentsError = _errors.InvalidArgumentsError; HyperFormulaNS.LanguageNotRegisteredError = _errors.LanguageNotRegisteredError; HyperFormulaNS.LanguageAlreadyRegisteredError = _errors.LanguageAlreadyRegisteredError; HyperFormulaNS.MissingTranslationError = _errors.MissingTranslationError; HyperFormulaNS.NamedExpressionDoesNotExistError = _errors.NamedExpressionDoesNotExistError; HyperFormulaNS.NamedExpressionNameIsAlreadyTakenError = _errors.NamedExpressionNameIsAlreadyTakenError; HyperFormulaNS.NamedExpressionNameIsInvalidError = _errors.NamedExpressionNameIsInvalidError; HyperFormulaNS.NoOperationToRedoError = _errors.NoOperationToRedoError; HyperFormulaNS.NoOperationToUndoError = _errors.NoOperationToUndoError; HyperFormulaNS.NoRelativeAddressesAllowedError = _errors.NoRelativeAddressesAllowedError; HyperFormulaNS.NoSheetWithIdError = _errors.NoSheetWithIdError; HyperFormulaNS.NoSheetWithNameError = _errors.NoSheetWithNameError; HyperFormulaNS.NotAFormulaError = _errors.NotAFormulaError; HyperFormulaNS.NothingToPasteError = _errors.NothingToPasteError; HyperFormulaNS.ProtectedFunctionTranslationError = _errors.ProtectedFunctionTranslationError; HyperFormulaNS.SheetNameAlreadyTakenError = _errors.SheetNameAlreadyTakenError; HyperFormulaNS.SheetSizeLimitExceededError = _errors.SheetSizeLimitExceededError; HyperFormulaNS.SourceLocationHasArrayError = _errors.SourceLocationHasArrayError; HyperFormulaNS.TargetLocationHasArrayError = _errors.TargetLocationHasArrayError; HyperFormulaNS.UnableToParseError = _errors.UnableToParseError; const defaultLanguage = _Config.Config.defaultConfig.language; _HyperFormula.HyperFormula.registerLanguage(defaultLanguage, _enGB.default); _HyperFormula.HyperFormula.languages[_enGB.default.langCode] = _enGB.default; for (const pluginName of Object.getOwnPropertyNames(plugins)) { if (!pluginName.startsWith('_')) { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore _HyperFormula.HyperFormula.registerFunctionPlugin(plugins[pluginName]); } } var _default = exports.default = HyperFormulaNS; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.ArraySizePredictor = exports.ArraySize = void 0; __webpack_require__(2); var _AbsoluteCellRange = __webpack_require__(72); var _InterpreterState = __webpack_require__(165); var _interpreter = __webpack_require__(166); var _parser = __webpack_require__(77); /** * @license * Copyright (c) 2024 Handsoncode. All rights reserved. */ class ArraySize { constructor(width, height, isRef = false) { this.width = width; this.height = height; this.isRef = isRef; } static error() { return new ArraySize(1, 1, true); } static scalar() { return new ArraySize(1, 1, false); } isScalar() { return this.width === 1 && this.height === 1 || this.isRef; } } exports.ArraySize = ArraySize; function arraySizeForBinaryOp(leftArraySize, rightArraySize) { return new ArraySize(Math.max(leftArraySize.width, rightArraySize.width), Math.max(leftArraySize.height, rightArraySize.height)); } function arraySizeForUnaryOp(arraySize) { return new ArraySize(arraySize.width, arraySize.height); } class ArraySizePredictor { constructor(config, functionRegistry) { this.config = config; this.functionRegistry = functionRegistry; } checkArraySize(ast, formulaAddress) { return this.checkArraySizeForAst(ast, { formulaAddress, arraysFlag: this.config.useArrayArithmetic }); } checkArraySizeForAst(ast, state) { switch (ast.type) { case _parser.AstNodeType.FUNCTION_CALL: { return this.checkArraySizeForFunction(ast, state); } case _parser.AstNodeType.COLUMN_RANGE: case _parser.AstNodeType.ROW_RANGE: case _parser.AstNodeType.CELL_RANGE: { const range = _AbsoluteCellRange.AbsoluteCellRange.fromAstOrUndef(ast, state.formulaAddress); if (range === undefined) { return ArraySize.error(); } else { return new ArraySize(range.width(), range.height(), true); } } case _parser.AstNodeType.ARRAY: { const heights = []; const widths = []; for (const row of ast.args) { const sizes = row.map(ast => this.checkArraySizeForAst(ast, state)); const h = Math.min(...sizes.map(size => size.height)); const w = sizes.reduce((total, size) => total + size.width, 0); heights.push(h); widths.push(w); } const height = heights.reduce((total, h) => total + h, 0); const width = Math.min(...widths); return new ArraySize(width, height); } case _parser.AstNodeType.STRING: case _parser.AstNodeType.NUMBER: return ArraySize.scalar(); case _parser.AstNodeType.CELL_REFERENCE: return new ArraySize(1, 1, true); case _parser.AstNodeType.DIV_OP: case _parser.AstNodeType.CONCATENATE_OP: case _parser.AstNodeType.EQUALS_OP: case _parser.AstNodeType.GREATER_THAN_OP: case _parser.AstNodeType.GREATER_THAN_OR_EQUAL_OP: case _parser.AstNodeType.LESS_THAN_OP: case _parser.AstNodeType.LESS_THAN_OR_EQUAL_OP: case _parser.AstNodeType.MINUS_OP: case _parser.AstNodeType.NOT_EQUAL_OP: case _parser.AstNodeType.PLUS_OP: case _parser.AstNodeType.POWER_OP: case _parser.AstNodeType.TIMES_OP: { const left = this.checkArraySizeForAst(ast.left, state); const right = this.checkArraySizeForAst(ast.right, state); if (!state.arraysFlag && (left.height > 1 || left.width > 1 || right.height > 1 || right.width > 1)) { return ArraySize.error(); } return arraySizeForBinaryOp(left, right); } case _parser.AstNodeType.MINUS_UNARY_OP: case _parser.AstNodeType.PLUS_UNARY_OP: case _parser.AstNodeType.PERCENT_OP: { const val = this.checkArraySizeForAst(ast.value, state); if (!state.arraysFlag && (val.height > 1 || val.width > 1)) { return ArraySize.error(); } return arraySizeForUnaryOp(val); } case _parser.AstNodeType.PARENTHESIS: { return this.checkArraySizeForAst(ast.expression, state); } case _parser.AstNodeType.EMPTY: return ArraySize.error(); default: return ArraySize.error(); } } checkArraySizeForFunction(ast, state) { const pluginArraySizeFunction = this.functionRegistry.getArraySizeFunction(ast.procedureName); if (pluginArraySizeFunction !== undefined) { return pluginArraySizeFunction(ast, state); } const metadata = this.functionRegistry.getMetadata(ast.procedureName); if (metadata === undefined || metadata.expandRanges || !state.arraysFlag || metadata.vectorizationForbidden || metadata.parameters === undefined) { return new ArraySize(1, 1); } const subChecks = ast.args.map(arg => { var _a; return this.checkArraySizeForAst(arg, new _InterpreterState.InterpreterState(state.formulaAddress, state.arraysFlag || ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.arrayFunction) !== null && _a !== void 0 ? _a : false))); }); const argumentDefinitions = [...metadata.parameters]; if (metadata.repeatLastArgs !== undefined && argumentDefinitions.length < subChecks.length && (subChecks.length - argumentDefinitions.length) % metadata.repeatLastArgs !== 0) { return ArraySize.error(); } while (argumentDefinitions.length < subChecks.length) { if (metadata.repeatLastArgs === undefined) { return ArraySize.error(); } argumentDefinitions.push(...argumentDefinitions.slice(argumentDefinitions.length - metadata.repeatLastArgs)); } let maxWidth = 1; let maxHeight = 1; for (let i = 0; i < subChecks.length; i++) { if (argumentDefinitions[i].argumentType !== _interpreter.FunctionArgumentType.RANGE && argumentDefinitions[i].argumentType !== _interpreter.FunctionArgumentType.ANY) { maxHeight = Math.max(maxHeight, subChecks[i].height); maxWidth = Math.max(maxWidth, subChecks[i].width); } } return new ArraySize(maxWidth, maxHeight); } } exports.ArraySizePredictor = ArraySizePredictor; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(3); var toObject = __webpack_require__(40); var lengthOfArrayLike = __webpack_require__(64); var setArrayLength = __webpack_require__(69); var doesNotExceedSafeInteger = __webpack_require__(71); var fails = __webpack_require__(8); var INCORRECT_TO_LENGTH = fails(function () { return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; }); // V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError // https://bugs.chromium.org/p/v8/issues/detail?id=12681 var properErrorOnNonWritableLength = function () { try { // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty([], 'length', { writable: false }).push(); } catch (error) { return error instanceof TypeError; } }; var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); // `Array.prototype.push` method // https://tc39.es/ecma262/#sec-array.prototype.push $({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { // eslint-disable-next-line no-unused-vars -- required for `.length` push: function push(item) { var O = toObject(this); var len = lengthOfArrayLike(O); var argCount = arguments.length; doesNotExceedSafeInteger(len + argCount); for (var i = 0; i < argCount; i++) { O[len] = arguments[i]; len++; } setArrayLength(O, len); return len; } }); /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(4); var getOwnPropertyDescriptor = __webpack_require__(6).f; var createNonEnumerableProperty = __webpack_require__(44); var defineBuiltIn = __webpack_require__(48); var defineGlobalProperty = __webpack_require__(38); var copyConstructorProperties = __webpack_require__(56); var isForced = __webpack_require__(68); /* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.dontCallGetSet - prevent calling a getter on target options.name - the .name of the function if it does not match the key */ module.exports = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global; } else if (STATIC) { target = global[TARGET] || defineGlobalProperty(TARGET, {}); } else { target = global[TARGET] && global[TARGET].prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.dontCallGetSet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { if (typeof sourceProperty == typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills if (options.sham || (targetProperty && targetProperty.sham)) { createNonEnumerableProperty(sourceProperty, 'sham', true); } defineBuiltIn(target, key, sourceProperty, options); } }; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var check = function (it) { return it && it.Math === Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 module.exports = // eslint-disable-next-line es/no-global-this -- safe check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || check(typeof this == 'object' && this) || // eslint-disable-next-line no-new-func -- fallback (function () { return this; })() || Function('return this')(); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(5))) /***/ }), /* 5 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(7); var call = __webpack_require__(9); var propertyIsEnumerableModule = __webpack_require__(11); var createPropertyDescriptor = __webpack_require__(12); var toIndexedObject = __webpack_require__(13); var toPropertyKey = __webpack_require__(19); var hasOwn = __webpack_require__(39); var IE8_DOM_DEFINE = __webpack_require__(42); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPropertyKey(P); if (IE8_DOM_DEFINE) try { return $getOwnPropertyDescriptor(O, P); } catch (error) { /* empty */ } if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); }; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(8); // Detect IE8's incomplete defineProperty implementation module.exports = !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; }); /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (exec) { try { return !!exec(); } catch (error) { return true; } }; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var NATIVE_BIND = __webpack_require__(10); var call = Function.prototype.call; module.exports = NATIVE_BIND ? call.bind(call) : function () { return call.apply(call, arguments); }; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(8); module.exports = !fails(function () { // eslint-disable-next-line es/no-function-prototype-bind -- safe var test = (function () { /* empty */ }).bind(); // eslint-disable-next-line no-prototype-builtins -- safe return typeof test != 'function' || test.hasOwnProperty('prototype'); }); /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor(this, V); return !!descriptor && descriptor.enumerable; } : $propertyIsEnumerable; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // toObject with fallback for non-array-like ES3 strings var IndexedObject = __webpack_require__(14); var requireObjectCoercible = __webpack_require__(17); module.exports = function (it) { return IndexedObject(requireObjectCoercible(it)); }; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(15); var fails = __webpack_require__(8); var classof = __webpack_require__(16); var $Object = Object; var split = uncurryThis(''.split); // fallback for non-array-like ES3 and non-enumerable old V8 strings module.exports = fails(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins -- safe return !$Object('z').propertyIsEnumerable(0); }) ? function (it) { return classof(it) === 'String' ? split(it, '') : $Object(it); } : $Object; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var NATIVE_BIND = __webpack_require__(10); var FunctionPrototype = Function.prototype; var call = FunctionPrototype.call; var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { return function () { return call.apply(fn, arguments); }; }; /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(15); var toString = uncurryThis({}.toString); var stringSlice = uncurryThis(''.slice); module.exports = function (it) { return stringSlice(toString(it), 8, -1); }; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isNullOrUndefined = __webpack_require__(18); var $TypeError = TypeError; // `RequireObjectCoercible` abstract operation // https://tc39.es/ecma262/#sec-requireobjectcoercible module.exports = function (it) { if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it); return it; }; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // we can't use just `it == null` since of `document.all` special case // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec module.exports = function (it) { return it === null || it === undefined; }; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var toPrimitive = __webpack_require__(20); var isSymbol = __webpack_require__(23); // `ToPropertyKey` abstract operation // https://tc39.es/ecma262/#sec-topropertykey module.exports = function (argument) { var key = toPrimitive(argument, 'string'); return isSymbol(key) ? key : key + ''; }; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var call = __webpack_require__(9); var isObject = __webpack_require__(21); var isSymbol = __webpack_require__(23); var getMethod = __webpack_require__(30); var ordinaryToPrimitive = __webpack_require__(33); var wellKnownSymbol = __webpack_require__(34); var $TypeError = TypeError; var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); // `ToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-toprimitive module.exports = function (input, pref) { if (!isObject(input) || isSymbol(input)) return input; var exoticToPrim = getMethod(input, TO_PRIMITIVE); var result; if (exoticToPrim) { if (pref === undefined) pref = 'default'; result = call(exoticToPrim, input, pref); if (!isObject(result) || isSymbol(result)) return result; throw new $TypeError("Can't convert object to primitive value"); } if (pref === undefined) pref = 'number'; return ordinaryToPrimitive(input, pref); }; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isCallable = __webpack_require__(22); module.exports = function (it) { return typeof it == 'object' ? it !== null : isCallable(it); }; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot var documentAll = typeof document == 'object' && document.all; // `IsCallable` abstract operation // https://tc39.es/ecma262/#sec-iscallable // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { return typeof argument == 'function' || argument === documentAll; } : function (argument) { return typeof argument == 'function'; }; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var getBuiltIn = __webpack_require__(24); var isCallable = __webpack_require__(22); var isPrototypeOf = __webpack_require__(25); var USE_SYMBOL_AS_UID = __webpack_require__(26); var $Object = Object; module.exports = USE_SYMBOL_AS_UID ? function (it) { return typeof it == 'symbol'; } : function (it) { var $Symbol = getBuiltIn('Symbol'); return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); }; /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(4); var isCallable = __webpack_require__(22); var aFunction = function (argument) { return isCallable(argument) ? argument : undefined; }; module.exports = function (namespace, method) { return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; }; /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(15); module.exports = uncurryThis({}.isPrototypeOf); /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* eslint-disable es/no-symbol -- required for testing */ var NATIVE_SYMBOL = __webpack_require__(27); module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol'; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* eslint-disable es/no-symbol -- required for testing */ var V8_VERSION = __webpack_require__(28); var fails = __webpack_require__(8); var global = __webpack_require__(4); var $String = global.String; // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing module.exports = !!Object.getOwnPropertySymbols && !fails(function () { var symbol = Symbol('symbol detection'); // Chrome 38 Symbol has incorrect toString conversion // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, // of course, fail. return !$String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances !Symbol.sham && V8_VERSION && V8_VERSION < 41; }); /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(4); var userAgent = __webpack_require__(29); var process = global.process; var Deno = global.Deno; var versions = process && process.versions || Deno && Deno.version; var v8 = versions && versions.v8; var match, version; if (v8) { match = v8.split('.'); // in old Chrome, versions of V8 isn't V8 = Chrome / 10 // but their correct versions are not interesting for us version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); } // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` // so check `userAgent` even if `.v8` exists, but 0 if (!version && userAgent) { match = userAgent.match(/Edge\/(\d+)/); if (!match || match[1] >= 74) { match = userAgent.match(/Chrome\/(\d+)/); if (match) version = +match[1]; } } module.exports = version; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var aCallable = __webpack_require__(31); var isNullOrUndefined = __webpack_require__(18); // `GetMethod` abstract operation // https://tc39.es/ecma262/#sec-getmethod module.exports = function (V, P) { var func = V[P]; return isNullOrUndefined(func) ? undefined : aCallable(func); }; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isCallable = __webpack_require__(22); var tryToString = __webpack_require__(32); var $TypeError = TypeError; // `Assert: IsCallable(argument) is true` module.exports = function (argument) { if (isCallable(argument)) return argument; throw new $TypeError(tryToString(argument) + ' is not a function'); }; /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $String = String; module.exports = function (argument) { try { return $String(argument); } catch (error) { return 'Object'; } }; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var call = __webpack_require__(9); var isCallable = __webpack_require__(22); var isObject = __webpack_require__(21); var $TypeError = TypeError; // `OrdinaryToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-ordinarytoprimitive module.exports = function (input, pref) { var fn, val; if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; throw new $TypeError("Can't convert object to primitive value"); }; /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(4); var shared = __webpack_require__(35); var hasOwn = __webpack_require__(39); var uid = __webpack_require__(41); var NATIVE_SYMBOL = __webpack_require__(27); var USE_SYMBOL_AS_UID = __webpack_require__(26); var Symbol = global.Symbol; var WellKnownSymbolsStore = shared('wks'); var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; module.exports = function (name) { if (!hasOwn(WellKnownSymbolsStore, name)) { WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) ? Symbol[name] : createWellKnownSymbol('Symbol.' + name); } return WellKnownSymbolsStore[name]; }; /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var store = __webpack_require__(36); module.exports = function (key, value) { return store[key] || (store[key] = value || {}); }; /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var IS_PURE = __webpack_require__(37); var globalThis = __webpack_require__(4); var defineGlobalProperty = __webpack_require__(38); var SHARED = '__core-js_shared__'; var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); (store.versions || (store.versions = [])).push({ version: '3.37.1', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', source: 'https://github.com/zloirock/core-js' }); /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = false; /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(4); // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; module.exports = function (key, value) { try { defineProperty(global, key, { value: value, configurable: true, writable: true }); } catch (error) { global[key] = value; } return value; }; /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(15); var toObject = __webpack_require__(40); var hasOwnProperty = uncurryThis({}.hasOwnProperty); // `HasOwnProperty` abstract operation // https://tc39.es/ecma262/#sec-hasownproperty // eslint-disable-next-line es/no-object-hasown -- safe module.exports = Object.hasOwn || function hasOwn(it, key) { return hasOwnProperty(toObject(it), key); }; /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var requireObjectCoercible = __webpack_require__(17); var $Object = Object; // `ToObject` abstract operation // https://tc39.es/ecma262/#sec-toobject module.exports = function (argument) { return $Object(requireObjectCoercible(argument)); }; /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(15); var id = 0; var postfix = Math.random(); var toString = uncurryThis(1.0.toString); module.exports = function (key) { return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); }; /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(7); var fails = __webpack_require__(8); var createElement = __webpack_require__(43); // Thanks to IE8 for its funny defineProperty module.exports = !DESCRIPTORS && !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } }).a !== 7; }); /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(4); var isObject = __webpack_require__(21); var document = global.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject(document) && isObject(document.createElement); module.exports = function (it) { return EXISTS ? document.createElement(it) : {}; }; /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(7); var definePropertyModule = __webpack_require__(45); var createPropertyDescriptor = __webpack_require__(12); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(7); var IE8_DOM_DEFINE = __webpack_require__(42); var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(46); var anObject = __webpack_require__(47); var toPropertyKey = __webpack_require__(19); var $TypeError = TypeError; // eslint-disable-next-line es/no-object-defineproperty -- safe var $defineProperty = Object.defineProperty; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var ENUMERABLE = 'enumerable'; var CONFIGURABLE = 'configurable'; var WRITABLE = 'writable'; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { var current = $getOwnPropertyDescriptor(O, P); if (current && current[WRITABLE]) { O[P] = Attributes.value; Attributes = { configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], writable: false }; } } return $defineProperty(O, P, Attributes); } : $defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); if (IE8_DOM_DEFINE) try { return $defineProperty(O, P, Attributes); } catch (error) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(7); var fails = __webpack_require__(8); // V8 ~ Chrome 36- // https://bugs.chromium.org/p/v8/issues/detail?id=3334 module.exports = DESCRIPTORS && fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, writable: false }).prototype !== 42; }); /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isObject = __webpack_require__(21); var $String = String; var $TypeError = TypeError; // `Assert: Type(argument) is Object` module.exports = function (argument) { if (isObject(argument)) return argument; throw new $TypeError($String(argument) + ' is not an object'); }; /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isCallable = __webpack_require__(22); var definePropertyModule = __webpack_require__(45); var makeBuiltIn = __webpack_require__(49); var defineGlobalProperty = __webpack_require__(38); module.exports = function (O, key, value, options) { if (!options) options = {}; var simple = options.enumerable; var name = options.name !== undefined ? options.name : key; if (isCallable(value)) makeBuiltIn(value, name, options); if (options.global) { if (simple) O[key] = value; else defineGlobalProperty(key, value); } else { try { if (!options.unsafe) delete O[key]; else if (O[key]) simple = true; } catch (error) { /* empty */ } if (simple) O[key] = value; else definePropertyModule.f(O, key, { value: value, enumerable: false, configurable: !options.nonConfigurable, writable: !options.nonWritable }); } return O; }; /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(15); var fails = __webpack_require__(8); var isCallable = __webpack_require__(22); var hasOwn = __webpack_require__(39); var DESCRIPTORS = __webpack_require__(7); var CONFIGURABLE_FUNCTION_NAME = __webpack_require__(50).CONFIGURABLE; var inspectSource = __webpack_require__(51); var InternalStateModule = __webpack_require__(52); var enforceInternalState = InternalStateModule.enforce; var getInternalState = InternalStateModule.get; var $String = String; // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; var stringSlice = uncurryThis(''.slice); var replace = uncurryThis(''.replace); var join = uncurryThis([].join); var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; }); var TEMPLATE = String(String).split('String'); var makeBuiltIn = module.exports = function (value, name, options) { if (stringSlice($String(name), 0, 7) === 'Symbol(') { name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; } if (options && options.getter) name = 'get ' + name; if (options && options.setter) name = 'set ' + name; if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); else value.name = name; } if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { defineProperty(value, 'length', { value: options.arity }); } try { if (options && hasOwn(options, 'constructor') && options.constructor) { if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable } else if (value.prototype) value.prototype = undefined; } catch (error) { /* empty */ } var state = enforceInternalState(value); if (!hasOwn(state, 'source')) { state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); } return value; }; // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDa