pax_global_header00006660000000000000000000000064131500354530014511gustar00rootroot0000000000000052 comment=1ded604433044d99967afd1575475e1d3ef484ac es5-ext-0.10.30/000077500000000000000000000000001315003545300131445ustar00rootroot00000000000000es5-ext-0.10.30/.gitignore000066400000000000000000000000631315003545300151330ustar00rootroot00000000000000.DS_Store /node_modules /.lintcache /npm-debug.log es5-ext-0.10.30/.lint000066400000000000000000000010201315003545300141040ustar00rootroot00000000000000@root module indent 2 maxlen 100 tabs ass continue forin nomen plusplus vars sub ./global.js ./function/_define-length.js ./function/#/copy.js ./object/unserialize.js ./test/function/valid-function.js ./test/function/#/to-string-tokens.js evil ./math/_pack-ieee754.js ./math/_unpack-ieee754.js ./math/clz32/shim.js ./math/imul/shim.js ./number/to-uint32.js ./string/#/at.js bitwise ./math/fround/shim.js predef+ Float32Array ./object/first-key.js forin ./test predef+ Symbol ./test/reg-exp/#/index.js predef+ __dirname es5-ext-0.10.30/.lintignore000066400000000000000000000003611315003545300153170ustar00rootroot00000000000000/string/#/normalize/_data.js /test/boolean/is-boolean.js /test/date/is-date.js /test/number/is-number.js /test/object/is-copy.js /test/object/is-number-value.js /test/object/is-object.js /test/reg-exp/is-reg-exp.js /test/string/is-string.js es5-ext-0.10.30/CHANGELOG.md000066400000000000000000000111471315003545300147610ustar00rootroot00000000000000# Change Log All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. ## [0.10.30](https://github.com/medikoo/es5-ext/compare/v0.10.29...v0.10.30) (2017-08-25) ### Bug Fixes * value stringification for error message ([37bb96b](https://github.com/medikoo/es5-ext/commit/37bb96b)) ## [0.10.29](https://github.com/medikoo/es5-ext/compare/v0.10.28...v0.10.29) (2017-08-18) ### Bug Fixes * string.repeat after recent regression ([b02fab4](https://github.com/medikoo/es5-ext/commit/b02fab4)) ## [0.10.28](https://github.com/medikoo/es5-ext/compare/v0.10.27...v0.10.28) (2017-08-18) ### Features * array.isEmpty method ([b0cfbdd](https://github.com/medikoo/es5-ext/commit/b0cfbdd)) * improve new lines representation ([860fe8b](https://github.com/medikoo/es5-ext/commit/860fe8b)) * Object.ensureArray util ([595c341](https://github.com/medikoo/es5-ext/commit/595c341)) * toShortStringRepresentation util ([6842d06](https://github.com/medikoo/es5-ext/commit/6842d06)) ## [0.10.27](https://github.com/medikoo/es5-ext/compare/v0.10.26...v0.10.27) (2017-08-11) ### Bug Fixes * isNumberValue should not crash on non-coercible values ([0db765e](https://github.com/medikoo/es5-ext/commit/0db765e)) ### Features * add Object.ensureFiniteNumber util ([11c67f5](https://github.com/medikoo/es5-ext/commit/11c67f5)) * add Object.isFiniteNumber util ([fe5b55a](https://github.com/medikoo/es5-ext/commit/fe5b55a)) ## [0.10.26](https://github.com/medikoo/es5-ext/compare/v0.10.25...v0.10.26) (2017-08-02) ### Bug Fixes * **general:** ensure optionalChaining in index ([3df879a](https://github.com/medikoo/es5-ext/commit/3df879a)) ## [0.10.25](https://github.com/medikoo/es5-ext/compare/v0.10.24...v0.10.25) (2017-08-02) ### Features * **general:** optionalChaining utility ([26332b5](https://github.com/medikoo/es5-ext/commit/26332b5)) ## [0.10.24](https://github.com/medikoo/es5-ext/compare/v0.10.23...v0.10.24) (2017-07-10) ### Features * resolve global with CSP safe method ([d386449](https://github.com/medikoo/es5-ext/commit/d386449)) ## [0.10.23](https://github.com/medikoo/es5-ext/compare/v0.10.22...v0.10.23) (2017-06-05) ### Bug Fixes * **Error.custom:** allow non-string code ([e8db3a0](https://github.com/medikoo/es5-ext/commit/e8db3a0)) * **Error.custom:** improve `ext` argument detection ([0edbfbc](https://github.com/medikoo/es5-ext/commit/0edbfbc)) ## [0.10.22](https://github.com/medikoo/es5-ext/compare/v0.10.21...v0.10.22) (2017-05-31) ### Bug Fixes * ensure proper symbols stringification in early implementations ([ce51900](https://github.com/medikoo/es5-ext/commit/ce51900)) ## [0.10.21](https://github.com/medikoo/es5-ext/compare/v0.10.20...v0.10.21) (2017-05-22) ### Features * support arrow functions in Function/#/to-tring-tokens.js ([ad3de1e](https://github.com/medikoo/es5-ext/commit/ad3de1e)) ## [0.10.20](https://github.com/medikoo/es5-ext/compare/v0.10.19...v0.10.20) (2017-05-17) ### Features * if listed copy not only if own property ([d7e7cef](https://github.com/medikoo/es5-ext/commit/d7e7cef)) * support `ensure` option in Object.copy ([295326f](https://github.com/medikoo/es5-ext/commit/295326f)) ## [0.10.19](https://github.com/medikoo/es5-ext/compare/v0.10.18...v0.10.19) (2017-05-17) ### Features * support propertyNames option in Object.copy ([5442279](https://github.com/medikoo/es5-ext/commit/5442279)) ## [0.10.18](https://github.com/medikoo/es5-ext/compare/v0.10.17...v0.10.18) (2017-05-15) ### Bug Fixes * take all changes in safeToString ([3c5cd12](https://github.com/medikoo/es5-ext/commit/3c5cd12)) ## [0.10.17](https://github.com/medikoo/es5-ext/compare/v0.10.16...v0.10.17) (2017-05-15) ### Features * introduce Object.ensurePromise ([46a2f45](https://github.com/medikoo/es5-ext/commit/46a2f45)) * introduce Object.isPromise ([27aecc8](https://github.com/medikoo/es5-ext/commit/27aecc8)) * introduce safeToString ([0cc6a7b](https://github.com/medikoo/es5-ext/commit/0cc6a7b)) ## [0.10.16](https://github.com/medikoo/es5-ext/compare/v0.10.15...v0.10.16) (2017-05-09) ### Features * add String.prototype.count ([2e53241](https://github.com/medikoo/es5-ext/commit/2e53241)) ## Changelog for previous versions See `CHANGES` filees5-ext-0.10.30/CHANGES000066400000000000000000000665431315003545300141550ustar00rootroot00000000000000For recent changelog see CHANGELOG.md ----- v0.10.15 -- 2017.03.20 * Fix Object.isValue (it was actually isNotValue) v0.10.14 -- 2017.03.15 * Object.isValue util v0.10.13 -- 2017.03.13 * Introduce JSON.safeStringify * Improve message handling in error/custom * Fix Array#concat shim * Improve Array#flatten algorithm so it's stack trace friendly * Make Object.isObject ES3 compatible v0.10.12 -- 2016.07.01 * Ensure symbols are copied in Object.mixin * Prevent RangeError errors in array#flatten * Do not validate invalidate dates in validDate v0.10.11 -- 2015.12.18 * Ensure that check for implementation of RegExp flags doesn't crash in V8 (thanks @mathiasbynens) v0.10.10 -- 2015.12.11 * Add Object.isNumberValue util v0.10.9 -- 2015.12.01 * Add Object.ensureNaturalNumber and Object.ensureNaturalNumberValue v0.10.8 -- 2015.10.02 * Add Number.isNatural * Add Object.find and Object.findKey * Support arrays in Object.copyDeep * Fix iteration issue in forEachRight and someRight * Fix detection of native sinh * Depend on es6-symbol v3 v0.10.7 -- 2015.04.22 * New utlitities. They're convention differs from v0.10, as they were supposed to land in v1. Still they're non breaking and start the conventions to be used in v1 * Object.validateArrayLike * Object.validateArrayLikeObject * Object.validateStringifiable * Object.validateStringifiableValue * Universal utilities for array-like/iterable objects * Iterable.is * Iterable.validate * Iterable.validateObject * Iterable.forEach * Fix camelToHyphen resolution, it must be absolutely reversable by hyphenToCamel * Fix calculations of large numbers in Math.tanh * Fix algorithm of Math.sinh * Fix indexes to not use real symbols * Fix length of String.fromCodePoint * Fix tests of Array#copyWithin * Update Travis CI configuration v0.10.6 -- 2015.02.02 * Fix handling of infinite values in Math.trunc * Fix handling of getters in Object.normalizeOptions v0.10.5 -- 2015.01.20 * Add Function#toStringTokens * Add Object.serialize and Object.unserialize * Add String.randomUniq * Fix Strin#camelToHyphen issue with tokens that end with digit * Optimise Number.isInteger logic * Improve documentation * Configure lint scripts * Fix spelling of LICENSE v0.10.4 -- 2014.04.30 * Assure maximum spec compliance of Array.of and Array.from (thanks @mathiasbynens) * Improve documentations v0.10.3 -- 2014.04.29 Provide accurate iterators handling: * Array.from improvements: * Assure right unicode symbols resolution when processing strings in Array.from * Rely on ES6 symbol shim and use native @@iterator Symbol if provided by environment * Add methods: * Array.prototype.entries * Array.prototype.keys * Array.prototype.values * Array.prototype[@@iterator] * String.prototype[@@iterator] Improve documentation v0.10.2 -- 2014.04.24 - Simplify and deprecate `isCallable`. It seems in ES5 based engines there are no callable objects which are `typeof obj !== 'function'` - Update Array.from map callback signature (up to latest resolution of TC39) - Improve documentation v0.10.1 -- 2014.04.14 Bump version for npm (Workaround for accidental premature publish & unpublish of v0.10.0 a while ago) v0.10.0 -- 2014.04.13 Major update: - All methods and function specified for ECMAScript 6 are now introduced as shims accompanied with functions through which (optionally) they can be implementend on native objects - Filename convention was changed to shorter and strictly lower case names. e.g. `lib/String/prototype/starts-with` became `string/#/starts-with` - Generated functions are guaranteed to have expected length - Objects with null prototype (created via `Object.create(null)`) are widely supported (older version have crashed due to implied `obj.hasOwnProperty` and related invocations) - Support array subclasses - When handling lists do not limit its length to Uint32 range - Use newly introduced `Object.eq` for strict equality in place of `Object.is` - Iteration of Object have been improved so properties that were hidden or removed after iteration started are not iterated. Additions: - `Array.isPlainArray` - `Array.validArray` - `Array.prototype.concat` (as updated with ES6) - `Array.prototype.copyWithin` (as introduced with ES6) - `Array.prototype.fill` (as introduced with ES6) - `Array.prototype.filter` (as updated with ES6) - `Array.prototype.findIndex` (as introduced with ES6) - `Array.prototype.map` (as updated with ES6) - `Array.prototype.separate` - `Array.prototype.slice` (as updated with ES6) - `Array.prototype.splice` (as updated with ES6) - `Function.prototype.copy` - `Math.acosh` (as introduced with ES6) - `Math.atanh` (as introduced with ES6) - `Math.cbrt` (as introduced with ES6) - `Math.clz32` (as introduced with ES6) - `Math.cosh` (as introduced with ES6) - `Math.expm1` (as introduced with ES6) - `Math.fround` (as introduced with ES6) - `Math.hypot` (as introduced with ES6) - `Math.imul` (as introduced with ES6) - `Math.log2` (as introduced with ES6) - `Math.log10` (as introduced with ES6) - `Math.log1p` (as introduced with ES6) - `Math.sinh` (as introduced with ES6) - `Math.tanh` (as introduced with ES6) - `Math.trunc` (as introduced with ES6) - `Number.EPSILON` (as introduced with ES6) - `Number.MIN_SAFE_INTEGER` (as introduced with ES6) - `Number.MAX_SAFE_INTEGER` (as introduced with ES6) - `Number.isFinite` (as introduced with ES6) - `Number.isInteger` (as introduced with ES6) - `Number.isSafeInteger` (as introduced with ES6) - `Object.create` (with fix for V8 issue which disallows prototype turn of objects derived from null - `Object.eq` - Less restrictive version of `Object.is` based on SameValueZero algorithm - `Object.firstKey` - `Object.keys` (as updated with ES6) - `Object.mixinPrototypes` - `Object.primitiveSet` - `Object.setPrototypeOf` (as introduced with ES6) - `Object.validObject` - `RegExp.escape` - `RegExp.prototype.match` (as introduced with ES6) - `RegExp.prototype.replace` (as introduced with ES6) - `RegExp.prototype.search` (as introduced with ES6) - `RegExp.prototype.split` (as introduced with ES6) - `RegExp.prototype.sticky` (as introduced with ES6) - `RegExp.prototype.unicode` (as introduced with ES6) - `String.fromCodePoint` (as introduced with ES6) - `String.raw` (as introduced with ES6) - `String.prototype.at` - `String.prototype.codePointAt` (as introduced with ES6) - `String.prototype.normalize` (as introduced with ES6) - `String.prototype.plainReplaceAll` Removals: - `reserved` set - `Array.prototype.commonLeft` - `Function.insert` - `Function.remove` - `Function.prototype.silent` - `Function.prototype.wrap` - `Object.descriptor` Move to external `d` project. See: https://github.com/medikoo/d - `Object.diff` - `Object.extendDeep` - `Object.reduce` - `Object.values` - `String.prototype.trimCommonLeft` Renames: - `Function.i` into `Function.identity` - `Function.k` into `Function.constant` - `Number.toInt` into `Number.toInteger` - `Number.toUint` into `Number.toPosInteger` - `Object.extend` into `Object.assign` (as introduced in ES 6) - `Object.extendProperties` into `Object.mixin`, with improved internal handling, so it matches temporarily specified `Object.mixin` for ECMAScript 6 - `Object.isList` into `Object.isArrayLike` - `Object.mapToArray` into `Object.toArray` (with fixed function length) - `Object.toPlainObject` into `Object.normalizeOptions` (as this is the real use case where we use this function) - `Function.prototype.chain` into `Function.prototype.compose` - `Function.prototype.match` into `Function.prototype.spread` - `String.prototype.format` into `String.formatMethod` Improvements & Fixes: - Remove workaround for primitive values handling in object iterators - `Array.from`: Update so it follows ES 6 spec - `Array.prototype.compact`: filters just null and undefined values (not all falsies) - `Array.prototype.eIndexOf` and `Array.prototype.eLastIndexOf`: fix position handling, improve internals - `Array.prototype.find`: return undefined not null, in case of not found (follow ES 6) - `Array.prototype.remove` fix function length - `Error.custom`: simplify, Custom class case is addressed by outer `error-create` project -> https://github.com/medikoo/error-create - `Error.isError` true only for Error instances (remove detection of host Exception objects) - `Number.prototype.pad`: Normalize negative pad - `Object.clear`: Handle errors same way as in `Object.assign` - `Object.compact`: filters just null and undefined values (not all falsies) - `Object.compare`: Take into account NaN values - `Object.copy`: Split into `Object.copy` and `Object.copyDeep` - `Object.isCopy`: Separate into `Object.isCopy` and `Object.isCopyDeep`, where `isCopyDeep` handles nested plain objects and plain arrays only - `String.prototype.endsWith`: Adjust up to ES6 specification - `String.prototype.repeat`: Adjust up to ES6 specification and improve algorithm - `String.prototype.simpleReplace`: Rename into `String.prototype.plainReplace` - `String.prototype.startsWith`: Adjust up to ES6 specification - Update lint rules, and adjust code to that - Update Travis CI configuration - Remove Makefile (it's cross-env utility) v0.9.2 -- 2013.03.11 Added: * Array.prototype.isCopy * Array.prototype.isUniq * Error.CustomError * Function.validFunction * Object.extendDeep * Object.descriptor.binder * Object.safeTraverse * RegExp.validRegExp * String.prototype.capitalize * String.prototype.simpleReplace Fixed: * Fix Array.prototype.diff for sparse arrays * Accept primitive objects as input values in Object iteration methods and Object.clear, Object.count, Object.diff, Object.extend, Object.getPropertyNames, Object.values * Pass expected arguments to callbacks of Object.filter, Object.mapKeys, Object.mapToArray, Object.map * Improve callable callback support in Object.mapToArray v0.9.1 -- 2012.09.17 * Object.reduce - reduce for hash-like collections * Accapt any callable object as callback in Object.filter, mapKeys and map * Convention cleanup v0.9.0 -- 2012.09.13 We're getting to real solid API Removed: * Function#memoize - it's grown up to be external package, to be soon published as 'memoizee' * String.guid - it doesn't fit es5-ext (extensions) concept, will be provided as external package # Function.arguments - obsolete # Function.context - obsolete # Function#flip - not readable when used, so it was never used # Object.clone - obsolete and confusing Added: * String#camelToHyphen - String format convertion Renamed: * String#dashToCamelCase -> String#hyphenToCamel Fixes: * Object.isObject - Quote names in literals that match reserved keywords (older implementations crashed on that) * String#repeat - Do not accept negative values (coerce them to 1) Improvements: * Array#remove - Accepts many arguments, we can now remove many values at once * Object iterators (forEach, map, some) - Compare function invoked with scope object bound to this * Function#curry - Algorithm cleanup * Object.isCopy - Support for all types, not just plain objects * Object.isPlainObject - Support for cross-frame objects * Do not memoize any of the functions, it shouldn't be decided internally * Remove Object.freeze calls in reserved, it's not up to convention * Improved documentation * Better linting (hard-core approach using both JSLint mod and JSHint) * Optional arguments are now documented in funtions signature v0.8.2 -- 2012.06.22 Fix errors in Array's intersection and exclusion methods, related to improper usage of contains method v0.8.1 -- 2012.06.13 Reorganized internal logic of Function.prototype.memoize. So it's more safe now and clears cache properly. Additionally preventCache option was provided. v0.8.0 -- 2012.05.28 Again, major overhaul. Probably last experimental stuff was trashed, all API looks more like standard extensions now. Changes: * Turn all Object.prototype extensions into functions and move them to Object namespace. We learned that extending Object.prototype is bad idea in any case. * Rename Function.prototype.curry into Function.prototype.partial. This function is really doing partial application while currying is slightly different concept. * Convert Function.prototype.ncurry to new implementation of Function.prototype.curry, it now serves real curry concept additionaly it covers use cases for aritize and hold, which were removed. * Rename Array's peek to last, and provide support for sparse arrays in it * Rename Date's monthDaysCount into daysInMonth * Simplify object iterators, now order of iteration can be configured with just compareFn argument (no extra byKeys option) * Rename Object.isDuplicate to Object.isCopy * Rename Object.isEqual to Object.is which is compatible with future 'is' keyword * Function.memoize is now Function.prototype.memoize. Additionally clear cache functionality is added, and access to original arguments object. * Rename validation functions: assertNotNull to validValue, assertCallable to validCallable. validValue was moved to Object namespace. On success they now return validated value instead of true, it supports better composition. Additionally created Date.validDate and Error.validError * All documentation is now held in README.md not in code files. * Move guid to String namespace. All guids now start with numbers. * Array.generate: fill argument is now optional * Object.toArray is now Array.from (as new ES6 specification draft suggests) * All methods that rely on indexOf or lastIndexOf, now rely on egal (Object.is) versions of them (eIndexOf, eLastIndexOf) * Turn all get* functions that returned methods into actuall methods (get* functionality can still be achieved with help of Function.prototype.partial). So: Date.getFormat is now Date.prototype.format, Number.getPad is now Number.prototype.pad, String.getFormat is now String.prototype.format, String.getIndent is now String.prototype.indent, String.getPad is now String.prototype.pad * Refactored Object.descriptor, it is now just two functions, main one and main.gs, main is for describing values, and gs for describing getters and setters. Configuration is passed with first argument as string e.g. 'ce' for configurable and enumerable. If no configuration string is provided then by default it returns configurable and writable but not enumerable for value or configurable but not enumerable for getter/setter * Function.prototype.silent now returns prepared function (it was expected to be fixed for 0.7) * Reserved keywords map (reserved) is now array not hash. * Object.merge is now Object.extend (while former Object.extend was completely removed) - 'extend' implies that we change object, not creating new one (as 'merge' may imply). Similarily Object.mergeProperties was renamed to Object.extendProperties * Position argument support in Array.prototype.contains and String.prototype.contains (so it follows ES6 specification draft) * endPosition argument support in String.prototype.endsWith and fromPosition argument support in String.prototype.startsWith (so it follows ES6 specification draft) * Better and cleaner String.prototype.indent implementation. No default value for indent string argument, optional nest value (defaults to 1), remove nostart argument * Correct length values for most methods (so they reflect length of similar methods in standard) * Length argument is now optional in number and string pad methods. * Improve arguments validation in general, so it adheres to standard conventions * Fixed format of package.json Removed methods and functions: * Object.prototype.slice - Object is not ordered collection, so slice doesn't make sense. * Function's rcurry, rncurry, s - too cumbersome for JS, not many use cases for that * Function.prototype.aritize and Function.prototype.hold - same functionality can be achieved with new Function.prototype.curry * Function.prototype.log - provided more generic Function.prototype.wrap for same use case * getNextIdGenerator - no use case for that (String.guid should be used if needed) * Object.toObject - Can be now acheived with Object(validValue(x)) * Array.prototype.someValue - no real use case (personally used once and case was already controversial) * Date.prototype.duration - moved to external package * Number.getAutoincrement - No real use case * Object.prototype.extend, Object.prototype.override, Object.prototype.plainCreate, Object.prototype.plainExtend - It was probably too complex, same should be achieved just with Object.create, Object.descriptor and by saving references to super methods in local scope. * Object.getCompareBy - Functions should be created individually for each use case * Object.get, Object.getSet, Object.set, Object.unset - Not many use cases and same can be easily achieved with simple inline function * String.getPrefixWith - Not real use case for something that can be easily achieved with '+' operator * Object.isPrimitive - It's just negation of Object.isObject * Number.prototype.isLess, Number.prototype.isLessOrEqual - they shouldn't be in Number namespace and should rather be addressed with simple inline functions. * Number.prototype.subtract - Should rather be addressed with simple inline function New methods and functions: * Array.prototype.lastIndex - Returns last declared index in array * String.prototype.last - last for strings * Function.prototype.wrap - Wrap function with other, it allows to specify before and after behavior transform return value or prevent original function from being called. * Math.sign - Returns sign of a number (already in ES6 specification draft) * Number.toInt - Converts value to integer (already in ES6 specification draft) * Number.isNaN - Returns true if value is NaN (already in ES6 specification draft) * Number.toUint - Converts value to unsigned integer * Number.toUint32 - Converts value to 32bit unsigned integer * Array.prototype.eIndexOf, eLastIndexOf - Egal version (that uses Object.is) of standard methods (all methods that were using native indexOf or lastIndexOf now uses eIndexOf and elastIndexOf respectively) * Array.of - as it's specified for ES6 Fixes: * Fixed binarySearch so it always returns valid list index * Object.isList - it failed on lists that are callable (e.g. NodeList in Nitro engine) * Object.map now supports third argument for callback v0.7.1 -- 2012.01.05 New methods: * Array.prototype.firstIndex - returns first valid index of array (for sparse arrays it may not be '0' Improvements: * Array.prototype.first - now returns value for index returned by firstIndex * Object.prototype.mapToArray - can be called without callback, then array of key-value pairs is returned Fixes * Array.prototype.forEachRight, object's length read through UInt32 conversion v0.7.0 -- 2011.12.27 Major update. Stepped back from experimental ideas and introduced more standard approach taking example from how ES5 methods and functions are designed. One exceptions is that, we don’t refrain from declaring methods for Object.prototype - it’s up to developer whether how he decides to use it in his context (as function or as method). In general: * Removed any method 'functionalization' and functionalize method itself. es5-ext declares plain methods, which can be configured to work as functions with call.bind(method) - see documentation. * Removed separation of Object methods for ES5 (with descriptors) and ES3 (plain) - we're following ES5 idea on that, some methods are intended just for enumerable properties and some are for all properties, all are declared for Object.prototype * Removed separation of Array generic (collected in List folder) and not generic methods (collected in Array folder). Now all methods are generic and are in Array/prototype folder. This separation also meant, that methods in Array are usually destructive. We don’t do that separation now, there’s generally no use case for destructive iterators, we should be fine with one version of each method, (same as ES5 is fine with e.g. one, non destructive 'filter' method) * Folder structure resembles tree of native ES5 Objects * All methods are written with ES5 conventions in mind, it means that most methods are generic and can be run on any object. In more detail: ** Array.prototype and Object.prototype methods can be run on any object (any not null or undefined value), ** Date.prototype methods should be called only on Date instances. ** Function.prototype methods can be called on any callable objects (not necessarily functions) ** Number.prototype & String.prototype methods can be called on any value, in case of Number it it’ll be degraded to number, in case of string it’ll be degraded to string. * Travis CI support (only for Node v0.6 branch, as v0.4 has buggy V8 version) Improvements for existing functions and methods: * Function.memoize (was Function.cache) is now fully generic, can operate on any type of arguments and it’s NaN safe (all NaN objects are considered equal) * Method properties passed to Object.prototype.extend or Object.prototype.override can aside of _super optionally take prototype object via _proto argument * Object iterators: forEach, mapToArray and every can now iterate in specified order * pluck, invoke and other functions that return reusable functions or methods have now their results memoized. New methods: * Global: assertNotNull, getNextIdGenerator, guid, isEqual, isPrimitive, toObject * Array: generate * Array.prototype: binarySearch, clear, contains, diff, exclusion, find, first, forEachRight, group, indexesOf, intersection, remove, someRight, someValue * Boolean: isBoolean * Date: isDate * Function: arguments, context, insert, isArguments, remove * Function.prototype: not, silent * Number: getAutoincrement, isNumber * Number.prototype: isLessOrEqual, isLess, subtract * Object: assertCallable, descriptor (functions for clean descriptors), getCompareBy, isCallable, isObject * Object.prototype: clone (real clone), compact, count, diff, empty, getPropertyNames, get, keyOf, mapKeys, override, plainCreate, plainExtend, slice, some, unset * RegExp: isRegExp * String: getPrefixWith, isString * String.prototype: caseInsensitiveCompare, contains, isNumeric Renamed methods: * Date.clone -> Date.prototype.copy * Date.format -> Date.getFormat * Date/day/floor -> Date.prototype.floorDay * Date/month/floor -> Date.prototype.floorMonth * Date/month/year -> Date.prototype.floorYear * Function.cache -> Function.memoize * Function.getApplyArg -> Function.prototype.match * Function.sequence -> Function.prototype.chain * List.findSameStartLength -> Array.prototype.commonLeft * Number.pad -> Number.getPad * Object/plain/clone -> Object.prototype.copy * Object/plain/elevate -> Object.prototype.flatten * Object/plain/same -> Object.prototype.isDuplicate * Object/plain/setValue -> Object.getSet * String.format -> String.getFormat * String.indent -> String.getIndent * String.pad -> String.getPad * String.trimLeftStr -> String.prototype.trimCommonLeft * Object.merge -> Object.prototype.mergeProperties * Object/plain/pluck -> Object.prototype.get * Array.clone is now Array.prototype.copy and can be used also on any array-like objects * List.isList -> Object.isList * List.toArray -> Object.prototype.toArray * String/convert/dashToCamelCase -> String.prototype.dashToCamelCase Removed methods: * Array.compact - removed destructive version (that operated on same array), we have now non destructive version as Array.prototype.compact. * Function.applyBind -> use apply.bind directly * Function.bindBind -> use bind.bind directly * Function.callBind -> use call.bind directly * Fuction.clone -> no valid use case * Function.dscope -> controversial approach, shouldn’t be considered seriously * Function.functionalize -> It was experimental but standards are standards * List/sort/length -> It can be easy obtained by Object.getCompareBy(‘length’) * List.concat -> Concat’s for array-like’s makes no sense, just convert to array first * List.every -> Use Array.prototype.every directly * List.filter -> Use Array.prototype.filter directly * List.forEach -> User Array.prototype.forEach directly * List.isListObject -> No valid use case, do: isList(list) && (typeof list === 'object’) * List.map -> Use Array.prototype.map directly * List.reduce -> Use Array.prototype.reduce directly * List.shiftSame -> Use Array.prototype.commonLeft and do slice * List.slice -> Use Array.prototype.slice directly * List.some -> Use Array.prototype.some directly * Object.bindMethods -> it was version that considered descriptors, we have now Object.prototype.bindMethods which operates only on enumerable properties * Object.every -> version that considered all properties, we have now Object.prototype.every which iterates only enumerables * Object.invoke -> no use case * Object.mergeDeep -> no use case * Object.pluck -> no use case * Object.same -> it considered descriptors, now there’s only Object.isDuplicate which compares only enumerable properties * Object.sameType -> no use case * Object.toDescriptor and Object.toDescriptors -> replaced by much nicer Object.descriptor functions * Object/plain/link -> no use case (it was used internally only by Object/plain/merge) * Object/plain/setTrue -> now easily configurable by more universal Object.getSet(true) * String.trimRightStr -> Eventually String.prototype.trimCommonRight will be added v0.6.3 -- 2011.12.12 * Cleared npm warning for misnamed property in package.json v0.6.2 -- 2011.08.12 * Calling String.indent without scope (global scope then) now treated as calling it with null scope, it allows more direct invocations when using default nest string: indent().call(str, nest) v0.6.1 -- 2011.08.08 * Added TAD test suite to devDependencies, configured test commands. Tests can be run with 'make test' or 'npm test' v0.6.0 -- 2011.08.07 New methods: * Array: clone, compact (in place) * Date: format, duration, clone, monthDaysCount, day.floor, month.floor, year.floor * Function: getApplyArg, , ncurry, rncurry, hold, cache, log * List: findSameStartLength, shiftSame, peek, isListObject * Number: pad * Object: sameType, toString, mapToArray, mergeDeep, toDescriptor, toDescriptors, invoke * String: startsWith, endsWith, indent, trimLeftStr, trimRightStr, pad, format Fixed: * Object.extend does now prototypal extend as exptected * Object.merge now tries to overwrite only configurable properties * Function.flip Improved: * Faster List.toArray * Better global retrieval * Functionalized all Function methods * Renamed bindApply and bindCall to applyBind and callBind * Removed Function.inherit (as it's unintuitive curry clone) * Straightforward logic in Function.k * Fixed naming of some tests files (letter case issue) * Renamed Function.saturate into Function.lock * String.dashToCamelCase digits support * Strings now considered as List objects * Improved List.compact * Concise logic for List.concat * Test wit TAD in clean ES5 context v0.5.1 -- 2011.07.11 * Function's bindBind, bindCall and bindApply now more versatile v0.5.0 -- 2011.07.07 * Removed Object.is and List.apply * Renamed Object.plain.is to Object.plain.isPlainObject (keep naming convention consistent) * Improved documentation v0.4.0 -- 2011.07.05 * Take most functions on Object to Object.plain to keep them away from object descriptors * Object functions with ES5 standard in mind (object descriptors) v0.3.0 -- 2011.06.24 * New functions * Consistent file naming (dash instead of camelCase) v0.2.1 -- 2011.05.28 * Renamed Functions.K and Function.S to to lowercase versions (use consistent naming) v0.2.0 -- 2011.05.28 * Renamed Array folder to List (as its generic functions for array-like objects) * Added Makefile * Added various functions v0.1.0 -- 2011.05.24 * Initial version es5-ext-0.10.30/LICENSE000066400000000000000000000021171315003545300141520ustar00rootroot00000000000000The MIT License (MIT) Copyright (C) 2011-2017 Mariusz Nowak (www.medikoo.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. es5-ext-0.10.30/README.md000066400000000000000000001141461315003545300144320ustar00rootroot00000000000000# es5-ext ## ECMAScript 5 extensions ### (with respect to ECMAScript 6 standard) Shims for upcoming ES6 standard and other goodies implemented strictly with ECMAScript conventions in mind. It's designed to be used in compliant ECMAScript 5 or ECMAScript 6 environments. Older environments are not supported, although most of the features should work with correct ECMAScript 5 shim on board. When used in ECMAScript 6 environment, native implementation (if valid) takes precedence over shims. ### Installation $ npm install es5-ext To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/) ### Usage #### ECMAScript 6 features You can force ES6 features to be implemented in your environment, e.g. following will assign `from` function to `Array` (only if it's not implemented already). ```javascript require('es5-ext/array/from/implement'); Array.from('foo'); // ['f', 'o', 'o'] ``` You can also access shims directly, without fixing native objects. Following will return native `Array.from` if it's available and fallback to shim if it's not. ```javascript var aFrom = require('es5-ext/array/from'); aFrom('foo'); // ['f', 'o', 'o'] ``` If you want to use shim unconditionally (even if native implementation exists) do: ```javascript var aFrom = require('es5-ext/array/from/shim'); aFrom('foo'); // ['f', 'o', 'o'] ``` ##### List of ES6 shims It's about properties introduced with ES6 and those that have been updated in new spec. - `Array.from` -> `require('es5-ext/array/from')` - `Array.of` -> `require('es5-ext/array/of')` - `Array.prototype.concat` -> `require('es5-ext/array/#/concat')` - `Array.prototype.copyWithin` -> `require('es5-ext/array/#/copy-within')` - `Array.prototype.entries` -> `require('es5-ext/array/#/entries')` - `Array.prototype.fill` -> `require('es5-ext/array/#/fill')` - `Array.prototype.filter` -> `require('es5-ext/array/#/filter')` - `Array.prototype.find` -> `require('es5-ext/array/#/find')` - `Array.prototype.findIndex` -> `require('es5-ext/array/#/find-index')` - `Array.prototype.keys` -> `require('es5-ext/array/#/keys')` - `Array.prototype.map` -> `require('es5-ext/array/#/map')` - `Array.prototype.slice` -> `require('es5-ext/array/#/slice')` - `Array.prototype.splice` -> `require('es5-ext/array/#/splice')` - `Array.prototype.values` -> `require('es5-ext/array/#/values')` - `Array.prototype[@@iterator]` -> `require('es5-ext/array/#/@@iterator')` - `Math.acosh` -> `require('es5-ext/math/acosh')` - `Math.asinh` -> `require('es5-ext/math/asinh')` - `Math.atanh` -> `require('es5-ext/math/atanh')` - `Math.cbrt` -> `require('es5-ext/math/cbrt')` - `Math.clz32` -> `require('es5-ext/math/clz32')` - `Math.cosh` -> `require('es5-ext/math/cosh')` - `Math.exmp1` -> `require('es5-ext/math/expm1')` - `Math.fround` -> `require('es5-ext/math/fround')` - `Math.hypot` -> `require('es5-ext/math/hypot')` - `Math.imul` -> `require('es5-ext/math/imul')` - `Math.log1p` -> `require('es5-ext/math/log1p')` - `Math.log2` -> `require('es5-ext/math/log2')` - `Math.log10` -> `require('es5-ext/math/log10')` - `Math.sign` -> `require('es5-ext/math/sign')` - `Math.signh` -> `require('es5-ext/math/signh')` - `Math.tanh` -> `require('es5-ext/math/tanh')` - `Math.trunc` -> `require('es5-ext/math/trunc')` - `Number.EPSILON` -> `require('es5-ext/number/epsilon')` - `Number.MAX_SAFE_INTEGER` -> `require('es5-ext/number/max-safe-integer')` - `Number.MIN_SAFE_INTEGER` -> `require('es5-ext/number/min-safe-integer')` - `Number.isFinite` -> `require('es5-ext/number/is-finite')` - `Number.isInteger` -> `require('es5-ext/number/is-integer')` - `Number.isNaN` -> `require('es5-ext/number/is-nan')` - `Number.isSafeInteger` -> `require('es5-ext/number/is-safe-integer')` - `Object.assign` -> `require('es5-ext/object/assign')` - `Object.keys` -> `require('es5-ext/object/keys')` - `Object.setPrototypeOf` -> `require('es5-ext/object/set-prototype-of')` - `RegExp.prototype.match` -> `require('es5-ext/reg-exp/#/match')` - `RegExp.prototype.replace` -> `require('es5-ext/reg-exp/#/replace')` - `RegExp.prototype.search` -> `require('es5-ext/reg-exp/#/search')` - `RegExp.prototype.split` -> `require('es5-ext/reg-exp/#/split')` - `RegExp.prototype.sticky` -> Implement with `require('es5-ext/reg-exp/#/sticky/implement')`, use as function with `require('es5-ext/reg-exp/#/is-sticky')` - `RegExp.prototype.unicode` -> Implement with `require('es5-ext/reg-exp/#/unicode/implement')`, use as function with `require('es5-ext/reg-exp/#/is-unicode')` - `String.fromCodePoint` -> `require('es5-ext/string/from-code-point')` - `String.raw` -> `require('es5-ext/string/raw')` - `String.prototype.codePointAt` -> `require('es5-ext/string/#/code-point-at')` - `String.prototype.contains` -> `require('es5-ext/string/#/contains')` - `String.prototype.endsWith` -> `require('es5-ext/string/#/ends-with')` - `String.prototype.normalize` -> `require('es5-ext/string/#/normalize')` - `String.prototype.repeat` -> `require('es5-ext/string/#/repeat')` - `String.prototype.startsWith` -> `require('es5-ext/string/#/starts-with')` - `String.prototype[@@iterator]` -> `require('es5-ext/string/#/@@iterator')` #### Non ECMAScript standard features __es5-ext__ provides also other utils, and implements them as if they were proposed for a standard. It mostly offers methods (not functions) which can directly be assigned to native prototypes: ```javascript Object.defineProperty(Function.prototype, 'partial', { value: require('es5-ext/function/#/partial'), configurable: true, enumerable: false, writable: true }); Object.defineProperty(Array.prototype, 'flatten', { value: require('es5-ext/array/#/flatten'), configurable: true, enumerable: false, writable: true }); Object.defineProperty(String.prototype, 'capitalize', { value: require('es5-ext/string/#/capitalize'), configurable: true, enumerable: false, writable: true }); ``` See [es5-extend](https://github.com/wookieb/es5-extend#es5-extend), a great utility that automatically will extend natives for you. __Important:__ Remember to __not__ extend natives in scope of generic reusable packages (e.g. ones you intend to publish to npm). Extending natives is fine __only__ if you're the _owner_ of the global scope, so e.g. in final project you lead development of. When you're in situation when native extensions are not good idea, then you should use methods indirectly: ```javascript var flatten = require('es5-ext/array/#/flatten'); flatten.call([1, [2, [3, 4]]]); // [1, 2, 3, 4] ``` for better convenience you can turn methods into functions: ```javascript var call = Function.prototype.call var flatten = call.bind(require('es5-ext/array/#/flatten')); flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4] ``` You can configure custom toolkit (like [underscorejs](http://underscorejs.org/)), and use it throughout your application ```javascript var util = {}; util.partial = call.bind(require('es5-ext/function/#/partial')); util.flatten = call.bind(require('es5-ext/array/#/flatten')); util.startsWith = call.bind(require('es5-ext/string/#/starts-with')); util.flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4] ``` As with native ones most methods are generic and can be run on any type of object. ## API ### Global extensions #### global _(es5-ext/global)_ Object that represents global scope ### Array Constructor extensions #### from(arrayLike[, mapFn[, thisArg]]) _(es5-ext/array/from)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from). Returns array representation of _iterable_ or _arrayLike_. If _arrayLike_ is an instance of array, its copy is returned. #### generate([length[, …fill]]) _(es5-ext/array/generate)_ Generate an array of pre-given _length_ built of repeated arguments. #### isPlainArray(x) _(es5-ext/array/is-plain-array)_ Returns true if object is plain array (not instance of one of the Array's extensions). #### of([…items]) _(es5-ext/array/of)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of). Create an array from given arguments. #### toArray(obj) _(es5-ext/array/to-array)_ Returns array representation of `obj`. If `obj` is already an array, `obj` is returned back. #### validArray(obj) _(es5-ext/array/valid-array)_ Returns `obj` if it's an array, otherwise throws `TypeError` ### Array Prototype extensions #### arr.binarySearch(compareFn) _(es5-ext/array/#/binary-search)_ In __sorted__ list search for index of item for which _compareFn_ returns value closest to _0_. It's variant of binary search algorithm #### arr.clear() _(es5-ext/array/#/clear)_ Clears the array #### arr.compact() _(es5-ext/array/#/compact)_ Returns a copy of the context with all non-values (`null` or `undefined`) removed. #### arr.concat() _(es5-ext/array/#/concat)_ [_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.concat). ES6's version of `concat`. Supports `isConcatSpreadable` symbol, and returns array of same type as the context. #### arr.contains(searchElement[, position]) _(es5-ext/array/#/contains)_ Whether list contains the given value. #### arr.copyWithin(target, start[, end]) _(es5-ext/array/#/copy-within)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.copywithin). #### arr.diff(other) _(es5-ext/array/#/diff)_ Returns the array of elements that are present in context list but not present in other list. #### arr.eIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-index-of)_ _egal_ version of `indexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision #### arr.eLastIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-last-index-of)_ _egal_ version of `lastIndexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision #### arr.entries() _(es5-ext/array/#/entries)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.entries). Returns iterator object, which traverses the array. Each value is represented with an array, where first value is an index and second is corresponding to index value. #### arr.exclusion([…lists]]) _(es5-ext/array/#/exclusion)_ Returns the array of elements that are found only in one of the lists (either context list or list provided in arguments). #### arr.fill(value[, start, end]) _(es5-ext/array/#/fill)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.fill). #### arr.filter(callback[, thisArg]) _(es5-ext/array/#/filter)_ [_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.filter). ES6's version of `filter`, returns array of same type as the context. #### arr.find(predicate[, thisArg]) _(es5-ext/array/#/find)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.find). Return first element for which given function returns true #### arr.findIndex(predicate[, thisArg]) _(es5-ext/array/#/find-index)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.findindex). Return first index for which given function returns true #### arr.first() _(es5-ext/array/#/first)_ Returns value for first defined index #### arr.firstIndex() _(es5-ext/array/#/first-index)_ Returns first declared index of the array #### arr.flatten() _(es5-ext/array/#/flatten)_ Returns flattened version of the array #### arr.forEachRight(cb[, thisArg]) _(es5-ext/array/#/for-each-right)_ `forEach` starting from last element #### arr.group(cb[, thisArg]) _(es5-ext/array/#/group)_ Group list elements by value returned by _cb_ function #### arr.indexesOf(searchElement[, fromIndex]) _(es5-ext/array/#/indexes-of)_ Returns array of all indexes of given value #### arr.intersection([…lists]) _(es5-ext/array/#/intersection)_ Computes the array of values that are the intersection of all lists (context list and lists given in arguments) #### arr.isCopy(other) _(es5-ext/array/#/is-copy)_ Returns true if both context and _other_ lists have same content #### arr.isUniq() _(es5-ext/array/#/is-uniq)_ Returns true if all values in array are unique #### arr.keys() _(es5-ext/array/#/keys)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.keys). Returns iterator object, which traverses all array indexes. #### arr.last() _(es5-ext/array/#/last)_ Returns value of last defined index #### arr.lastIndex() _(es5-ext/array/#/last)_ Returns last defined index of the array #### arr.map(callback[, thisArg]) _(es5-ext/array/#/map)_ [_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.map). ES6's version of `map`, returns array of same type as the context. #### arr.remove(value[, …valuen]) _(es5-ext/array/#/remove)_ Remove values from the array #### arr.separate(sep) _(es5-ext/array/#/separate)_ Returns array with items separated with `sep` value #### arr.slice(callback[, thisArg]) _(es5-ext/array/#/slice)_ [_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.slice). ES6's version of `slice`, returns array of same type as the context. #### arr.someRight(cb[, thisArg]) _(es5-ext/array/#/someRight)_ `some` starting from last element #### arr.splice(callback[, thisArg]) _(es5-ext/array/#/splice)_ [_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.splice). ES6's version of `splice`, returns array of same type as the context. #### arr.uniq() _(es5-ext/array/#/uniq)_ Returns duplicate-free version of the array #### arr.values() _(es5-ext/array/#/values)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.values). Returns iterator object which traverses all array values. #### arr[@@iterator] _(es5-ext/array/#/@@iterator)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype-@@iterator). Returns iterator object which traverses all array values. ### Boolean Constructor extensions #### isBoolean(x) _(es5-ext/boolean/is-boolean)_ Whether value is boolean ### Date Constructor extensions #### isDate(x) _(es5-ext/date/is-date)_ Whether value is date instance #### validDate(x) _(es5-ext/date/valid-date)_ If given object is not date throw TypeError in other case return it. ### Date Prototype extensions #### date.copy(date) _(es5-ext/date/#/copy)_ Returns a copy of the date object #### date.daysInMonth() _(es5-ext/date/#/days-in-month)_ Returns number of days of date's month #### date.floorDay() _(es5-ext/date/#/floor-day)_ Sets the date time to 00:00:00.000 #### date.floorMonth() _(es5-ext/date/#/floor-month)_ Sets date day to 1 and date time to 00:00:00.000 #### date.floorYear() _(es5-ext/date/#/floor-year)_ Sets date month to 0, day to 1 and date time to 00:00:00.000 #### date.format(pattern) _(es5-ext/date/#/format)_ Formats date up to given string. Supported patterns: * `%Y` - Year with century, 1999, 2003 * `%y` - Year without century, 99, 03 * `%m` - Month, 01..12 * `%d` - Day of the month 01..31 * `%H` - Hour (24-hour clock), 00..23 * `%M` - Minute, 00..59 * `%S` - Second, 00..59 * `%L` - Milliseconds, 000..999 ### Error Constructor extensions #### custom(message/*, code, ext*/) _(es5-ext/error/custom)_ Creates custom error object, optinally extended with `code` and other extension properties (provided with `ext` object) #### isError(x) _(es5-ext/error/is-error)_ Whether value is an error (instance of `Error`). #### validError(x) _(es5-ext/error/valid-error)_ If given object is not error throw TypeError in other case return it. ### Error Prototype extensions #### err.throw() _(es5-ext/error/#/throw)_ Throws error ### Function Constructor extensions Some of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele #### constant(x) _(es5-ext/function/constant)_ Returns a constant function that returns pregiven argument _k(x)(y) =def x_ #### identity(x) _(es5-ext/function/identity)_ Identity function. Returns first argument _i(x) =def x_ #### invoke(name[, …args]) _(es5-ext/function/invoke)_ Returns a function that takes an object as an argument, and applies object's _name_ method to arguments. _name_ can be name of the method or method itself. _invoke(name, …args)(object, …args2) =def object\[name\]\(…args, …args2\)_ #### isArguments(x) _(es5-ext/function/is-arguments)_ Whether value is arguments object #### isFunction(arg) _(es5-ext/function/is-function)_ Whether value is instance of function #### noop() _(es5-ext/function/noop)_ No operation function #### pluck(name) _(es5-ext/function/pluck)_ Returns a function that takes an object, and returns the value of its _name_ property _pluck(name)(obj) =def obj[name]_ #### validFunction(arg) _(es5-ext/function/valid-function)_ If given object is not function throw TypeError in other case return it. ### Function Prototype extensions Some of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele #### fn.compose([…fns]) _(es5-ext/function/#/compose)_ Applies the functions in reverse argument-list order. _f1.compose(f2, f3, f4)(…args) =def f1(f2(f3(f4(…arg))))_ #### fn.copy() _(es5-ext/function/#/copy)_ Produces copy of given function #### fn.curry([n]) _(es5-ext/function/#/curry)_ Invoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function. If _n_ is not provided then it defaults to context function length _f.curry(4)(arg1, arg2)(arg3)(arg4) =def f(arg1, args2, arg3, arg4)_ #### fn.lock([…args]) _(es5-ext/function/#/lock)_ Returns a function that applies the underlying function to _args_, and ignores its own arguments. _f.lock(…args)(…args2) =def f(…args)_ _Named after it's counterpart in Google Closure_ #### fn.not() _(es5-ext/function/#/not)_ Returns a function that returns boolean negation of value returned by underlying function. _f.not()(…args) =def !f(…args)_ #### fn.partial([…args]) _(es5-ext/function/#/partial)_ Returns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args. _f.partial(…args1)(…args2) =def f(…args1, …args2)_ #### fn.spread() _(es5-ext/function/#/spread)_ Returns a function that applies underlying function with first list argument _f.match()(args) =def f.apply(null, args)_ #### fn.toStringTokens() _(es5-ext/function/#/to-string-tokens)_ Serializes function into two (arguments and body) string tokens. Result is plain object with `args` and `body` properties. ### Math extensions #### acosh(x) _(es5-ext/math/acosh)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.acosh). #### asinh(x) _(es5-ext/math/asinh)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.asinh). #### atanh(x) _(es5-ext/math/atanh)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.atanh). #### cbrt(x) _(es5-ext/math/cbrt)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cbrt). #### clz32(x) _(es5-ext/math/clz32)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.clz32). #### cosh(x) _(es5-ext/math/cosh)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cosh). #### expm1(x) _(es5-ext/math/expm1)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.expm1). #### fround(x) _(es5-ext/math/fround)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.fround). #### hypot([…values]) _(es5-ext/math/hypot)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.hypot). #### imul(x, y) _(es5-ext/math/imul)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul). #### log1p(x) _(es5-ext/math/log1p)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log1p). #### log2(x) _(es5-ext/math/log2)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log2). #### log10(x) _(es5-ext/math/log10)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log10). #### sign(x) _(es5-ext/math/sign)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sign). #### sinh(x) _(es5-ext/math/sinh)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sinh). #### tanh(x) _(es5-ext/math/tanh)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.tanh). #### trunc(x) _(es5-ext/math/trunc)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.trunc). ### Number Constructor extensions #### EPSILON _(es5-ext/number/epsilon)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.epsilon). The difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16. #### isFinite(x) _(es5-ext/number/is-finite)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite). Whether value is finite. Differs from global isNaN that it doesn't do type coercion. #### isInteger(x) _(es5-ext/number/is-integer)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger). Whether value is integer. #### isNaN(x) _(es5-ext/number/is-nan)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isnan). Whether value is NaN. Differs from global isNaN that it doesn't do type coercion. #### isNumber(x) _(es5-ext/number/is-number)_ Whether given value is number #### isSafeInteger(x) _(es5-ext/number/is-safe-integer)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger). #### MAX_SAFE_INTEGER _(es5-ext/number/max-safe-integer)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.maxsafeinteger). The value of Number.MAX_SAFE_INTEGER is 9007199254740991. #### MIN_SAFE_INTEGER _(es5-ext/number/min-safe-integer)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.minsafeinteger). The value of Number.MIN_SAFE_INTEGER is -9007199254740991 (253-1). #### toInteger(x) _(es5-ext/number/to-integer)_ Converts value to integer #### toPosInteger(x) _(es5-ext/number/to-pos-integer)_ Converts value to positive integer. If provided value is less than 0, then 0 is returned #### toUint32(x) _(es5-ext/number/to-uint32)_ Converts value to unsigned 32 bit integer. This type is used for array lengths. See: http://www.2ality.com/2012/02/js-integers.html ### Number Prototype extensions #### num.pad(length[, precision]) _(es5-ext/number/#/pad)_ Pad given number with zeros. Returns string ### Object Constructor extensions #### assign(target, source[, …sourcen]) _(es5-ext/object/assign)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign). Extend _target_ by enumerable own properties of other objects. If properties are already set on target object, they will be overwritten. #### clear(obj) _(es5-ext/object/clear)_ Remove all enumerable own properties of the object #### compact(obj) _(es5-ext/object/compact)_ Returns copy of the object with all enumerable properties that have no falsy values #### compare(obj1, obj2) _(es5-ext/object/compare)_ Universal cross-type compare function. To be used for e.g. array sort. #### copy(obj) _(es5-ext/object/copy)_ Returns copy of the object with all enumerable properties. #### copyDeep(obj) _(es5-ext/object/copy-deep)_ Returns deep copy of the object with all enumerable properties. #### count(obj) _(es5-ext/object/count)_ Counts number of enumerable own properties on object #### create(obj[, properties]) _(es5-ext/object/create)_ `Object.create` alternative that provides workaround for [V8 issue](http://code.google.com/p/v8/issues/detail?id=2804). When `null` is provided as a prototype, it's substituted with specially prepared object that derives from Object.prototype but has all Object.prototype properties shadowed with undefined. It's quirky solution that allows us to have plain objects with no truthy properties but with turnable prototype. Use only for objects that you plan to switch prototypes of and be aware of limitations of this workaround. #### eq(x, y) _(es5-ext/object/eq)_ Whether two values are equal, using [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm. #### every(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/every)_ Analogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function. Optionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key). #### filter(obj, cb[, thisArg]) _(es5-ext/object/filter)_ Analogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value. #### firstKey(obj) _(es5-ext/object/first-key)_ Returns first enumerable key of the object, as keys are unordered by specification, it can be any key of an object. #### flatten(obj) _(es5-ext/object/flatten)_ Returns new object, with flatten properties of input object _flatten({ a: { b: 1 }, c: { d: 1 } }) =def { b: 1, d: 1 }_ #### forEach(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/for-each)_ Analogous to Array.prototype.forEach. Calls a function for each key-value pair found in object Optionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key). #### getPropertyNames() _(es5-ext/object/get-property-names)_ Get all (not just own) property names of the object #### is(x, y) _(es5-ext/object/is)_ Whether two values are equal, using [_SameValue_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm. #### isArrayLike(x) _(es5-ext/object/is-array-like)_ Whether object is array-like object #### isCopy(x, y) _(es5-ext/object/is-copy)_ Two values are considered a copy of same value when all of their own enumerable properties have same values. #### isCopyDeep(x, y) _(es5-ext/object/is-copy-deep)_ Deep comparision of objects #### isEmpty(obj) _(es5-ext/object/is-empty)_ True if object doesn't have any own enumerable property #### isObject(arg) _(es5-ext/object/is-object)_ Whether value is not primitive #### isPlainObject(arg) _(es5-ext/object/is-plain-object)_ Whether object is plain object, its protototype should be Object.prototype and it cannot be host object. #### keyOf(obj, searchValue) _(es5-ext/object/key-of)_ Search object for value #### keys(obj) _(es5-ext/object/keys)_ [_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys). ES6's version of `keys`, doesn't throw on primitive input #### map(obj, cb[, thisArg]) _(es5-ext/object/map)_ Analogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object. #### mapKeys(obj, cb[, thisArg]) _(es5-ext/object/map-keys)_ Create new object with same values, but remapped keys #### mixin(target, source) _(es5-ext/object/mixin)_ Extend _target_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they're not configurable and cannot be overwritten). _It was for a moment part of ECMAScript 6 draft._ #### mixinPrototypes(target, …source]) _(es5-ext/object/mixin-prototypes)_ Extends _target_, with all source and source's prototype properties. Useful as an alternative for `setPrototypeOf` in environments in which it cannot be shimmed (no `__proto__` support). #### normalizeOptions(options) _(es5-ext/object/normalize-options)_ Normalizes options object into flat plain object. Useful for functions in which we either need to keep options object for future reference or need to modify it for internal use. - It never returns input `options` object back (always a copy is created) - `options` can be undefined in such case empty plain object is returned. - Copies all enumerable properties found down prototype chain. #### primitiveSet([…names]) _(es5-ext/object/primitive-set)_ Creates `null` prototype based plain object, and sets on it all property names provided in arguments to true. #### safeTraverse(obj[, …names]) _(es5-ext/object/safe-traverse)_ Safe navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator #### serialize(value) _(es5-ext/object/serialize)_ Serialize value into string. Differs from [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that it serializes also dates, functions and regular expresssions. #### setPrototypeOf(object, proto) _(es5-ext/object/set-prototype-of)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof). If native version is not provided, it depends on existence of `__proto__` functionality, if it's missing, `null` instead of function is exposed. #### some(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/some)_ Analogous to Array.prototype.some Returns true if any key-value pair satisfies the provided testing function. Optionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key). #### toArray(obj[, cb[, thisArg[, compareFn]]]) _(es5-ext/object/to-array)_ Creates an array of results of calling a provided function on every key-value pair in this object. Optionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key). #### unserialize(str) _(es5-ext/object/unserialize)_ Userializes value previously serialized with [serialize](#serializevalue-es5-extobjectserialize) #### validCallable(x) _(es5-ext/object/valid-callable)_ If given object is not callable throw TypeError in other case return it. #### validObject(x) _(es5-ext/object/valid-object)_ Throws error if given value is not an object, otherwise it is returned. #### validValue(x) _(es5-ext/object/valid-value)_ Throws error if given value is `null` or `undefined`, otherwise returns value. ### RegExp Constructor extensions #### escape(str) _(es5-ext/reg-exp/escape)_ Escapes string to be used in regular expression #### isRegExp(x) _(es5-ext/reg-exp/is-reg-exp)_ Whether object is regular expression #### validRegExp(x) _(es5-ext/reg-exp/valid-reg-exp)_ If object is regular expression it is returned, otherwise TypeError is thrown. ### RegExp Prototype extensions #### re.isSticky(x) _(es5-ext/reg-exp/#/is-sticky)_ Whether regular expression has `sticky` flag. It's to be used as counterpart to [regExp.sticky](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.sticky) if it's not implemented. #### re.isUnicode(x) _(es5-ext/reg-exp/#/is-unicode)_ Whether regular expression has `unicode` flag. It's to be used as counterpart to [regExp.unicode](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.unicode) if it's not implemented. #### re.match(string) _(es5-ext/reg-exp/#/match)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.match). #### re.replace(string, replaceValue) _(es5-ext/reg-exp/#/replace)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.replace). #### re.search(string) _(es5-ext/reg-exp/#/search)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.search). #### re.split(string) _(es5-ext/reg-exp/#/search)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.split). #### re.sticky _(es5-ext/reg-exp/#/sticky/implement)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.sticky). It's a getter, so only `implement` and `is-implemented` modules are provided. #### re.unicode _(es5-ext/reg-exp/#/unicode/implement)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.unicode). It's a getter, so only `implement` and `is-implemented` modules are provided. ### String Constructor extensions #### formatMethod(fMap) _(es5-ext/string/format-method)_ Creates format method. It's used e.g. to create `Date.prototype.format` method #### fromCodePoint([…codePoints]) _(es5-ext/string/from-code-point)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.fromcodepoint) #### isString(x) _(es5-ext/string/is-string)_ Whether object is string #### randomUniq() _(es5-ext/string/random-uniq)_ Returns randomly generated id, with guarantee of local uniqueness (no same id will be returned twice) #### raw(callSite[, …substitutions]) _(es5-ext/string/raw)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.raw) ### String Prototype extensions #### str.at(pos) _(es5-ext/string/#/at)_ _Proposed for ECMAScript 6/7 standard, but not (yet) in a draft_ Returns a string at given position in Unicode-safe manner. Based on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.at). #### str.camelToHyphen() _(es5-ext/string/#/camel-to-hyphen)_ Convert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree. Useful when converting names from js property convention into filename convention. #### str.capitalize() _(es5-ext/string/#/capitalize)_ Capitalize first character of a string #### str.caseInsensitiveCompare(str) _(es5-ext/string/#/case-insensitive-compare)_ Case insensitive compare #### str.codePointAt(pos) _(es5-ext/string/#/code-point-at)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.codepointat) Based on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.codePointAt). #### str.contains(searchString[, position]) _(es5-ext/string/#/contains)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.contains) Whether string contains given string. #### str.endsWith(searchString[, endPosition]) _(es5-ext/string/#/ends-with)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith). Whether strings ends with given string #### str.hyphenToCamel() _(es5-ext/string/#/hyphen-to-camel)_ Convert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree. Useful when converting names from filename convention to js property name convention. #### str.indent(str[, count]) _(es5-ext/string/#/indent)_ Indents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times). #### str.last() _(es5-ext/string/#/last)_ Return last character #### str.normalize([form]) _(es5-ext/string/#/normalize)_ [_Introduced with ECMAScript 6_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize). Returns the Unicode Normalization Form of a given string. Based on Matsuza's version. Code used for integrated shim can be found at [github.com/walling/unorm](https://github.com/walling/unorm/blob/master/lib/unorm.js) #### str.pad(fill[, length]) _(es5-ext/string/#/pad)_ Pad string with _fill_. If _length_ si given than _fill_ is reapated _length_ times. If _length_ is negative then pad is applied from right. #### str.repeat(n) _(es5-ext/string/#/repeat)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.repeat). Repeat given string _n_ times #### str.plainReplace(search, replace) _(es5-ext/string/#/plain-replace)_ Simple `replace` version. Doesn't support regular expressions. Replaces just first occurrence of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case). #### str.plainReplaceAll(search, replace) _(es5-ext/string/#/plain-replace-all)_ Simple `replace` version. Doesn't support regular expressions. Replaces all occurrences of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case). #### str.startsWith(searchString[, position]) _(es5-ext/string/#/starts-with)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith). Whether strings starts with given string #### str[@@iterator] _(es5-ext/string/#/@@iterator)_ [_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator). Returns iterator object which traverses all string characters (with respect to unicode symbols) ### Tests [![Build Status](https://img.shields.io/circleci/project/github/medikoo/es5-ext.svg)](https://circleci.com/gh/medikoo/es5-ext) $ npm test es5-ext-0.10.30/appveyor.yml000066400000000000000000000011011315003545300155250ustar00rootroot00000000000000# Test against the latest version of this Node.js version environment: matrix: # node.js - nodejs_version: "0.12" - nodejs_version: "4" - nodejs_version: "6" - nodejs_version: "8" # Install scripts. (runs after repo cloning) install: # Get the latest stable version of Node.js or io.js - ps: Install-Product node $env:nodejs_version # install modules - npm install # Post-install test scripts. test_script: # Output useful info for debugging. - node --version - npm --version # run tests - npm test # Don't actually build. build: off es5-ext-0.10.30/array/000077500000000000000000000000001315003545300142625ustar00rootroot00000000000000es5-ext-0.10.30/array/#/000077500000000000000000000000001315003545300144045ustar00rootroot00000000000000es5-ext-0.10.30/array/#/@@iterator/000077500000000000000000000000001315003545300164355ustar00rootroot00000000000000es5-ext-0.10.30/array/#/@@iterator/implement.js000066400000000000000000000003361315003545300207670ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, require("es6-symbol").iterator, { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/@@iterator/index.js000066400000000000000000000002061315003545300201000ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype[require("es6-symbol").iterator] : require("./shim"); es5-ext-0.10.30/array/#/@@iterator/is-implemented.js000066400000000000000000000007411315003545300217110ustar00rootroot00000000000000"use strict"; var iteratorSymbol = require("es6-symbol").iterator; module.exports = function () { var arr = ["foo", 1], iterator, result; if (typeof arr[iteratorSymbol] !== "function") return false; iterator = arr[iteratorSymbol](); if (!iterator) return false; if (typeof iterator.next !== "function") return false; result = iterator.next(); if (!result) return false; if (result.value !== "foo") return false; if (result.done !== false) return false; return true; }; es5-ext-0.10.30/array/#/@@iterator/shim.js000066400000000000000000000000731315003545300177330ustar00rootroot00000000000000"use strict"; module.exports = require("../values/shim"); es5-ext-0.10.30/array/#/_compare-by-length.js000066400000000000000000000003371315003545300204210ustar00rootroot00000000000000// Used internally to sort array of lists by length "use strict"; var toPosInt = require("../../number/to-pos-integer"); module.exports = function (arr1, arr2) { return toPosInt(arr1.length) - toPosInt(arr2.length); }; es5-ext-0.10.30/array/#/binary-search.js000066400000000000000000000011311315003545300174650ustar00rootroot00000000000000"use strict"; var toPosInt = require("../../number/to-pos-integer") , callable = require("../../object/valid-callable") , value = require("../../object/valid-value") , floor = Math.floor; module.exports = function (compareFn) { var length, low, high, middle; value(this); callable(compareFn); length = toPosInt(this.length); low = 0; high = length - 1; while (low <= high) { middle = floor((low + high) / 2); if (compareFn(this[middle]) < 0) high = middle - 1; else low = middle + 1; } if (high < 0) return 0; if (high >= length) return length - 1; return high; }; es5-ext-0.10.30/array/#/clear.js000066400000000000000000000004221315003545300160260ustar00rootroot00000000000000// Inspired by Google Closure: // http://closure-library.googlecode.com/svn/docs/ // closure_goog_array_array.js.html#goog.array.clear "use strict"; var value = require("../../object/valid-value"); module.exports = function () { value(this).length = 0; return this; }; es5-ext-0.10.30/array/#/compact.js000066400000000000000000000004241315003545300163700ustar00rootroot00000000000000// Inspired by: http://documentcloud.github.com/underscore/#compact "use strict"; var isValue = require("../../object/is-value"); var filter = Array.prototype.filter; module.exports = function () { return filter.call(this, function (val) { return isValue(val); }); }; es5-ext-0.10.30/array/#/concat/000077500000000000000000000000001315003545300156535ustar00rootroot00000000000000es5-ext-0.10.30/array/#/concat/implement.js000066400000000000000000000003011315003545300201750ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "concat", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/concat/index.js000066400000000000000000000001561315003545300173220ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.concat : require("./shim"); es5-ext-0.10.30/array/#/concat/is-implemented.js000066400000000000000000000002451315003545300211260ustar00rootroot00000000000000"use strict"; var SubArray = require("../../_sub-array-dummy-safe"); module.exports = function () { return (new SubArray()).concat("foo") instanceof SubArray; }; es5-ext-0.10.30/array/#/concat/shim.js000066400000000000000000000024131315003545300171510ustar00rootroot00000000000000"use strict"; var isPlainArray = require("../../is-plain-array") , toPosInt = require("../../../number/to-pos-integer") , isObject = require("../../../object/is-object") , isConcatSpreadable = require("es6-symbol").isConcatSpreadable , isArray = Array.isArray , concat = Array.prototype.concat , forEach = Array.prototype.forEach , isSpreadable; isSpreadable = function (value) { if (!value) return false; if (!isObject(value)) return false; if (value[isConcatSpreadable] !== undefined) { return Boolean(value[isConcatSpreadable]); } return isArray(value); }; // eslint-disable-next-line no-unused-vars module.exports = function (item /*, …items*/) { var result; if (!this || !isArray(this) || isPlainArray(this)) { return concat.apply(this, arguments); } result = new this.constructor(); if (isSpreadable(this)) { forEach.call(this, function (val, i) { result[i] = val; }); } else { result[0] = this; } forEach.call(arguments, function (arg) { var base; if (isSpreadable(arg)) { base = result.length; result.length += toPosInt(arg.length); forEach.call(arg, function (val, i) { result[base + i] = val; }); return; } result.push(arg); }); return result; }; es5-ext-0.10.30/array/#/contains.js000066400000000000000000000002621315003545300165600ustar00rootroot00000000000000"use strict"; var indexOf = require("./e-index-of"); module.exports = function (searchElement/*, position*/) { return indexOf.call(this, searchElement, arguments[1]) > -1; }; es5-ext-0.10.30/array/#/copy-within/000077500000000000000000000000001315003545300166565ustar00rootroot00000000000000es5-ext-0.10.30/array/#/copy-within/implement.js000066400000000000000000000003101315003545300212000ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "copyWithin", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/copy-within/index.js000066400000000000000000000001621315003545300203220ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.copyWithin : require("./shim"); es5-ext-0.10.30/array/#/copy-within/is-implemented.js000066400000000000000000000002741315003545300221330ustar00rootroot00000000000000"use strict"; module.exports = function () { var arr = [1, 2, 3, 4, 5]; if (typeof arr.copyWithin !== "function") return false; return String(arr.copyWithin(1, 3)) === "1,4,5,4,5"; }; es5-ext-0.10.30/array/#/copy-within/shim.js000066400000000000000000000023001315003545300201470ustar00rootroot00000000000000// Taken from: https://github.com/paulmillr/es6-shim/ "use strict"; var toInteger = require("../../../number/to-integer") , toPosInt = require("../../../number/to-pos-integer") , validValue = require("../../../object/valid-value") , objHasOwnProperty = Object.prototype.hasOwnProperty , max = Math.max , min = Math.min; module.exports = function (target, start /*, end*/) { var arr = validValue(this) , end = arguments[2] , length = toPosInt(arr.length) , to , from , fin , count , direction; target = toInteger(target); start = toInteger(start); end = end === undefined ? length : toInteger(end); to = target < 0 ? max(length + target, 0) : min(target, length); from = start < 0 ? max(length + start, 0) : min(start, length); fin = end < 0 ? max(length + end, 0) : min(end, length); count = min(fin - from, length - to); direction = 1; if (from < to && to < from + count) { direction = -1; from += count - 1; to += count - 1; } while (count > 0) { if (objHasOwnProperty.call(arr, from)) arr[to] = arr[from]; else delete arr[from]; from += direction; to += direction; count -= 1; } return arr; }; es5-ext-0.10.30/array/#/diff.js000066400000000000000000000004521315003545300156530ustar00rootroot00000000000000"use strict"; var value = require("../../object/valid-value") , contains = require("./contains") , filter = Array.prototype.filter; module.exports = function (other) { value(this); value(other); return filter.call(this, function (item) { return !contains.call(other, item); }); }; es5-ext-0.10.30/array/#/e-index-of.js000066400000000000000000000016461315003545300167040ustar00rootroot00000000000000"use strict"; var numberIsNaN = require("../../number/is-nan") , toPosInt = require("../../number/to-pos-integer") , value = require("../../object/valid-value") , indexOf = Array.prototype.indexOf , objHasOwnProperty = Object.prototype.hasOwnProperty , abs = Math.abs , floor = Math.floor; module.exports = function (searchElement /*, fromIndex*/) { var i, length, fromIndex, val; if (!numberIsNaN(searchElement)) return indexOf.apply(this, arguments); length = toPosInt(value(this).length); fromIndex = arguments[1]; if (isNaN(fromIndex)) fromIndex = 0; else if (fromIndex >= 0) fromIndex = floor(fromIndex); else fromIndex = toPosInt(this.length) - floor(abs(fromIndex)); for (i = fromIndex; i < length; ++i) { if (objHasOwnProperty.call(this, i)) { val = this[i]; if (numberIsNaN(val)) return i; // Jslint: ignore } } return -1; }; es5-ext-0.10.30/array/#/e-last-index-of.js000066400000000000000000000016731315003545300176450ustar00rootroot00000000000000"use strict"; var numberIsNaN = require("../../number/is-nan") , toPosInt = require("../../number/to-pos-integer") , value = require("../../object/valid-value") , lastIndexOf = Array.prototype.lastIndexOf , objHasOwnProperty = Object.prototype.hasOwnProperty , abs = Math.abs , floor = Math.floor; module.exports = function (searchElement /*, fromIndex*/) { var i, fromIndex, val; if (!numberIsNaN(searchElement)) { // Jslint: ignore return lastIndexOf.apply(this, arguments); } value(this); fromIndex = arguments[1]; if (isNaN(fromIndex)) fromIndex = toPosInt(this.length) - 1; else if (fromIndex >= 0) fromIndex = floor(fromIndex); else fromIndex = toPosInt(this.length) - floor(abs(fromIndex)); for (i = fromIndex; i >= 0; --i) { if (objHasOwnProperty.call(this, i)) { val = this[i]; if (numberIsNaN(val)) return i; // Jslint: ignore } } return -1; }; es5-ext-0.10.30/array/#/entries/000077500000000000000000000000001315003545300160555ustar00rootroot00000000000000es5-ext-0.10.30/array/#/entries/implement.js000066400000000000000000000003021315003545300204000ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "entries", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/entries/index.js000066400000000000000000000001571315003545300175250ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.entries : require("./shim"); es5-ext-0.10.30/array/#/entries/is-implemented.js000066400000000000000000000007251315003545300213330ustar00rootroot00000000000000"use strict"; module.exports = function () { var arr = [1, "foo"], iterator, result; if (typeof arr.entries !== "function") return false; iterator = arr.entries(); if (!iterator) return false; if (typeof iterator.next !== "function") return false; result = iterator.next(); if (!result || !result.value) return false; if (result.value[0] !== 0) return false; if (result.value[1] !== 1) return false; if (result.done !== false) return false; return true; }; es5-ext-0.10.30/array/#/entries/shim.js000066400000000000000000000002221315003545300173470ustar00rootroot00000000000000"use strict"; var ArrayIterator = require("es6-iterator/array"); module.exports = function () { return new ArrayIterator(this, "key+value"); }; es5-ext-0.10.30/array/#/exclusion.js000066400000000000000000000014451315003545300167570ustar00rootroot00000000000000"use strict"; var value = require("../../object/valid-value") , aFrom = require("../from") , toArray = require("../to-array") , contains = require("./contains") , byLength = require("./_compare-by-length") , filter = Array.prototype.filter , push = Array.prototype.push; module.exports = function (/* …lists*/) { var lists, seen, result; if (!arguments.length) return aFrom(this); push.apply(lists = [this], arguments); lists.forEach(value); seen = []; result = []; lists.sort(byLength).forEach(function (list) { result = result .filter(function (item) { return !contains.call(list, item); }) .concat( filter.call(list, function (item) { return !contains.call(seen, item); }) ); push.apply(seen, toArray(list)); }); return result; }; es5-ext-0.10.30/array/#/fill/000077500000000000000000000000001315003545300153325ustar00rootroot00000000000000es5-ext-0.10.30/array/#/fill/implement.js000066400000000000000000000002771315003545300176700ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "fill", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/fill/index.js000066400000000000000000000001541315003545300167770ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.fill : require("./shim"); es5-ext-0.10.30/array/#/fill/is-implemented.js000066400000000000000000000002721315003545300206050ustar00rootroot00000000000000"use strict"; module.exports = function () { var arr = [1, 2, 3, 4, 5, 6]; if (typeof arr.fill !== "function") return false; return String(arr.fill(-1, -3)) === "1,2,3,-1,-1,-1"; }; es5-ext-0.10.30/array/#/fill/shim.js000066400000000000000000000013611315003545300166310ustar00rootroot00000000000000// Taken from: https://github.com/paulmillr/es6-shim/ "use strict"; var toInteger = require("../../../number/to-integer") , toPosInt = require("../../../number/to-pos-integer") , validValue = require("../../../object/valid-value") , max = Math.max , min = Math.min; module.exports = function (value /*, start, end*/) { var arr = validValue(this) , start = arguments[1] , end = arguments[2] , length = toPosInt(arr.length) , relativeStart , i; start = start === undefined ? 0 : toInteger(start); end = end === undefined ? length : toInteger(end); relativeStart = start < 0 ? max(length + start, 0) : min(start, length); for (i = relativeStart; i < length && i < end; ++i) arr[i] = value; return arr; }; es5-ext-0.10.30/array/#/filter/000077500000000000000000000000001315003545300156715ustar00rootroot00000000000000es5-ext-0.10.30/array/#/filter/implement.js000066400000000000000000000003011315003545300202130ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "filter", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/filter/index.js000066400000000000000000000001561315003545300173400ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.filter : require("./shim"); es5-ext-0.10.30/array/#/filter/is-implemented.js000066400000000000000000000003161315003545300211430ustar00rootroot00000000000000"use strict"; var SubArray = require("../../_sub-array-dummy-safe") , pass = function () { return true; }; module.exports = function () { return (new SubArray()).filter(pass) instanceof SubArray; }; es5-ext-0.10.30/array/#/filter/shim.js000066400000000000000000000012721315003545300171710ustar00rootroot00000000000000"use strict"; var isPlainArray = require("../../is-plain-array") , callable = require("../../../object/valid-callable") , isArray = Array.isArray , filter = Array.prototype.filter , forEach = Array.prototype.forEach , call = Function.prototype.call; module.exports = function (callbackFn /*, thisArg*/) { var result, thisArg, i; if (!this || !isArray(this) || isPlainArray(this)) { return filter.apply(this, arguments); } callable(callbackFn); thisArg = arguments[1]; result = new this.constructor(); i = 0; forEach.call(this, function (val, j, self) { if (call.call(callbackFn, thisArg, val, j, self)) result[i++] = val; }); return result; }; es5-ext-0.10.30/array/#/find-index/000077500000000000000000000000001315003545300164315ustar00rootroot00000000000000es5-ext-0.10.30/array/#/find-index/implement.js000066400000000000000000000003071315003545300207610ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "findIndex", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/find-index/index.js000066400000000000000000000001611315003545300200740ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.findIndex : require("./shim"); es5-ext-0.10.30/array/#/find-index/is-implemented.js000066400000000000000000000003341315003545300217030ustar00rootroot00000000000000"use strict"; var fn = function (value) { return value > 3; }; module.exports = function () { var arr = [1, 2, 3, 4, 5, 6]; if (typeof arr.findIndex !== "function") return false; return arr.findIndex(fn) === 3; }; es5-ext-0.10.30/array/#/find-index/shim.js000066400000000000000000000010341315003545300177250ustar00rootroot00000000000000"use strict"; var callable = require("../../../object/valid-callable") , ensureValue = require("../../../object/valid-value") , some = Array.prototype.some , apply = Function.prototype.apply; module.exports = function (predicate /*, thisArg*/) { var k, self; self = Object(ensureValue(this)); callable(predicate); return some.call( self, function (value, index) { if (apply.call(predicate, this, arguments)) { k = index; return true; } return false; }, arguments[1] ) ? k : -1; }; es5-ext-0.10.30/array/#/find/000077500000000000000000000000001315003545300153245ustar00rootroot00000000000000es5-ext-0.10.30/array/#/find/implement.js000066400000000000000000000002771315003545300176620ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "find", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/find/index.js000066400000000000000000000001541315003545300167710ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.find : require("./shim"); es5-ext-0.10.30/array/#/find/is-implemented.js000066400000000000000000000003221315003545300205730ustar00rootroot00000000000000"use strict"; var fn = function (value) { return value > 3; }; module.exports = function () { var arr = [1, 2, 3, 4, 5, 6]; if (typeof arr.find !== "function") return false; return arr.find(fn) === 4; }; es5-ext-0.10.30/array/#/find/shim.js000066400000000000000000000004021315003545300166160ustar00rootroot00000000000000"use strict"; var findIndex = require("../find-index/shim"); // eslint-disable-next-line no-unused-vars module.exports = function (predicate /*, thisArg*/) { var index = findIndex.apply(this, arguments); return index === -1 ? undefined : this[index]; }; es5-ext-0.10.30/array/#/first-index.js000066400000000000000000000006271315003545300172030ustar00rootroot00000000000000"use strict"; var toPosInt = require("../../number/to-pos-integer") , value = require("../../object/valid-value") , objHasOwnProperty = Object.prototype.hasOwnProperty; module.exports = function () { var i, length; if (!(length = toPosInt(value(this).length))) return null; i = 0; while (!objHasOwnProperty.call(this, i)) { if (++i === length) return null; } return i; }; es5-ext-0.10.30/array/#/first.js000066400000000000000000000002631315003545300160720ustar00rootroot00000000000000"use strict"; var firstIndex = require("./first-index"); module.exports = function () { var i; if ((i = firstIndex.call(this)) !== null) return this[i]; return undefined; }; es5-ext-0.10.30/array/#/flatten.js000066400000000000000000000017031315003545300164000ustar00rootroot00000000000000// Stack grow safe implementation "use strict"; var ensureValue = require("../../object/valid-value") , isArray = Array.isArray , objHasOwnProperty = Object.prototype.hasOwnProperty; module.exports = function () { var input = ensureValue(this), index = 0, remaining, remainingIndexes, length, i, result = []; // Jslint: ignore main: while (input) { length = input.length; for (i = index; i < length; ++i) { if (!objHasOwnProperty.call(input, i)) continue; if (isArray(input[i])) { if (i < length - 1) { // eslint-disable-next-line max-depth if (!remaining) { remaining = []; remainingIndexes = []; } remaining.push(input); remainingIndexes.push(i + 1); } input = input[i]; index = 0; continue main; } result.push(input[i]); } if (remaining) { input = remaining.pop(); index = remainingIndexes.pop(); } else { input = null; } } return result; }; es5-ext-0.10.30/array/#/for-each-right.js000066400000000000000000000011131315003545300175350ustar00rootroot00000000000000"use strict"; var toPosInt = require("../../number/to-pos-integer") , callable = require("../../object/valid-callable") , value = require("../../object/valid-value") , objHasOwnProperty = Object.prototype.hasOwnProperty , call = Function.prototype.call; module.exports = function (cb /*, thisArg*/) { var i, self, thisArg; self = Object(value(this)); callable(cb); thisArg = arguments[1]; for (i = toPosInt(self.length) - 1; i >= 0; --i) { if (objHasOwnProperty.call(self, i)) call.call(cb, thisArg, self[i], i, self); } }; es5-ext-0.10.30/array/#/group.js000066400000000000000000000011461315003545300161000ustar00rootroot00000000000000// Inspired by Underscore's groupBy: // http://documentcloud.github.com/underscore/#groupBy "use strict"; var callable = require("../../object/valid-callable") , value = require("../../object/valid-value") , forEach = Array.prototype.forEach , apply = Function.prototype.apply; module.exports = function (cb /*, thisArg*/) { var result; value(this); callable(cb); result = Object.create(null); forEach.call( this, function (item) { var key = apply.call(cb, this, arguments); if (!result[key]) result[key] = []; result[key].push(item); }, arguments[1] ); return result; }; es5-ext-0.10.30/array/#/index.js000066400000000000000000000024511315003545300160530ustar00rootroot00000000000000"use strict"; module.exports = { "@@iterator": require("./@@iterator"), "binarySearch": require("./binary-search"), "clear": require("./clear"), "compact": require("./compact"), "concat": require("./concat"), "contains": require("./contains"), "copyWithin": require("./copy-within"), "diff": require("./diff"), "eIndexOf": require("./e-index-of"), "eLastIndexOf": require("./e-last-index-of"), "entries": require("./entries"), "exclusion": require("./exclusion"), "fill": require("./fill"), "filter": require("./filter"), "find": require("./find"), "findIndex": require("./find-index"), "first": require("./first"), "firstIndex": require("./first-index"), "flatten": require("./flatten"), "forEachRight": require("./for-each-right"), "keys": require("./keys"), "group": require("./group"), "indexesOf": require("./indexes-of"), "intersection": require("./intersection"), "isCopy": require("./is-copy"), "isEmpty": require("./is-empty"), "isUniq": require("./is-uniq"), "last": require("./last"), "lastIndex": require("./last-index"), "map": require("./map"), "remove": require("./remove"), "separate": require("./separate"), "slice": require("./slice"), "someRight": require("./some-right"), "splice": require("./splice"), "uniq": require("./uniq"), "values": require("./values") }; es5-ext-0.10.30/array/#/indexes-of.js000066400000000000000000000004241315003545300170030ustar00rootroot00000000000000"use strict"; var indexOf = require("./e-index-of"); module.exports = function (value /*, fromIndex*/) { var result = [], i, fromIndex = arguments[1]; while ((i = indexOf.call(this, value, fromIndex)) !== -1) { result.push(i); fromIndex = i + 1; } return result; }; es5-ext-0.10.30/array/#/intersection.js000066400000000000000000000011171315003545300174500ustar00rootroot00000000000000"use strict"; var value = require("../../object/valid-value") , contains = require("./contains") , byLength = require("./_compare-by-length") , filter = Array.prototype.filter , push = Array.prototype.push , slice = Array.prototype.slice; module.exports = function (/* …list*/) { var lists; if (!arguments.length) slice.call(this); push.apply(lists = [this], arguments); lists.forEach(value); lists.sort(byLength); return lists.reduce(function (list1, list2) { return filter.call(list1, function (item) { return contains.call(list2, item); }); }); }; es5-ext-0.10.30/array/#/is-copy.js000066400000000000000000000011421315003545300163230ustar00rootroot00000000000000"use strict"; var toPosInt = require("../../number/to-pos-integer") , eq = require("../../object/eq") , value = require("../../object/valid-value") , objHasOwnProperty = Object.prototype.hasOwnProperty; module.exports = function (other) { var i, length; value(this); value(other); length = toPosInt(this.length); if (length !== toPosInt(other.length)) return false; for (i = 0; i < length; ++i) { if (objHasOwnProperty.call(this, i) !== objHasOwnProperty.call(other, i)) { return false; } if (!eq(this[i], other[i])) return false; } return true; }; es5-ext-0.10.30/array/#/is-empty.js000066400000000000000000000003121315003545300165050ustar00rootroot00000000000000"use strict"; var ensureArray = require("../../object/ensure-array") , firstIndex = require("./first-index"); module.exports = function () { return firstIndex.call(ensureArray(this)) === null; }; es5-ext-0.10.30/array/#/is-uniq.js000066400000000000000000000004061315003545300163270ustar00rootroot00000000000000"use strict"; var indexOf = require("./e-index-of") , every = Array.prototype.every , isFirst; isFirst = function (value, index) { return indexOf.call(this, value) === index; }; module.exports = function () { return every.call(this, isFirst, this); }; es5-ext-0.10.30/array/#/keys/000077500000000000000000000000001315003545300153575ustar00rootroot00000000000000es5-ext-0.10.30/array/#/keys/implement.js000066400000000000000000000002771315003545300177150ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "keys", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/keys/index.js000066400000000000000000000001541315003545300170240ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.keys : require("./shim"); es5-ext-0.10.30/array/#/keys/is-implemented.js000066400000000000000000000006211315003545300206300ustar00rootroot00000000000000"use strict"; module.exports = function () { var arr = [1, "foo"], iterator, result; if (typeof arr.keys !== "function") return false; iterator = arr.keys(); if (!iterator) return false; if (typeof iterator.next !== "function") return false; result = iterator.next(); if (!result) return false; if (result.value !== 0) return false; if (result.done !== false) return false; return true; }; es5-ext-0.10.30/array/#/keys/shim.js000066400000000000000000000002141315003545300166520ustar00rootroot00000000000000"use strict"; var ArrayIterator = require("es6-iterator/array"); module.exports = function () { return new ArrayIterator(this, "key"); }; es5-ext-0.10.30/array/#/last-index.js000066400000000000000000000006341315003545300170150ustar00rootroot00000000000000"use strict"; var toPosInt = require("../../number/to-pos-integer") , value = require("../../object/valid-value") , objHasOwnProperty = Object.prototype.hasOwnProperty; module.exports = function () { var i, length; if (!(length = toPosInt(value(this).length))) return null; i = length - 1; while (!objHasOwnProperty.call(this, i)) { if (--i === -1) return null; } return i; }; es5-ext-0.10.30/array/#/last.js000066400000000000000000000002601315003545300157030ustar00rootroot00000000000000"use strict"; var lastIndex = require("./last-index"); module.exports = function () { var i; if ((i = lastIndex.call(this)) !== null) return this[i]; return undefined; }; es5-ext-0.10.30/array/#/map/000077500000000000000000000000001315003545300151615ustar00rootroot00000000000000es5-ext-0.10.30/array/#/map/implement.js000066400000000000000000000002761315003545300175160ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "map", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/map/index.js000066400000000000000000000001531315003545300166250ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.map : require("./shim"); es5-ext-0.10.30/array/#/map/is-implemented.js000066400000000000000000000003321315003545300204310ustar00rootroot00000000000000"use strict"; var identity = require("../../../function/identity") , SubArray = require("../../_sub-array-dummy-safe"); module.exports = function () { return (new SubArray()).map(identity) instanceof SubArray; }; es5-ext-0.10.30/array/#/map/shim.js000066400000000000000000000012101315003545300164510ustar00rootroot00000000000000"use strict"; var isPlainArray = require("../../is-plain-array") , callable = require("../../../object/valid-callable") , isArray = Array.isArray, map = Array.prototype.map , forEach = Array.prototype.forEach, call = Function.prototype.call; module.exports = function (callbackFn/*, thisArg*/) { var result, thisArg; if (!this || !isArray(this) || isPlainArray(this)) { return map.apply(this, arguments); } callable(callbackFn); thisArg = arguments[1]; result = new this.constructor(this.length); forEach.call(this, function (val, i, self) { result[i] = call.call(callbackFn, thisArg, val, i, self); }); return result; }; es5-ext-0.10.30/array/#/remove.js000066400000000000000000000006041315003545300162370ustar00rootroot00000000000000"use strict"; var indexOf = require("./e-index-of") , forEach = Array.prototype.forEach , splice = Array.prototype.splice; // eslint-disable-next-line no-unused-vars module.exports = function (itemToRemove /*, …item*/) { forEach.call( arguments, function (item) { var index = indexOf.call(this, item); if (index !== -1) splice.call(this, index, 1); }, this ); }; es5-ext-0.10.30/array/#/separate.js000066400000000000000000000003201315003545300165410ustar00rootroot00000000000000"use strict"; var forEach = Array.prototype.forEach; module.exports = function (sep) { var result = []; forEach.call(this, function (val) { result.push(val, sep); }); result.pop(); return result; }; es5-ext-0.10.30/array/#/slice/000077500000000000000000000000001315003545300155035ustar00rootroot00000000000000es5-ext-0.10.30/array/#/slice/implement.js000066400000000000000000000003001315003545300200240ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "slice", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/slice/index.js000066400000000000000000000001541315003545300171500ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.slice : require("./shim"); es5-ext-0.10.30/array/#/slice/is-implemented.js000066400000000000000000000002371315003545300207570ustar00rootroot00000000000000"use strict"; var SubArray = require("../../_sub-array-dummy-safe"); module.exports = function () { return (new SubArray()).slice() instanceof SubArray; }; es5-ext-0.10.30/array/#/slice/shim.js000066400000000000000000000020471315003545300170040ustar00rootroot00000000000000"use strict"; var toInteger = require("../../../number/to-integer") , toPosInt = require("../../../number/to-pos-integer") , isPlainArray = require("../../is-plain-array") , isArray = Array.isArray , slice = Array.prototype.slice , objHasOwnProperty = Object.prototype.hasOwnProperty , max = Math.max; module.exports = function (start, end) { var length, result, i; if (!this || !isArray(this) || isPlainArray(this)) { return slice.apply(this, arguments); } length = toPosInt(this.length); start = toInteger(start); if (start < 0) start = max(length + start, 0); else if (start > length) start = length; if (end === undefined) { end = length; } else { end = toInteger(end); if (end < 0) end = max(length + end, 0); else if (end > length) end = length; } if (start > end) start = end; result = new this.constructor(end - start); i = 0; while (start !== end) { if (objHasOwnProperty.call(this, start)) result[i] = this[start]; ++i; ++start; } return result; }; es5-ext-0.10.30/array/#/some-right.js000066400000000000000000000011611315003545300170170ustar00rootroot00000000000000"use strict"; var toPosInt = require("../../number/to-pos-integer") , callable = require("../../object/valid-callable") , value = require("../../object/valid-value") , objHasOwnProperty = Object.prototype.hasOwnProperty , call = Function.prototype.call; module.exports = function (cb /*, thisArg*/) { var i, self, thisArg; self = Object(value(this)); callable(cb); thisArg = arguments[1]; for (i = toPosInt(self.length) - 1; i >= 0; --i) { if (objHasOwnProperty.call(self, i) && call.call(cb, thisArg, self[i], i, self)) { return true; } } return false; }; es5-ext-0.10.30/array/#/splice/000077500000000000000000000000001315003545300156635ustar00rootroot00000000000000es5-ext-0.10.30/array/#/splice/implement.js000066400000000000000000000003011315003545300202050ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "splice", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/splice/index.js000066400000000000000000000001551315003545300173310ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.splice : require("./shim"); es5-ext-0.10.30/array/#/splice/is-implemented.js000066400000000000000000000002411315003545300211320ustar00rootroot00000000000000"use strict"; var SubArray = require("../../_sub-array-dummy-safe"); module.exports = function () { return (new SubArray()).splice(0) instanceof SubArray; }; es5-ext-0.10.30/array/#/splice/shim.js000066400000000000000000000010251315003545300171570ustar00rootroot00000000000000"use strict"; var isPlainArray = require("../../is-plain-array") , isArray = Array.isArray , splice = Array.prototype.splice , forEach = Array.prototype.forEach; // eslint-disable-next-line no-unused-vars module.exports = function (start, deleteCount /*, …items*/) { var arr = splice.apply(this, arguments), result; if (!this || !isArray(this) || isPlainArray(this)) return arr; result = new this.constructor(arr.length); forEach.call(arr, function (val, i) { result[i] = val; }); return result; }; es5-ext-0.10.30/array/#/uniq.js000066400000000000000000000004121315003545300157130ustar00rootroot00000000000000"use strict"; var indexOf = require("./e-index-of") , filter = Array.prototype.filter , isFirst; isFirst = function (value, index) { return indexOf.call(this, value) === index; }; module.exports = function () { return filter.call(this, isFirst, this); }; es5-ext-0.10.30/array/#/values/000077500000000000000000000000001315003545300157035ustar00rootroot00000000000000es5-ext-0.10.30/array/#/values/implement.js000066400000000000000000000003011315003545300202250ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array.prototype, "values", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/#/values/index.js000066400000000000000000000001541315003545300173500ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.prototype.values : require("./shim"); es5-ext-0.10.30/array/#/values/is-implemented.js000066400000000000000000000006311315003545300211550ustar00rootroot00000000000000"use strict"; module.exports = function () { var arr = ["foo", 1], iterator, result; if (typeof arr.values !== "function") return false; iterator = arr.values(); if (!iterator) return false; if (typeof iterator.next !== "function") return false; result = iterator.next(); if (!result) return false; if (result.value !== "foo") return false; if (result.done !== false) return false; return true; }; es5-ext-0.10.30/array/#/values/shim.js000066400000000000000000000002161315003545300172000ustar00rootroot00000000000000"use strict"; var ArrayIterator = require("es6-iterator/array"); module.exports = function () { return new ArrayIterator(this, "value"); }; es5-ext-0.10.30/array/_is-extensible.js000066400000000000000000000004441315003545300175340ustar00rootroot00000000000000"use strict"; module.exports = (function () { var SubArray = require("./_sub-array-dummy"), arr; if (!SubArray) return false; arr = new SubArray(); if (!Array.isArray(arr)) return false; if (!(arr instanceof SubArray)) return false; arr[34] = "foo"; return arr.length === 35; }()); es5-ext-0.10.30/array/_sub-array-dummy-safe.js000066400000000000000000000011361315003545300207320ustar00rootroot00000000000000"use strict"; var setPrototypeOf = require("../object/set-prototype-of") , isExtensible = require("./_is-extensible"); module.exports = (function () { var SubArray; if (isExtensible) return require("./_sub-array-dummy"); if (!setPrototypeOf) return null; SubArray = function () { var arr = Array.apply(this, arguments); setPrototypeOf(arr, SubArray.prototype); return arr; }; setPrototypeOf(SubArray, Array); SubArray.prototype = Object.create(Array.prototype, { constructor: { value: SubArray, enumerable: false, writable: true, configurable: true } }); return SubArray; }()); es5-ext-0.10.30/array/_sub-array-dummy.js000066400000000000000000000006561315003545300200240ustar00rootroot00000000000000"use strict"; var setPrototypeOf = require("../object/set-prototype-of"); module.exports = (function () { var SubArray; if (!setPrototypeOf) return null; SubArray = function () { Array.apply(this, arguments); }; setPrototypeOf(SubArray, Array); SubArray.prototype = Object.create(Array.prototype, { constructor: { value: SubArray, enumerable: false, writable: true, configurable: true } }); return SubArray; }()); es5-ext-0.10.30/array/from/000077500000000000000000000000001315003545300152255ustar00rootroot00000000000000es5-ext-0.10.30/array/from/implement.js000066400000000000000000000002651315003545300175600ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array, "from", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/from/index.js000066400000000000000000000001421315003545300166670ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.from : require("./shim"); es5-ext-0.10.30/array/from/is-implemented.js000066400000000000000000000003671315003545300205050ustar00rootroot00000000000000"use strict"; module.exports = function () { var from = Array.from, arr, result; if (typeof from !== "function") return false; arr = ["raz", "dwa"]; result = from(arr); return Boolean(result && (result !== arr) && (result[1] === "dwa")); }; es5-ext-0.10.30/array/from/shim.js000066400000000000000000000061451315003545300165310ustar00rootroot00000000000000"use strict"; var iteratorSymbol = require("es6-symbol").iterator , isArguments = require("../../function/is-arguments") , isFunction = require("../../function/is-function") , toPosInt = require("../../number/to-pos-integer") , callable = require("../../object/valid-callable") , validValue = require("../../object/valid-value") , isValue = require("../../object/is-value") , isString = require("../../string/is-string") , isArray = Array.isArray , call = Function.prototype.call , desc = { configurable: true, enumerable: true, writable: true, value: null } , defineProperty = Object.defineProperty; // eslint-disable-next-line complexity module.exports = function (arrayLike /*, mapFn, thisArg*/) { var mapFn = arguments[1] , thisArg = arguments[2] , Context , i , j , arr , length , code , iterator , result , getIterator , value; arrayLike = Object(validValue(arrayLike)); if (isValue(mapFn)) callable(mapFn); if (!this || this === Array || !isFunction(this)) { // Result: Plain array if (!mapFn) { if (isArguments(arrayLike)) { // Source: Arguments length = arrayLike.length; if (length !== 1) return Array.apply(null, arrayLike); arr = new Array(1); arr[0] = arrayLike[0]; return arr; } if (isArray(arrayLike)) { // Source: Array arr = new Array(length = arrayLike.length); for (i = 0; i < length; ++i) arr[i] = arrayLike[i]; return arr; } } arr = []; } else { // Result: Non plain array Context = this; } if (!isArray(arrayLike)) { if ((getIterator = arrayLike[iteratorSymbol]) !== undefined) { // Source: Iterator iterator = callable(getIterator).call(arrayLike); if (Context) arr = new Context(); result = iterator.next(); i = 0; while (!result.done) { value = mapFn ? call.call(mapFn, thisArg, result.value, i) : result.value; if (Context) { desc.value = value; defineProperty(arr, i, desc); } else { arr[i] = value; } result = iterator.next(); ++i; } length = i; } else if (isString(arrayLike)) { // Source: String length = arrayLike.length; if (Context) arr = new Context(); for (i = 0, j = 0; i < length; ++i) { value = arrayLike[i]; if (i + 1 < length) { code = value.charCodeAt(0); // eslint-disable-next-line max-depth if (code >= 0xd800 && code <= 0xdbff) value += arrayLike[++i]; } value = mapFn ? call.call(mapFn, thisArg, value, j) : value; if (Context) { desc.value = value; defineProperty(arr, j, desc); } else { arr[j] = value; } ++j; } length = j; } } if (length === undefined) { // Source: array or array-like length = toPosInt(arrayLike.length); if (Context) arr = new Context(length); for (i = 0; i < length; ++i) { value = mapFn ? call.call(mapFn, thisArg, arrayLike[i], i) : arrayLike[i]; if (Context) { desc.value = value; defineProperty(arr, i, desc); } else { arr[i] = value; } } } if (Context) { desc.value = null; arr.length = length; } return arr; }; es5-ext-0.10.30/array/generate.js000066400000000000000000000007701315003545300164160ustar00rootroot00000000000000"use strict"; var toPosInt = require("../number/to-pos-integer") , value = require("../object/valid-value") , slice = Array.prototype.slice; module.exports = function (length /*, …fill*/) { var arr, currentLength; length = toPosInt(value(length)); if (length === 0) return []; arr = arguments.length < 2 ? [undefined] : slice.call(arguments, 1, 1 + length); while ((currentLength = arr.length) < length) { arr = arr.concat(arr.slice(0, length - currentLength)); } return arr; }; es5-ext-0.10.30/array/index.js000066400000000000000000000004141315003545300157260ustar00rootroot00000000000000"use strict"; module.exports = { "#": require("./#"), "from": require("./from"), "generate": require("./generate"), "isPlainArray": require("./is-plain-array"), "of": require("./of"), "toArray": require("./to-array"), "validArray": require("./valid-array") }; es5-ext-0.10.30/array/is-plain-array.js000066400000000000000000000004331315003545300174500ustar00rootroot00000000000000"use strict"; var isArray = Array.isArray, getPrototypeOf = Object.getPrototypeOf; module.exports = function (obj) { var proto; if (!obj || !isArray(obj)) return false; proto = getPrototypeOf(obj); if (!isArray(proto)) return false; return !isArray(getPrototypeOf(proto)); }; es5-ext-0.10.30/array/of/000077500000000000000000000000001315003545300146665ustar00rootroot00000000000000es5-ext-0.10.30/array/of/implement.js000066400000000000000000000002631315003545300172170ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Array, "of", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/array/of/index.js000066400000000000000000000001401315003545300163260ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Array.of : require("./shim"); es5-ext-0.10.30/array/of/is-implemented.js000066400000000000000000000003101315003545300201320ustar00rootroot00000000000000"use strict"; module.exports = function () { var of = Array.of, result; if (typeof of !== "function") return false; result = of("foo", "bar"); return Boolean(result && (result[1] === "bar")); }; es5-ext-0.10.30/array/of/shim.js000066400000000000000000000011441315003545300161640ustar00rootroot00000000000000"use strict"; var isFunction = require("../../function/is-function") , slice = Array.prototype.slice , defineProperty = Object.defineProperty , desc = { configurable: true, enumerable: true, writable: true, value: null }; module.exports = function (/* …items*/) { var result, i, length; if (!this || this === Array || !isFunction(this)) return slice.call(arguments); result = new this(length = arguments.length); for (i = 0; i < length; ++i) { desc.value = arguments[i]; defineProperty(result, i, desc); } desc.value = null; result.length = length; return result; }; es5-ext-0.10.30/array/to-array.js000066400000000000000000000002601315003545300163540ustar00rootroot00000000000000"use strict"; var from = require("./from") , isArray = Array.isArray; module.exports = function (arrayLike) { return isArray(arrayLike) ? arrayLike : from(arrayLike); }; es5-ext-0.10.30/array/valid-array.js000066400000000000000000000002511315003545300170310ustar00rootroot00000000000000"use strict"; var isArray = Array.isArray; module.exports = function (value) { if (isArray(value)) return value; throw new TypeError(value + " is not an array"); }; es5-ext-0.10.30/boolean/000077500000000000000000000000001315003545300145635ustar00rootroot00000000000000es5-ext-0.10.30/boolean/index.js000066400000000000000000000001111315003545300162210ustar00rootroot00000000000000"use strict"; module.exports = { isBoolean: require("./is-boolean") }; es5-ext-0.10.30/boolean/is-boolean.js000066400000000000000000000004151315003545300171510ustar00rootroot00000000000000"use strict"; var objToString = Object.prototype.toString, id = objToString.call(true); module.exports = function (value) { return ( typeof value === "boolean" || (typeof value === "object" && (value instanceof Boolean || objToString.call(value) === id)) ); }; es5-ext-0.10.30/circle.yml000066400000000000000000000002461315003545300151320ustar00rootroot00000000000000machine: node: version: 8 test: override: - npm test - nvm use 6; npm test - npm run lint - nvm use 4; npm test - nvm use 0.12; npm test es5-ext-0.10.30/date/000077500000000000000000000000001315003545300140615ustar00rootroot00000000000000es5-ext-0.10.30/date/#/000077500000000000000000000000001315003545300142035ustar00rootroot00000000000000es5-ext-0.10.30/date/#/copy.js000066400000000000000000000001761315003545300155170ustar00rootroot00000000000000"use strict"; var getTime = Date.prototype.getTime; module.exports = function () { return new Date(getTime.call(this)); }; es5-ext-0.10.30/date/#/days-in-month.js000066400000000000000000000003721315003545300172320ustar00rootroot00000000000000"use strict"; var getMonth = Date.prototype.getMonth; module.exports = function () { switch (getMonth.call(this)) { case 1: return this.getFullYear() % 4 ? 28 : 29; case 3: case 5: case 8: case 10: return 30; default: return 31; } }; es5-ext-0.10.30/date/#/floor-day.js000066400000000000000000000002121315003545300164300ustar00rootroot00000000000000"use strict"; var setHours = Date.prototype.setHours; module.exports = function () { setHours.call(this, 0, 0, 0, 0); return this; }; es5-ext-0.10.30/date/#/floor-month.js000066400000000000000000000002101315003545300167760ustar00rootroot00000000000000"use strict"; var floorDay = require("./floor-day"); module.exports = function () { floorDay.call(this).setDate(1); return this; }; es5-ext-0.10.30/date/#/floor-year.js000066400000000000000000000002171315003545300166200ustar00rootroot00000000000000"use strict"; var floorMonth = require("./floor-month"); module.exports = function () { floorMonth.call(this).setMonth(0); return this; }; es5-ext-0.10.30/date/#/format.js000066400000000000000000000014141315003545300160310ustar00rootroot00000000000000/* eslint id-length: "off" */ "use strict"; var pad = require("../../number/#/pad") , date = require("../valid-date") , format; format = require("../../string/format-method")({ Y: function () { return String(this.getFullYear()); }, y: function () { return String(this.getFullYear()).slice(-2); }, m: function () { return pad.call(this.getMonth() + 1, 2); }, d: function () { return pad.call(this.getDate(), 2); }, H: function () { return pad.call(this.getHours(), 2); }, M: function () { return pad.call(this.getMinutes(), 2); }, S: function () { return pad.call(this.getSeconds(), 2); }, L: function () { return pad.call(this.getMilliseconds(), 3); } }); module.exports = function (pattern) { return format.call(date(this), pattern); }; es5-ext-0.10.30/date/#/index.js000066400000000000000000000003651315003545300156540ustar00rootroot00000000000000"use strict"; module.exports = { copy: require("./copy"), daysInMonth: require("./days-in-month"), floorDay: require("./floor-day"), floorMonth: require("./floor-month"), floorYear: require("./floor-year"), format: require("./format") }; es5-ext-0.10.30/date/index.js000066400000000000000000000002021315003545300155200ustar00rootroot00000000000000"use strict"; module.exports = { "#": require("./#"), "isDate": require("./is-date"), "validDate": require("./valid-date") }; es5-ext-0.10.30/date/is-date.js000066400000000000000000000003361315003545300157470ustar00rootroot00000000000000"use strict"; var objToString = Object.prototype.toString, id = objToString.call(new Date()); module.exports = function (value) { return (value && (value instanceof Date || objToString.call(value) === id)) || false; }; es5-ext-0.10.30/date/valid-date.js000066400000000000000000000003101315003545300164230ustar00rootroot00000000000000"use strict"; var isDate = require("./is-date"); module.exports = function (value) { if (!isDate(value) || isNaN(value)) throw new TypeError(value + " is not valid Date object"); return value; }; es5-ext-0.10.30/error/000077500000000000000000000000001315003545300142755ustar00rootroot00000000000000es5-ext-0.10.30/error/#/000077500000000000000000000000001315003545300144175ustar00rootroot00000000000000es5-ext-0.10.30/error/#/index.js000066400000000000000000000001001315003545300160530ustar00rootroot00000000000000"use strict"; module.exports = { throw: require("./throw") }; es5-ext-0.10.30/error/#/throw.js000066400000000000000000000001551315003545300161210ustar00rootroot00000000000000"use strict"; var error = require("../valid-error"); module.exports = function () { throw error(this); }; es5-ext-0.10.30/error/custom.js000066400000000000000000000011211315003545300161400ustar00rootroot00000000000000"use strict"; var assign = require("../object/assign") , isObject = require("../object/is-object") , isValue = require("../object/is-value") , captureStackTrace = Error.captureStackTrace; exports = module.exports = function (message /*, code, ext*/) { var err = new Error(message), code = arguments[1], ext = arguments[2]; if (!isValue(ext)) { if (isObject(code)) { ext = code; code = null; } } if (isValue(ext)) assign(err, ext); if (isValue(code)) err.code = code; if (captureStackTrace) captureStackTrace(err, exports); return err; }; es5-ext-0.10.30/error/index.js000066400000000000000000000002461315003545300157440ustar00rootroot00000000000000"use strict"; module.exports = { "#": require("./#"), "custom": require("./custom"), "isError": require("./is-error"), "validError": require("./valid-error") }; es5-ext-0.10.30/error/is-error.js000066400000000000000000000003401315003545300163720ustar00rootroot00000000000000"use strict"; var objToString = Object.prototype.toString, id = objToString.call(new Error()); module.exports = function (value) { return (value && (value instanceof Error || objToString.call(value) === id)) || false; }; es5-ext-0.10.30/error/valid-error.js000066400000000000000000000002711315003545300170610ustar00rootroot00000000000000"use strict"; var isError = require("./is-error"); module.exports = function (value) { if (!isError(value)) throw new TypeError(value + " is not an Error object"); return value; }; es5-ext-0.10.30/function/000077500000000000000000000000001315003545300147715ustar00rootroot00000000000000es5-ext-0.10.30/function/#/000077500000000000000000000000001315003545300151135ustar00rootroot00000000000000es5-ext-0.10.30/function/#/compose.js000066400000000000000000000011041315003545300171120ustar00rootroot00000000000000"use strict"; var callable = require("../../object/valid-callable") , aFrom = require("../../array/from") , apply = Function.prototype.apply , call = Function.prototype.call , callFn = function (arg, fn) { return call.call(fn, this, arg); }; module.exports = function (fn /*, …fnn*/) { var fns, first; if (!fn) callable(fn); fns = [this].concat(aFrom(arguments)); fns.forEach(callable); fns = fns.reverse(); first = fns[0]; fns = fns.slice(1); return function (argIgnored) { return fns.reduce(callFn, apply.call(first, this, arguments)); }; }; es5-ext-0.10.30/function/#/copy.js000066400000000000000000000010371315003545300164240ustar00rootroot00000000000000"use strict"; var mixin = require("../../object/mixin") , validFunction = require("../valid-function") , re = /^\s*function\s*([\0-')-\uffff]+)*\s*\(([\0-(*-\uffff]*)\)\s*\{/; module.exports = function () { var match = String(validFunction(this)).match(re), fn; // eslint-disable-next-line no-new-func fn = new Function( "fn", "return function " + match[1].trim() + "(" + match[2] + ") { return fn.apply(this, arguments); };" )(this); try { mixin(fn, this); } catch (ignore) {} return fn; }; es5-ext-0.10.30/function/#/curry.js000066400000000000000000000014161315003545300166170ustar00rootroot00000000000000"use strict"; var toPosInt = require("../../number/to-pos-integer") , callable = require("../../object/valid-callable") , defineLength = require("../_define-length") , slice = Array.prototype.slice, apply = Function.prototype.apply , curry; curry = function self (fn, length, preArgs) { return defineLength(function () { var args = preArgs ? preArgs.concat(slice.call(arguments, 0, length - preArgs.length)) : slice.call(arguments, 0, length); return args.length === length ? apply.call(fn, this, args) : self(fn, length, args); }, preArgs ? length - preArgs.length : length); }; module.exports = function (/* Length*/) { var length = arguments[0]; return curry(callable(this), isNaN(length) ? toPosInt(this.length) : toPosInt(length)); }; es5-ext-0.10.30/function/#/index.js000066400000000000000000000004321315003545300165570ustar00rootroot00000000000000"use strict"; module.exports = { compose: require("./compose"), copy: require("./copy"), curry: require("./curry"), lock: require("./lock"), not: require("./not"), partial: require("./partial"), spread: require("./spread"), toStringTokens: require("./to-string-tokens") }; es5-ext-0.10.30/function/#/lock.js000066400000000000000000000004141315003545300164000ustar00rootroot00000000000000"use strict"; var callable = require("../../object/valid-callable") , apply = Function.prototype.apply; module.exports = function (/* …args*/) { var fn = callable(this) , args = arguments; return function () { return apply.call(fn, this, args); }; }; es5-ext-0.10.30/function/#/not.js000066400000000000000000000004741315003545300162560ustar00rootroot00000000000000"use strict"; var callable = require("../../object/valid-callable") , defineLength = require("../_define-length") , apply = Function.prototype.apply; module.exports = function () { var fn = callable(this); return defineLength(function () { return !apply.call(fn, this, arguments); }, fn.length); }; es5-ext-0.10.30/function/#/partial.js000066400000000000000000000006651315003545300171140ustar00rootroot00000000000000"use strict"; var callable = require("../../object/valid-callable") , aFrom = require("../../array/from") , defineLength = require("../_define-length") , apply = Function.prototype.apply; module.exports = function (/* …args*/) { var fn = callable(this) , args = aFrom(arguments); return defineLength(function () { return apply.call(fn, this, args.concat(aFrom(arguments))); }, fn.length - args.length); }; es5-ext-0.10.30/function/#/spread.js000066400000000000000000000003521315003545300167270ustar00rootroot00000000000000"use strict"; var callable = require("../../object/valid-callable") , apply = Function.prototype.apply; module.exports = function () { var fn = callable(this); return function (args) { return apply.call(fn, this, args); }; }; es5-ext-0.10.30/function/#/to-string-tokens.js000066400000000000000000000010601315003545300206750ustar00rootroot00000000000000"use strict"; var validFunction = require("../valid-function"); var re1 = /^\s*function[\0-')-\uffff]*\(([\0-(*-\uffff]*)\)\s*\{([\0-\uffff]*)\}\s*$/ , re2 = /^\s*\(?([\0-'*-\uffff]*)\)?\s*=>\s*(\{?[\0-\uffff]*\}?)\s*$/; module.exports = function () { var str = String(validFunction(this)), data = str.match(re1); if (!data) { data = str.match(re2); if (!data) throw new Error("Unrecognized string format"); data[1] = data[1].trim(); if (data[2][0] === "{") data[2] = data[2].trim().slice(1, -1); } return { args: data[1], body: data[2] }; }; es5-ext-0.10.30/function/_define-length.js000066400000000000000000000024351315003545300202030ustar00rootroot00000000000000"use strict"; var toPosInt = require("../number/to-pos-integer"); var test = function (arg1, arg2) { return arg2; }; var desc, defineProperty, generate, mixin; try { Object.defineProperty(test, "length", { configurable: true, writable: false, enumerable: false, value: 1 }); } catch (ignore) {} if (test.length === 1) { // ES6 desc = { configurable: true, writable: false, enumerable: false }; defineProperty = Object.defineProperty; module.exports = function (fn, length) { length = toPosInt(length); if (fn.length === length) return fn; desc.value = length; return defineProperty(fn, "length", desc); }; } else { mixin = require("../object/mixin"); generate = (function () { var cache = []; return function (length) { var args, i = 0; if (cache[length]) return cache[length]; args = []; while (length--) args.push("a" + (++i).toString(36)); // eslint-disable-next-line no-new-func return new Function( "fn", "return function (" + args.join(", ") + ") { return fn.apply(this, arguments); };" ); }; }()); module.exports = function (src, length) { var target; length = toPosInt(length); if (src.length === length) return src; target = generate(length)(src); try { mixin(target, src); } catch (ignore) {} return target; }; } es5-ext-0.10.30/function/constant.js000066400000000000000000000001401315003545300171530ustar00rootroot00000000000000"use strict"; module.exports = function (value) { return function () { return value; }; }; es5-ext-0.10.30/function/identity.js000066400000000000000000000001051315003545300171540ustar00rootroot00000000000000"use strict"; module.exports = function (value) { return value; }; es5-ext-0.10.30/function/index.js000066400000000000000000000005671315003545300164460ustar00rootroot00000000000000// Export all modules. "use strict"; module.exports = { "#": require("./#"), "constant": require("./constant"), "identity": require("./identity"), "invoke": require("./invoke"), "isArguments": require("./is-arguments"), "isFunction": require("./is-function"), "noop": require("./noop"), "pluck": require("./pluck"), "validFunction": require("./valid-function") }; es5-ext-0.10.30/function/invoke.js000066400000000000000000000006641315003545300166300ustar00rootroot00000000000000"use strict"; var isCallable = require("../object/is-callable") , value = require("../object/valid-value") , slice = Array.prototype.slice, apply = Function.prototype.apply; module.exports = function (name/*, …args*/) { var args = slice.call(arguments, 1), isFn = isCallable(name); return function (obj) { value(obj); return apply.call(isFn ? name : obj[name], obj, args.concat(slice.call(arguments, 1))); }; }; es5-ext-0.10.30/function/is-arguments.js000066400000000000000000000003231315003545300177430ustar00rootroot00000000000000"use strict"; var objToString = Object.prototype.toString , id = objToString.call( (function () { return arguments; })() ); module.exports = function (value) { return objToString.call(value) === id; }; es5-ext-0.10.30/function/is-function.js000066400000000000000000000003251315003545300175650ustar00rootroot00000000000000"use strict"; var objToString = Object.prototype.toString, id = objToString.call(require("./noop")); module.exports = function (value) { return typeof value === "function" && objToString.call(value) === id; }; es5-ext-0.10.30/function/noop.js000066400000000000000000000001361315003545300163020ustar00rootroot00000000000000"use strict"; // eslint-disable-next-line no-empty-function module.exports = function () {}; es5-ext-0.10.30/function/pluck.js000066400000000000000000000002341315003545300164440ustar00rootroot00000000000000"use strict"; var value = require("../object/valid-value"); module.exports = function (name) { return function (obj) { return value(obj)[name]; }; }; es5-ext-0.10.30/function/valid-function.js000066400000000000000000000002751315003545300202550ustar00rootroot00000000000000"use strict"; var isFunction = require("./is-function"); module.exports = function (value) { if (!isFunction(value)) throw new TypeError(value + " is not a function"); return value; }; es5-ext-0.10.30/global.js000066400000000000000000000001201315003545300147330ustar00rootroot00000000000000/* eslint strict: "off" */ module.exports = (function () { return this; }()); es5-ext-0.10.30/index.js000066400000000000000000000011201315003545300146030ustar00rootroot00000000000000"use strict"; module.exports = { global: require("./global"), optionalChaining: require("./optional-chaining"), safeToString: require("./safe-to-string"), toShortStringRepresentation: require("./to-short-string-representation"), array: require("./array"), boolean: require("./boolean"), date: require("./date"), error: require("./error"), function: require("./function"), iterable: require("./iterable"), json: require("./json"), math: require("./math"), number: require("./number"), object: require("./object"), regExp: require("./reg-exp"), string: require("./string") }; es5-ext-0.10.30/iterable/000077500000000000000000000000001315003545300147335ustar00rootroot00000000000000es5-ext-0.10.30/iterable/for-each.js000066400000000000000000000005571315003545300167640ustar00rootroot00000000000000"use strict"; var forOf = require("es6-iterator/for-of") , isIterable = require("es6-iterator/is-iterable") , iterable = require("./validate") , forEach = Array.prototype.forEach; module.exports = function (target, cb/*, thisArg*/) { if (isIterable(iterable(target))) forOf(target, cb, arguments[2]); else forEach.call(target, cb, arguments[2]); }; es5-ext-0.10.30/iterable/index.js000066400000000000000000000002541315003545300164010ustar00rootroot00000000000000"use strict"; module.exports = { forEach: require("./for-each"), is: require("./is"), validate: require("./validate"), validateObject: require("./validate-object") }; es5-ext-0.10.30/iterable/is.js000066400000000000000000000005261315003545300157070ustar00rootroot00000000000000"use strict"; var iteratorSymbol = require("es6-symbol").iterator , isValue = require("../object/is-value") , isArrayLike = require("../object/is-array-like"); module.exports = function (value) { if (!isValue(value)) return false; if (typeof value[iteratorSymbol] === "function") return true; return isArrayLike(value); }; es5-ext-0.10.30/iterable/validate-object.js000066400000000000000000000004001315003545300203200ustar00rootroot00000000000000"use strict"; var isObject = require("../object/is-object") , is = require("./is"); module.exports = function (value) { if (is(value) && isObject(value)) return value; throw new TypeError(value + " is not an iterable or array-like object"); }; es5-ext-0.10.30/iterable/validate.js000066400000000000000000000002621315003545300170620ustar00rootroot00000000000000"use strict"; var is = require("./is"); module.exports = function (value) { if (is(value)) return value; throw new TypeError(value + " is not an iterable or array-like"); }; es5-ext-0.10.30/json/000077500000000000000000000000001315003545300141155ustar00rootroot00000000000000es5-ext-0.10.30/json/index.js000066400000000000000000000001211315003545300155540ustar00rootroot00000000000000"use strict"; module.exports = { safeStringify: require("./safe-stringify") }; es5-ext-0.10.30/json/safe-stringify.js000066400000000000000000000016171315003545300174120ustar00rootroot00000000000000"use strict"; var compact = require("../array/#/compact") , isObject = require("../object/is-object") , toArray = require("../object/to-array") , isArray = Array.isArray , stringify = JSON.stringify; module.exports = function self (value /*, replacer, space*/) { var replacer = arguments[1], space = arguments[2]; try { return stringify(value, replacer, space); } catch (e) { if (!isObject(value)) return null; if (typeof value.toJSON === "function") return null; if (isArray(value)) { return ( "[" + compact.call( value.map(function (item) { return self(item, replacer, space); }) ) + "]" ); } return ( "{" + compact .call( toArray(value, function (item, key) { item = self(item, replacer, space); if (!item) return null; return stringify(key) + ":" + item; }) ) .join(",") + "}" ); } }; es5-ext-0.10.30/math/000077500000000000000000000000001315003545300140755ustar00rootroot00000000000000es5-ext-0.10.30/math/_pack-ieee754.js000066400000000000000000000037021315003545300166570ustar00rootroot00000000000000/* eslint no-bitwise: "off" */ // Credit: https://github.com/paulmillr/es6-shim/ "use strict"; var abs = Math.abs , floor = Math.floor , log = Math.log , min = Math.min , pow = Math.pow , LN2 = Math.LN2 , roundToEven; roundToEven = function (num) { var whole = floor(num), fraction = num - whole; if (fraction < 0.5) return whole; if (fraction > 0.5) return whole + 1; return whole % 2 ? whole + 1 : whole; }; // eslint-disable-next-line max-statements module.exports = function (value, ebits, fbits) { var bias = (1 << (ebits - 1)) - 1, sign, e, fraction, i, bits, str, bytes; // Compute sign, exponent, fraction if (isNaN(value)) { // NaN // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping e = (1 << ebits) - 1; fraction = pow(2, fbits - 1); sign = 0; } else if (value === Infinity || value === -Infinity) { e = (1 << ebits) - 1; fraction = 0; sign = value < 0 ? 1 : 0; } else if (value === 0) { e = 0; fraction = 0; sign = 1 / value === -Infinity ? 1 : 0; } else { sign = value < 0; value = abs(value); if (value >= pow(2, 1 - bias)) { e = min(floor(log(value) / LN2), 1023); fraction = roundToEven(value / pow(2, e) * pow(2, fbits)); if (fraction / pow(2, fbits) >= 2) { e += 1; fraction = 1; } if (e > bias) { // Overflow e = (1 << ebits) - 1; fraction = 0; } else { // Normal e += bias; fraction -= pow(2, fbits); } } else { // Subnormal e = 0; fraction = roundToEven(value / pow(2, 1 - bias - fbits)); } } // Pack sign, exponent, fraction bits = []; for (i = fbits; i; i -= 1) { bits.push(fraction % 2 ? 1 : 0); fraction = floor(fraction / 2); } for (i = ebits; i; i -= 1) { bits.push(e % 2 ? 1 : 0); e = floor(e / 2); } bits.push(sign ? 1 : 0); bits.reverse(); str = bits.join(""); // Bits to bytes bytes = []; while (str.length) { bytes.push(parseInt(str.substring(0, 8), 2)); str = str.substring(8); } return bytes; }; es5-ext-0.10.30/math/_unpack-ieee754.js000066400000000000000000000016371315003545300172270ustar00rootroot00000000000000/* eslint no-bitwise: "off" */ // Credit: https://github.com/paulmillr/es6-shim/ "use strict"; var pow = Math.pow; module.exports = function (bytes, ebits, fbits) { // Bytes to bits var bits = [], i, j, bit, str, bias, sign, e, fraction; for (i = bytes.length; i; i -= 1) { bit = bytes[i - 1]; for (j = 8; j; j -= 1) { bits.push(bit % 2 ? 1 : 0); bit >>= 1; } } bits.reverse(); str = bits.join(""); // Unpack sign, exponent, fraction bias = (1 << (ebits - 1)) - 1; sign = parseInt(str.substring(0, 1), 2) ? -1 : 1; e = parseInt(str.substring(1, 1 + ebits), 2); fraction = parseInt(str.substring(1 + ebits), 2); // Produce number if (e === (1 << ebits) - 1) return fraction === 0 ? sign * Infinity : NaN; if (e > 0) return sign * pow(2, e - bias) * (1 + fraction / pow(2, fbits)); if (fraction !== 0) return sign * pow(2, -(bias - 1)) * (fraction / pow(2, fbits)); return sign < 0 ? -0 : 0; }; es5-ext-0.10.30/math/acosh/000077500000000000000000000000001315003545300151725ustar00rootroot00000000000000es5-ext-0.10.30/math/acosh/implement.js000066400000000000000000000002651315003545300175250ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "acosh", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/acosh/index.js000066400000000000000000000001421315003545300166340ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.acosh : require("./shim"); es5-ext-0.10.30/math/acosh/is-implemented.js000066400000000000000000000002431315003545300204430ustar00rootroot00000000000000"use strict"; module.exports = function () { var acosh = Math.acosh; if (typeof acosh !== "function") return false; return acosh(2) === 1.3169578969248166; }; es5-ext-0.10.30/math/acosh/shim.js000066400000000000000000000004411315003545300164670ustar00rootroot00000000000000"use strict"; var log = Math.log, sqrt = Math.sqrt; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value < 1) return NaN; if (value === 1) return 0; if (value === Infinity) return value; return log(value + sqrt(value * value - 1)); }; es5-ext-0.10.30/math/asinh/000077500000000000000000000000001315003545300151775ustar00rootroot00000000000000es5-ext-0.10.30/math/asinh/implement.js000066400000000000000000000002651315003545300175320ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "asinh", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/asinh/index.js000066400000000000000000000001421315003545300166410ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.asinh : require("./shim"); es5-ext-0.10.30/math/asinh/is-implemented.js000066400000000000000000000002431315003545300204500ustar00rootroot00000000000000"use strict"; module.exports = function () { var asinh = Math.asinh; if (typeof asinh !== "function") return false; return asinh(2) === 1.4436354751788103; }; es5-ext-0.10.30/math/asinh/shim.js000066400000000000000000000005361315003545300165010ustar00rootroot00000000000000"use strict"; var log = Math.log, sqrt = Math.sqrt; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value === 0) return value; if (!isFinite(value)) return value; if (value < 0) { value = -value; return -log(value + sqrt(value * value + 1)); } return log(value + sqrt(value * value + 1)); }; es5-ext-0.10.30/math/atanh/000077500000000000000000000000001315003545300151705ustar00rootroot00000000000000es5-ext-0.10.30/math/atanh/implement.js000066400000000000000000000002651315003545300175230ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "atanh", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/atanh/index.js000066400000000000000000000001421315003545300166320ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.atanh : require("./shim"); es5-ext-0.10.30/math/atanh/is-implemented.js000066400000000000000000000002651315003545300204450ustar00rootroot00000000000000"use strict"; module.exports = function () { var atanh = Math.atanh; if (typeof atanh !== "function") return false; return Math.round(atanh(0.5) * 1e15) === 549306144334055; }; es5-ext-0.10.30/math/atanh/shim.js000066400000000000000000000005211315003545300164640ustar00rootroot00000000000000"use strict"; var log = Math.log; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value < -1) return NaN; if (value > 1) return NaN; if (value === -1) return -Infinity; if (value === 1) return Infinity; if (value === 0) return value; return 0.5 * log((1 + value) / (1 - value)); }; es5-ext-0.10.30/math/cbrt/000077500000000000000000000000001315003545300150275ustar00rootroot00000000000000es5-ext-0.10.30/math/cbrt/implement.js000066400000000000000000000002641315003545300173610ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "cbrt", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/cbrt/index.js000066400000000000000000000001411315003545300164700ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.cbrt : require("./shim"); es5-ext-0.10.30/math/cbrt/is-implemented.js000066400000000000000000000002371315003545300203030ustar00rootroot00000000000000"use strict"; module.exports = function () { var cbrt = Math.cbrt; if (typeof cbrt !== "function") return false; return cbrt(2) === 1.2599210498948732; }; es5-ext-0.10.30/math/cbrt/shim.js000066400000000000000000000004161315003545300163260ustar00rootroot00000000000000"use strict"; var pow = Math.pow; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value === 0) return value; if (!isFinite(value)) return value; if (value < 0) return -pow(-value, 1 / 3); return pow(value, 1 / 3); }; es5-ext-0.10.30/math/clz32/000077500000000000000000000000001315003545300150325ustar00rootroot00000000000000es5-ext-0.10.30/math/clz32/implement.js000066400000000000000000000002651315003545300173650ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "clz32", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/clz32/index.js000066400000000000000000000001421315003545300164740ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.clz32 : require("./shim"); es5-ext-0.10.30/math/clz32/is-implemented.js000066400000000000000000000002261315003545300203040ustar00rootroot00000000000000"use strict"; module.exports = function () { var clz32 = Math.clz32; if (typeof clz32 !== "function") return false; return clz32(1000) === 22; }; es5-ext-0.10.30/math/clz32/shim.js000066400000000000000000000002411315003545300163250ustar00rootroot00000000000000"use strict"; module.exports = function (value) { // eslint-disable-next-line no-bitwise value >>>= 0; return value ? 32 - value.toString(2).length : 32; }; es5-ext-0.10.30/math/cosh/000077500000000000000000000000001315003545300150315ustar00rootroot00000000000000es5-ext-0.10.30/math/cosh/implement.js000066400000000000000000000002641315003545300173630ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "cosh", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/cosh/index.js000066400000000000000000000001411315003545300164720ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.cosh : require("./shim"); es5-ext-0.10.30/math/cosh/is-implemented.js000066400000000000000000000002371315003545300203050ustar00rootroot00000000000000"use strict"; module.exports = function () { var cosh = Math.cosh; if (typeof cosh !== "function") return false; return cosh(1) === 1.5430806348152437; }; es5-ext-0.10.30/math/cosh/shim.js000066400000000000000000000003561315003545300163330ustar00rootroot00000000000000"use strict"; var exp = Math.exp; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value === 0) return 1; if (!isFinite(value)) return Infinity; return (exp(value) + exp(-value)) / 2; }; es5-ext-0.10.30/math/expm1/000077500000000000000000000000001315003545300151275ustar00rootroot00000000000000es5-ext-0.10.30/math/expm1/implement.js000066400000000000000000000002651315003545300174620ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "expm1", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/expm1/index.js000066400000000000000000000001421315003545300165710ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.expm1 : require("./shim"); es5-ext-0.10.30/math/expm1/is-implemented.js000066400000000000000000000002601315003545300203770ustar00rootroot00000000000000"use strict"; module.exports = function () { var expm1 = Math.expm1; if (typeof expm1 !== "function") return false; return expm1(1).toFixed(15) === "1.718281828459045"; }; es5-ext-0.10.30/math/expm1/shim.js000066400000000000000000000006131315003545300164250ustar00rootroot00000000000000// Thanks: https://github.com/monolithed/ECMAScript-6 "use strict"; var exp = Math.exp; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value === 0) return value; if (value === Infinity) return Infinity; if (value === -Infinity) return -1; if (value > -1.0e-6 && value < 1.0e-6) return value + value * value / 2; return exp(value) - 1; }; es5-ext-0.10.30/math/fround/000077500000000000000000000000001315003545300153725ustar00rootroot00000000000000es5-ext-0.10.30/math/fround/implement.js000066400000000000000000000002661315003545300177260ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "fround", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/fround/index.js000066400000000000000000000001431315003545300170350ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.fround : require("./shim"); es5-ext-0.10.30/math/fround/is-implemented.js000066400000000000000000000002531315003545300206440ustar00rootroot00000000000000"use strict"; module.exports = function () { var fround = Math.fround; if (typeof fround !== "function") return false; return fround(1.337) === 1.3370000123977661; }; es5-ext-0.10.30/math/fround/shim.js000066400000000000000000000013451315003545300166730ustar00rootroot00000000000000/* global Float32Array */ // Credit: https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js "use strict"; var toFloat32; if (typeof Float32Array === "undefined") { toFloat32 = (function () { var pack = require("../_pack-ieee754") , unpack = require("../_unpack-ieee754"); return function (value) { return unpack(pack(value, 8, 23), 8, 23); }; }()); } else { toFloat32 = (function () { var float32Array = new Float32Array(1); return function (num) { float32Array[0] = num; return float32Array[0]; }; }()); } module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value === 0) return value; if (!isFinite(value)) return value; return toFloat32(value); }; es5-ext-0.10.30/math/hypot/000077500000000000000000000000001315003545300152405ustar00rootroot00000000000000es5-ext-0.10.30/math/hypot/implement.js000066400000000000000000000002651315003545300175730ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "hypot", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/hypot/index.js000066400000000000000000000001421315003545300167020ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.hypot : require("./shim"); es5-ext-0.10.30/math/hypot/is-implemented.js000066400000000000000000000002251315003545300205110ustar00rootroot00000000000000"use strict"; module.exports = function () { var hypot = Math.hypot; if (typeof hypot !== "function") return false; return hypot(3, 4) === 5; }; es5-ext-0.10.30/math/hypot/shim.js000066400000000000000000000017541315003545300165450ustar00rootroot00000000000000// Thanks for hints: https://github.com/paulmillr/es6-shim "use strict"; var some = Array.prototype.some , abs = Math.abs , sqrt = Math.sqrt , compare = function (val1, val2) { return val2 - val1; } , divide = function (value) { return value / this; } , add = function (sum, number) { return sum + number * number; }; // eslint-disable-next-line no-unused-vars module.exports = function (val1, val2 /*, …valn*/) { var result, numbers; if (!arguments.length) return 0; some.call(arguments, function (val) { if (isNaN(val)) { result = NaN; return false; } if (!isFinite(val)) { result = Infinity; return true; } if (result !== undefined) return false; val = Number(val); if (val === 0) return false; if (numbers) numbers.push(abs(val)); else numbers = [abs(val)]; return false; }); if (result !== undefined) return result; if (!numbers) return 0; numbers.sort(compare); return numbers[0] * sqrt(numbers.map(divide, numbers[0]).reduce(add, 0)); }; es5-ext-0.10.30/math/imul/000077500000000000000000000000001315003545300150435ustar00rootroot00000000000000es5-ext-0.10.30/math/imul/implement.js000066400000000000000000000002641315003545300173750ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "imul", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/imul/index.js000066400000000000000000000001411315003545300165040ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.imul : require("./shim"); es5-ext-0.10.30/math/imul/is-implemented.js000066400000000000000000000002231315003545300203120ustar00rootroot00000000000000"use strict"; module.exports = function () { var imul = Math.imul; if (typeof imul !== "function") return false; return imul(-1, 8) === -8; }; es5-ext-0.10.30/math/imul/shim.js000066400000000000000000000007611315003545300163450ustar00rootroot00000000000000/* eslint no-bitwise: "off" */ // Thanks: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference // /Global_Objects/Math/imul "use strict"; module.exports = function (val1, val2) { var xh = (val1 >>> 16) & 0xffff , xl = val1 & 0xffff , yh = (val2 >>> 16) & 0xffff , yl = val2 & 0xffff; // The shift by 0 fixes the sign on the high part // the final |0 converts the unsigned value into a signed value return (xl * yl + ((xh * yl + xl * yh) << 16 >>> 0)) | 0; }; es5-ext-0.10.30/math/index.js000066400000000000000000000007641315003545300155510ustar00rootroot00000000000000"use strict"; module.exports = { acosh: require("./acosh"), asinh: require("./asinh"), atanh: require("./atanh"), cbrt: require("./cbrt"), clz32: require("./clz32"), cosh: require("./cosh"), expm1: require("./expm1"), fround: require("./fround"), hypot: require("./hypot"), imul: require("./imul"), log10: require("./log10"), log2: require("./log2"), log1p: require("./log1p"), sign: require("./sign"), sinh: require("./sinh"), tanh: require("./tanh"), trunc: require("./trunc") }; es5-ext-0.10.30/math/log10/000077500000000000000000000000001315003545300150175ustar00rootroot00000000000000es5-ext-0.10.30/math/log10/implement.js000066400000000000000000000002651315003545300173520ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "log10", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/log10/index.js000066400000000000000000000001421315003545300164610ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.log10 : require("./shim"); es5-ext-0.10.30/math/log10/is-implemented.js000066400000000000000000000002431315003545300202700ustar00rootroot00000000000000"use strict"; module.exports = function () { var log10 = Math.log10; if (typeof log10 !== "function") return false; return log10(2) === 0.3010299956639812; }; es5-ext-0.10.30/math/log10/shim.js000066400000000000000000000004741315003545300163220ustar00rootroot00000000000000"use strict"; var log = Math.log, LOG10E = Math.LOG10E; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value < 0) return NaN; if (value === 0) return -Infinity; if (value === 1) return 0; if (value === Infinity) return Infinity; return log(value) * LOG10E; }; es5-ext-0.10.30/math/log1p/000077500000000000000000000000001315003545300151175ustar00rootroot00000000000000es5-ext-0.10.30/math/log1p/implement.js000066400000000000000000000002651315003545300174520ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "log1p", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/log1p/index.js000066400000000000000000000001421315003545300165610ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.log1p : require("./shim"); es5-ext-0.10.30/math/log1p/is-implemented.js000066400000000000000000000002431315003545300203700ustar00rootroot00000000000000"use strict"; module.exports = function () { var log1p = Math.log1p; if (typeof log1p !== "function") return false; return log1p(1) === 0.6931471805599453; }; es5-ext-0.10.30/math/log1p/shim.js000066400000000000000000000006731315003545300164230ustar00rootroot00000000000000// Thanks: https://github.com/monolithed/ECMAScript-6/blob/master/ES6.js "use strict"; var log = Math.log; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value < -1) return NaN; if (value === -1) return -Infinity; if (value === 0) return value; if (value === Infinity) return Infinity; if (value > -1.0e-8 && value < 1.0e-8) return value - value * value / 2; return log(1 + value); }; es5-ext-0.10.30/math/log2/000077500000000000000000000000001315003545300147405ustar00rootroot00000000000000es5-ext-0.10.30/math/log2/implement.js000066400000000000000000000002641315003545300172720ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "log2", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/log2/index.js000066400000000000000000000001411315003545300164010ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.log2 : require("./shim"); es5-ext-0.10.30/math/log2/is-implemented.js000066400000000000000000000002541315003545300202130ustar00rootroot00000000000000"use strict"; module.exports = function () { var log2 = Math.log2; if (typeof log2 !== "function") return false; return log2(3).toFixed(15) === "1.584962500721156"; }; es5-ext-0.10.30/math/log2/shim.js000066400000000000000000000004711315003545300162400ustar00rootroot00000000000000"use strict"; var log = Math.log, LOG2E = Math.LOG2E; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value < 0) return NaN; if (value === 0) return -Infinity; if (value === 1) return 0; if (value === Infinity) return Infinity; return log(value) * LOG2E; }; es5-ext-0.10.30/math/sign/000077500000000000000000000000001315003545300150355ustar00rootroot00000000000000es5-ext-0.10.30/math/sign/implement.js000066400000000000000000000002641315003545300173670ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "sign", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/sign/index.js000066400000000000000000000001411315003545300164760ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.sign : require("./shim"); es5-ext-0.10.30/math/sign/is-implemented.js000066400000000000000000000002471315003545300203120ustar00rootroot00000000000000"use strict"; module.exports = function () { var sign = Math.sign; if (typeof sign !== "function") return false; return (sign(10) === 1) && (sign(-20) === -1); }; es5-ext-0.10.30/math/sign/shim.js000066400000000000000000000002341315003545300163320ustar00rootroot00000000000000"use strict"; module.exports = function (value) { value = Number(value); if (isNaN(value) || (value === 0)) return value; return value > 0 ? 1 : -1; }; es5-ext-0.10.30/math/sinh/000077500000000000000000000000001315003545300150365ustar00rootroot00000000000000es5-ext-0.10.30/math/sinh/implement.js000066400000000000000000000002641315003545300173700ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "sinh", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/sinh/index.js000066400000000000000000000001411315003545300164770ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.sinh : require("./shim"); es5-ext-0.10.30/math/sinh/is-implemented.js000066400000000000000000000003101315003545300203020ustar00rootroot00000000000000"use strict"; module.exports = function () { var sinh = Math.sinh; if (typeof sinh !== "function") return false; return (sinh(1) === 1.1752011936438014) && (sinh(Number.MIN_VALUE) === 5e-324); }; es5-ext-0.10.30/math/sinh/shim.js000066400000000000000000000010031315003545300163260ustar00rootroot00000000000000// Parts of implementation taken from es6-shim project // See: https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js "use strict"; var expm1 = require("../expm1") , abs = Math.abs , exp = Math.exp , e = Math.E; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value === 0) return value; if (!isFinite(value)) return value; if (abs(value) < 1) return (expm1(value) - expm1(-value)) / 2; return (exp(value - 1) - exp(-value - 1)) * e / 2; }; es5-ext-0.10.30/math/tanh/000077500000000000000000000000001315003545300150275ustar00rootroot00000000000000es5-ext-0.10.30/math/tanh/implement.js000066400000000000000000000002641315003545300173610ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "tanh", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/tanh/index.js000066400000000000000000000001411315003545300164700ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.tanh : require("./shim"); es5-ext-0.10.30/math/tanh/is-implemented.js000066400000000000000000000003031315003545300202750ustar00rootroot00000000000000"use strict"; module.exports = function () { var tanh = Math.tanh; if (typeof tanh !== "function") return false; return (tanh(1) === 0.7615941559557649) && (tanh(Number.MAX_VALUE) === 1); }; es5-ext-0.10.30/math/tanh/shim.js000066400000000000000000000006201315003545300163230ustar00rootroot00000000000000"use strict"; var exp = Math.exp; module.exports = function (value) { var num1, num2; if (isNaN(value)) return NaN; value = Number(value); if (value === 0) return value; if (value === Infinity) return 1; if (value === -Infinity) return -1; num1 = exp(value); if (num1 === Infinity) return 1; num2 = exp(-value); if (num2 === Infinity) return -1; return (num1 - num2) / (num1 + num2); }; es5-ext-0.10.30/math/trunc/000077500000000000000000000000001315003545300152305ustar00rootroot00000000000000es5-ext-0.10.30/math/trunc/implement.js000066400000000000000000000002651315003545300175630ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Math, "trunc", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/math/trunc/index.js000066400000000000000000000001421315003545300166720ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Math.trunc : require("./shim"); es5-ext-0.10.30/math/trunc/is-implemented.js000066400000000000000000000002641315003545300205040ustar00rootroot00000000000000"use strict"; module.exports = function () { var trunc = Math.trunc; if (typeof trunc !== "function") return false; return (trunc(13.67) === 13) && (trunc(-13.67) === -13); }; es5-ext-0.10.30/math/trunc/shim.js000066400000000000000000000004711315003545300165300ustar00rootroot00000000000000"use strict"; var floor = Math.floor; module.exports = function (value) { if (isNaN(value)) return NaN; value = Number(value); if (value === 0) return value; if (value === Infinity) return Infinity; if (value === -Infinity) return -Infinity; if (value > 0) return floor(value); return -floor(-value); }; es5-ext-0.10.30/number/000077500000000000000000000000001315003545300144345ustar00rootroot00000000000000es5-ext-0.10.30/number/#/000077500000000000000000000000001315003545300145565ustar00rootroot00000000000000es5-ext-0.10.30/number/#/index.js000066400000000000000000000000741315003545300162240ustar00rootroot00000000000000"use strict"; module.exports = { pad: require("./pad") }; es5-ext-0.10.30/number/#/pad.js000066400000000000000000000006201315003545300156560ustar00rootroot00000000000000"use strict"; var pad = require("../../string/#/pad") , toPosInt = require("../to-pos-integer") , toFixed = Number.prototype.toFixed; module.exports = function (length/*, precision*/) { var precision; length = toPosInt(length); precision = toPosInt(arguments[1]); return pad.call(precision ? toFixed.call(this, precision) : this, "0", length + (precision ? 1 + precision : 0)); }; es5-ext-0.10.30/number/epsilon/000077500000000000000000000000001315003545300161055ustar00rootroot00000000000000es5-ext-0.10.30/number/epsilon/implement.js000066400000000000000000000002671315003545300204420ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Number, "EPSILON", { value: require("./"), configurable: false, enumerable: false, writable: false }); } es5-ext-0.10.30/number/epsilon/index.js000066400000000000000000000000671315003545300175550ustar00rootroot00000000000000"use strict"; module.exports = 2.220446049250313e-16; es5-ext-0.10.30/number/epsilon/is-implemented.js000066400000000000000000000001351315003545300213560ustar00rootroot00000000000000"use strict"; module.exports = function () { return typeof Number.EPSILON === "number"; }; es5-ext-0.10.30/number/index.js000066400000000000000000000010451315003545300161010ustar00rootroot00000000000000"use strict"; module.exports = { "#": require("./#"), "EPSILON": require("./epsilon"), "isFinite": require("./is-finite"), "isInteger": require("./is-integer"), "isNaN": require("./is-nan"), "isNatural": require("./is-natural"), "isNumber": require("./is-number"), "isSafeInteger": require("./is-safe-integer"), "MAX_SAFE_INTEGER": require("./max-safe-integer"), "MIN_SAFE_INTEGER": require("./min-safe-integer"), "toInteger": require("./to-integer"), "toPosInteger": require("./to-pos-integer"), "toUint32": require("./to-uint32") }; es5-ext-0.10.30/number/is-finite/000077500000000000000000000000001315003545300163235ustar00rootroot00000000000000es5-ext-0.10.30/number/is-finite/implement.js000066400000000000000000000002721315003545300206540ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Number, "isFinite", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/number/is-finite/index.js000066400000000000000000000001471315003545300177720ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Number.isFinite : require("./shim"); es5-ext-0.10.30/number/is-finite/is-implemented.js000066400000000000000000000003431315003545300215750ustar00rootroot00000000000000"use strict"; module.exports = function () { var numberIsFinite = Number.isFinite; if (typeof numberIsFinite !== "function") return false; return !numberIsFinite("23") && numberIsFinite(34) && !numberIsFinite(Infinity); }; es5-ext-0.10.30/number/is-finite/shim.js000066400000000000000000000001561315003545300176230ustar00rootroot00000000000000"use strict"; module.exports = function (value) { return (typeof value === "number") && isFinite(value); }; es5-ext-0.10.30/number/is-integer/000077500000000000000000000000001315003545300165025ustar00rootroot00000000000000es5-ext-0.10.30/number/is-integer/implement.js000066400000000000000000000002731315003545300210340ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Number, "isInteger", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/number/is-integer/index.js000066400000000000000000000001501315003545300201430ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Number.isInteger : require("./shim"); es5-ext-0.10.30/number/is-integer/is-implemented.js000066400000000000000000000003101315003545300217460ustar00rootroot00000000000000"use strict"; module.exports = function () { var isInteger = Number.isInteger; if (typeof isInteger !== "function") return false; return !isInteger("23") && isInteger(34) && !isInteger(32.34); }; es5-ext-0.10.30/number/is-integer/shim.js000066400000000000000000000002671315003545300200050ustar00rootroot00000000000000// Credit: http://www.2ality.com/2014/05/is-integer.html "use strict"; module.exports = function (value) { if (typeof value !== "number") return false; return value % 1 === 0; }; es5-ext-0.10.30/number/is-nan/000077500000000000000000000000001315003545300156215ustar00rootroot00000000000000es5-ext-0.10.30/number/is-nan/implement.js000066400000000000000000000002671315003545300201560ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Number, "isNaN", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/number/is-nan/index.js000066400000000000000000000001441315003545300172650ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Number.isNaN : require("./shim"); es5-ext-0.10.30/number/is-nan/is-implemented.js000066400000000000000000000003121315003545300210670ustar00rootroot00000000000000"use strict"; module.exports = function () { var numberIsNaN = Number.isNaN; if (typeof numberIsNaN !== "function") return false; return !numberIsNaN({}) && numberIsNaN(NaN) && !numberIsNaN(34); }; es5-ext-0.10.30/number/is-nan/shim.js000066400000000000000000000001741315003545300171210ustar00rootroot00000000000000"use strict"; module.exports = function (value) { // eslint-disable-next-line no-self-compare return value !== value; }; es5-ext-0.10.30/number/is-natural.js000066400000000000000000000002041315003545300170450ustar00rootroot00000000000000"use strict"; var isInteger = require("./is-integer"); module.exports = function (num) { return isInteger(num) && (num >= 0); }; es5-ext-0.10.30/number/is-number.js000066400000000000000000000004101315003545300166660ustar00rootroot00000000000000"use strict"; var objToString = Object.prototype.toString, id = objToString.call(1); module.exports = function (value) { return ( typeof value === "number" || (value instanceof Number || (typeof value === "object" && objToString.call(value) === id)) ); }; es5-ext-0.10.30/number/is-safe-integer/000077500000000000000000000000001315003545300174165ustar00rootroot00000000000000es5-ext-0.10.30/number/is-safe-integer/implement.js000066400000000000000000000002771315003545300217540ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Number, "isSafeInteger", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/number/is-safe-integer/index.js000066400000000000000000000001541315003545300210630ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Number.isSafeInteger : require("./shim"); es5-ext-0.10.30/number/is-safe-integer/is-implemented.js000066400000000000000000000003671315003545300226760ustar00rootroot00000000000000"use strict"; module.exports = function () { var isSafeInteger = Number.isSafeInteger; if (typeof isSafeInteger !== "function") return false; return !isSafeInteger("23") && isSafeInteger(34232322323) && !isSafeInteger(9007199254740992); }; es5-ext-0.10.30/number/is-safe-integer/shim.js000066400000000000000000000003571315003545300207210ustar00rootroot00000000000000"use strict"; var isInteger = require("../is-integer/shim") , maxValue = require("../max-safe-integer") , abs = Math.abs; module.exports = function (value) { if (!isInteger(value)) return false; return abs(value) <= maxValue; }; es5-ext-0.10.30/number/max-safe-integer/000077500000000000000000000000001315003545300175705ustar00rootroot00000000000000es5-ext-0.10.30/number/max-safe-integer/implement.js000066400000000000000000000003001315003545300221110ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Number, "MAX_SAFE_INTEGER", { value: require("./"), configurable: false, enumerable: false, writable: false }); } es5-ext-0.10.30/number/max-safe-integer/index.js000066400000000000000000000000651315003545300212360ustar00rootroot00000000000000"use strict"; module.exports = Math.pow(2, 53) - 1; es5-ext-0.10.30/number/max-safe-integer/is-implemented.js000066400000000000000000000001461315003545300230430ustar00rootroot00000000000000"use strict"; module.exports = function () { return typeof Number.MAX_SAFE_INTEGER === "number"; }; es5-ext-0.10.30/number/min-safe-integer/000077500000000000000000000000001315003545300175665ustar00rootroot00000000000000es5-ext-0.10.30/number/min-safe-integer/implement.js000066400000000000000000000003001315003545300221070ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Number, "MIN_SAFE_INTEGER", { value: require("./"), configurable: false, enumerable: false, writable: false }); } es5-ext-0.10.30/number/min-safe-integer/index.js000066400000000000000000000000701315003545300212300ustar00rootroot00000000000000"use strict"; module.exports = -(Math.pow(2, 53) - 1); es5-ext-0.10.30/number/min-safe-integer/is-implemented.js000066400000000000000000000001461315003545300230410ustar00rootroot00000000000000"use strict"; module.exports = function () { return typeof Number.MIN_SAFE_INTEGER === "number"; }; es5-ext-0.10.30/number/to-integer.js000066400000000000000000000004271315003545300170520ustar00rootroot00000000000000"use strict"; var sign = require("../math/sign") , abs = Math.abs, floor = Math.floor; module.exports = function (value) { if (isNaN(value)) return 0; value = Number(value); if ((value === 0) || !isFinite(value)) return value; return sign(value) * floor(abs(value)); }; es5-ext-0.10.30/number/to-pos-integer.js000066400000000000000000000002261315003545300176460ustar00rootroot00000000000000"use strict"; var toInteger = require("./to-integer") , max = Math.max; module.exports = function (value) { return max(0, toInteger(value)); }; es5-ext-0.10.30/number/to-uint32.js000066400000000000000000000001631315003545300165360ustar00rootroot00000000000000"use strict"; module.exports = function (value) { // eslint-disable-next-line no-bitwise return value >>> 0; }; es5-ext-0.10.30/object/000077500000000000000000000000001315003545300144125ustar00rootroot00000000000000es5-ext-0.10.30/object/_iterate.js000066400000000000000000000021311315003545300165410ustar00rootroot00000000000000// Internal method, used by iteration functions. // Calls a function for each key-value pair found in object // Optionally takes compareFn to iterate object in specific order "use strict"; var callable = require("./valid-callable") , value = require("./valid-value") , bind = Function.prototype.bind , call = Function.prototype.call , keys = Object.keys , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable; module.exports = function (method, defVal) { return function (obj, cb /*, thisArg, compareFn*/) { var list, thisArg = arguments[2], compareFn = arguments[3]; obj = Object(value(obj)); callable(cb); list = keys(obj); if (compareFn) { list.sort(typeof compareFn === "function" ? bind.call(compareFn, obj) : undefined); } if (typeof method !== "function") method = list[method]; return call.call(method, list, function (key, index) { if (!objPropertyIsEnumerable.call(obj, key)) return defVal; return call.call(cb, thisArg, obj[key], key, obj, index); }); }; }; es5-ext-0.10.30/object/assign/000077500000000000000000000000001315003545300156765ustar00rootroot00000000000000es5-ext-0.10.30/object/assign/implement.js000066400000000000000000000002701315003545300202250ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Object, "assign", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/object/assign/index.js000066400000000000000000000001451315003545300173430ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Object.assign : require("./shim"); es5-ext-0.10.30/object/assign/is-implemented.js000066400000000000000000000004041315003545300211460ustar00rootroot00000000000000"use strict"; module.exports = function () { var assign = Object.assign, obj; if (typeof assign !== "function") return false; obj = { foo: "raz" }; assign(obj, { bar: "dwa" }, { trzy: "trzy" }); return (obj.foo + obj.bar + obj.trzy) === "razdwatrzy"; }; es5-ext-0.10.30/object/assign/shim.js000066400000000000000000000007641315003545300172030ustar00rootroot00000000000000"use strict"; var keys = require("../keys") , value = require("../valid-value") , max = Math.max; module.exports = function (dest, src /*, …srcn*/) { var error, i, length = max(arguments.length, 2), assign; dest = Object(value(dest)); assign = function (key) { try { dest[key] = src[key]; } catch (e) { if (!error) error = e; } }; for (i = 1; i < length; ++i) { src = arguments[i]; keys(src).forEach(assign); } if (error !== undefined) throw error; return dest; }; es5-ext-0.10.30/object/clear.js000066400000000000000000000004141315003545300160350ustar00rootroot00000000000000"use strict"; var keys = require("./keys"); module.exports = function (obj) { var error; keys(obj).forEach(function (key) { try { delete this[key]; } catch (e) { if (!error) error = e; } }, obj); if (error !== undefined) throw error; return obj; }; es5-ext-0.10.30/object/compact.js000066400000000000000000000002751315003545300164020ustar00rootroot00000000000000"use strict"; var filter = require("./filter") , isValue = require("./is-value"); module.exports = function (obj) { return filter(obj, function (val) { return isValue(val); }); }; es5-ext-0.10.30/object/compare.js000066400000000000000000000021001315003545300163670ustar00rootroot00000000000000"use strict"; var strCompare = require("../string/#/case-insensitive-compare") , isObject = require("./is-object") , isValue = require("./is-value") , numIsNaN = require("../number/is-nan") , resolve , typeMap; typeMap = { undefined: 0, object: 1, boolean: 2, string: 3, number: 4 }; resolve = function (a) { if (isObject(a)) { if (typeof a.valueOf !== "function") return NaN; a = a.valueOf(); if (isObject(a)) { if (typeof a.toString !== "function") return NaN; a = a.toString(); if (typeof a !== "string") return NaN; } } return a; }; module.exports = function (val1, val2) { if (val1 === val2) return 0; // Same val1 = resolve(val1); val2 = resolve(val2); // eslint-disable-next-line eqeqeq if (val1 == val2) return typeMap[typeof val1] - typeMap[typeof val2]; if (!isValue(val1)) return -1; if (!isValue(val2)) return 1; if (typeof val1 === "string" || typeof val2 === "string") { return strCompare.call(val1, val2); } if (numIsNaN(val1) && numIsNaN(val2)) return 0; // Jslint: ignore return Number(val1) - Number(val2); }; es5-ext-0.10.30/object/copy-deep.js000066400000000000000000000017031315003545300166360ustar00rootroot00000000000000"use strict"; var forEach = require("./for-each") , isPlainObject = require("./is-plain-object") , ensureValue = require("./valid-value") , isArray = Array.isArray , copy , copyItem; copyItem = function (value) { var index; if (!isPlainObject(value) && !isArray(value)) return value; index = this[0].indexOf(value); if (index === -1) return copy.call(this, value); return this[1][index]; }; copy = function (source) { var target = isArray(source) ? [] : {}; this[0].push(source); this[1].push(target); if (isArray(source)) { source.forEach(function (value, key) { target[key] = copyItem.call(this, value, key); }, this); } else { forEach( source, function (value, key) { target[key] = copyItem.call(this, value, key); }, this ); } return target; }; module.exports = function (source) { var obj = Object(ensureValue(source)); if (obj !== source) return obj; return copy.call([[], []], obj); }; es5-ext-0.10.30/object/copy.js000066400000000000000000000010721315003545300157220ustar00rootroot00000000000000"use strict"; var aFrom = require("../array/from") , assign = require("./assign") , value = require("./valid-value"); module.exports = function (obj/*, propertyNames, options*/) { var copy = Object(value(obj)), propertyNames = arguments[1], options = Object(arguments[2]); if (copy !== obj && !propertyNames) return copy; var result = {}; if (propertyNames) { aFrom(propertyNames, function (propertyName) { if (options.ensure || propertyName in obj) result[propertyName] = obj[propertyName]; }); } else { assign(result, obj); } return result; }; es5-ext-0.10.30/object/count.js000066400000000000000000000001561315003545300161020ustar00rootroot00000000000000"use strict"; var keys = require("./keys"); module.exports = function (obj) { return keys(obj).length; }; es5-ext-0.10.30/object/create.js000066400000000000000000000020331315003545300162110ustar00rootroot00000000000000// Workaround for http://code.google.com/p/v8/issues/detail?id=2804 "use strict"; var create = Object.create, shim; if (!require("./set-prototype-of/is-implemented")()) { shim = require("./set-prototype-of/shim"); } module.exports = (function () { var nullObject, polyProps, desc; if (!shim) return create; if (shim.level !== 1) return create; nullObject = {}; polyProps = {}; desc = { configurable: false, enumerable: false, writable: true, value: undefined }; Object.getOwnPropertyNames(Object.prototype).forEach(function (name) { if (name === "__proto__") { polyProps[name] = { configurable: true, enumerable: false, writable: true, value: undefined }; return; } polyProps[name] = desc; }); Object.defineProperties(nullObject, polyProps); Object.defineProperty(shim, "nullPolyfill", { configurable: false, enumerable: false, writable: false, value: nullObject }); return function (prototype, props) { return create(prototype === null ? nullObject : prototype, props); }; }()); es5-ext-0.10.30/object/ensure-array.js000066400000000000000000000004131315003545300173630ustar00rootroot00000000000000"use strict"; var toShortString = require("../to-short-string-representation") , isArray = require("./is-array-like"); module.exports = function (value) { if (isArray(value)) return value; throw new TypeError(toShortString(value) + " is not a array"); }; es5-ext-0.10.30/object/ensure-finite-number.js000066400000000000000000000004501315003545300210120ustar00rootroot00000000000000"use strict"; var isFiniteNumber = require("./is-finite-number") , safeToString = require("../safe-to-string"); module.exports = function (value) { if (isFiniteNumber(value)) return Number(value); throw new TypeError(safeToString(value) + " does not represent a finite number value"); }; es5-ext-0.10.30/object/ensure-natural-number-value.js000066400000000000000000000003531315003545300223160ustar00rootroot00000000000000"use strict"; var ensure = require("./ensure-natural-number") , isValue = require("./is-value"); module.exports = function (arg) { if (!isValue(arg)) throw new TypeError(arg + " is not a natural number"); return ensure(arg); }; es5-ext-0.10.30/object/ensure-natural-number.js000066400000000000000000000003301315003545300211770ustar00rootroot00000000000000"use strict"; var isNatural = require("../number/is-natural"); module.exports = function (arg) { var num = Number(arg); if (!isNatural(num)) throw new TypeError(arg + " is not a natural number"); return num; }; es5-ext-0.10.30/object/ensure-promise.js000066400000000000000000000003731315003545300177300ustar00rootroot00000000000000"use strict"; var safeToString = require("../safe-to-string") , isPromise = require("./is-promise"); module.exports = function (value) { if (!isPromise(value)) throw new TypeError(safeToString(value) + " is not a thenable"); return value; }; es5-ext-0.10.30/object/eq.js000066400000000000000000000002451315003545300153560ustar00rootroot00000000000000"use strict"; var numIsNaN = require("../number/is-nan"); module.exports = function (val1, val2) { return val1 === val2 || (numIsNaN(val1) && numIsNaN(val2)); }; es5-ext-0.10.30/object/every.js000066400000000000000000000001061315003545300160770ustar00rootroot00000000000000"use strict"; module.exports = require("./_iterate")("every", true); es5-ext-0.10.30/object/filter.js000066400000000000000000000006371315003545300162430ustar00rootroot00000000000000"use strict"; var callable = require("./valid-callable") , forEach = require("./for-each") , call = Function.prototype.call; module.exports = function (obj, cb /*, thisArg*/) { var result = {}, thisArg = arguments[2]; callable(cb); forEach(obj, function (value, key, targetObj, index) { if (call.call(cb, thisArg, value, key, targetObj, index)) result[key] = targetObj[key]; }); return result; }; es5-ext-0.10.30/object/find-key.js000066400000000000000000000001321315003545300164520ustar00rootroot00000000000000"use strict"; module.exports = require("./_iterate")(require("../array/#/find"), false); es5-ext-0.10.30/object/find.js000066400000000000000000000004301315003545300156650ustar00rootroot00000000000000"use strict"; var findKey = require("./find-key") , isValue = require("./is-value"); // eslint-disable-next-line no-unused-vars module.exports = function (obj, cb /*, thisArg, compareFn*/) { var key = findKey.apply(this, arguments); return isValue(key) ? obj[key] : key; }; es5-ext-0.10.30/object/first-key.js000066400000000000000000000004371315003545300166710ustar00rootroot00000000000000"use strict"; var value = require("./valid-value") , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable; module.exports = function (obj) { var i; value(obj); for (i in obj) { if (objPropertyIsEnumerable.call(obj, i)) return i; } return null; }; es5-ext-0.10.30/object/flatten.js000066400000000000000000000005441315003545300164100ustar00rootroot00000000000000"use strict"; var isPlainObject = require("./is-plain-object") , forEach = require("./for-each") , process; process = function self (value, key) { if (isPlainObject(value)) forEach(value, self, this); else this[key] = value; }; module.exports = function (obj) { var flattened = {}; forEach(obj, process, flattened); return flattened; }; es5-ext-0.10.30/object/for-each.js000066400000000000000000000001021315003545300164250ustar00rootroot00000000000000"use strict"; module.exports = require("./_iterate")("forEach"); es5-ext-0.10.30/object/get-property-names.js000066400000000000000000000007531315003545300205170ustar00rootroot00000000000000"use strict"; var uniq = require("../array/#/uniq") , value = require("./valid-value") , push = Array.prototype.push , getOwnPropertyNames = Object.getOwnPropertyNames , getPrototypeOf = Object.getPrototypeOf; module.exports = function (obj) { var keys; obj = Object(value(obj)); keys = getOwnPropertyNames(obj); while ((obj = getPrototypeOf(obj))) { push.apply(keys, getOwnPropertyNames(obj)); } return uniq.call(keys); }; es5-ext-0.10.30/object/index.js000066400000000000000000000042011315003545300160540ustar00rootroot00000000000000"use strict"; module.exports = { assign: require("./assign"), clear: require("./clear"), compact: require("./compact"), compare: require("./compare"), copy: require("./copy"), copyDeep: require("./copy-deep"), count: require("./count"), create: require("./create"), ensureArray: require("./ensure-array"), ensureFiniteNumber: require("./ensure-finite-number"), ensureNaturalNumber: require("./ensure-natural-number"), ensureNaturalNumberValue: require("./ensure-natural-number-value"), ensurePromise: require("./ensure-promise"), eq: require("./eq"), every: require("./every"), filter: require("./filter"), find: require("./find"), findKey: require("./find-key"), firstKey: require("./first-key"), flatten: require("./flatten"), forEach: require("./for-each"), getPropertyNames: require("./get-property-names"), is: require("./is"), isArrayLike: require("./is-array-like"), isCallable: require("./is-callable"), isCopy: require("./is-copy"), isCopyDeep: require("./is-copy-deep"), isEmpty: require("./is-empty"), isFiniteNumber: require("./is-finite-number"), isNumberValue: require("./is-number-value"), isObject: require("./is-object"), isPlainObject: require("./is-plain-object"), isPromise: require("./is-promise"), isValue: require("./is-value"), keyOf: require("./key-of"), keys: require("./keys"), map: require("./map"), mapKeys: require("./map-keys"), normalizeOptions: require("./normalize-options"), mixin: require("./mixin"), mixinPrototypes: require("./mixin-prototypes"), primitiveSet: require("./primitive-set"), safeTraverse: require("./safe-traverse"), serialize: require("./serialize"), setPrototypeOf: require("./set-prototype-of"), some: require("./some"), toArray: require("./to-array"), unserialize: require("./unserialize"), validateArrayLike: require("./validate-array-like"), validateArrayLikeObject: require("./validate-array-like-object"), validCallable: require("./valid-callable"), validObject: require("./valid-object"), validateStringifiable: require("./validate-stringifiable"), validateStringifiableValue: require("./validate-stringifiable-value"), validValue: require("./valid-value") }; es5-ext-0.10.30/object/is-array-like.js000066400000000000000000000010201315003545300174120ustar00rootroot00000000000000"use strict"; var isFunction = require("../function/is-function") , isObject = require("./is-object") , isValue = require("./is-value"); module.exports = function (value) { return ( (isValue(value) && typeof value.length === "number" && // Just checking ((typeof x === 'object') && (typeof x !== 'function')) // won't work right for some cases, e.g.: // type of instance of NodeList in Safari is a 'function' ((isObject(value) && !isFunction(value)) || typeof value === "string")) || false ); }; es5-ext-0.10.30/object/is-callable.js000066400000000000000000000001461315003545300171210ustar00rootroot00000000000000// Deprecated "use strict"; module.exports = function (obj) { return typeof obj === "function"; }; es5-ext-0.10.30/object/is-copy-deep.js000066400000000000000000000030461315003545300172510ustar00rootroot00000000000000"use strict"; var eq = require("./eq") , isPlainObject = require("./is-plain-object") , value = require("./valid-value"); var isArray = Array.isArray , keys = Object.keys , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable , objHasOwnProperty = Object.prototype.hasOwnProperty , eqArr , eqVal , eqObj; eqArr = function (arr1, arr2, recMap) { var i, length = arr1.length; if (length !== arr2.length) return false; for (i = 0; i < length; ++i) { if (objHasOwnProperty.call(arr1, i) !== objHasOwnProperty.call(arr2, i)) return false; if (!eqVal(arr1[i], arr2[i], recMap)) return false; } return true; }; eqObj = function (obj1, obj2, recMap) { var k1 = keys(obj1), k2 = keys(obj2); if (k1.length !== k2.length) return false; return k1.every(function (key) { if (!objPropertyIsEnumerable.call(obj2, key)) return false; return eqVal(obj1[key], obj2[key], recMap); }); }; eqVal = function (val1, val2, recMap) { var i, eqX, c1, c2; if (eq(val1, val2)) return true; if (isPlainObject(val1)) { if (!isPlainObject(val2)) return false; eqX = eqObj; } else if (isArray(val1) && isArray(val2)) { eqX = eqArr; } else { return false; } c1 = recMap[0]; c2 = recMap[1]; i = c1.indexOf(val1); if (i === -1) { i = c1.push(val1) - 1; c2[i] = []; } else if (c2[i].indexOf(val2) !== -1) return true; c2[i].push(val2); return eqX(val1, val2, recMap); }; module.exports = function (val1, val2) { if (eq(value(val1), value(val2))) return true; return eqVal(Object(val1), Object(val2), [[], []]); }; es5-ext-0.10.30/object/is-copy.js000066400000000000000000000011241315003545300163310ustar00rootroot00000000000000"use strict"; var eq = require("./eq") , value = require("./valid-value") , keys = Object.keys , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable; module.exports = function (val1, val2) { var k1, k2; if (eq(value(val1), value(val2))) return true; val1 = Object(val1); val2 = Object(val2); k1 = keys(val1); k2 = keys(val2); if (k1.length !== k2.length) return false; return k1.every(function (key) { if (!objPropertyIsEnumerable.call(val2, key)) return false; return eq(val1[key], val2[key]); }); }; es5-ext-0.10.30/object/is-empty.js000066400000000000000000000004671315003545300165260ustar00rootroot00000000000000"use strict"; var value = require("./valid-value") , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable; module.exports = function (obj) { var i; value(obj); for (i in obj) { // Jslint: ignore if (objPropertyIsEnumerable.call(obj, i)) return false; } return true; }; es5-ext-0.10.30/object/is-finite-number.js000066400000000000000000000002201315003545300201170ustar00rootroot00000000000000"use strict"; var isNumber = require("./is-number-value"); module.exports = function (value) { return isNumber(value) && isFinite(value); }; es5-ext-0.10.30/object/is-number-value.js000066400000000000000000000003011315003545300177550ustar00rootroot00000000000000"use strict"; var isValue = require("./is-value"); module.exports = function (value) { if (!isValue(value)) return false; try { return !isNaN(value); } catch (e) { return false; } }; es5-ext-0.10.30/object/is-object.js000066400000000000000000000003011315003545300166210ustar00rootroot00000000000000"use strict"; var isValue = require("./is-value"); var map = { function: true, object: true }; module.exports = function (value) { return (isValue(value) && map[typeof value]) || false; }; es5-ext-0.10.30/object/is-plain-object.js000066400000000000000000000011201315003545300177220ustar00rootroot00000000000000"use strict"; var getPrototypeOf = Object.getPrototypeOf , prototype = Object.prototype , objToString = prototype.toString , id = Object().toString(); module.exports = function (value) { var proto, valueConstructor; if (!value || typeof value !== "object" || objToString.call(value) !== id) { return false; } proto = getPrototypeOf(value); if (proto === null) { valueConstructor = value.constructor; if (typeof valueConstructor !== "function") return true; return valueConstructor.prototype !== value; } return proto === prototype || getPrototypeOf(proto) === null; }; es5-ext-0.10.30/object/is-promise.js000066400000000000000000000002751315003545300170430ustar00rootroot00000000000000"use strict"; var isCallable = require("./is-callable") , isObject = require("./is-object"); module.exports = function (value) { return isObject(value) && isCallable(value.then); }; es5-ext-0.10.30/object/is-value.js000066400000000000000000000002541315003545300164760ustar00rootroot00000000000000"use strict"; var _undefined = require("../function/noop")(); // Support ES3 engines module.exports = function (val) { return (val !== _undefined) && (val !== null); }; es5-ext-0.10.30/object/is.js000066400000000000000000000004411315003545300153620ustar00rootroot00000000000000// Implementation credits go to: // http://wiki.ecmascript.org/doku.php?id=harmony:egal "use strict"; var numIsNaN = require("../number/is-nan"); module.exports = function (val1, val2) { return val1 === val2 ? val1 !== 0 || 1 / val1 === 1 / val2 : numIsNaN(val1) && numIsNaN(val2); }; es5-ext-0.10.30/object/key-of.js000066400000000000000000000004421315003545300161420ustar00rootroot00000000000000"use strict"; var eq = require("./eq") , some = require("./some"); module.exports = function (obj, searchValue) { var result; return some(obj, function (value, name) { if (eq(value, searchValue)) { result = name; return true; } return false; }) ? result : null; }; es5-ext-0.10.30/object/keys/000077500000000000000000000000001315003545300153655ustar00rootroot00000000000000es5-ext-0.10.30/object/keys/implement.js000066400000000000000000000002661315003545300177210ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(Object, "keys", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/object/keys/index.js000066400000000000000000000001431315003545300170300ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Object.keys : require("./shim"); es5-ext-0.10.30/object/keys/is-implemented.js000066400000000000000000000002031315003545300206320ustar00rootroot00000000000000"use strict"; module.exports = function () { try { Object.keys("primitive"); return true; } catch (e) { return false; } }; es5-ext-0.10.30/object/keys/shim.js000066400000000000000000000002601315003545300166610ustar00rootroot00000000000000"use strict"; var isValue = require("../is-value"); var keys = Object.keys; module.exports = function (object) { return keys(isValue(object) ? Object(object) : object); }; es5-ext-0.10.30/object/map-keys.js000066400000000000000000000006301315003545300164750ustar00rootroot00000000000000"use strict"; var callable = require("./valid-callable") , forEach = require("./for-each") , call = Function.prototype.call; module.exports = function (obj, cb /*, thisArg*/) { var result = {}, thisArg = arguments[2]; callable(cb); forEach( obj, function (value, key, targetObj, index) { result[call.call(cb, thisArg, key, value, this, index)] = value; }, obj ); return result; }; es5-ext-0.10.30/object/map.js000066400000000000000000000006131315003545300155250ustar00rootroot00000000000000"use strict"; var callable = require("./valid-callable") , forEach = require("./for-each") , call = Function.prototype.call; module.exports = function (obj, cb /*, thisArg*/) { var result = {}, thisArg = arguments[2]; callable(cb); forEach(obj, function (value, key, targetObj, index) { result[key] = call.call(cb, thisArg, value, key, targetObj, index); }); return result; }; es5-ext-0.10.30/object/mixin-prototypes.js000066400000000000000000000020651315003545300203250ustar00rootroot00000000000000"use strict"; var value = require("./valid-value") , mixin = require("./mixin") , defineProperty = Object.defineProperty , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor , getOwnPropertyNames = Object.getOwnPropertyNames , getPrototypeOf = Object.getPrototypeOf , objHasOwnProperty = Object.prototype.hasOwnProperty; module.exports = function (target, source) { var error, end, define; target = Object(value(target)); source = Object(value(source)); end = getPrototypeOf(target); if (source === end) return target; try { mixin(target, source); } catch (e) { error = e; } source = getPrototypeOf(source); define = function (name) { if (objHasOwnProperty.call(target, name)) return; try { defineProperty(target, name, getOwnPropertyDescriptor(source, name)); } catch (e) { error = e; } }; while (source && source !== end) { getOwnPropertyNames(source).forEach(define); source = getPrototypeOf(source); } if (error) throw error; return target; }; es5-ext-0.10.30/object/mixin.js000066400000000000000000000015571315003545300161040ustar00rootroot00000000000000"use strict"; var value = require("./valid-value") , defineProperty = Object.defineProperty , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor , getOwnPropertyNames = Object.getOwnPropertyNames , getOwnPropertySymbols = Object.getOwnPropertySymbols; module.exports = function (target, source) { var error, sourceObject = Object(value(source)); target = Object(value(target)); getOwnPropertyNames(sourceObject).forEach(function (name) { try { defineProperty(target, name, getOwnPropertyDescriptor(source, name)); } catch (e) { error = e; } }); if (typeof getOwnPropertySymbols === "function") { getOwnPropertySymbols(sourceObject).forEach(function (symbol) { try { defineProperty(target, symbol, getOwnPropertyDescriptor(source, symbol)); } catch (e) { error = e; } }); } if (error !== undefined) throw error; return target; }; es5-ext-0.10.30/object/normalize-options.js000066400000000000000000000007251315003545300204450ustar00rootroot00000000000000"use strict"; var isValue = require("./is-value"); var forEach = Array.prototype.forEach, create = Object.create; var process = function (src, obj) { var key; for (key in src) obj[key] = src[key]; }; // eslint-disable-next-line no-unused-vars module.exports = function (opts1 /*, …options*/) { var result = create(null); forEach.call(arguments, function (options) { if (!isValue(options)) return; process(Object(options), result); }); return result; }; es5-ext-0.10.30/object/primitive-set.js000066400000000000000000000004271315003545300175540ustar00rootroot00000000000000"use strict"; var forEach = Array.prototype.forEach, create = Object.create; // eslint-disable-next-line no-unused-vars module.exports = function (arg /*, …args*/) { var set = create(null); forEach.call(arguments, function (name) { set[name] = true; }); return set; }; es5-ext-0.10.30/object/safe-traverse.js000066400000000000000000000005731315003545300175240ustar00rootroot00000000000000"use strict"; var value = require("./valid-value") , isValue = require("./is-value"); module.exports = function (obj /*, …names*/) { var length, current = 1; value(obj); length = arguments.length - 1; if (!length) return obj; while (current < length) { obj = obj[arguments[current++]]; if (!isValue(obj)) return undefined; } return obj[arguments[current]]; }; es5-ext-0.10.30/object/serialize.js000066400000000000000000000022351315003545300167410ustar00rootroot00000000000000"use strict"; var toArray = require("./to-array") , isDate = require("../date/is-date") , isValue = require("../object/is-value") , isRegExp = require("../reg-exp/is-reg-exp"); var isArray = Array.isArray , stringify = JSON.stringify , objHasOwnProperty = Object.prototype.hasOwnProperty; var keyValueToString = function (value, key) { return stringify(key) + ":" + exports(value); }; var sparseMap = function (arr) { var i, length = arr.length, result = new Array(length); for (i = 0; i < length; ++i) { if (!objHasOwnProperty.call(arr, i)) continue; result[i] = exports(arr[i]); } return result; }; module.exports = exports = function (obj) { if (!isValue(obj)) return String(obj); switch (typeof obj) { case "string": return stringify(obj); case "number": case "boolean": case "function": return String(obj); case "object": if (isArray(obj)) return "[" + sparseMap(obj) + "]"; if (isRegExp(obj)) return String(obj); if (isDate(obj)) return "new Date(" + obj.valueOf() + ")"; return "{" + toArray(obj, keyValueToString) + "}"; default: throw new TypeError("Serialization of " + String(obj) + "is unsupported"); } }; es5-ext-0.10.30/object/set-prototype-of/000077500000000000000000000000001315003545300176525ustar00rootroot00000000000000es5-ext-0.10.30/object/set-prototype-of/implement.js000066400000000000000000000003341315003545300222020ustar00rootroot00000000000000"use strict"; var shim; if (!require("./is-implemented")() && (shim = require("./shim"))) { Object.defineProperty(Object, "setPrototypeOf", { value: shim, configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/object/set-prototype-of/index.js000066400000000000000000000001551315003545300213200ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? Object.setPrototypeOf : require("./shim"); es5-ext-0.10.30/object/set-prototype-of/is-implemented.js000066400000000000000000000005771315003545300231350ustar00rootroot00000000000000"use strict"; var create = Object.create, getPrototypeOf = Object.getPrototypeOf, plainObject = {}; module.exports = function (/* CustomCreate*/) { var setPrototypeOf = Object.setPrototypeOf, customCreate = arguments[0] || create; if (typeof setPrototypeOf !== "function") return false; return getPrototypeOf(setPrototypeOf(customCreate(null), plainObject)) === plainObject; }; es5-ext-0.10.30/object/set-prototype-of/shim.js000066400000000000000000000042311315003545300211500ustar00rootroot00000000000000/* eslint no-proto: "off" */ // Big thanks to @WebReflection for sorting this out // https://gist.github.com/WebReflection/5593554 "use strict"; var isObject = require("../is-object") , value = require("../valid-value") , objIsPrototypOf = Object.prototype.isPrototypeOf , defineProperty = Object.defineProperty , nullDesc = { configurable: true, enumerable: false, writable: true, value: undefined } , validate; validate = function (obj, prototype) { value(obj); if (prototype === null || isObject(prototype)) return obj; throw new TypeError("Prototype must be null or an object"); }; module.exports = (function (status) { var fn, set; if (!status) return null; if (status.level === 2) { if (status.set) { set = status.set; fn = function (obj, prototype) { set.call(validate(obj, prototype), prototype); return obj; }; } else { fn = function (obj, prototype) { validate(obj, prototype).__proto__ = prototype; return obj; }; } } else { fn = function self (obj, prototype) { var isNullBase; validate(obj, prototype); isNullBase = objIsPrototypOf.call(self.nullPolyfill, obj); if (isNullBase) delete self.nullPolyfill.__proto__; if (prototype === null) prototype = self.nullPolyfill; obj.__proto__ = prototype; if (isNullBase) defineProperty(self.nullPolyfill, "__proto__", nullDesc); return obj; }; } return Object.defineProperty(fn, "level", { configurable: false, enumerable: false, writable: false, value: status.level }); }( (function () { var tmpObj1 = Object.create(null) , tmpObj2 = {} , set , desc = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__"); if (desc) { try { set = desc.set; // Opera crashes at this point set.call(tmpObj1, tmpObj2); } catch (ignore) {} if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { set: set, level: 2 }; } tmpObj1.__proto__ = tmpObj2; if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 2 }; tmpObj1 = {}; tmpObj1.__proto__ = tmpObj2; if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 1 }; return false; })() )); require("../create"); es5-ext-0.10.30/object/some.js000066400000000000000000000001061315003545300157100ustar00rootroot00000000000000"use strict"; module.exports = require("./_iterate")("some", false); es5-ext-0.10.30/object/to-array.js000066400000000000000000000010751315003545300165110ustar00rootroot00000000000000"use strict"; var callable = require("./valid-callable") , isValue = require("./is-value") , forEach = require("./for-each") , call = Function.prototype.call , defaultCb = function (value, key) { return [key, value]; }; module.exports = function (obj /*, cb, thisArg, compareFn*/) { var a = [], cb = arguments[1], thisArg = arguments[2]; cb = isValue(cb) ? callable(cb) : defaultCb; forEach( obj, function (value, key, targetObj, index) { a.push(call.call(cb, thisArg, value, key, this, index)); }, obj, arguments[3] ); return a; }; es5-ext-0.10.30/object/unserialize.js000066400000000000000000000003001315003545300172730ustar00rootroot00000000000000"use strict"; var value = require("./valid-value"); module.exports = exports = function (code) { // eslint-disable-next-line no-new-func return new Function("return " + value(code))(); }; es5-ext-0.10.30/object/valid-callable.js000066400000000000000000000002161315003545300176030ustar00rootroot00000000000000"use strict"; module.exports = function (fn) { if (typeof fn !== "function") throw new TypeError(fn + " is not a function"); return fn; }; es5-ext-0.10.30/object/valid-object.js000066400000000000000000000002661315003545300173170ustar00rootroot00000000000000"use strict"; var isObject = require("./is-object"); module.exports = function (value) { if (!isObject(value)) throw new TypeError(value + " is not an Object"); return value; }; es5-ext-0.10.30/object/valid-value.js000066400000000000000000000002661315003545300171650ustar00rootroot00000000000000"use strict"; var isValue = require("./is-value"); module.exports = function (value) { if (!isValue(value)) throw new TypeError("Cannot use null or undefined"); return value; }; es5-ext-0.10.30/object/validate-array-like-object.js000066400000000000000000000003711315003545300220440ustar00rootroot00000000000000"use strict"; var isArrayLike = require("./is-array-like") , isObject = require("./is-object"); module.exports = function (obj) { if (isObject(obj) && isArrayLike(obj)) return obj; throw new TypeError(obj + " is not array-like object"); }; es5-ext-0.10.30/object/validate-array-like.js000066400000000000000000000002761315003545300206040ustar00rootroot00000000000000"use strict"; var isArrayLike = require("./is-array-like"); module.exports = function (obj) { if (isArrayLike(obj)) return obj; throw new TypeError(obj + " is not array-like value"); }; es5-ext-0.10.30/object/validate-stringifiable-value.js000066400000000000000000000003101315003545300224650ustar00rootroot00000000000000"use strict"; var ensureValue = require("./valid-value") , stringifiable = require("./validate-stringifiable"); module.exports = function (value) { return stringifiable(ensureValue(value)); }; es5-ext-0.10.30/object/validate-stringifiable.js000066400000000000000000000004761315003545300213700ustar00rootroot00000000000000"use strict"; var isCallable = require("./is-callable"); module.exports = function (stringifiable) { try { if (stringifiable && isCallable(stringifiable.toString)) return stringifiable.toString(); return String(stringifiable); } catch (e) { throw new TypeError("Passed argument cannot be stringifed"); } }; es5-ext-0.10.30/optional-chaining.js000066400000000000000000000006601315003545300171070ustar00rootroot00000000000000"use strict"; var isValue = require("./object/is-value"); var slice = Array.prototype.slice; // eslint-disable-next-line no-unused-vars module.exports = function (value, propertyName1 /*, …propertyNamen*/) { var propertyNames = slice.call(arguments, 1), index = 0, length = propertyNames.length; while (isValue(value) && index < length) value = value[propertyNames[index++]]; return index === length ? value : undefined; }; es5-ext-0.10.30/package.json000066400000000000000000000017201315003545300154320ustar00rootroot00000000000000{ "name": "es5-ext", "version": "0.10.30", "description": "ECMAScript extensions and shims", "author": "Mariusz Nowak (http://www.medikoo.com/)", "keywords": [ "ecmascript", "ecmascript5", "ecmascript6", "es5", "es6", "extensions", "ext", "addons", "extras", "harmony", "javascript", "polyfill", "shim", "util", "utils", "utilities" ], "repository": { "type": "git", "url": "git://github.com/medikoo/es5-ext.git" }, "dependencies": { "es6-iterator": "2", "es6-symbol": "~3.1" }, "devDependencies": { "eslint": "^4.2.0", "eslint-config-medikoo-es5": "^1.4.1", "tad": "~0.2.7" }, "eslintConfig": { "extends": "medikoo-es5", "root": true, "rules": { "no-extend-native": "off" } }, "scripts": { "lint": "eslint --ignore-path=.gitignore .", "test": "node ./node_modules/tad/bin/tad" }, "license": "MIT" } es5-ext-0.10.30/reg-exp/000077500000000000000000000000001315003545300145135ustar00rootroot00000000000000es5-ext-0.10.30/reg-exp/#/000077500000000000000000000000001315003545300146355ustar00rootroot00000000000000es5-ext-0.10.30/reg-exp/#/index.js000066400000000000000000000003421315003545300163010ustar00rootroot00000000000000"use strict"; module.exports = { isSticky: require("./is-sticky"), isUnicode: require("./is-unicode"), match: require("./match"), replace: require("./replace"), search: require("./search"), split: require("./split") }; es5-ext-0.10.30/reg-exp/#/is-sticky.js000066400000000000000000000002661315003545300171160ustar00rootroot00000000000000"use strict"; var validRegExp = require("../valid-reg-exp") , re = /\/[a-xz]*y[a-xz]*$/; module.exports = function () { return Boolean(String(validRegExp(this)).match(re)); }; es5-ext-0.10.30/reg-exp/#/is-unicode.js000066400000000000000000000002661315003545300172360ustar00rootroot00000000000000"use strict"; var validRegExp = require("../valid-reg-exp") , re = /\/[a-xz]*u[a-xz]*$/; module.exports = function () { return Boolean(String(validRegExp(this)).match(re)); }; es5-ext-0.10.30/reg-exp/#/match/000077500000000000000000000000001315003545300157315ustar00rootroot00000000000000es5-ext-0.10.30/reg-exp/#/match/implement.js000066400000000000000000000003011315003545300202530ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(RegExp.prototype, "match", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/reg-exp/#/match/index.js000066400000000000000000000001561315003545300174000ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? RegExp.prototype.match : require("./shim"); es5-ext-0.10.30/reg-exp/#/match/is-implemented.js000066400000000000000000000002501315003545300212000ustar00rootroot00000000000000"use strict"; var re = /foo/; module.exports = function () { if (typeof re.match !== "function") return false; return re.match("barfoobar") && !re.match("elo"); }; es5-ext-0.10.30/reg-exp/#/match/shim.js000066400000000000000000000002421315003545300172250ustar00rootroot00000000000000"use strict"; var validRegExp = require("../../valid-reg-exp"); module.exports = function (string) { validRegExp(this); return String(string).match(this); }; es5-ext-0.10.30/reg-exp/#/replace/000077500000000000000000000000001315003545300162505ustar00rootroot00000000000000es5-ext-0.10.30/reg-exp/#/replace/implement.js000066400000000000000000000003031315003545300205740ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(RegExp.prototype, "replace", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/reg-exp/#/replace/index.js000066400000000000000000000001601315003545300177120ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? RegExp.prototype.replace : require("./shim"); es5-ext-0.10.30/reg-exp/#/replace/is-implemented.js000066400000000000000000000002511315003545300215200ustar00rootroot00000000000000"use strict"; var re = /foo/; module.exports = function () { if (typeof re.replace !== "function") return false; return re.replace("foobar", "mar") === "marbar"; }; es5-ext-0.10.30/reg-exp/#/replace/shim.js000066400000000000000000000003001315003545300175370ustar00rootroot00000000000000"use strict"; var validRegExp = require("../../valid-reg-exp"); module.exports = function (string, replaceValue) { validRegExp(this); return String(string).replace(this, replaceValue); }; es5-ext-0.10.30/reg-exp/#/search/000077500000000000000000000000001315003545300161025ustar00rootroot00000000000000es5-ext-0.10.30/reg-exp/#/search/implement.js000066400000000000000000000003021315003545300204250ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(RegExp.prototype, "search", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/reg-exp/#/search/index.js000066400000000000000000000001571315003545300175520ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? RegExp.prototype.search : require("./shim"); es5-ext-0.10.30/reg-exp/#/search/is-implemented.js000066400000000000000000000002311315003545300213500ustar00rootroot00000000000000"use strict"; var re = /foo/; module.exports = function () { if (typeof re.search !== "function") return false; return re.search("barfoo") === 3; }; es5-ext-0.10.30/reg-exp/#/search/shim.js000066400000000000000000000002431315003545300173770ustar00rootroot00000000000000"use strict"; var validRegExp = require("../../valid-reg-exp"); module.exports = function (string) { validRegExp(this); return String(string).search(this); }; es5-ext-0.10.30/reg-exp/#/split/000077500000000000000000000000001315003545300157705ustar00rootroot00000000000000es5-ext-0.10.30/reg-exp/#/split/implement.js000066400000000000000000000003011315003545300203120ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(RegExp.prototype, "split", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/reg-exp/#/split/index.js000066400000000000000000000001561315003545300174370ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? RegExp.prototype.split : require("./shim"); es5-ext-0.10.30/reg-exp/#/split/is-implemented.js000066400000000000000000000002361315003545300212430ustar00rootroot00000000000000"use strict"; var re = /\|/; module.exports = function () { if (typeof re.split !== "function") return false; return re.split("bar|foo")[1] === "foo"; }; es5-ext-0.10.30/reg-exp/#/split/shim.js000066400000000000000000000002421315003545300172640ustar00rootroot00000000000000"use strict"; var validRegExp = require("../../valid-reg-exp"); module.exports = function (string) { validRegExp(this); return String(string).split(this); }; es5-ext-0.10.30/reg-exp/#/sticky/000077500000000000000000000000001315003545300161435ustar00rootroot00000000000000es5-ext-0.10.30/reg-exp/#/sticky/implement.js000066400000000000000000000003201315003545300204660ustar00rootroot00000000000000"use strict"; var isSticky = require("../is-sticky"); if (!require("./is-implemented")()) { Object.defineProperty(RegExp.prototype, "sticky", { configurable: true, enumerable: false, get: isSticky }); } es5-ext-0.10.30/reg-exp/#/sticky/is-implemented.js000066400000000000000000000005301315003545300214130ustar00rootroot00000000000000"use strict"; module.exports = function () { var dummyRegExp = /a/; // We need to do check on instance and not on prototype due to how ES2015 spec evolved: // https://github.com/tc39/ecma262/issues/262 // https://github.com/tc39/ecma262/pull/263 // https://bugs.chromium.org/p/v8/issues/detail?id=4617 return "sticky" in dummyRegExp; }; es5-ext-0.10.30/reg-exp/#/unicode/000077500000000000000000000000001315003545300162635ustar00rootroot00000000000000es5-ext-0.10.30/reg-exp/#/unicode/implement.js000066400000000000000000000003241315003545300206120ustar00rootroot00000000000000"use strict"; var isUnicode = require("../is-unicode"); if (!require("./is-implemented")()) { Object.defineProperty(RegExp.prototype, "unicode", { configurable: true, enumerable: false, get: isUnicode }); } es5-ext-0.10.30/reg-exp/#/unicode/is-implemented.js000066400000000000000000000005311315003545300215340ustar00rootroot00000000000000"use strict"; module.exports = function () { var dummyRegExp = /a/; // We need to do check on instance and not on prototype due to how ES2015 spec evolved: // https://github.com/tc39/ecma262/issues/262 // https://github.com/tc39/ecma262/pull/263 // https://bugs.chromium.org/p/v8/issues/detail?id=4617 return "unicode" in dummyRegExp; }; es5-ext-0.10.30/reg-exp/escape.js000066400000000000000000000003771315003545300163200ustar00rootroot00000000000000// Thanks to Andrew Clover: // http://stackoverflow.com/questions/3561493 // /is-there-a-regexp-escape-function-in-javascript "use strict"; var re = /[-/\\^$*+?.()|[\]{}]/g; module.exports = function (str) { return String(str).replace(re, "\\$&"); }; es5-ext-0.10.30/reg-exp/index.js000066400000000000000000000002541315003545300161610ustar00rootroot00000000000000"use strict"; module.exports = { "#": require("./#"), "escape": require("./escape"), "isRegExp": require("./is-reg-exp"), "validRegExp": require("./valid-reg-exp") }; es5-ext-0.10.30/reg-exp/is-reg-exp.js000066400000000000000000000003311315003545300170260ustar00rootroot00000000000000"use strict"; var objToString = Object.prototype.toString, id = objToString.call(/a/); module.exports = function (value) { return (value && (value instanceof RegExp || objToString.call(value) === id)) || false; }; es5-ext-0.10.30/reg-exp/valid-reg-exp.js000066400000000000000000000002751315003545300175210ustar00rootroot00000000000000"use strict"; var isRegExp = require("./is-reg-exp"); module.exports = function (value) { if (!isRegExp(value)) throw new TypeError(value + " is not a RegExp object"); return value; }; es5-ext-0.10.30/safe-to-string.js000066400000000000000000000004041315003545300163420ustar00rootroot00000000000000"use strict"; var isCallable = require("./object/is-callable"); module.exports = function (value) { try { if (value && isCallable(value.toString)) return value.toString(); return String(value); } catch (e) { return ""; } }; es5-ext-0.10.30/string/000077500000000000000000000000001315003545300144525ustar00rootroot00000000000000es5-ext-0.10.30/string/#/000077500000000000000000000000001315003545300145745ustar00rootroot00000000000000es5-ext-0.10.30/string/#/@@iterator/000077500000000000000000000000001315003545300166255ustar00rootroot00000000000000es5-ext-0.10.30/string/#/@@iterator/implement.js000066400000000000000000000003301315003545300211510ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(String.prototype, require("es6-symbol").iterator, { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/string/#/@@iterator/index.js000066400000000000000000000002071315003545300202710ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? String.prototype[require("es6-symbol").iterator] : require("./shim"); es5-ext-0.10.30/string/#/@@iterator/is-implemented.js000066400000000000000000000007371315003545300221060ustar00rootroot00000000000000"use strict"; var iteratorSymbol = require("es6-symbol").iterator; module.exports = function () { var str = "🙈f", iterator, result; if (typeof str[iteratorSymbol] !== "function") return false; iterator = str[iteratorSymbol](); if (!iterator) return false; if (typeof iterator.next !== "function") return false; result = iterator.next(); if (!result) return false; if (result.value !== "🙈") return false; if (result.done !== false) return false; return true; }; es5-ext-0.10.30/string/#/@@iterator/shim.js000066400000000000000000000003141315003545300201210ustar00rootroot00000000000000"use strict"; var StringIterator = require("es6-iterator/string") , value = require("../../../object/valid-value"); module.exports = function () { return new StringIterator(value(this)); }; es5-ext-0.10.30/string/#/at.js000066400000000000000000000020601315003545300155340ustar00rootroot00000000000000// Based on: https://github.com/mathiasbynens/String.prototype.at // Thanks @mathiasbynens ! "use strict"; var toInteger = require("../../number/to-integer") , validValue = require("../../object/valid-value"); module.exports = function (pos) { var str = String(validValue(this)), size = str.length, cuFirst, cuSecond, nextPos, len; pos = toInteger(pos); // Account for out-of-bounds indices // The odd lower bound is because the ToInteger operation is // going to round `n` to `0` for `-1 < n <= 0`. if (pos <= -1 || pos >= size) return ""; // Second half of `ToInteger` // eslint-disable-next-line no-bitwise pos |= 0; // Get the first code unit and code unit value cuFirst = str.charCodeAt(pos); nextPos = pos + 1; len = 1; if ( // Check if it’s the start of a surrogate pair cuFirst >= 0xd800 && cuFirst <= 0xdbff && // High surrogate size > nextPos // There is a next code unit ) { cuSecond = str.charCodeAt(nextPos); if (cuSecond >= 0xdc00 && cuSecond <= 0xdfff) len = 2; // Low surrogate } return str.slice(pos, pos + len); }; es5-ext-0.10.30/string/#/camel-to-hyphen.js000066400000000000000000000003341315003545300201240ustar00rootroot00000000000000"use strict"; var replace = String.prototype.replace , re = /([A-Z])/g; module.exports = function () { var str = replace.call(this, re, "-$1").toLowerCase(); if (str[0] === "-") str = str.slice(1); return str; }; es5-ext-0.10.30/string/#/capitalize.js000066400000000000000000000002671315003545300172640ustar00rootroot00000000000000"use strict"; var value = require("../../object/valid-value"); module.exports = function () { var str = String(value(this)); return str.charAt(0).toUpperCase() + str.slice(1); }; es5-ext-0.10.30/string/#/case-insensitive-compare.js000066400000000000000000000002661315003545300220330ustar00rootroot00000000000000"use strict"; var toLowerCase = String.prototype.toLowerCase; module.exports = function (other) { return toLowerCase.call(this).localeCompare(toLowerCase.call(String(other))); }; es5-ext-0.10.30/string/#/code-point-at/000077500000000000000000000000001315003545300172375ustar00rootroot00000000000000es5-ext-0.10.30/string/#/code-point-at/implement.js000066400000000000000000000003121315003545300215630ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(String.prototype, "codePointAt", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/string/#/code-point-at/index.js000066400000000000000000000001641315003545300207050ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? String.prototype.codePointAt : require("./shim"); es5-ext-0.10.30/string/#/code-point-at/is-implemented.js000066400000000000000000000002641315003545300225130ustar00rootroot00000000000000"use strict"; var str = "abc\uD834\uDF06def"; module.exports = function () { if (typeof str.codePointAt !== "function") return false; return str.codePointAt(3) === 0x1D306; }; es5-ext-0.10.30/string/#/code-point-at/shim.js000066400000000000000000000014621315003545300205400ustar00rootroot00000000000000// Based on: https://github.com/mathiasbynens/String.prototype.codePointAt // Thanks @mathiasbynens ! "use strict"; var toInteger = require("../../../number/to-integer") , validValue = require("../../../object/valid-value"); module.exports = function (pos) { var str = String(validValue(this)), length = str.length, first, second; pos = toInteger(pos); // Account for out-of-bounds indices: if (pos < 0 || pos >= length) return undefined; // Get the first code unit first = str.charCodeAt(pos); if (first >= 0xd800 && first <= 0xdbff && length > pos + 1) { second = str.charCodeAt(pos + 1); if (second >= 0xdc00 && second <= 0xdfff) { // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae return (first - 0xd800) * 0x400 + second - 0xdc00 + 0x10000; } } return first; }; es5-ext-0.10.30/string/#/contains/000077500000000000000000000000001315003545300164125ustar00rootroot00000000000000es5-ext-0.10.30/string/#/contains/implement.js000066400000000000000000000003071315003545300207420ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(String.prototype, "contains", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/string/#/contains/index.js000066400000000000000000000001611315003545300200550ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? String.prototype.contains : require("./shim"); es5-ext-0.10.30/string/#/contains/is-implemented.js000066400000000000000000000003141315003545300216620ustar00rootroot00000000000000"use strict"; var str = "razdwatrzy"; module.exports = function () { if (typeof str.contains !== "function") return false; return (str.contains("dwa") === true) && (str.contains("foo") === false); }; es5-ext-0.10.30/string/#/contains/shim.js000066400000000000000000000002611315003545300177070ustar00rootroot00000000000000"use strict"; var indexOf = String.prototype.indexOf; module.exports = function (searchString/*, position*/) { return indexOf.call(this, searchString, arguments[1]) > -1; }; es5-ext-0.10.30/string/#/count.js000066400000000000000000000006171315003545300162660ustar00rootroot00000000000000"use strict"; var ensureString = require("../../object/validate-stringifiable-value"); module.exports = function (search) { var string = ensureString(this), count = 0, index = 0; search = ensureString(search); if (!search) throw new TypeError("Search string cannot be empty"); while ((index = string.indexOf(search, index)) !== -1) { ++count; index += search.length; } return count; }; es5-ext-0.10.30/string/#/ends-with/000077500000000000000000000000001315003545300164765ustar00rootroot00000000000000es5-ext-0.10.30/string/#/ends-with/implement.js000066400000000000000000000003071315003545300210260ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(String.prototype, "endsWith", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/string/#/ends-with/index.js000066400000000000000000000001611315003545300201410ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? String.prototype.endsWith : require("./shim"); es5-ext-0.10.30/string/#/ends-with/is-implemented.js000066400000000000000000000003151315003545300217470ustar00rootroot00000000000000"use strict"; var str = "razdwatrzy"; module.exports = function () { if (typeof str.endsWith !== "function") return false; return (str.endsWith("trzy") === true) && (str.endsWith("raz") === false); }; es5-ext-0.10.30/string/#/ends-with/shim.js000066400000000000000000000011241315003545300177720ustar00rootroot00000000000000"use strict"; var toInteger = require("../../../number/to-integer") , value = require("../../../object/valid-value") , isValue = require("../../../object/is-value") , min = Math.min , max = Math.max; module.exports = function (searchString /*, endPosition*/) { var self, start, endPos; self = String(value(this)); searchString = String(searchString); endPos = arguments[1]; start = (isValue(endPos) ? min(max(toInteger(endPos), 0), self.length) : self.length) - searchString.length; return start < 0 ? false : self.indexOf(searchString, start) === start; }; es5-ext-0.10.30/string/#/hyphen-to-camel.js000066400000000000000000000003421315003545300201230ustar00rootroot00000000000000"use strict"; var replace = String.prototype.replace, re = /-([a-z0-9])/g; var toUpperCase = function (ignored, a) { return a.toUpperCase(); }; module.exports = function () { return replace.call(this, re, toUpperCase); }; es5-ext-0.10.30/string/#/indent.js000066400000000000000000000006441315003545300164170ustar00rootroot00000000000000"use strict"; var isValue = require("../../object/is-value") , repeat = require("./repeat") , replace = String.prototype.replace , re = /(\r\n|[\n\r\u2028\u2029])([\u0000-\u0009\u000b-\uffff]+)/g; module.exports = function (indent /*, count*/) { var count = arguments[1]; indent = repeat.call(String(indent), isValue(count) ? count : 1); return indent + replace.call(this, re, "$1" + indent + "$2"); }; es5-ext-0.10.30/string/#/index.js000066400000000000000000000014231315003545300162410ustar00rootroot00000000000000"use strict"; module.exports = { "@@iterator": require("./@@iterator"), "at": require("./at"), "count": require("./count"), "camelToHyphen": require("./camel-to-hyphen"), "capitalize": require("./capitalize"), "caseInsensitiveCompare": require("./case-insensitive-compare"), "codePointAt": require("./code-point-at"), "contains": require("./contains"), "hyphenToCamel": require("./hyphen-to-camel"), "endsWith": require("./ends-with"), "indent": require("./indent"), "last": require("./last"), "normalize": require("./normalize"), "pad": require("./pad"), "plainReplace": require("./plain-replace"), "plainReplaceAll": require("./plain-replace-all"), "repeat": require("./repeat"), "startsWith": require("./starts-with"), "uncapitalize": require("./uncapitalize") }; es5-ext-0.10.30/string/#/last.js000066400000000000000000000003041315003545300160720ustar00rootroot00000000000000"use strict"; var value = require("../../object/valid-value"); module.exports = function () { var self = String(value(this)), length = self.length; return length ? self[length - 1] : null; }; es5-ext-0.10.30/string/#/normalize/000077500000000000000000000000001315003545300165745ustar00rootroot00000000000000es5-ext-0.10.30/string/#/normalize/_data.js000066400000000000000000005501031315003545300202060ustar00rootroot00000000000000/* eslint max-lines: "off", no-sparse-arrays: "off", comma-style: "off" */ "use strict"; module.exports = { 0: { 60: [, , { 824: 8814 }], 61: [, , { 824: 8800 }], 62: [, , { 824: 8815 }], 65: [ , , { 768: 192, 769: 193, 770: 194, 771: 195, 772: 256, 774: 258, 775: 550, 776: 196, 777: 7842, 778: 197, 780: 461, 783: 512, 785: 514, 803: 7840, 805: 7680, 808: 260 } ], 66: [, , { 775: 7682, 803: 7684, 817: 7686 }], 67: [, , { 769: 262, 770: 264, 775: 266, 780: 268, 807: 199 }], 68: [ , , { 775: 7690, 780: 270, 803: 7692, 807: 7696, 813: 7698, 817: 7694 } ], 69: [ , , { 768: 200, 769: 201, 770: 202, 771: 7868, 772: 274, 774: 276, 775: 278, 776: 203, 777: 7866, 780: 282, 783: 516, 785: 518, 803: 7864, 807: 552, 808: 280, 813: 7704, 816: 7706 } ], 70: [, , { 775: 7710 }], 71: [ , , { 769: 500, 770: 284, 772: 7712, 774: 286, 775: 288, 780: 486, 807: 290 } ], 72: [ , , { 770: 292, 775: 7714, 776: 7718, 780: 542, 803: 7716, 807: 7720, 814: 7722 } ], 73: [ , , { 768: 204, 769: 205, 770: 206, 771: 296, 772: 298, 774: 300, 775: 304, 776: 207, 777: 7880, 780: 463, 783: 520, 785: 522, 803: 7882, 808: 302, 816: 7724 } ], 74: [, , { 770: 308 }], 75: [, , { 769: 7728, 780: 488, 803: 7730, 807: 310, 817: 7732 }], 76: [, , { 769: 313, 780: 317, 803: 7734, 807: 315, 813: 7740, 817: 7738 }], 77: [, , { 769: 7742, 775: 7744, 803: 7746 }], 78: [ , , { 768: 504, 769: 323, 771: 209, 775: 7748, 780: 327, 803: 7750, 807: 325, 813: 7754, 817: 7752 } ], 79: [ , , { 768: 210, 769: 211, 770: 212, 771: 213, 772: 332, 774: 334, 775: 558, 776: 214, 777: 7886, 779: 336, 780: 465, 783: 524, 785: 526, 795: 416, 803: 7884, 808: 490 } ], 80: [, , { 769: 7764, 775: 7766 }], 82: [ , , { 769: 340, 775: 7768, 780: 344, 783: 528, 785: 530, 803: 7770, 807: 342, 817: 7774 } ], 83: [ , , { 769: 346, 770: 348, 775: 7776, 780: 352, 803: 7778, 806: 536, 807: 350 } ], 84: [ , , { 775: 7786, 780: 356, 803: 7788, 806: 538, 807: 354, 813: 7792, 817: 7790 } ], 85: [ , , { 768: 217, 769: 218, 770: 219, 771: 360, 772: 362, 774: 364, 776: 220, 777: 7910, 778: 366, 779: 368, 780: 467, 783: 532, 785: 534, 795: 431, 803: 7908, 804: 7794, 808: 370, 813: 7798, 816: 7796 } ], 86: [, , { 771: 7804, 803: 7806 }], 87: [ , , { 768: 7808, 769: 7810, 770: 372, 775: 7814, 776: 7812, 803: 7816 } ], 88: [, , { 775: 7818, 776: 7820 }], 89: [ , , { 768: 7922, 769: 221, 770: 374, 771: 7928, 772: 562, 775: 7822, 776: 376, 777: 7926, 803: 7924 } ], 90: [, , { 769: 377, 770: 7824, 775: 379, 780: 381, 803: 7826, 817: 7828 }], 97: [ , , { 768: 224, 769: 225, 770: 226, 771: 227, 772: 257, 774: 259, 775: 551, 776: 228, 777: 7843, 778: 229, 780: 462, 783: 513, 785: 515, 803: 7841, 805: 7681, 808: 261 } ], 98: [, , { 775: 7683, 803: 7685, 817: 7687 }], 99: [, , { 769: 263, 770: 265, 775: 267, 780: 269, 807: 231 }], 100: [ , , { 775: 7691, 780: 271, 803: 7693, 807: 7697, 813: 7699, 817: 7695 } ], 101: [ , , { 768: 232, 769: 233, 770: 234, 771: 7869, 772: 275, 774: 277, 775: 279, 776: 235, 777: 7867, 780: 283, 783: 517, 785: 519, 803: 7865, 807: 553, 808: 281, 813: 7705, 816: 7707 } ], 102: [, , { 775: 7711 }], 103: [ , , { 769: 501, 770: 285, 772: 7713, 774: 287, 775: 289, 780: 487, 807: 291 } ], 104: [ , , { 770: 293, 775: 7715, 776: 7719, 780: 543, 803: 7717, 807: 7721, 814: 7723, 817: 7830 } ], 105: [ , , { 768: 236, 769: 237, 770: 238, 771: 297, 772: 299, 774: 301, 776: 239, 777: 7881, 780: 464, 783: 521, 785: 523, 803: 7883, 808: 303, 816: 7725 } ], 106: [, , { 770: 309, 780: 496 }], 107: [, , { 769: 7729, 780: 489, 803: 7731, 807: 311, 817: 7733 }], 108: [ , , { 769: 314, 780: 318, 803: 7735, 807: 316, 813: 7741, 817: 7739 } ], 109: [, , { 769: 7743, 775: 7745, 803: 7747 }], 110: [ , , { 768: 505, 769: 324, 771: 241, 775: 7749, 780: 328, 803: 7751, 807: 326, 813: 7755, 817: 7753 } ], 111: [ , , { 768: 242, 769: 243, 770: 244, 771: 245, 772: 333, 774: 335, 775: 559, 776: 246, 777: 7887, 779: 337, 780: 466, 783: 525, 785: 527, 795: 417, 803: 7885, 808: 491 } ], 112: [, , { 769: 7765, 775: 7767 }], 114: [ , , { 769: 341, 775: 7769, 780: 345, 783: 529, 785: 531, 803: 7771, 807: 343, 817: 7775 } ], 115: [ , , { 769: 347, 770: 349, 775: 7777, 780: 353, 803: 7779, 806: 537, 807: 351 } ], 116: [ , , { 775: 7787, 776: 7831, 780: 357, 803: 7789, 806: 539, 807: 355, 813: 7793, 817: 7791 } ], 117: [ , , { 768: 249, 769: 250, 770: 251, 771: 361, 772: 363, 774: 365, 776: 252, 777: 7911, 778: 367, 779: 369, 780: 468, 783: 533, 785: 535, 795: 432, 803: 7909, 804: 7795, 808: 371, 813: 7799, 816: 7797 } ], 118: [, , { 771: 7805, 803: 7807 }], 119: [ , , { 768: 7809, 769: 7811, 770: 373, 775: 7815, 776: 7813, 778: 7832, 803: 7817 } ], 120: [, , { 775: 7819, 776: 7821 }], 121: [ , , { 768: 7923, 769: 253, 770: 375, 771: 7929, 772: 563, 775: 7823, 776: 255, 777: 7927, 778: 7833, 803: 7925 } ], 122: [ , , { 769: 378, 770: 7825, 775: 380, 780: 382, 803: 7827, 817: 7829 } ], 160: [[32], 256], 168: [[32, 776], 256, { 768: 8173, 769: 901, 834: 8129 }], 170: [[97], 256], 175: [[32, 772], 256], 178: [[50], 256], 179: [[51], 256], 180: [[32, 769], 256], 181: [[956], 256], 184: [[32, 807], 256], 185: [[49], 256], 186: [[111], 256], 188: [[49, 8260, 52], 256], 189: [[49, 8260, 50], 256], 190: [[51, 8260, 52], 256], 192: [[65, 768]], 193: [[65, 769]], 194: [[65, 770], , { 768: 7846, 769: 7844, 771: 7850, 777: 7848 }], 195: [[65, 771]], 196: [[65, 776], , { 772: 478 }], 197: [[65, 778], , { 769: 506 }], 198: [, , { 769: 508, 772: 482 }], 199: [[67, 807], , { 769: 7688 }], 200: [[69, 768]], 201: [[69, 769]], 202: [[69, 770], , { 768: 7872, 769: 7870, 771: 7876, 777: 7874 }], 203: [[69, 776]], 204: [[73, 768]], 205: [[73, 769]], 206: [[73, 770]], 207: [[73, 776], , { 769: 7726 }], 209: [[78, 771]], 210: [[79, 768]], 211: [[79, 769]], 212: [[79, 770], , { 768: 7890, 769: 7888, 771: 7894, 777: 7892 }], 213: [[79, 771], , { 769: 7756, 772: 556, 776: 7758 }], 214: [[79, 776], , { 772: 554 }], 216: [, , { 769: 510 }], 217: [[85, 768]], 218: [[85, 769]], 219: [[85, 770]], 220: [[85, 776], , { 768: 475, 769: 471, 772: 469, 780: 473 }], 221: [[89, 769]], 224: [[97, 768]], 225: [[97, 769]], 226: [[97, 770], , { 768: 7847, 769: 7845, 771: 7851, 777: 7849 }], 227: [[97, 771]], 228: [[97, 776], , { 772: 479 }], 229: [[97, 778], , { 769: 507 }], 230: [, , { 769: 509, 772: 483 }], 231: [[99, 807], , { 769: 7689 }], 232: [[101, 768]], 233: [[101, 769]], 234: [[101, 770], , { 768: 7873, 769: 7871, 771: 7877, 777: 7875 }], 235: [[101, 776]], 236: [[105, 768]], 237: [[105, 769]], 238: [[105, 770]], 239: [[105, 776], , { 769: 7727 }], 241: [[110, 771]], 242: [[111, 768]], 243: [[111, 769]], 244: [[111, 770], , { 768: 7891, 769: 7889, 771: 7895, 777: 7893 }], 245: [[111, 771], , { 769: 7757, 772: 557, 776: 7759 }], 246: [[111, 776], , { 772: 555 }], 248: [, , { 769: 511 }], 249: [[117, 768]], 250: [[117, 769]], 251: [[117, 770]], 252: [[117, 776], , { 768: 476, 769: 472, 772: 470, 780: 474 }], 253: [[121, 769]], 255: [[121, 776]] }, 256: { 256: [[65, 772]], 257: [[97, 772]], 258: [[65, 774], , { 768: 7856, 769: 7854, 771: 7860, 777: 7858 }], 259: [[97, 774], , { 768: 7857, 769: 7855, 771: 7861, 777: 7859 }], 260: [[65, 808]], 261: [[97, 808]], 262: [[67, 769]], 263: [[99, 769]], 264: [[67, 770]], 265: [[99, 770]], 266: [[67, 775]], 267: [[99, 775]], 268: [[67, 780]], 269: [[99, 780]], 270: [[68, 780]], 271: [[100, 780]], 274: [[69, 772], , { 768: 7700, 769: 7702 }], 275: [[101, 772], , { 768: 7701, 769: 7703 }], 276: [[69, 774]], 277: [[101, 774]], 278: [[69, 775]], 279: [[101, 775]], 280: [[69, 808]], 281: [[101, 808]], 282: [[69, 780]], 283: [[101, 780]], 284: [[71, 770]], 285: [[103, 770]], 286: [[71, 774]], 287: [[103, 774]], 288: [[71, 775]], 289: [[103, 775]], 290: [[71, 807]], 291: [[103, 807]], 292: [[72, 770]], 293: [[104, 770]], 296: [[73, 771]], 297: [[105, 771]], 298: [[73, 772]], 299: [[105, 772]], 300: [[73, 774]], 301: [[105, 774]], 302: [[73, 808]], 303: [[105, 808]], 304: [[73, 775]], 306: [[73, 74], 256], 307: [[105, 106], 256], 308: [[74, 770]], 309: [[106, 770]], 310: [[75, 807]], 311: [[107, 807]], 313: [[76, 769]], 314: [[108, 769]], 315: [[76, 807]], 316: [[108, 807]], 317: [[76, 780]], 318: [[108, 780]], 319: [[76, 183], 256], 320: [[108, 183], 256], 323: [[78, 769]], 324: [[110, 769]], 325: [[78, 807]], 326: [[110, 807]], 327: [[78, 780]], 328: [[110, 780]], 329: [[700, 110], 256], 332: [[79, 772], , { 768: 7760, 769: 7762 }], 333: [[111, 772], , { 768: 7761, 769: 7763 }], 334: [[79, 774]], 335: [[111, 774]], 336: [[79, 779]], 337: [[111, 779]], 340: [[82, 769]], 341: [[114, 769]], 342: [[82, 807]], 343: [[114, 807]], 344: [[82, 780]], 345: [[114, 780]], 346: [[83, 769], , { 775: 7780 }], 347: [[115, 769], , { 775: 7781 }], 348: [[83, 770]], 349: [[115, 770]], 350: [[83, 807]], 351: [[115, 807]], 352: [[83, 780], , { 775: 7782 }], 353: [[115, 780], , { 775: 7783 }], 354: [[84, 807]], 355: [[116, 807]], 356: [[84, 780]], 357: [[116, 780]], 360: [[85, 771], , { 769: 7800 }], 361: [[117, 771], , { 769: 7801 }], 362: [[85, 772], , { 776: 7802 }], 363: [[117, 772], , { 776: 7803 }], 364: [[85, 774]], 365: [[117, 774]], 366: [[85, 778]], 367: [[117, 778]], 368: [[85, 779]], 369: [[117, 779]], 370: [[85, 808]], 371: [[117, 808]], 372: [[87, 770]], 373: [[119, 770]], 374: [[89, 770]], 375: [[121, 770]], 376: [[89, 776]], 377: [[90, 769]], 378: [[122, 769]], 379: [[90, 775]], 380: [[122, 775]], 381: [[90, 780]], 382: [[122, 780]], 383: [[115], 256, { 775: 7835 }], 416: [ [79, 795], , { 768: 7900, 769: 7898, 771: 7904, 777: 7902, 803: 7906 } ], 417: [ [111, 795], , { 768: 7901, 769: 7899, 771: 7905, 777: 7903, 803: 7907 } ], 431: [ [85, 795], , { 768: 7914, 769: 7912, 771: 7918, 777: 7916, 803: 7920 } ], 432: [ [117, 795], , { 768: 7915, 769: 7913, 771: 7919, 777: 7917, 803: 7921 } ], 439: [, , { 780: 494 }], 452: [[68, 381], 256], 453: [[68, 382], 256], 454: [[100, 382], 256], 455: [[76, 74], 256], 456: [[76, 106], 256], 457: [[108, 106], 256], 458: [[78, 74], 256], 459: [[78, 106], 256], 460: [[110, 106], 256], 461: [[65, 780]], 462: [[97, 780]], 463: [[73, 780]], 464: [[105, 780]], 465: [[79, 780]], 466: [[111, 780]], 467: [[85, 780]], 468: [[117, 780]], 469: [[220, 772]], 470: [[252, 772]], 471: [[220, 769]], 472: [[252, 769]], 473: [[220, 780]], 474: [[252, 780]], 475: [[220, 768]], 476: [[252, 768]], 478: [[196, 772]], 479: [[228, 772]], 480: [[550, 772]], 481: [[551, 772]], 482: [[198, 772]], 483: [[230, 772]], 486: [[71, 780]], 487: [[103, 780]], 488: [[75, 780]], 489: [[107, 780]], 490: [[79, 808], , { 772: 492 }], 491: [[111, 808], , { 772: 493 }], 492: [[490, 772]], 493: [[491, 772]], 494: [[439, 780]], 495: [[658, 780]], 496: [[106, 780]], 497: [[68, 90], 256], 498: [[68, 122], 256], 499: [[100, 122], 256], 500: [[71, 769]], 501: [[103, 769]], 504: [[78, 768]], 505: [[110, 768]], 506: [[197, 769]], 507: [[229, 769]], 508: [[198, 769]], 509: [[230, 769]], 510: [[216, 769]], 511: [[248, 769]], 66045: [, 220] }, 512: { 512: [[65, 783]], 513: [[97, 783]], 514: [[65, 785]], 515: [[97, 785]], 516: [[69, 783]], 517: [[101, 783]], 518: [[69, 785]], 519: [[101, 785]], 520: [[73, 783]], 521: [[105, 783]], 522: [[73, 785]], 523: [[105, 785]], 524: [[79, 783]], 525: [[111, 783]], 526: [[79, 785]], 527: [[111, 785]], 528: [[82, 783]], 529: [[114, 783]], 530: [[82, 785]], 531: [[114, 785]], 532: [[85, 783]], 533: [[117, 783]], 534: [[85, 785]], 535: [[117, 785]], 536: [[83, 806]], 537: [[115, 806]], 538: [[84, 806]], 539: [[116, 806]], 542: [[72, 780]], 543: [[104, 780]], 550: [[65, 775], , { 772: 480 }], 551: [[97, 775], , { 772: 481 }], 552: [[69, 807], , { 774: 7708 }], 553: [[101, 807], , { 774: 7709 }], 554: [[214, 772]], 555: [[246, 772]], 556: [[213, 772]], 557: [[245, 772]], 558: [[79, 775], , { 772: 560 }], 559: [[111, 775], , { 772: 561 }], 560: [[558, 772]], 561: [[559, 772]], 562: [[89, 772]], 563: [[121, 772]], 658: [, , { 780: 495 }], 688: [[104], 256], 689: [[614], 256], 690: [[106], 256], 691: [[114], 256], 692: [[633], 256], 693: [[635], 256], 694: [[641], 256], 695: [[119], 256], 696: [[121], 256], 728: [[32, 774], 256], 729: [[32, 775], 256], 730: [[32, 778], 256], 731: [[32, 808], 256], 732: [[32, 771], 256], 733: [[32, 779], 256], 736: [[611], 256], 737: [[108], 256], 738: [[115], 256], 739: [[120], 256], 740: [[661], 256] }, 768: { 768: [, 230], 769: [, 230], 770: [, 230], 771: [, 230], 772: [, 230], 773: [, 230], 774: [, 230], 775: [, 230], 776: [, 230, { 769: 836 }], 777: [, 230], 778: [, 230], 779: [, 230], 780: [, 230], 781: [, 230], 782: [, 230], 783: [, 230], 784: [, 230], 785: [, 230], 786: [, 230], 787: [, 230], 788: [, 230], 789: [, 232], 790: [, 220], 791: [, 220], 792: [, 220], 793: [, 220], 794: [, 232], 795: [, 216], 796: [, 220], 797: [, 220], 798: [, 220], 799: [, 220], 800: [, 220], 801: [, 202], 802: [, 202], 803: [, 220], 804: [, 220], 805: [, 220], 806: [, 220], 807: [, 202], 808: [, 202], 809: [, 220], 810: [, 220], 811: [, 220], 812: [, 220], 813: [, 220], 814: [, 220], 815: [, 220], 816: [, 220], 817: [, 220], 818: [, 220], 819: [, 220], 820: [, 1], 821: [, 1], 822: [, 1], 823: [, 1], 824: [, 1], 825: [, 220], 826: [, 220], 827: [, 220], 828: [, 220], 829: [, 230], 830: [, 230], 831: [, 230], 832: [[768], 230], 833: [[769], 230], 834: [, 230], 835: [[787], 230], 836: [[776, 769], 230], 837: [, 240], 838: [, 230], 839: [, 220], 840: [, 220], 841: [, 220], 842: [, 230], 843: [, 230], 844: [, 230], 845: [, 220], 846: [, 220], 848: [, 230], 849: [, 230], 850: [, 230], 851: [, 220], 852: [, 220], 853: [, 220], 854: [, 220], 855: [, 230], 856: [, 232], 857: [, 220], 858: [, 220], 859: [, 230], 860: [, 233], 861: [, 234], 862: [, 234], 863: [, 233], 864: [, 234], 865: [, 234], 866: [, 233], 867: [, 230], 868: [, 230], 869: [, 230], 870: [, 230], 871: [, 230], 872: [, 230], 873: [, 230], 874: [, 230], 875: [, 230], 876: [, 230], 877: [, 230], 878: [, 230], 879: [, 230], 884: [[697]], 890: [[32, 837], 256], 894: [[59]], 900: [[32, 769], 256], 901: [[168, 769]], 902: [[913, 769]], 903: [[183]], 904: [[917, 769]], 905: [[919, 769]], 906: [[921, 769]], 908: [[927, 769]], 910: [[933, 769]], 911: [[937, 769]], 912: [[970, 769]], 913: [ , , { 768: 8122, 769: 902, 772: 8121, 774: 8120, 787: 7944, 788: 7945, 837: 8124 } ], 917: [, , { 768: 8136, 769: 904, 787: 7960, 788: 7961 }], 919: [, , { 768: 8138, 769: 905, 787: 7976, 788: 7977, 837: 8140 }], 921: [ , , { 768: 8154, 769: 906, 772: 8153, 774: 8152, 776: 938, 787: 7992, 788: 7993 } ], 927: [, , { 768: 8184, 769: 908, 787: 8008, 788: 8009 }], 929: [, , { 788: 8172 }], 933: [ , , { 768: 8170, 769: 910, 772: 8169, 774: 8168, 776: 939, 788: 8025 } ], 937: [, , { 768: 8186, 769: 911, 787: 8040, 788: 8041, 837: 8188 }], 938: [[921, 776]], 939: [[933, 776]], 940: [[945, 769], , { 837: 8116 }], 941: [[949, 769]], 942: [[951, 769], , { 837: 8132 }], 943: [[953, 769]], 944: [[971, 769]], 945: [ , , { 768: 8048, 769: 940, 772: 8113, 774: 8112, 787: 7936, 788: 7937, 834: 8118, 837: 8115 } ], 949: [, , { 768: 8050, 769: 941, 787: 7952, 788: 7953 }], 951: [ , , { 768: 8052, 769: 942, 787: 7968, 788: 7969, 834: 8134, 837: 8131 } ], 953: [ , , { 768: 8054, 769: 943, 772: 8145, 774: 8144, 776: 970, 787: 7984, 788: 7985, 834: 8150 } ], 959: [, , { 768: 8056, 769: 972, 787: 8000, 788: 8001 }], 961: [, , { 787: 8164, 788: 8165 }], 965: [ , , { 768: 8058, 769: 973, 772: 8161, 774: 8160, 776: 971, 787: 8016, 788: 8017, 834: 8166 } ], 969: [ , , { 768: 8060, 769: 974, 787: 8032, 788: 8033, 834: 8182, 837: 8179 } ], 970: [[953, 776], , { 768: 8146, 769: 912, 834: 8151 }], 971: [[965, 776], , { 768: 8162, 769: 944, 834: 8167 }], 972: [[959, 769]], 973: [[965, 769]], 974: [[969, 769], , { 837: 8180 }], 976: [[946], 256], 977: [[952], 256], 978: [[933], 256, { 769: 979, 776: 980 }], 979: [[978, 769]], 980: [[978, 776]], 981: [[966], 256], 982: [[960], 256], 1008: [[954], 256], 1009: [[961], 256], 1010: [[962], 256], 1012: [[920], 256], 1013: [[949], 256], 1017: [[931], 256] }, 1024: { 1024: [[1045, 768]], 1025: [[1045, 776]], 1027: [[1043, 769]], 1030: [, , { 776: 1031 }], 1031: [[1030, 776]], 1036: [[1050, 769]], 1037: [[1048, 768]], 1038: [[1059, 774]], 1040: [, , { 774: 1232, 776: 1234 }], 1043: [, , { 769: 1027 }], 1045: [, , { 768: 1024, 774: 1238, 776: 1025 }], 1046: [, , { 774: 1217, 776: 1244 }], 1047: [, , { 776: 1246 }], 1048: [, , { 768: 1037, 772: 1250, 774: 1049, 776: 1252 }], 1049: [[1048, 774]], 1050: [, , { 769: 1036 }], 1054: [, , { 776: 1254 }], 1059: [, , { 772: 1262, 774: 1038, 776: 1264, 779: 1266 }], 1063: [, , { 776: 1268 }], 1067: [, , { 776: 1272 }], 1069: [, , { 776: 1260 }], 1072: [, , { 774: 1233, 776: 1235 }], 1075: [, , { 769: 1107 }], 1077: [, , { 768: 1104, 774: 1239, 776: 1105 }], 1078: [, , { 774: 1218, 776: 1245 }], 1079: [, , { 776: 1247 }], 1080: [, , { 768: 1117, 772: 1251, 774: 1081, 776: 1253 }], 1081: [[1080, 774]], 1082: [, , { 769: 1116 }], 1086: [, , { 776: 1255 }], 1091: [, , { 772: 1263, 774: 1118, 776: 1265, 779: 1267 }], 1095: [, , { 776: 1269 }], 1099: [, , { 776: 1273 }], 1101: [, , { 776: 1261 }], 1104: [[1077, 768]], 1105: [[1077, 776]], 1107: [[1075, 769]], 1110: [, , { 776: 1111 }], 1111: [[1110, 776]], 1116: [[1082, 769]], 1117: [[1080, 768]], 1118: [[1091, 774]], 1140: [, , { 783: 1142 }], 1141: [, , { 783: 1143 }], 1142: [[1140, 783]], 1143: [[1141, 783]], 1155: [, 230], 1156: [, 230], 1157: [, 230], 1158: [, 230], 1159: [, 230], 1217: [[1046, 774]], 1218: [[1078, 774]], 1232: [[1040, 774]], 1233: [[1072, 774]], 1234: [[1040, 776]], 1235: [[1072, 776]], 1238: [[1045, 774]], 1239: [[1077, 774]], 1240: [, , { 776: 1242 }], 1241: [, , { 776: 1243 }], 1242: [[1240, 776]], 1243: [[1241, 776]], 1244: [[1046, 776]], 1245: [[1078, 776]], 1246: [[1047, 776]], 1247: [[1079, 776]], 1250: [[1048, 772]], 1251: [[1080, 772]], 1252: [[1048, 776]], 1253: [[1080, 776]], 1254: [[1054, 776]], 1255: [[1086, 776]], 1256: [, , { 776: 1258 }], 1257: [, , { 776: 1259 }], 1258: [[1256, 776]], 1259: [[1257, 776]], 1260: [[1069, 776]], 1261: [[1101, 776]], 1262: [[1059, 772]], 1263: [[1091, 772]], 1264: [[1059, 776]], 1265: [[1091, 776]], 1266: [[1059, 779]], 1267: [[1091, 779]], 1268: [[1063, 776]], 1269: [[1095, 776]], 1272: [[1067, 776]], 1273: [[1099, 776]] }, 1280: { 1415: [[1381, 1410], 256], 1425: [, 220], 1426: [, 230], 1427: [, 230], 1428: [, 230], 1429: [, 230], 1430: [, 220], 1431: [, 230], 1432: [, 230], 1433: [, 230], 1434: [, 222], 1435: [, 220], 1436: [, 230], 1437: [, 230], 1438: [, 230], 1439: [, 230], 1440: [, 230], 1441: [, 230], 1442: [, 220], 1443: [, 220], 1444: [, 220], 1445: [, 220], 1446: [, 220], 1447: [, 220], 1448: [, 230], 1449: [, 230], 1450: [, 220], 1451: [, 230], 1452: [, 230], 1453: [, 222], 1454: [, 228], 1455: [, 230], 1456: [, 10], 1457: [, 11], 1458: [, 12], 1459: [, 13], 1460: [, 14], 1461: [, 15], 1462: [, 16], 1463: [, 17], 1464: [, 18], 1465: [, 19], 1466: [, 19], 1467: [, 20], 1468: [, 21], 1469: [, 22], 1471: [, 23], 1473: [, 24], 1474: [, 25], 1476: [, 230], 1477: [, 220], 1479: [, 18] }, 1536: { 1552: [, 230], 1553: [, 230], 1554: [, 230], 1555: [, 230], 1556: [, 230], 1557: [, 230], 1558: [, 230], 1559: [, 230], 1560: [, 30], 1561: [, 31], 1562: [, 32], 1570: [[1575, 1619]], 1571: [[1575, 1620]], 1572: [[1608, 1620]], 1573: [[1575, 1621]], 1574: [[1610, 1620]], 1575: [, , { 1619: 1570, 1620: 1571, 1621: 1573 }], 1608: [, , { 1620: 1572 }], 1610: [, , { 1620: 1574 }], 1611: [, 27], 1612: [, 28], 1613: [, 29], 1614: [, 30], 1615: [, 31], 1616: [, 32], 1617: [, 33], 1618: [, 34], 1619: [, 230], 1620: [, 230], 1621: [, 220], 1622: [, 220], 1623: [, 230], 1624: [, 230], 1625: [, 230], 1626: [, 230], 1627: [, 230], 1628: [, 220], 1629: [, 230], 1630: [, 230], 1631: [, 220], 1648: [, 35], 1653: [[1575, 1652], 256], 1654: [[1608, 1652], 256], 1655: [[1735, 1652], 256], 1656: [[1610, 1652], 256], 1728: [[1749, 1620]], 1729: [, , { 1620: 1730 }], 1730: [[1729, 1620]], 1746: [, , { 1620: 1747 }], 1747: [[1746, 1620]], 1749: [, , { 1620: 1728 }], 1750: [, 230], 1751: [, 230], 1752: [, 230], 1753: [, 230], 1754: [, 230], 1755: [, 230], 1756: [, 230], 1759: [, 230], 1760: [, 230], 1761: [, 230], 1762: [, 230], 1763: [, 220], 1764: [, 230], 1767: [, 230], 1768: [, 230], 1770: [, 220], 1771: [, 230], 1772: [, 230], 1773: [, 220] }, 1792: { 1809: [, 36], 1840: [, 230], 1841: [, 220], 1842: [, 230], 1843: [, 230], 1844: [, 220], 1845: [, 230], 1846: [, 230], 1847: [, 220], 1848: [, 220], 1849: [, 220], 1850: [, 230], 1851: [, 220], 1852: [, 220], 1853: [, 230], 1854: [, 220], 1855: [, 230], 1856: [, 230], 1857: [, 230], 1858: [, 220], 1859: [, 230], 1860: [, 220], 1861: [, 230], 1862: [, 220], 1863: [, 230], 1864: [, 220], 1865: [, 230], 1866: [, 230], 2027: [, 230], 2028: [, 230], 2029: [, 230], 2030: [, 230], 2031: [, 230], 2032: [, 230], 2033: [, 230], 2034: [, 220], 2035: [, 230] }, 2048: { 2070: [, 230], 2071: [, 230], 2072: [, 230], 2073: [, 230], 2075: [, 230], 2076: [, 230], 2077: [, 230], 2078: [, 230], 2079: [, 230], 2080: [, 230], 2081: [, 230], 2082: [, 230], 2083: [, 230], 2085: [, 230], 2086: [, 230], 2087: [, 230], 2089: [, 230], 2090: [, 230], 2091: [, 230], 2092: [, 230], 2093: [, 230], 2137: [, 220], 2138: [, 220], 2139: [, 220], 2276: [, 230], 2277: [, 230], 2278: [, 220], 2279: [, 230], 2280: [, 230], 2281: [, 220], 2282: [, 230], 2283: [, 230], 2284: [, 230], 2285: [, 220], 2286: [, 220], 2287: [, 220], 2288: [, 27], 2289: [, 28], 2290: [, 29], 2291: [, 230], 2292: [, 230], 2293: [, 230], 2294: [, 220], 2295: [, 230], 2296: [, 230], 2297: [, 220], 2298: [, 220], 2299: [, 230], 2300: [, 230], 2301: [, 230], 2302: [, 230] }, 2304: { 2344: [, , { 2364: 2345 }], 2345: [[2344, 2364]], 2352: [, , { 2364: 2353 }], 2353: [[2352, 2364]], 2355: [, , { 2364: 2356 }], 2356: [[2355, 2364]], 2364: [, 7], 2381: [, 9], 2385: [, 230], 2386: [, 220], 2387: [, 230], 2388: [, 230], 2392: [[2325, 2364], 512], 2393: [[2326, 2364], 512], 2394: [[2327, 2364], 512], 2395: [[2332, 2364], 512], 2396: [[2337, 2364], 512], 2397: [[2338, 2364], 512], 2398: [[2347, 2364], 512], 2399: [[2351, 2364], 512], 2492: [, 7], 2503: [, , { 2494: 2507, 2519: 2508 }], 2507: [[2503, 2494]], 2508: [[2503, 2519]], 2509: [, 9], 2524: [[2465, 2492], 512], 2525: [[2466, 2492], 512], 2527: [[2479, 2492], 512] }, 2560: { 2611: [[2610, 2620], 512], 2614: [[2616, 2620], 512], 2620: [, 7], 2637: [, 9], 2649: [[2582, 2620], 512], 2650: [[2583, 2620], 512], 2651: [[2588, 2620], 512], 2654: [[2603, 2620], 512], 2748: [, 7], 2765: [, 9], 68109: [, 220], 68111: [, 230], 68152: [, 230], 68153: [, 1], 68154: [, 220], 68159: [, 9] }, 2816: { 2876: [, 7], 2887: [, , { 2878: 2891, 2902: 2888, 2903: 2892 }], 2888: [[2887, 2902]], 2891: [[2887, 2878]], 2892: [[2887, 2903]], 2893: [, 9], 2908: [[2849, 2876], 512], 2909: [[2850, 2876], 512], 2962: [, , { 3031: 2964 }], 2964: [[2962, 3031]], 3014: [, , { 3006: 3018, 3031: 3020 }], 3015: [, , { 3006: 3019 }], 3018: [[3014, 3006]], 3019: [[3015, 3006]], 3020: [[3014, 3031]], 3021: [, 9] }, 3072: { 3142: [, , { 3158: 3144 }], 3144: [[3142, 3158]], 3149: [, 9], 3157: [, 84], 3158: [, 91], 3260: [, 7], 3263: [, , { 3285: 3264 }], 3264: [[3263, 3285]], 3270: [, , { 3266: 3274, 3285: 3271, 3286: 3272 }], 3271: [[3270, 3285]], 3272: [[3270, 3286]], 3274: [[3270, 3266], , { 3285: 3275 }], 3275: [[3274, 3285]], 3277: [, 9] }, 3328: { 3398: [, , { 3390: 3402, 3415: 3404 }], 3399: [, , { 3390: 3403 }], 3402: [[3398, 3390]], 3403: [[3399, 3390]], 3404: [[3398, 3415]], 3405: [, 9], 3530: [, 9], 3545: [, , { 3530: 3546, 3535: 3548, 3551: 3550 }], 3546: [[3545, 3530]], 3548: [[3545, 3535], , { 3530: 3549 }], 3549: [[3548, 3530]], 3550: [[3545, 3551]] }, 3584: { 3635: [[3661, 3634], 256], 3640: [, 103], 3641: [, 103], 3642: [, 9], 3656: [, 107], 3657: [, 107], 3658: [, 107], 3659: [, 107], 3763: [[3789, 3762], 256], 3768: [, 118], 3769: [, 118], 3784: [, 122], 3785: [, 122], 3786: [, 122], 3787: [, 122], 3804: [[3755, 3737], 256], 3805: [[3755, 3745], 256] }, 3840: { 3852: [[3851], 256], 3864: [, 220], 3865: [, 220], 3893: [, 220], 3895: [, 220], 3897: [, 216], 3907: [[3906, 4023], 512], 3917: [[3916, 4023], 512], 3922: [[3921, 4023], 512], 3927: [[3926, 4023], 512], 3932: [[3931, 4023], 512], 3945: [[3904, 4021], 512], 3953: [, 129], 3954: [, 130], 3955: [[3953, 3954], 512], 3956: [, 132], 3957: [[3953, 3956], 512], 3958: [[4018, 3968], 512], 3959: [[4018, 3969], 256], 3960: [[4019, 3968], 512], 3961: [[4019, 3969], 256], 3962: [, 130], 3963: [, 130], 3964: [, 130], 3965: [, 130], 3968: [, 130], 3969: [[3953, 3968], 512], 3970: [, 230], 3971: [, 230], 3972: [, 9], 3974: [, 230], 3975: [, 230], 3987: [[3986, 4023], 512], 3997: [[3996, 4023], 512], 4002: [[4001, 4023], 512], 4007: [[4006, 4023], 512], 4012: [[4011, 4023], 512], 4025: [[3984, 4021], 512], 4038: [, 220] }, 4096: { 4133: [, , { 4142: 4134 }], 4134: [[4133, 4142]], 4151: [, 7], 4153: [, 9], 4154: [, 9], 4237: [, 220], 4348: [[4316], 256], 69702: [, 9], 69785: [, , { 69818: 69786 }], 69786: [[69785, 69818]], 69787: [, , { 69818: 69788 }], 69788: [[69787, 69818]], 69797: [, , { 69818: 69803 }], 69803: [[69797, 69818]], 69817: [, 9], 69818: [, 7] }, 4352: { 69888: [, 230], 69889: [, 230], 69890: [, 230], 69934: [[69937, 69927]], 69935: [[69938, 69927]], 69937: [, , { 69927: 69934 }], 69938: [, , { 69927: 69935 }], 69939: [, 9], 69940: [, 9], 70080: [, 9] }, 4864: { 4957: [, 230], 4958: [, 230], 4959: [, 230] }, 5632: { 71350: [, 9], 71351: [, 7] }, 5888: { 5908: [, 9], 5940: [, 9], 6098: [, 9], 6109: [, 230] }, 6144: { 6313: [, 228] }, 6400: { 6457: [, 222], 6458: [, 230], 6459: [, 220] }, 6656: { 6679: [, 230], 6680: [, 220], 6752: [, 9], 6773: [, 230], 6774: [, 230], 6775: [, 230], 6776: [, 230], 6777: [, 230], 6778: [, 230], 6779: [, 230], 6780: [, 230], 6783: [, 220] }, 6912: { 6917: [, , { 6965: 6918 }], 6918: [[6917, 6965]], 6919: [, , { 6965: 6920 }], 6920: [[6919, 6965]], 6921: [, , { 6965: 6922 }], 6922: [[6921, 6965]], 6923: [, , { 6965: 6924 }], 6924: [[6923, 6965]], 6925: [, , { 6965: 6926 }], 6926: [[6925, 6965]], 6929: [, , { 6965: 6930 }], 6930: [[6929, 6965]], 6964: [, 7], 6970: [, , { 6965: 6971 }], 6971: [[6970, 6965]], 6972: [, , { 6965: 6973 }], 6973: [[6972, 6965]], 6974: [, , { 6965: 6976 }], 6975: [, , { 6965: 6977 }], 6976: [[6974, 6965]], 6977: [[6975, 6965]], 6978: [, , { 6965: 6979 }], 6979: [[6978, 6965]], 6980: [, 9], 7019: [, 230], 7020: [, 220], 7021: [, 230], 7022: [, 230], 7023: [, 230], 7024: [, 230], 7025: [, 230], 7026: [, 230], 7027: [, 230], 7082: [, 9], 7083: [, 9], 7142: [, 7], 7154: [, 9], 7155: [, 9] }, 7168: { 7223: [, 7], 7376: [, 230], 7377: [, 230], 7378: [, 230], 7380: [, 1], 7381: [, 220], 7382: [, 220], 7383: [, 220], 7384: [, 220], 7385: [, 220], 7386: [, 230], 7387: [, 230], 7388: [, 220], 7389: [, 220], 7390: [, 220], 7391: [, 220], 7392: [, 230], 7394: [, 1], 7395: [, 1], 7396: [, 1], 7397: [, 1], 7398: [, 1], 7399: [, 1], 7400: [, 1], 7405: [, 220], 7412: [, 230] }, 7424: { 7468: [[65], 256], 7469: [[198], 256], 7470: [[66], 256], 7472: [[68], 256], 7473: [[69], 256], 7474: [[398], 256], 7475: [[71], 256], 7476: [[72], 256], 7477: [[73], 256], 7478: [[74], 256], 7479: [[75], 256], 7480: [[76], 256], 7481: [[77], 256], 7482: [[78], 256], 7484: [[79], 256], 7485: [[546], 256], 7486: [[80], 256], 7487: [[82], 256], 7488: [[84], 256], 7489: [[85], 256], 7490: [[87], 256], 7491: [[97], 256], 7492: [[592], 256], 7493: [[593], 256], 7494: [[7426], 256], 7495: [[98], 256], 7496: [[100], 256], 7497: [[101], 256], 7498: [[601], 256], 7499: [[603], 256], 7500: [[604], 256], 7501: [[103], 256], 7503: [[107], 256], 7504: [[109], 256], 7505: [[331], 256], 7506: [[111], 256], 7507: [[596], 256], 7508: [[7446], 256], 7509: [[7447], 256], 7510: [[112], 256], 7511: [[116], 256], 7512: [[117], 256], 7513: [[7453], 256], 7514: [[623], 256], 7515: [[118], 256], 7516: [[7461], 256], 7517: [[946], 256], 7518: [[947], 256], 7519: [[948], 256], 7520: [[966], 256], 7521: [[967], 256], 7522: [[105], 256], 7523: [[114], 256], 7524: [[117], 256], 7525: [[118], 256], 7526: [[946], 256], 7527: [[947], 256], 7528: [[961], 256], 7529: [[966], 256], 7530: [[967], 256], 7544: [[1085], 256], 7579: [[594], 256], 7580: [[99], 256], 7581: [[597], 256], 7582: [[240], 256], 7583: [[604], 256], 7584: [[102], 256], 7585: [[607], 256], 7586: [[609], 256], 7587: [[613], 256], 7588: [[616], 256], 7589: [[617], 256], 7590: [[618], 256], 7591: [[7547], 256], 7592: [[669], 256], 7593: [[621], 256], 7594: [[7557], 256], 7595: [[671], 256], 7596: [[625], 256], 7597: [[624], 256], 7598: [[626], 256], 7599: [[627], 256], 7600: [[628], 256], 7601: [[629], 256], 7602: [[632], 256], 7603: [[642], 256], 7604: [[643], 256], 7605: [[427], 256], 7606: [[649], 256], 7607: [[650], 256], 7608: [[7452], 256], 7609: [[651], 256], 7610: [[652], 256], 7611: [[122], 256], 7612: [[656], 256], 7613: [[657], 256], 7614: [[658], 256], 7615: [[952], 256], 7616: [, 230], 7617: [, 230], 7618: [, 220], 7619: [, 230], 7620: [, 230], 7621: [, 230], 7622: [, 230], 7623: [, 230], 7624: [, 230], 7625: [, 230], 7626: [, 220], 7627: [, 230], 7628: [, 230], 7629: [, 234], 7630: [, 214], 7631: [, 220], 7632: [, 202], 7633: [, 230], 7634: [, 230], 7635: [, 230], 7636: [, 230], 7637: [, 230], 7638: [, 230], 7639: [, 230], 7640: [, 230], 7641: [, 230], 7642: [, 230], 7643: [, 230], 7644: [, 230], 7645: [, 230], 7646: [, 230], 7647: [, 230], 7648: [, 230], 7649: [, 230], 7650: [, 230], 7651: [, 230], 7652: [, 230], 7653: [, 230], 7654: [, 230], 7676: [, 233], 7677: [, 220], 7678: [, 230], 7679: [, 220] }, 7680: { 7680: [[65, 805]], 7681: [[97, 805]], 7682: [[66, 775]], 7683: [[98, 775]], 7684: [[66, 803]], 7685: [[98, 803]], 7686: [[66, 817]], 7687: [[98, 817]], 7688: [[199, 769]], 7689: [[231, 769]], 7690: [[68, 775]], 7691: [[100, 775]], 7692: [[68, 803]], 7693: [[100, 803]], 7694: [[68, 817]], 7695: [[100, 817]], 7696: [[68, 807]], 7697: [[100, 807]], 7698: [[68, 813]], 7699: [[100, 813]], 7700: [[274, 768]], 7701: [[275, 768]], 7702: [[274, 769]], 7703: [[275, 769]], 7704: [[69, 813]], 7705: [[101, 813]], 7706: [[69, 816]], 7707: [[101, 816]], 7708: [[552, 774]], 7709: [[553, 774]], 7710: [[70, 775]], 7711: [[102, 775]], 7712: [[71, 772]], 7713: [[103, 772]], 7714: [[72, 775]], 7715: [[104, 775]], 7716: [[72, 803]], 7717: [[104, 803]], 7718: [[72, 776]], 7719: [[104, 776]], 7720: [[72, 807]], 7721: [[104, 807]], 7722: [[72, 814]], 7723: [[104, 814]], 7724: [[73, 816]], 7725: [[105, 816]], 7726: [[207, 769]], 7727: [[239, 769]], 7728: [[75, 769]], 7729: [[107, 769]], 7730: [[75, 803]], 7731: [[107, 803]], 7732: [[75, 817]], 7733: [[107, 817]], 7734: [[76, 803], , { 772: 7736 }], 7735: [[108, 803], , { 772: 7737 }], 7736: [[7734, 772]], 7737: [[7735, 772]], 7738: [[76, 817]], 7739: [[108, 817]], 7740: [[76, 813]], 7741: [[108, 813]], 7742: [[77, 769]], 7743: [[109, 769]], 7744: [[77, 775]], 7745: [[109, 775]], 7746: [[77, 803]], 7747: [[109, 803]], 7748: [[78, 775]], 7749: [[110, 775]], 7750: [[78, 803]], 7751: [[110, 803]], 7752: [[78, 817]], 7753: [[110, 817]], 7754: [[78, 813]], 7755: [[110, 813]], 7756: [[213, 769]], 7757: [[245, 769]], 7758: [[213, 776]], 7759: [[245, 776]], 7760: [[332, 768]], 7761: [[333, 768]], 7762: [[332, 769]], 7763: [[333, 769]], 7764: [[80, 769]], 7765: [[112, 769]], 7766: [[80, 775]], 7767: [[112, 775]], 7768: [[82, 775]], 7769: [[114, 775]], 7770: [[82, 803], , { 772: 7772 }], 7771: [[114, 803], , { 772: 7773 }], 7772: [[7770, 772]], 7773: [[7771, 772]], 7774: [[82, 817]], 7775: [[114, 817]], 7776: [[83, 775]], 7777: [[115, 775]], 7778: [[83, 803], , { 775: 7784 }], 7779: [[115, 803], , { 775: 7785 }], 7780: [[346, 775]], 7781: [[347, 775]], 7782: [[352, 775]], 7783: [[353, 775]], 7784: [[7778, 775]], 7785: [[7779, 775]], 7786: [[84, 775]], 7787: [[116, 775]], 7788: [[84, 803]], 7789: [[116, 803]], 7790: [[84, 817]], 7791: [[116, 817]], 7792: [[84, 813]], 7793: [[116, 813]], 7794: [[85, 804]], 7795: [[117, 804]], 7796: [[85, 816]], 7797: [[117, 816]], 7798: [[85, 813]], 7799: [[117, 813]], 7800: [[360, 769]], 7801: [[361, 769]], 7802: [[362, 776]], 7803: [[363, 776]], 7804: [[86, 771]], 7805: [[118, 771]], 7806: [[86, 803]], 7807: [[118, 803]], 7808: [[87, 768]], 7809: [[119, 768]], 7810: [[87, 769]], 7811: [[119, 769]], 7812: [[87, 776]], 7813: [[119, 776]], 7814: [[87, 775]], 7815: [[119, 775]], 7816: [[87, 803]], 7817: [[119, 803]], 7818: [[88, 775]], 7819: [[120, 775]], 7820: [[88, 776]], 7821: [[120, 776]], 7822: [[89, 775]], 7823: [[121, 775]], 7824: [[90, 770]], 7825: [[122, 770]], 7826: [[90, 803]], 7827: [[122, 803]], 7828: [[90, 817]], 7829: [[122, 817]], 7830: [[104, 817]], 7831: [[116, 776]], 7832: [[119, 778]], 7833: [[121, 778]], 7834: [[97, 702], 256], 7835: [[383, 775]], 7840: [[65, 803], , { 770: 7852, 774: 7862 }], 7841: [[97, 803], , { 770: 7853, 774: 7863 }], 7842: [[65, 777]], 7843: [[97, 777]], 7844: [[194, 769]], 7845: [[226, 769]], 7846: [[194, 768]], 7847: [[226, 768]], 7848: [[194, 777]], 7849: [[226, 777]], 7850: [[194, 771]], 7851: [[226, 771]], 7852: [[7840, 770]], 7853: [[7841, 770]], 7854: [[258, 769]], 7855: [[259, 769]], 7856: [[258, 768]], 7857: [[259, 768]], 7858: [[258, 777]], 7859: [[259, 777]], 7860: [[258, 771]], 7861: [[259, 771]], 7862: [[7840, 774]], 7863: [[7841, 774]], 7864: [[69, 803], , { 770: 7878 }], 7865: [[101, 803], , { 770: 7879 }], 7866: [[69, 777]], 7867: [[101, 777]], 7868: [[69, 771]], 7869: [[101, 771]], 7870: [[202, 769]], 7871: [[234, 769]], 7872: [[202, 768]], 7873: [[234, 768]], 7874: [[202, 777]], 7875: [[234, 777]], 7876: [[202, 771]], 7877: [[234, 771]], 7878: [[7864, 770]], 7879: [[7865, 770]], 7880: [[73, 777]], 7881: [[105, 777]], 7882: [[73, 803]], 7883: [[105, 803]], 7884: [[79, 803], , { 770: 7896 }], 7885: [[111, 803], , { 770: 7897 }], 7886: [[79, 777]], 7887: [[111, 777]], 7888: [[212, 769]], 7889: [[244, 769]], 7890: [[212, 768]], 7891: [[244, 768]], 7892: [[212, 777]], 7893: [[244, 777]], 7894: [[212, 771]], 7895: [[244, 771]], 7896: [[7884, 770]], 7897: [[7885, 770]], 7898: [[416, 769]], 7899: [[417, 769]], 7900: [[416, 768]], 7901: [[417, 768]], 7902: [[416, 777]], 7903: [[417, 777]], 7904: [[416, 771]], 7905: [[417, 771]], 7906: [[416, 803]], 7907: [[417, 803]], 7908: [[85, 803]], 7909: [[117, 803]], 7910: [[85, 777]], 7911: [[117, 777]], 7912: [[431, 769]], 7913: [[432, 769]], 7914: [[431, 768]], 7915: [[432, 768]], 7916: [[431, 777]], 7917: [[432, 777]], 7918: [[431, 771]], 7919: [[432, 771]], 7920: [[431, 803]], 7921: [[432, 803]], 7922: [[89, 768]], 7923: [[121, 768]], 7924: [[89, 803]], 7925: [[121, 803]], 7926: [[89, 777]], 7927: [[121, 777]], 7928: [[89, 771]], 7929: [[121, 771]] }, 7936: { 7936: [[945, 787], , { 768: 7938, 769: 7940, 834: 7942, 837: 8064 }], 7937: [[945, 788], , { 768: 7939, 769: 7941, 834: 7943, 837: 8065 }], 7938: [[7936, 768], , { 837: 8066 }], 7939: [[7937, 768], , { 837: 8067 }], 7940: [[7936, 769], , { 837: 8068 }], 7941: [[7937, 769], , { 837: 8069 }], 7942: [[7936, 834], , { 837: 8070 }], 7943: [[7937, 834], , { 837: 8071 }], 7944: [[913, 787], , { 768: 7946, 769: 7948, 834: 7950, 837: 8072 }], 7945: [[913, 788], , { 768: 7947, 769: 7949, 834: 7951, 837: 8073 }], 7946: [[7944, 768], , { 837: 8074 }], 7947: [[7945, 768], , { 837: 8075 }], 7948: [[7944, 769], , { 837: 8076 }], 7949: [[7945, 769], , { 837: 8077 }], 7950: [[7944, 834], , { 837: 8078 }], 7951: [[7945, 834], , { 837: 8079 }], 7952: [[949, 787], , { 768: 7954, 769: 7956 }], 7953: [[949, 788], , { 768: 7955, 769: 7957 }], 7954: [[7952, 768]], 7955: [[7953, 768]], 7956: [[7952, 769]], 7957: [[7953, 769]], 7960: [[917, 787], , { 768: 7962, 769: 7964 }], 7961: [[917, 788], , { 768: 7963, 769: 7965 }], 7962: [[7960, 768]], 7963: [[7961, 768]], 7964: [[7960, 769]], 7965: [[7961, 769]], 7968: [[951, 787], , { 768: 7970, 769: 7972, 834: 7974, 837: 8080 }], 7969: [[951, 788], , { 768: 7971, 769: 7973, 834: 7975, 837: 8081 }], 7970: [[7968, 768], , { 837: 8082 }], 7971: [[7969, 768], , { 837: 8083 }], 7972: [[7968, 769], , { 837: 8084 }], 7973: [[7969, 769], , { 837: 8085 }], 7974: [[7968, 834], , { 837: 8086 }], 7975: [[7969, 834], , { 837: 8087 }], 7976: [[919, 787], , { 768: 7978, 769: 7980, 834: 7982, 837: 8088 }], 7977: [[919, 788], , { 768: 7979, 769: 7981, 834: 7983, 837: 8089 }], 7978: [[7976, 768], , { 837: 8090 }], 7979: [[7977, 768], , { 837: 8091 }], 7980: [[7976, 769], , { 837: 8092 }], 7981: [[7977, 769], , { 837: 8093 }], 7982: [[7976, 834], , { 837: 8094 }], 7983: [[7977, 834], , { 837: 8095 }], 7984: [[953, 787], , { 768: 7986, 769: 7988, 834: 7990 }], 7985: [[953, 788], , { 768: 7987, 769: 7989, 834: 7991 }], 7986: [[7984, 768]], 7987: [[7985, 768]], 7988: [[7984, 769]], 7989: [[7985, 769]], 7990: [[7984, 834]], 7991: [[7985, 834]], 7992: [[921, 787], , { 768: 7994, 769: 7996, 834: 7998 }], 7993: [[921, 788], , { 768: 7995, 769: 7997, 834: 7999 }], 7994: [[7992, 768]], 7995: [[7993, 768]], 7996: [[7992, 769]], 7997: [[7993, 769]], 7998: [[7992, 834]], 7999: [[7993, 834]], 8000: [[959, 787], , { 768: 8002, 769: 8004 }], 8001: [[959, 788], , { 768: 8003, 769: 8005 }], 8002: [[8000, 768]], 8003: [[8001, 768]], 8004: [[8000, 769]], 8005: [[8001, 769]], 8008: [[927, 787], , { 768: 8010, 769: 8012 }], 8009: [[927, 788], , { 768: 8011, 769: 8013 }], 8010: [[8008, 768]], 8011: [[8009, 768]], 8012: [[8008, 769]], 8013: [[8009, 769]], 8016: [[965, 787], , { 768: 8018, 769: 8020, 834: 8022 }], 8017: [[965, 788], , { 768: 8019, 769: 8021, 834: 8023 }], 8018: [[8016, 768]], 8019: [[8017, 768]], 8020: [[8016, 769]], 8021: [[8017, 769]], 8022: [[8016, 834]], 8023: [[8017, 834]], 8025: [[933, 788], , { 768: 8027, 769: 8029, 834: 8031 }], 8027: [[8025, 768]], 8029: [[8025, 769]], 8031: [[8025, 834]], 8032: [[969, 787], , { 768: 8034, 769: 8036, 834: 8038, 837: 8096 }], 8033: [[969, 788], , { 768: 8035, 769: 8037, 834: 8039, 837: 8097 }], 8034: [[8032, 768], , { 837: 8098 }], 8035: [[8033, 768], , { 837: 8099 }], 8036: [[8032, 769], , { 837: 8100 }], 8037: [[8033, 769], , { 837: 8101 }], 8038: [[8032, 834], , { 837: 8102 }], 8039: [[8033, 834], , { 837: 8103 }], 8040: [[937, 787], , { 768: 8042, 769: 8044, 834: 8046, 837: 8104 }], 8041: [[937, 788], , { 768: 8043, 769: 8045, 834: 8047, 837: 8105 }], 8042: [[8040, 768], , { 837: 8106 }], 8043: [[8041, 768], , { 837: 8107 }], 8044: [[8040, 769], , { 837: 8108 }], 8045: [[8041, 769], , { 837: 8109 }], 8046: [[8040, 834], , { 837: 8110 }], 8047: [[8041, 834], , { 837: 8111 }], 8048: [[945, 768], , { 837: 8114 }], 8049: [[940]], 8050: [[949, 768]], 8051: [[941]], 8052: [[951, 768], , { 837: 8130 }], 8053: [[942]], 8054: [[953, 768]], 8055: [[943]], 8056: [[959, 768]], 8057: [[972]], 8058: [[965, 768]], 8059: [[973]], 8060: [[969, 768], , { 837: 8178 }], 8061: [[974]], 8064: [[7936, 837]], 8065: [[7937, 837]], 8066: [[7938, 837]], 8067: [[7939, 837]], 8068: [[7940, 837]], 8069: [[7941, 837]], 8070: [[7942, 837]], 8071: [[7943, 837]], 8072: [[7944, 837]], 8073: [[7945, 837]], 8074: [[7946, 837]], 8075: [[7947, 837]], 8076: [[7948, 837]], 8077: [[7949, 837]], 8078: [[7950, 837]], 8079: [[7951, 837]], 8080: [[7968, 837]], 8081: [[7969, 837]], 8082: [[7970, 837]], 8083: [[7971, 837]], 8084: [[7972, 837]], 8085: [[7973, 837]], 8086: [[7974, 837]], 8087: [[7975, 837]], 8088: [[7976, 837]], 8089: [[7977, 837]], 8090: [[7978, 837]], 8091: [[7979, 837]], 8092: [[7980, 837]], 8093: [[7981, 837]], 8094: [[7982, 837]], 8095: [[7983, 837]], 8096: [[8032, 837]], 8097: [[8033, 837]], 8098: [[8034, 837]], 8099: [[8035, 837]], 8100: [[8036, 837]], 8101: [[8037, 837]], 8102: [[8038, 837]], 8103: [[8039, 837]], 8104: [[8040, 837]], 8105: [[8041, 837]], 8106: [[8042, 837]], 8107: [[8043, 837]], 8108: [[8044, 837]], 8109: [[8045, 837]], 8110: [[8046, 837]], 8111: [[8047, 837]], 8112: [[945, 774]], 8113: [[945, 772]], 8114: [[8048, 837]], 8115: [[945, 837]], 8116: [[940, 837]], 8118: [[945, 834], , { 837: 8119 }], 8119: [[8118, 837]], 8120: [[913, 774]], 8121: [[913, 772]], 8122: [[913, 768]], 8123: [[902]], 8124: [[913, 837]], 8125: [[32, 787], 256], 8126: [[953]], 8127: [[32, 787], 256, { 768: 8141, 769: 8142, 834: 8143 }], 8128: [[32, 834], 256], 8129: [[168, 834]], 8130: [[8052, 837]], 8131: [[951, 837]], 8132: [[942, 837]], 8134: [[951, 834], , { 837: 8135 }], 8135: [[8134, 837]], 8136: [[917, 768]], 8137: [[904]], 8138: [[919, 768]], 8139: [[905]], 8140: [[919, 837]], 8141: [[8127, 768]], 8142: [[8127, 769]], 8143: [[8127, 834]], 8144: [[953, 774]], 8145: [[953, 772]], 8146: [[970, 768]], 8147: [[912]], 8150: [[953, 834]], 8151: [[970, 834]], 8152: [[921, 774]], 8153: [[921, 772]], 8154: [[921, 768]], 8155: [[906]], 8157: [[8190, 768]], 8158: [[8190, 769]], 8159: [[8190, 834]], 8160: [[965, 774]], 8161: [[965, 772]], 8162: [[971, 768]], 8163: [[944]], 8164: [[961, 787]], 8165: [[961, 788]], 8166: [[965, 834]], 8167: [[971, 834]], 8168: [[933, 774]], 8169: [[933, 772]], 8170: [[933, 768]], 8171: [[910]], 8172: [[929, 788]], 8173: [[168, 768]], 8174: [[901]], 8175: [[96]], 8178: [[8060, 837]], 8179: [[969, 837]], 8180: [[974, 837]], 8182: [[969, 834], , { 837: 8183 }], 8183: [[8182, 837]], 8184: [[927, 768]], 8185: [[908]], 8186: [[937, 768]], 8187: [[911]], 8188: [[937, 837]], 8189: [[180]], 8190: [[32, 788], 256, { 768: 8157, 769: 8158, 834: 8159 }] }, 8192: { 8192: [[8194]], 8193: [[8195]], 8194: [[32], 256], 8195: [[32], 256], 8196: [[32], 256], 8197: [[32], 256], 8198: [[32], 256], 8199: [[32], 256], 8200: [[32], 256], 8201: [[32], 256], 8202: [[32], 256], 8209: [[8208], 256], 8215: [[32, 819], 256], 8228: [[46], 256], 8229: [[46, 46], 256], 8230: [[46, 46, 46], 256], 8239: [[32], 256], 8243: [[8242, 8242], 256], 8244: [[8242, 8242, 8242], 256], 8246: [[8245, 8245], 256], 8247: [[8245, 8245, 8245], 256], 8252: [[33, 33], 256], 8254: [[32, 773], 256], 8263: [[63, 63], 256], 8264: [[63, 33], 256], 8265: [[33, 63], 256], 8279: [[8242, 8242, 8242, 8242], 256], 8287: [[32], 256], 8304: [[48], 256], 8305: [[105], 256], 8308: [[52], 256], 8309: [[53], 256], 8310: [[54], 256], 8311: [[55], 256], 8312: [[56], 256], 8313: [[57], 256], 8314: [[43], 256], 8315: [[8722], 256], 8316: [[61], 256], 8317: [[40], 256], 8318: [[41], 256], 8319: [[110], 256], 8320: [[48], 256], 8321: [[49], 256], 8322: [[50], 256], 8323: [[51], 256], 8324: [[52], 256], 8325: [[53], 256], 8326: [[54], 256], 8327: [[55], 256], 8328: [[56], 256], 8329: [[57], 256], 8330: [[43], 256], 8331: [[8722], 256], 8332: [[61], 256], 8333: [[40], 256], 8334: [[41], 256], 8336: [[97], 256], 8337: [[101], 256], 8338: [[111], 256], 8339: [[120], 256], 8340: [[601], 256], 8341: [[104], 256], 8342: [[107], 256], 8343: [[108], 256], 8344: [[109], 256], 8345: [[110], 256], 8346: [[112], 256], 8347: [[115], 256], 8348: [[116], 256], 8360: [[82, 115], 256], 8400: [, 230], 8401: [, 230], 8402: [, 1], 8403: [, 1], 8404: [, 230], 8405: [, 230], 8406: [, 230], 8407: [, 230], 8408: [, 1], 8409: [, 1], 8410: [, 1], 8411: [, 230], 8412: [, 230], 8417: [, 230], 8421: [, 1], 8422: [, 1], 8423: [, 230], 8424: [, 220], 8425: [, 230], 8426: [, 1], 8427: [, 1], 8428: [, 220], 8429: [, 220], 8430: [, 220], 8431: [, 220], 8432: [, 230] }, 8448: { 8448: [[97, 47, 99], 256], 8449: [[97, 47, 115], 256], 8450: [[67], 256], 8451: [[176, 67], 256], 8453: [[99, 47, 111], 256], 8454: [[99, 47, 117], 256], 8455: [[400], 256], 8457: [[176, 70], 256], 8458: [[103], 256], 8459: [[72], 256], 8460: [[72], 256], 8461: [[72], 256], 8462: [[104], 256], 8463: [[295], 256], 8464: [[73], 256], 8465: [[73], 256], 8466: [[76], 256], 8467: [[108], 256], 8469: [[78], 256], 8470: [[78, 111], 256], 8473: [[80], 256], 8474: [[81], 256], 8475: [[82], 256], 8476: [[82], 256], 8477: [[82], 256], 8480: [[83, 77], 256], 8481: [[84, 69, 76], 256], 8482: [[84, 77], 256], 8484: [[90], 256], 8486: [[937]], 8488: [[90], 256], 8490: [[75]], 8491: [[197]], 8492: [[66], 256], 8493: [[67], 256], 8495: [[101], 256], 8496: [[69], 256], 8497: [[70], 256], 8499: [[77], 256], 8500: [[111], 256], 8501: [[1488], 256], 8502: [[1489], 256], 8503: [[1490], 256], 8504: [[1491], 256], 8505: [[105], 256], 8507: [[70, 65, 88], 256], 8508: [[960], 256], 8509: [[947], 256], 8510: [[915], 256], 8511: [[928], 256], 8512: [[8721], 256], 8517: [[68], 256], 8518: [[100], 256], 8519: [[101], 256], 8520: [[105], 256], 8521: [[106], 256], 8528: [[49, 8260, 55], 256], 8529: [[49, 8260, 57], 256], 8530: [[49, 8260, 49, 48], 256], 8531: [[49, 8260, 51], 256], 8532: [[50, 8260, 51], 256], 8533: [[49, 8260, 53], 256], 8534: [[50, 8260, 53], 256], 8535: [[51, 8260, 53], 256], 8536: [[52, 8260, 53], 256], 8537: [[49, 8260, 54], 256], 8538: [[53, 8260, 54], 256], 8539: [[49, 8260, 56], 256], 8540: [[51, 8260, 56], 256], 8541: [[53, 8260, 56], 256], 8542: [[55, 8260, 56], 256], 8543: [[49, 8260], 256], 8544: [[73], 256], 8545: [[73, 73], 256], 8546: [[73, 73, 73], 256], 8547: [[73, 86], 256], 8548: [[86], 256], 8549: [[86, 73], 256], 8550: [[86, 73, 73], 256], 8551: [[86, 73, 73, 73], 256], 8552: [[73, 88], 256], 8553: [[88], 256], 8554: [[88, 73], 256], 8555: [[88, 73, 73], 256], 8556: [[76], 256], 8557: [[67], 256], 8558: [[68], 256], 8559: [[77], 256], 8560: [[105], 256], 8561: [[105, 105], 256], 8562: [[105, 105, 105], 256], 8563: [[105, 118], 256], 8564: [[118], 256], 8565: [[118, 105], 256], 8566: [[118, 105, 105], 256], 8567: [[118, 105, 105, 105], 256], 8568: [[105, 120], 256], 8569: [[120], 256], 8570: [[120, 105], 256], 8571: [[120, 105, 105], 256], 8572: [[108], 256], 8573: [[99], 256], 8574: [[100], 256], 8575: [[109], 256], 8585: [[48, 8260, 51], 256], 8592: [, , { 824: 8602 }], 8594: [, , { 824: 8603 }], 8596: [, , { 824: 8622 }], 8602: [[8592, 824]], 8603: [[8594, 824]], 8622: [[8596, 824]], 8653: [[8656, 824]], 8654: [[8660, 824]], 8655: [[8658, 824]], 8656: [, , { 824: 8653 }], 8658: [, , { 824: 8655 }], 8660: [, , { 824: 8654 }] }, 8704: { 8707: [, , { 824: 8708 }], 8708: [[8707, 824]], 8712: [, , { 824: 8713 }], 8713: [[8712, 824]], 8715: [, , { 824: 8716 }], 8716: [[8715, 824]], 8739: [, , { 824: 8740 }], 8740: [[8739, 824]], 8741: [, , { 824: 8742 }], 8742: [[8741, 824]], 8748: [[8747, 8747], 256], 8749: [[8747, 8747, 8747], 256], 8751: [[8750, 8750], 256], 8752: [[8750, 8750, 8750], 256], 8764: [, , { 824: 8769 }], 8769: [[8764, 824]], 8771: [, , { 824: 8772 }], 8772: [[8771, 824]], 8773: [, , { 824: 8775 }], 8775: [[8773, 824]], 8776: [, , { 824: 8777 }], 8777: [[8776, 824]], 8781: [, , { 824: 8813 }], 8800: [[61, 824]], 8801: [, , { 824: 8802 }], 8802: [[8801, 824]], 8804: [, , { 824: 8816 }], 8805: [, , { 824: 8817 }], 8813: [[8781, 824]], 8814: [[60, 824]], 8815: [[62, 824]], 8816: [[8804, 824]], 8817: [[8805, 824]], 8818: [, , { 824: 8820 }], 8819: [, , { 824: 8821 }], 8820: [[8818, 824]], 8821: [[8819, 824]], 8822: [, , { 824: 8824 }], 8823: [, , { 824: 8825 }], 8824: [[8822, 824]], 8825: [[8823, 824]], 8826: [, , { 824: 8832 }], 8827: [, , { 824: 8833 }], 8828: [, , { 824: 8928 }], 8829: [, , { 824: 8929 }], 8832: [[8826, 824]], 8833: [[8827, 824]], 8834: [, , { 824: 8836 }], 8835: [, , { 824: 8837 }], 8836: [[8834, 824]], 8837: [[8835, 824]], 8838: [, , { 824: 8840 }], 8839: [, , { 824: 8841 }], 8840: [[8838, 824]], 8841: [[8839, 824]], 8849: [, , { 824: 8930 }], 8850: [, , { 824: 8931 }], 8866: [, , { 824: 8876 }], 8872: [, , { 824: 8877 }], 8873: [, , { 824: 8878 }], 8875: [, , { 824: 8879 }], 8876: [[8866, 824]], 8877: [[8872, 824]], 8878: [[8873, 824]], 8879: [[8875, 824]], 8882: [, , { 824: 8938 }], 8883: [, , { 824: 8939 }], 8884: [, , { 824: 8940 }], 8885: [, , { 824: 8941 }], 8928: [[8828, 824]], 8929: [[8829, 824]], 8930: [[8849, 824]], 8931: [[8850, 824]], 8938: [[8882, 824]], 8939: [[8883, 824]], 8940: [[8884, 824]], 8941: [[8885, 824]] }, 8960: { 9001: [[12296]], 9002: [[12297]] }, 9216: { 9312: [[49], 256], 9313: [[50], 256], 9314: [[51], 256], 9315: [[52], 256], 9316: [[53], 256], 9317: [[54], 256], 9318: [[55], 256], 9319: [[56], 256], 9320: [[57], 256], 9321: [[49, 48], 256], 9322: [[49, 49], 256], 9323: [[49, 50], 256], 9324: [[49, 51], 256], 9325: [[49, 52], 256], 9326: [[49, 53], 256], 9327: [[49, 54], 256], 9328: [[49, 55], 256], 9329: [[49, 56], 256], 9330: [[49, 57], 256], 9331: [[50, 48], 256], 9332: [[40, 49, 41], 256], 9333: [[40, 50, 41], 256], 9334: [[40, 51, 41], 256], 9335: [[40, 52, 41], 256], 9336: [[40, 53, 41], 256], 9337: [[40, 54, 41], 256], 9338: [[40, 55, 41], 256], 9339: [[40, 56, 41], 256], 9340: [[40, 57, 41], 256], 9341: [[40, 49, 48, 41], 256], 9342: [[40, 49, 49, 41], 256], 9343: [[40, 49, 50, 41], 256], 9344: [[40, 49, 51, 41], 256], 9345: [[40, 49, 52, 41], 256], 9346: [[40, 49, 53, 41], 256], 9347: [[40, 49, 54, 41], 256], 9348: [[40, 49, 55, 41], 256], 9349: [[40, 49, 56, 41], 256], 9350: [[40, 49, 57, 41], 256], 9351: [[40, 50, 48, 41], 256], 9352: [[49, 46], 256], 9353: [[50, 46], 256], 9354: [[51, 46], 256], 9355: [[52, 46], 256], 9356: [[53, 46], 256], 9357: [[54, 46], 256], 9358: [[55, 46], 256], 9359: [[56, 46], 256], 9360: [[57, 46], 256], 9361: [[49, 48, 46], 256], 9362: [[49, 49, 46], 256], 9363: [[49, 50, 46], 256], 9364: [[49, 51, 46], 256], 9365: [[49, 52, 46], 256], 9366: [[49, 53, 46], 256], 9367: [[49, 54, 46], 256], 9368: [[49, 55, 46], 256], 9369: [[49, 56, 46], 256], 9370: [[49, 57, 46], 256], 9371: [[50, 48, 46], 256], 9372: [[40, 97, 41], 256], 9373: [[40, 98, 41], 256], 9374: [[40, 99, 41], 256], 9375: [[40, 100, 41], 256], 9376: [[40, 101, 41], 256], 9377: [[40, 102, 41], 256], 9378: [[40, 103, 41], 256], 9379: [[40, 104, 41], 256], 9380: [[40, 105, 41], 256], 9381: [[40, 106, 41], 256], 9382: [[40, 107, 41], 256], 9383: [[40, 108, 41], 256], 9384: [[40, 109, 41], 256], 9385: [[40, 110, 41], 256], 9386: [[40, 111, 41], 256], 9387: [[40, 112, 41], 256], 9388: [[40, 113, 41], 256], 9389: [[40, 114, 41], 256], 9390: [[40, 115, 41], 256], 9391: [[40, 116, 41], 256], 9392: [[40, 117, 41], 256], 9393: [[40, 118, 41], 256], 9394: [[40, 119, 41], 256], 9395: [[40, 120, 41], 256], 9396: [[40, 121, 41], 256], 9397: [[40, 122, 41], 256], 9398: [[65], 256], 9399: [[66], 256], 9400: [[67], 256], 9401: [[68], 256], 9402: [[69], 256], 9403: [[70], 256], 9404: [[71], 256], 9405: [[72], 256], 9406: [[73], 256], 9407: [[74], 256], 9408: [[75], 256], 9409: [[76], 256], 9410: [[77], 256], 9411: [[78], 256], 9412: [[79], 256], 9413: [[80], 256], 9414: [[81], 256], 9415: [[82], 256], 9416: [[83], 256], 9417: [[84], 256], 9418: [[85], 256], 9419: [[86], 256], 9420: [[87], 256], 9421: [[88], 256], 9422: [[89], 256], 9423: [[90], 256], 9424: [[97], 256], 9425: [[98], 256], 9426: [[99], 256], 9427: [[100], 256], 9428: [[101], 256], 9429: [[102], 256], 9430: [[103], 256], 9431: [[104], 256], 9432: [[105], 256], 9433: [[106], 256], 9434: [[107], 256], 9435: [[108], 256], 9436: [[109], 256], 9437: [[110], 256], 9438: [[111], 256], 9439: [[112], 256], 9440: [[113], 256], 9441: [[114], 256], 9442: [[115], 256], 9443: [[116], 256], 9444: [[117], 256], 9445: [[118], 256], 9446: [[119], 256], 9447: [[120], 256], 9448: [[121], 256], 9449: [[122], 256], 9450: [[48], 256] }, 10752: { 10764: [[8747, 8747, 8747, 8747], 256], 10868: [[58, 58, 61], 256], 10869: [[61, 61], 256], 10870: [[61, 61, 61], 256], 10972: [[10973, 824], 512] }, 11264: { 11388: [[106], 256], 11389: [[86], 256], 11503: [, 230], 11504: [, 230], 11505: [, 230] }, 11520: { 11631: [[11617], 256], 11647: [, 9], 11744: [, 230], 11745: [, 230], 11746: [, 230], 11747: [, 230], 11748: [, 230], 11749: [, 230], 11750: [, 230], 11751: [, 230], 11752: [, 230], 11753: [, 230], 11754: [, 230], 11755: [, 230], 11756: [, 230], 11757: [, 230], 11758: [, 230], 11759: [, 230], 11760: [, 230], 11761: [, 230], 11762: [, 230], 11763: [, 230], 11764: [, 230], 11765: [, 230], 11766: [, 230], 11767: [, 230], 11768: [, 230], 11769: [, 230], 11770: [, 230], 11771: [, 230], 11772: [, 230], 11773: [, 230], 11774: [, 230], 11775: [, 230] }, 11776: { 11935: [[27597], 256], 12019: [[40863], 256] }, 12032: { 12032: [[19968], 256], 12033: [[20008], 256], 12034: [[20022], 256], 12035: [[20031], 256], 12036: [[20057], 256], 12037: [[20101], 256], 12038: [[20108], 256], 12039: [[20128], 256], 12040: [[20154], 256], 12041: [[20799], 256], 12042: [[20837], 256], 12043: [[20843], 256], 12044: [[20866], 256], 12045: [[20886], 256], 12046: [[20907], 256], 12047: [[20960], 256], 12048: [[20981], 256], 12049: [[20992], 256], 12050: [[21147], 256], 12051: [[21241], 256], 12052: [[21269], 256], 12053: [[21274], 256], 12054: [[21304], 256], 12055: [[21313], 256], 12056: [[21340], 256], 12057: [[21353], 256], 12058: [[21378], 256], 12059: [[21430], 256], 12060: [[21448], 256], 12061: [[21475], 256], 12062: [[22231], 256], 12063: [[22303], 256], 12064: [[22763], 256], 12065: [[22786], 256], 12066: [[22794], 256], 12067: [[22805], 256], 12068: [[22823], 256], 12069: [[22899], 256], 12070: [[23376], 256], 12071: [[23424], 256], 12072: [[23544], 256], 12073: [[23567], 256], 12074: [[23586], 256], 12075: [[23608], 256], 12076: [[23662], 256], 12077: [[23665], 256], 12078: [[24027], 256], 12079: [[24037], 256], 12080: [[24049], 256], 12081: [[24062], 256], 12082: [[24178], 256], 12083: [[24186], 256], 12084: [[24191], 256], 12085: [[24308], 256], 12086: [[24318], 256], 12087: [[24331], 256], 12088: [[24339], 256], 12089: [[24400], 256], 12090: [[24417], 256], 12091: [[24435], 256], 12092: [[24515], 256], 12093: [[25096], 256], 12094: [[25142], 256], 12095: [[25163], 256], 12096: [[25903], 256], 12097: [[25908], 256], 12098: [[25991], 256], 12099: [[26007], 256], 12100: [[26020], 256], 12101: [[26041], 256], 12102: [[26080], 256], 12103: [[26085], 256], 12104: [[26352], 256], 12105: [[26376], 256], 12106: [[26408], 256], 12107: [[27424], 256], 12108: [[27490], 256], 12109: [[27513], 256], 12110: [[27571], 256], 12111: [[27595], 256], 12112: [[27604], 256], 12113: [[27611], 256], 12114: [[27663], 256], 12115: [[27668], 256], 12116: [[27700], 256], 12117: [[28779], 256], 12118: [[29226], 256], 12119: [[29238], 256], 12120: [[29243], 256], 12121: [[29247], 256], 12122: [[29255], 256], 12123: [[29273], 256], 12124: [[29275], 256], 12125: [[29356], 256], 12126: [[29572], 256], 12127: [[29577], 256], 12128: [[29916], 256], 12129: [[29926], 256], 12130: [[29976], 256], 12131: [[29983], 256], 12132: [[29992], 256], 12133: [[30000], 256], 12134: [[30091], 256], 12135: [[30098], 256], 12136: [[30326], 256], 12137: [[30333], 256], 12138: [[30382], 256], 12139: [[30399], 256], 12140: [[30446], 256], 12141: [[30683], 256], 12142: [[30690], 256], 12143: [[30707], 256], 12144: [[31034], 256], 12145: [[31160], 256], 12146: [[31166], 256], 12147: [[31348], 256], 12148: [[31435], 256], 12149: [[31481], 256], 12150: [[31859], 256], 12151: [[31992], 256], 12152: [[32566], 256], 12153: [[32593], 256], 12154: [[32650], 256], 12155: [[32701], 256], 12156: [[32769], 256], 12157: [[32780], 256], 12158: [[32786], 256], 12159: [[32819], 256], 12160: [[32895], 256], 12161: [[32905], 256], 12162: [[33251], 256], 12163: [[33258], 256], 12164: [[33267], 256], 12165: [[33276], 256], 12166: [[33292], 256], 12167: [[33307], 256], 12168: [[33311], 256], 12169: [[33390], 256], 12170: [[33394], 256], 12171: [[33400], 256], 12172: [[34381], 256], 12173: [[34411], 256], 12174: [[34880], 256], 12175: [[34892], 256], 12176: [[34915], 256], 12177: [[35198], 256], 12178: [[35211], 256], 12179: [[35282], 256], 12180: [[35328], 256], 12181: [[35895], 256], 12182: [[35910], 256], 12183: [[35925], 256], 12184: [[35960], 256], 12185: [[35997], 256], 12186: [[36196], 256], 12187: [[36208], 256], 12188: [[36275], 256], 12189: [[36523], 256], 12190: [[36554], 256], 12191: [[36763], 256], 12192: [[36784], 256], 12193: [[36789], 256], 12194: [[37009], 256], 12195: [[37193], 256], 12196: [[37318], 256], 12197: [[37324], 256], 12198: [[37329], 256], 12199: [[38263], 256], 12200: [[38272], 256], 12201: [[38428], 256], 12202: [[38582], 256], 12203: [[38585], 256], 12204: [[38632], 256], 12205: [[38737], 256], 12206: [[38750], 256], 12207: [[38754], 256], 12208: [[38761], 256], 12209: [[38859], 256], 12210: [[38893], 256], 12211: [[38899], 256], 12212: [[38913], 256], 12213: [[39080], 256], 12214: [[39131], 256], 12215: [[39135], 256], 12216: [[39318], 256], 12217: [[39321], 256], 12218: [[39340], 256], 12219: [[39592], 256], 12220: [[39640], 256], 12221: [[39647], 256], 12222: [[39717], 256], 12223: [[39727], 256], 12224: [[39730], 256], 12225: [[39740], 256], 12226: [[39770], 256], 12227: [[40165], 256], 12228: [[40565], 256], 12229: [[40575], 256], 12230: [[40613], 256], 12231: [[40635], 256], 12232: [[40643], 256], 12233: [[40653], 256], 12234: [[40657], 256], 12235: [[40697], 256], 12236: [[40701], 256], 12237: [[40718], 256], 12238: [[40723], 256], 12239: [[40736], 256], 12240: [[40763], 256], 12241: [[40778], 256], 12242: [[40786], 256], 12243: [[40845], 256], 12244: [[40860], 256], 12245: [[40864], 256] }, 12288: { 12288: [[32], 256], 12330: [, 218], 12331: [, 228], 12332: [, 232], 12333: [, 222], 12334: [, 224], 12335: [, 224], 12342: [[12306], 256], 12344: [[21313], 256], 12345: [[21316], 256], 12346: [[21317], 256], 12358: [, , { 12441: 12436 }], 12363: [, , { 12441: 12364 }], 12364: [[12363, 12441]], 12365: [, , { 12441: 12366 }], 12366: [[12365, 12441]], 12367: [, , { 12441: 12368 }], 12368: [[12367, 12441]], 12369: [, , { 12441: 12370 }], 12370: [[12369, 12441]], 12371: [, , { 12441: 12372 }], 12372: [[12371, 12441]], 12373: [, , { 12441: 12374 }], 12374: [[12373, 12441]], 12375: [, , { 12441: 12376 }], 12376: [[12375, 12441]], 12377: [, , { 12441: 12378 }], 12378: [[12377, 12441]], 12379: [, , { 12441: 12380 }], 12380: [[12379, 12441]], 12381: [, , { 12441: 12382 }], 12382: [[12381, 12441]], 12383: [, , { 12441: 12384 }], 12384: [[12383, 12441]], 12385: [, , { 12441: 12386 }], 12386: [[12385, 12441]], 12388: [, , { 12441: 12389 }], 12389: [[12388, 12441]], 12390: [, , { 12441: 12391 }], 12391: [[12390, 12441]], 12392: [, , { 12441: 12393 }], 12393: [[12392, 12441]], 12399: [, , { 12441: 12400, 12442: 12401 }], 12400: [[12399, 12441]], 12401: [[12399, 12442]], 12402: [, , { 12441: 12403, 12442: 12404 }], 12403: [[12402, 12441]], 12404: [[12402, 12442]], 12405: [, , { 12441: 12406, 12442: 12407 }], 12406: [[12405, 12441]], 12407: [[12405, 12442]], 12408: [, , { 12441: 12409, 12442: 12410 }], 12409: [[12408, 12441]], 12410: [[12408, 12442]], 12411: [, , { 12441: 12412, 12442: 12413 }], 12412: [[12411, 12441]], 12413: [[12411, 12442]], 12436: [[12358, 12441]], 12441: [, 8], 12442: [, 8], 12443: [[32, 12441], 256], 12444: [[32, 12442], 256], 12445: [, , { 12441: 12446 }], 12446: [[12445, 12441]], 12447: [[12424, 12426], 256], 12454: [, , { 12441: 12532 }], 12459: [, , { 12441: 12460 }], 12460: [[12459, 12441]], 12461: [, , { 12441: 12462 }], 12462: [[12461, 12441]], 12463: [, , { 12441: 12464 }], 12464: [[12463, 12441]], 12465: [, , { 12441: 12466 }], 12466: [[12465, 12441]], 12467: [, , { 12441: 12468 }], 12468: [[12467, 12441]], 12469: [, , { 12441: 12470 }], 12470: [[12469, 12441]], 12471: [, , { 12441: 12472 }], 12472: [[12471, 12441]], 12473: [, , { 12441: 12474 }], 12474: [[12473, 12441]], 12475: [, , { 12441: 12476 }], 12476: [[12475, 12441]], 12477: [, , { 12441: 12478 }], 12478: [[12477, 12441]], 12479: [, , { 12441: 12480 }], 12480: [[12479, 12441]], 12481: [, , { 12441: 12482 }], 12482: [[12481, 12441]], 12484: [, , { 12441: 12485 }], 12485: [[12484, 12441]], 12486: [, , { 12441: 12487 }], 12487: [[12486, 12441]], 12488: [, , { 12441: 12489 }], 12489: [[12488, 12441]], 12495: [, , { 12441: 12496, 12442: 12497 }], 12496: [[12495, 12441]], 12497: [[12495, 12442]], 12498: [, , { 12441: 12499, 12442: 12500 }], 12499: [[12498, 12441]], 12500: [[12498, 12442]], 12501: [, , { 12441: 12502, 12442: 12503 }], 12502: [[12501, 12441]], 12503: [[12501, 12442]], 12504: [, , { 12441: 12505, 12442: 12506 }], 12505: [[12504, 12441]], 12506: [[12504, 12442]], 12507: [, , { 12441: 12508, 12442: 12509 }], 12508: [[12507, 12441]], 12509: [[12507, 12442]], 12527: [, , { 12441: 12535 }], 12528: [, , { 12441: 12536 }], 12529: [, , { 12441: 12537 }], 12530: [, , { 12441: 12538 }], 12532: [[12454, 12441]], 12535: [[12527, 12441]], 12536: [[12528, 12441]], 12537: [[12529, 12441]], 12538: [[12530, 12441]], 12541: [, , { 12441: 12542 }], 12542: [[12541, 12441]], 12543: [[12467, 12488], 256] }, 12544: { 12593: [[4352], 256], 12594: [[4353], 256], 12595: [[4522], 256], 12596: [[4354], 256], 12597: [[4524], 256], 12598: [[4525], 256], 12599: [[4355], 256], 12600: [[4356], 256], 12601: [[4357], 256], 12602: [[4528], 256], 12603: [[4529], 256], 12604: [[4530], 256], 12605: [[4531], 256], 12606: [[4532], 256], 12607: [[4533], 256], 12608: [[4378], 256], 12609: [[4358], 256], 12610: [[4359], 256], 12611: [[4360], 256], 12612: [[4385], 256], 12613: [[4361], 256], 12614: [[4362], 256], 12615: [[4363], 256], 12616: [[4364], 256], 12617: [[4365], 256], 12618: [[4366], 256], 12619: [[4367], 256], 12620: [[4368], 256], 12621: [[4369], 256], 12622: [[4370], 256], 12623: [[4449], 256], 12624: [[4450], 256], 12625: [[4451], 256], 12626: [[4452], 256], 12627: [[4453], 256], 12628: [[4454], 256], 12629: [[4455], 256], 12630: [[4456], 256], 12631: [[4457], 256], 12632: [[4458], 256], 12633: [[4459], 256], 12634: [[4460], 256], 12635: [[4461], 256], 12636: [[4462], 256], 12637: [[4463], 256], 12638: [[4464], 256], 12639: [[4465], 256], 12640: [[4466], 256], 12641: [[4467], 256], 12642: [[4468], 256], 12643: [[4469], 256], 12644: [[4448], 256], 12645: [[4372], 256], 12646: [[4373], 256], 12647: [[4551], 256], 12648: [[4552], 256], 12649: [[4556], 256], 12650: [[4558], 256], 12651: [[4563], 256], 12652: [[4567], 256], 12653: [[4569], 256], 12654: [[4380], 256], 12655: [[4573], 256], 12656: [[4575], 256], 12657: [[4381], 256], 12658: [[4382], 256], 12659: [[4384], 256], 12660: [[4386], 256], 12661: [[4387], 256], 12662: [[4391], 256], 12663: [[4393], 256], 12664: [[4395], 256], 12665: [[4396], 256], 12666: [[4397], 256], 12667: [[4398], 256], 12668: [[4399], 256], 12669: [[4402], 256], 12670: [[4406], 256], 12671: [[4416], 256], 12672: [[4423], 256], 12673: [[4428], 256], 12674: [[4593], 256], 12675: [[4594], 256], 12676: [[4439], 256], 12677: [[4440], 256], 12678: [[4441], 256], 12679: [[4484], 256], 12680: [[4485], 256], 12681: [[4488], 256], 12682: [[4497], 256], 12683: [[4498], 256], 12684: [[4500], 256], 12685: [[4510], 256], 12686: [[4513], 256], 12690: [[19968], 256], 12691: [[20108], 256], 12692: [[19977], 256], 12693: [[22235], 256], 12694: [[19978], 256], 12695: [[20013], 256], 12696: [[19979], 256], 12697: [[30002], 256], 12698: [[20057], 256], 12699: [[19993], 256], 12700: [[19969], 256], 12701: [[22825], 256], 12702: [[22320], 256], 12703: [[20154], 256] }, 12800: { 12800: [[40, 4352, 41], 256], 12801: [[40, 4354, 41], 256], 12802: [[40, 4355, 41], 256], 12803: [[40, 4357, 41], 256], 12804: [[40, 4358, 41], 256], 12805: [[40, 4359, 41], 256], 12806: [[40, 4361, 41], 256], 12807: [[40, 4363, 41], 256], 12808: [[40, 4364, 41], 256], 12809: [[40, 4366, 41], 256], 12810: [[40, 4367, 41], 256], 12811: [[40, 4368, 41], 256], 12812: [[40, 4369, 41], 256], 12813: [[40, 4370, 41], 256], 12814: [[40, 4352, 4449, 41], 256], 12815: [[40, 4354, 4449, 41], 256], 12816: [[40, 4355, 4449, 41], 256], 12817: [[40, 4357, 4449, 41], 256], 12818: [[40, 4358, 4449, 41], 256], 12819: [[40, 4359, 4449, 41], 256], 12820: [[40, 4361, 4449, 41], 256], 12821: [[40, 4363, 4449, 41], 256], 12822: [[40, 4364, 4449, 41], 256], 12823: [[40, 4366, 4449, 41], 256], 12824: [[40, 4367, 4449, 41], 256], 12825: [[40, 4368, 4449, 41], 256], 12826: [[40, 4369, 4449, 41], 256], 12827: [[40, 4370, 4449, 41], 256], 12828: [[40, 4364, 4462, 41], 256], 12829: [[40, 4363, 4457, 4364, 4453, 4523, 41], 256], 12830: [[40, 4363, 4457, 4370, 4462, 41], 256], 12832: [[40, 19968, 41], 256], 12833: [[40, 20108, 41], 256], 12834: [[40, 19977, 41], 256], 12835: [[40, 22235, 41], 256], 12836: [[40, 20116, 41], 256], 12837: [[40, 20845, 41], 256], 12838: [[40, 19971, 41], 256], 12839: [[40, 20843, 41], 256], 12840: [[40, 20061, 41], 256], 12841: [[40, 21313, 41], 256], 12842: [[40, 26376, 41], 256], 12843: [[40, 28779, 41], 256], 12844: [[40, 27700, 41], 256], 12845: [[40, 26408, 41], 256], 12846: [[40, 37329, 41], 256], 12847: [[40, 22303, 41], 256], 12848: [[40, 26085, 41], 256], 12849: [[40, 26666, 41], 256], 12850: [[40, 26377, 41], 256], 12851: [[40, 31038, 41], 256], 12852: [[40, 21517, 41], 256], 12853: [[40, 29305, 41], 256], 12854: [[40, 36001, 41], 256], 12855: [[40, 31069, 41], 256], 12856: [[40, 21172, 41], 256], 12857: [[40, 20195, 41], 256], 12858: [[40, 21628, 41], 256], 12859: [[40, 23398, 41], 256], 12860: [[40, 30435, 41], 256], 12861: [[40, 20225, 41], 256], 12862: [[40, 36039, 41], 256], 12863: [[40, 21332, 41], 256], 12864: [[40, 31085, 41], 256], 12865: [[40, 20241, 41], 256], 12866: [[40, 33258, 41], 256], 12867: [[40, 33267, 41], 256], 12868: [[21839], 256], 12869: [[24188], 256], 12870: [[25991], 256], 12871: [[31631], 256], 12880: [[80, 84, 69], 256], 12881: [[50, 49], 256], 12882: [[50, 50], 256], 12883: [[50, 51], 256], 12884: [[50, 52], 256], 12885: [[50, 53], 256], 12886: [[50, 54], 256], 12887: [[50, 55], 256], 12888: [[50, 56], 256], 12889: [[50, 57], 256], 12890: [[51, 48], 256], 12891: [[51, 49], 256], 12892: [[51, 50], 256], 12893: [[51, 51], 256], 12894: [[51, 52], 256], 12895: [[51, 53], 256], 12896: [[4352], 256], 12897: [[4354], 256], 12898: [[4355], 256], 12899: [[4357], 256], 12900: [[4358], 256], 12901: [[4359], 256], 12902: [[4361], 256], 12903: [[4363], 256], 12904: [[4364], 256], 12905: [[4366], 256], 12906: [[4367], 256], 12907: [[4368], 256], 12908: [[4369], 256], 12909: [[4370], 256], 12910: [[4352, 4449], 256], 12911: [[4354, 4449], 256], 12912: [[4355, 4449], 256], 12913: [[4357, 4449], 256], 12914: [[4358, 4449], 256], 12915: [[4359, 4449], 256], 12916: [[4361, 4449], 256], 12917: [[4363, 4449], 256], 12918: [[4364, 4449], 256], 12919: [[4366, 4449], 256], 12920: [[4367, 4449], 256], 12921: [[4368, 4449], 256], 12922: [[4369, 4449], 256], 12923: [[4370, 4449], 256], 12924: [[4366, 4449, 4535, 4352, 4457], 256], 12925: [[4364, 4462, 4363, 4468], 256], 12926: [[4363, 4462], 256], 12928: [[19968], 256], 12929: [[20108], 256], 12930: [[19977], 256], 12931: [[22235], 256], 12932: [[20116], 256], 12933: [[20845], 256], 12934: [[19971], 256], 12935: [[20843], 256], 12936: [[20061], 256], 12937: [[21313], 256], 12938: [[26376], 256], 12939: [[28779], 256], 12940: [[27700], 256], 12941: [[26408], 256], 12942: [[37329], 256], 12943: [[22303], 256], 12944: [[26085], 256], 12945: [[26666], 256], 12946: [[26377], 256], 12947: [[31038], 256], 12948: [[21517], 256], 12949: [[29305], 256], 12950: [[36001], 256], 12951: [[31069], 256], 12952: [[21172], 256], 12953: [[31192], 256], 12954: [[30007], 256], 12955: [[22899], 256], 12956: [[36969], 256], 12957: [[20778], 256], 12958: [[21360], 256], 12959: [[27880], 256], 12960: [[38917], 256], 12961: [[20241], 256], 12962: [[20889], 256], 12963: [[27491], 256], 12964: [[19978], 256], 12965: [[20013], 256], 12966: [[19979], 256], 12967: [[24038], 256], 12968: [[21491], 256], 12969: [[21307], 256], 12970: [[23447], 256], 12971: [[23398], 256], 12972: [[30435], 256], 12973: [[20225], 256], 12974: [[36039], 256], 12975: [[21332], 256], 12976: [[22812], 256], 12977: [[51, 54], 256], 12978: [[51, 55], 256], 12979: [[51, 56], 256], 12980: [[51, 57], 256], 12981: [[52, 48], 256], 12982: [[52, 49], 256], 12983: [[52, 50], 256], 12984: [[52, 51], 256], 12985: [[52, 52], 256], 12986: [[52, 53], 256], 12987: [[52, 54], 256], 12988: [[52, 55], 256], 12989: [[52, 56], 256], 12990: [[52, 57], 256], 12991: [[53, 48], 256], 12992: [[49, 26376], 256], 12993: [[50, 26376], 256], 12994: [[51, 26376], 256], 12995: [[52, 26376], 256], 12996: [[53, 26376], 256], 12997: [[54, 26376], 256], 12998: [[55, 26376], 256], 12999: [[56, 26376], 256], 13000: [[57, 26376], 256], 13001: [[49, 48, 26376], 256], 13002: [[49, 49, 26376], 256], 13003: [[49, 50, 26376], 256], 13004: [[72, 103], 256], 13005: [[101, 114, 103], 256], 13006: [[101, 86], 256], 13007: [[76, 84, 68], 256], 13008: [[12450], 256], 13009: [[12452], 256], 13010: [[12454], 256], 13011: [[12456], 256], 13012: [[12458], 256], 13013: [[12459], 256], 13014: [[12461], 256], 13015: [[12463], 256], 13016: [[12465], 256], 13017: [[12467], 256], 13018: [[12469], 256], 13019: [[12471], 256], 13020: [[12473], 256], 13021: [[12475], 256], 13022: [[12477], 256], 13023: [[12479], 256], 13024: [[12481], 256], 13025: [[12484], 256], 13026: [[12486], 256], 13027: [[12488], 256], 13028: [[12490], 256], 13029: [[12491], 256], 13030: [[12492], 256], 13031: [[12493], 256], 13032: [[12494], 256], 13033: [[12495], 256], 13034: [[12498], 256], 13035: [[12501], 256], 13036: [[12504], 256], 13037: [[12507], 256], 13038: [[12510], 256], 13039: [[12511], 256], 13040: [[12512], 256], 13041: [[12513], 256], 13042: [[12514], 256], 13043: [[12516], 256], 13044: [[12518], 256], 13045: [[12520], 256], 13046: [[12521], 256], 13047: [[12522], 256], 13048: [[12523], 256], 13049: [[12524], 256], 13050: [[12525], 256], 13051: [[12527], 256], 13052: [[12528], 256], 13053: [[12529], 256], 13054: [[12530], 256] }, 13056: { 13056: [[12450, 12497, 12540, 12488], 256], 13057: [[12450, 12523, 12501, 12449], 256], 13058: [[12450, 12531, 12506, 12450], 256], 13059: [[12450, 12540, 12523], 256], 13060: [[12452, 12491, 12531, 12464], 256], 13061: [[12452, 12531, 12481], 256], 13062: [[12454, 12457, 12531], 256], 13063: [[12456, 12473, 12463, 12540, 12489], 256], 13064: [[12456, 12540, 12459, 12540], 256], 13065: [[12458, 12531, 12473], 256], 13066: [[12458, 12540, 12512], 256], 13067: [[12459, 12452, 12522], 256], 13068: [[12459, 12521, 12483, 12488], 256], 13069: [[12459, 12525, 12522, 12540], 256], 13070: [[12460, 12525, 12531], 256], 13071: [[12460, 12531, 12510], 256], 13072: [[12462, 12460], 256], 13073: [[12462, 12491, 12540], 256], 13074: [[12461, 12517, 12522, 12540], 256], 13075: [[12462, 12523, 12480, 12540], 256], 13076: [[12461, 12525], 256], 13077: [[12461, 12525, 12464, 12521, 12512], 256], 13078: [[12461, 12525, 12513, 12540, 12488, 12523], 256], 13079: [[12461, 12525, 12527, 12483, 12488], 256], 13080: [[12464, 12521, 12512], 256], 13081: [[12464, 12521, 12512, 12488, 12531], 256], 13082: [[12463, 12523, 12476, 12452, 12525], 256], 13083: [[12463, 12525, 12540, 12493], 256], 13084: [[12465, 12540, 12473], 256], 13085: [[12467, 12523, 12490], 256], 13086: [[12467, 12540, 12509], 256], 13087: [[12469, 12452, 12463, 12523], 256], 13088: [[12469, 12531, 12481, 12540, 12512], 256], 13089: [[12471, 12522, 12531, 12464], 256], 13090: [[12475, 12531, 12481], 256], 13091: [[12475, 12531, 12488], 256], 13092: [[12480, 12540, 12473], 256], 13093: [[12487, 12471], 256], 13094: [[12489, 12523], 256], 13095: [[12488, 12531], 256], 13096: [[12490, 12494], 256], 13097: [[12494, 12483, 12488], 256], 13098: [[12495, 12452, 12484], 256], 13099: [[12497, 12540, 12475, 12531, 12488], 256], 13100: [[12497, 12540, 12484], 256], 13101: [[12496, 12540, 12524, 12523], 256], 13102: [[12500, 12450, 12473, 12488, 12523], 256], 13103: [[12500, 12463, 12523], 256], 13104: [[12500, 12467], 256], 13105: [[12499, 12523], 256], 13106: [[12501, 12449, 12521, 12483, 12489], 256], 13107: [[12501, 12451, 12540, 12488], 256], 13108: [[12502, 12483, 12471, 12455, 12523], 256], 13109: [[12501, 12521, 12531], 256], 13110: [[12504, 12463, 12479, 12540, 12523], 256], 13111: [[12506, 12477], 256], 13112: [[12506, 12491, 12498], 256], 13113: [[12504, 12523, 12484], 256], 13114: [[12506, 12531, 12473], 256], 13115: [[12506, 12540, 12472], 256], 13116: [[12505, 12540, 12479], 256], 13117: [[12509, 12452, 12531, 12488], 256], 13118: [[12508, 12523, 12488], 256], 13119: [[12507, 12531], 256], 13120: [[12509, 12531, 12489], 256], 13121: [[12507, 12540, 12523], 256], 13122: [[12507, 12540, 12531], 256], 13123: [[12510, 12452, 12463, 12525], 256], 13124: [[12510, 12452, 12523], 256], 13125: [[12510, 12483, 12495], 256], 13126: [[12510, 12523, 12463], 256], 13127: [[12510, 12531, 12471, 12519, 12531], 256], 13128: [[12511, 12463, 12525, 12531], 256], 13129: [[12511, 12522], 256], 13130: [[12511, 12522, 12496, 12540, 12523], 256], 13131: [[12513, 12460], 256], 13132: [[12513, 12460, 12488, 12531], 256], 13133: [[12513, 12540, 12488, 12523], 256], 13134: [[12516, 12540, 12489], 256], 13135: [[12516, 12540, 12523], 256], 13136: [[12518, 12450, 12531], 256], 13137: [[12522, 12483, 12488, 12523], 256], 13138: [[12522, 12521], 256], 13139: [[12523, 12500, 12540], 256], 13140: [[12523, 12540, 12502, 12523], 256], 13141: [[12524, 12512], 256], 13142: [[12524, 12531, 12488, 12466, 12531], 256], 13143: [[12527, 12483, 12488], 256], 13144: [[48, 28857], 256], 13145: [[49, 28857], 256], 13146: [[50, 28857], 256], 13147: [[51, 28857], 256], 13148: [[52, 28857], 256], 13149: [[53, 28857], 256], 13150: [[54, 28857], 256], 13151: [[55, 28857], 256], 13152: [[56, 28857], 256], 13153: [[57, 28857], 256], 13154: [[49, 48, 28857], 256], 13155: [[49, 49, 28857], 256], 13156: [[49, 50, 28857], 256], 13157: [[49, 51, 28857], 256], 13158: [[49, 52, 28857], 256], 13159: [[49, 53, 28857], 256], 13160: [[49, 54, 28857], 256], 13161: [[49, 55, 28857], 256], 13162: [[49, 56, 28857], 256], 13163: [[49, 57, 28857], 256], 13164: [[50, 48, 28857], 256], 13165: [[50, 49, 28857], 256], 13166: [[50, 50, 28857], 256], 13167: [[50, 51, 28857], 256], 13168: [[50, 52, 28857], 256], 13169: [[104, 80, 97], 256], 13170: [[100, 97], 256], 13171: [[65, 85], 256], 13172: [[98, 97, 114], 256], 13173: [[111, 86], 256], 13174: [[112, 99], 256], 13175: [[100, 109], 256], 13176: [[100, 109, 178], 256], 13177: [[100, 109, 179], 256], 13178: [[73, 85], 256], 13179: [[24179, 25104], 256], 13180: [[26157, 21644], 256], 13181: [[22823, 27491], 256], 13182: [[26126, 27835], 256], 13183: [[26666, 24335, 20250, 31038], 256], 13184: [[112, 65], 256], 13185: [[110, 65], 256], 13186: [[956, 65], 256], 13187: [[109, 65], 256], 13188: [[107, 65], 256], 13189: [[75, 66], 256], 13190: [[77, 66], 256], 13191: [[71, 66], 256], 13192: [[99, 97, 108], 256], 13193: [[107, 99, 97, 108], 256], 13194: [[112, 70], 256], 13195: [[110, 70], 256], 13196: [[956, 70], 256], 13197: [[956, 103], 256], 13198: [[109, 103], 256], 13199: [[107, 103], 256], 13200: [[72, 122], 256], 13201: [[107, 72, 122], 256], 13202: [[77, 72, 122], 256], 13203: [[71, 72, 122], 256], 13204: [[84, 72, 122], 256], 13205: [[956, 8467], 256], 13206: [[109, 8467], 256], 13207: [[100, 8467], 256], 13208: [[107, 8467], 256], 13209: [[102, 109], 256], 13210: [[110, 109], 256], 13211: [[956, 109], 256], 13212: [[109, 109], 256], 13213: [[99, 109], 256], 13214: [[107, 109], 256], 13215: [[109, 109, 178], 256], 13216: [[99, 109, 178], 256], 13217: [[109, 178], 256], 13218: [[107, 109, 178], 256], 13219: [[109, 109, 179], 256], 13220: [[99, 109, 179], 256], 13221: [[109, 179], 256], 13222: [[107, 109, 179], 256], 13223: [[109, 8725, 115], 256], 13224: [[109, 8725, 115, 178], 256], 13225: [[80, 97], 256], 13226: [[107, 80, 97], 256], 13227: [[77, 80, 97], 256], 13228: [[71, 80, 97], 256], 13229: [[114, 97, 100], 256], 13230: [[114, 97, 100, 8725, 115], 256], 13231: [[114, 97, 100, 8725, 115, 178], 256], 13232: [[112, 115], 256], 13233: [[110, 115], 256], 13234: [[956, 115], 256], 13235: [[109, 115], 256], 13236: [[112, 86], 256], 13237: [[110, 86], 256], 13238: [[956, 86], 256], 13239: [[109, 86], 256], 13240: [[107, 86], 256], 13241: [[77, 86], 256], 13242: [[112, 87], 256], 13243: [[110, 87], 256], 13244: [[956, 87], 256], 13245: [[109, 87], 256], 13246: [[107, 87], 256], 13247: [[77, 87], 256], 13248: [[107, 937], 256], 13249: [[77, 937], 256], 13250: [[97, 46, 109, 46], 256], 13251: [[66, 113], 256], 13252: [[99, 99], 256], 13253: [[99, 100], 256], 13254: [[67, 8725, 107, 103], 256], 13255: [[67, 111, 46], 256], 13256: [[100, 66], 256], 13257: [[71, 121], 256], 13258: [[104, 97], 256], 13259: [[72, 80], 256], 13260: [[105, 110], 256], 13261: [[75, 75], 256], 13262: [[75, 77], 256], 13263: [[107, 116], 256], 13264: [[108, 109], 256], 13265: [[108, 110], 256], 13266: [[108, 111, 103], 256], 13267: [[108, 120], 256], 13268: [[109, 98], 256], 13269: [[109, 105, 108], 256], 13270: [[109, 111, 108], 256], 13271: [[80, 72], 256], 13272: [[112, 46, 109, 46], 256], 13273: [[80, 80, 77], 256], 13274: [[80, 82], 256], 13275: [[115, 114], 256], 13276: [[83, 118], 256], 13277: [[87, 98], 256], 13278: [[86, 8725, 109], 256], 13279: [[65, 8725, 109], 256], 13280: [[49, 26085], 256], 13281: [[50, 26085], 256], 13282: [[51, 26085], 256], 13283: [[52, 26085], 256], 13284: [[53, 26085], 256], 13285: [[54, 26085], 256], 13286: [[55, 26085], 256], 13287: [[56, 26085], 256], 13288: [[57, 26085], 256], 13289: [[49, 48, 26085], 256], 13290: [[49, 49, 26085], 256], 13291: [[49, 50, 26085], 256], 13292: [[49, 51, 26085], 256], 13293: [[49, 52, 26085], 256], 13294: [[49, 53, 26085], 256], 13295: [[49, 54, 26085], 256], 13296: [[49, 55, 26085], 256], 13297: [[49, 56, 26085], 256], 13298: [[49, 57, 26085], 256], 13299: [[50, 48, 26085], 256], 13300: [[50, 49, 26085], 256], 13301: [[50, 50, 26085], 256], 13302: [[50, 51, 26085], 256], 13303: [[50, 52, 26085], 256], 13304: [[50, 53, 26085], 256], 13305: [[50, 54, 26085], 256], 13306: [[50, 55, 26085], 256], 13307: [[50, 56, 26085], 256], 13308: [[50, 57, 26085], 256], 13309: [[51, 48, 26085], 256], 13310: [[51, 49, 26085], 256], 13311: [[103, 97, 108], 256] }, 42496: { 42607: [, 230], 42612: [, 230], 42613: [, 230], 42614: [, 230], 42615: [, 230], 42616: [, 230], 42617: [, 230], 42618: [, 230], 42619: [, 230], 42620: [, 230], 42621: [, 230], 42655: [, 230], 42736: [, 230], 42737: [, 230] }, 42752: { 42864: [[42863], 256], 43000: [[294], 256], 43001: [[339], 256] }, 43008: { 43014: [, 9], 43204: [, 9], 43232: [, 230], 43233: [, 230], 43234: [, 230], 43235: [, 230], 43236: [, 230], 43237: [, 230], 43238: [, 230], 43239: [, 230], 43240: [, 230], 43241: [, 230], 43242: [, 230], 43243: [, 230], 43244: [, 230], 43245: [, 230], 43246: [, 230], 43247: [, 230], 43248: [, 230], 43249: [, 230] }, 43264: { 43307: [, 220], 43308: [, 220], 43309: [, 220], 43347: [, 9], 43443: [, 7], 43456: [, 9] }, 43520: { 43696: [, 230], 43698: [, 230], 43699: [, 230], 43700: [, 220], 43703: [, 230], 43704: [, 230], 43710: [, 230], 43711: [, 230], 43713: [, 230], 43766: [, 9] }, 43776: { 44013: [, 9] }, 53504: { 119134: [[119127, 119141], 512], 119135: [[119128, 119141], 512], 119136: [[119135, 119150], 512], 119137: [[119135, 119151], 512], 119138: [[119135, 119152], 512], 119139: [[119135, 119153], 512], 119140: [[119135, 119154], 512], 119141: [, 216], 119142: [, 216], 119143: [, 1], 119144: [, 1], 119145: [, 1], 119149: [, 226], 119150: [, 216], 119151: [, 216], 119152: [, 216], 119153: [, 216], 119154: [, 216], 119163: [, 220], 119164: [, 220], 119165: [, 220], 119166: [, 220], 119167: [, 220], 119168: [, 220], 119169: [, 220], 119170: [, 220], 119173: [, 230], 119174: [, 230], 119175: [, 230], 119176: [, 230], 119177: [, 230], 119178: [, 220], 119179: [, 220], 119210: [, 230], 119211: [, 230], 119212: [, 230], 119213: [, 230], 119227: [[119225, 119141], 512], 119228: [[119226, 119141], 512], 119229: [[119227, 119150], 512], 119230: [[119228, 119150], 512], 119231: [[119227, 119151], 512], 119232: [[119228, 119151], 512] }, 53760: { 119362: [, 230], 119363: [, 230], 119364: [, 230] }, 54272: { 119808: [[65], 256], 119809: [[66], 256], 119810: [[67], 256], 119811: [[68], 256], 119812: [[69], 256], 119813: [[70], 256], 119814: [[71], 256], 119815: [[72], 256], 119816: [[73], 256], 119817: [[74], 256], 119818: [[75], 256], 119819: [[76], 256], 119820: [[77], 256], 119821: [[78], 256], 119822: [[79], 256], 119823: [[80], 256], 119824: [[81], 256], 119825: [[82], 256], 119826: [[83], 256], 119827: [[84], 256], 119828: [[85], 256], 119829: [[86], 256], 119830: [[87], 256], 119831: [[88], 256], 119832: [[89], 256], 119833: [[90], 256], 119834: [[97], 256], 119835: [[98], 256], 119836: [[99], 256], 119837: [[100], 256], 119838: [[101], 256], 119839: [[102], 256], 119840: [[103], 256], 119841: [[104], 256], 119842: [[105], 256], 119843: [[106], 256], 119844: [[107], 256], 119845: [[108], 256], 119846: [[109], 256], 119847: [[110], 256], 119848: [[111], 256], 119849: [[112], 256], 119850: [[113], 256], 119851: [[114], 256], 119852: [[115], 256], 119853: [[116], 256], 119854: [[117], 256], 119855: [[118], 256], 119856: [[119], 256], 119857: [[120], 256], 119858: [[121], 256], 119859: [[122], 256], 119860: [[65], 256], 119861: [[66], 256], 119862: [[67], 256], 119863: [[68], 256], 119864: [[69], 256], 119865: [[70], 256], 119866: [[71], 256], 119867: [[72], 256], 119868: [[73], 256], 119869: [[74], 256], 119870: [[75], 256], 119871: [[76], 256], 119872: [[77], 256], 119873: [[78], 256], 119874: [[79], 256], 119875: [[80], 256], 119876: [[81], 256], 119877: [[82], 256], 119878: [[83], 256], 119879: [[84], 256], 119880: [[85], 256], 119881: [[86], 256], 119882: [[87], 256], 119883: [[88], 256], 119884: [[89], 256], 119885: [[90], 256], 119886: [[97], 256], 119887: [[98], 256], 119888: [[99], 256], 119889: [[100], 256], 119890: [[101], 256], 119891: [[102], 256], 119892: [[103], 256], 119894: [[105], 256], 119895: [[106], 256], 119896: [[107], 256], 119897: [[108], 256], 119898: [[109], 256], 119899: [[110], 256], 119900: [[111], 256], 119901: [[112], 256], 119902: [[113], 256], 119903: [[114], 256], 119904: [[115], 256], 119905: [[116], 256], 119906: [[117], 256], 119907: [[118], 256], 119908: [[119], 256], 119909: [[120], 256], 119910: [[121], 256], 119911: [[122], 256], 119912: [[65], 256], 119913: [[66], 256], 119914: [[67], 256], 119915: [[68], 256], 119916: [[69], 256], 119917: [[70], 256], 119918: [[71], 256], 119919: [[72], 256], 119920: [[73], 256], 119921: [[74], 256], 119922: [[75], 256], 119923: [[76], 256], 119924: [[77], 256], 119925: [[78], 256], 119926: [[79], 256], 119927: [[80], 256], 119928: [[81], 256], 119929: [[82], 256], 119930: [[83], 256], 119931: [[84], 256], 119932: [[85], 256], 119933: [[86], 256], 119934: [[87], 256], 119935: [[88], 256], 119936: [[89], 256], 119937: [[90], 256], 119938: [[97], 256], 119939: [[98], 256], 119940: [[99], 256], 119941: [[100], 256], 119942: [[101], 256], 119943: [[102], 256], 119944: [[103], 256], 119945: [[104], 256], 119946: [[105], 256], 119947: [[106], 256], 119948: [[107], 256], 119949: [[108], 256], 119950: [[109], 256], 119951: [[110], 256], 119952: [[111], 256], 119953: [[112], 256], 119954: [[113], 256], 119955: [[114], 256], 119956: [[115], 256], 119957: [[116], 256], 119958: [[117], 256], 119959: [[118], 256], 119960: [[119], 256], 119961: [[120], 256], 119962: [[121], 256], 119963: [[122], 256], 119964: [[65], 256], 119966: [[67], 256], 119967: [[68], 256], 119970: [[71], 256], 119973: [[74], 256], 119974: [[75], 256], 119977: [[78], 256], 119978: [[79], 256], 119979: [[80], 256], 119980: [[81], 256], 119982: [[83], 256], 119983: [[84], 256], 119984: [[85], 256], 119985: [[86], 256], 119986: [[87], 256], 119987: [[88], 256], 119988: [[89], 256], 119989: [[90], 256], 119990: [[97], 256], 119991: [[98], 256], 119992: [[99], 256], 119993: [[100], 256], 119995: [[102], 256], 119997: [[104], 256], 119998: [[105], 256], 119999: [[106], 256], 120000: [[107], 256], 120001: [[108], 256], 120002: [[109], 256], 120003: [[110], 256], 120005: [[112], 256], 120006: [[113], 256], 120007: [[114], 256], 120008: [[115], 256], 120009: [[116], 256], 120010: [[117], 256], 120011: [[118], 256], 120012: [[119], 256], 120013: [[120], 256], 120014: [[121], 256], 120015: [[122], 256], 120016: [[65], 256], 120017: [[66], 256], 120018: [[67], 256], 120019: [[68], 256], 120020: [[69], 256], 120021: [[70], 256], 120022: [[71], 256], 120023: [[72], 256], 120024: [[73], 256], 120025: [[74], 256], 120026: [[75], 256], 120027: [[76], 256], 120028: [[77], 256], 120029: [[78], 256], 120030: [[79], 256], 120031: [[80], 256], 120032: [[81], 256], 120033: [[82], 256], 120034: [[83], 256], 120035: [[84], 256], 120036: [[85], 256], 120037: [[86], 256], 120038: [[87], 256], 120039: [[88], 256], 120040: [[89], 256], 120041: [[90], 256], 120042: [[97], 256], 120043: [[98], 256], 120044: [[99], 256], 120045: [[100], 256], 120046: [[101], 256], 120047: [[102], 256], 120048: [[103], 256], 120049: [[104], 256], 120050: [[105], 256], 120051: [[106], 256], 120052: [[107], 256], 120053: [[108], 256], 120054: [[109], 256], 120055: [[110], 256], 120056: [[111], 256], 120057: [[112], 256], 120058: [[113], 256], 120059: [[114], 256], 120060: [[115], 256], 120061: [[116], 256], 120062: [[117], 256], 120063: [[118], 256] }, 54528: { 120064: [[119], 256], 120065: [[120], 256], 120066: [[121], 256], 120067: [[122], 256], 120068: [[65], 256], 120069: [[66], 256], 120071: [[68], 256], 120072: [[69], 256], 120073: [[70], 256], 120074: [[71], 256], 120077: [[74], 256], 120078: [[75], 256], 120079: [[76], 256], 120080: [[77], 256], 120081: [[78], 256], 120082: [[79], 256], 120083: [[80], 256], 120084: [[81], 256], 120086: [[83], 256], 120087: [[84], 256], 120088: [[85], 256], 120089: [[86], 256], 120090: [[87], 256], 120091: [[88], 256], 120092: [[89], 256], 120094: [[97], 256], 120095: [[98], 256], 120096: [[99], 256], 120097: [[100], 256], 120098: [[101], 256], 120099: [[102], 256], 120100: [[103], 256], 120101: [[104], 256], 120102: [[105], 256], 120103: [[106], 256], 120104: [[107], 256], 120105: [[108], 256], 120106: [[109], 256], 120107: [[110], 256], 120108: [[111], 256], 120109: [[112], 256], 120110: [[113], 256], 120111: [[114], 256], 120112: [[115], 256], 120113: [[116], 256], 120114: [[117], 256], 120115: [[118], 256], 120116: [[119], 256], 120117: [[120], 256], 120118: [[121], 256], 120119: [[122], 256], 120120: [[65], 256], 120121: [[66], 256], 120123: [[68], 256], 120124: [[69], 256], 120125: [[70], 256], 120126: [[71], 256], 120128: [[73], 256], 120129: [[74], 256], 120130: [[75], 256], 120131: [[76], 256], 120132: [[77], 256], 120134: [[79], 256], 120138: [[83], 256], 120139: [[84], 256], 120140: [[85], 256], 120141: [[86], 256], 120142: [[87], 256], 120143: [[88], 256], 120144: [[89], 256], 120146: [[97], 256], 120147: [[98], 256], 120148: [[99], 256], 120149: [[100], 256], 120150: [[101], 256], 120151: [[102], 256], 120152: [[103], 256], 120153: [[104], 256], 120154: [[105], 256], 120155: [[106], 256], 120156: [[107], 256], 120157: [[108], 256], 120158: [[109], 256], 120159: [[110], 256], 120160: [[111], 256], 120161: [[112], 256], 120162: [[113], 256], 120163: [[114], 256], 120164: [[115], 256], 120165: [[116], 256], 120166: [[117], 256], 120167: [[118], 256], 120168: [[119], 256], 120169: [[120], 256], 120170: [[121], 256], 120171: [[122], 256], 120172: [[65], 256], 120173: [[66], 256], 120174: [[67], 256], 120175: [[68], 256], 120176: [[69], 256], 120177: [[70], 256], 120178: [[71], 256], 120179: [[72], 256], 120180: [[73], 256], 120181: [[74], 256], 120182: [[75], 256], 120183: [[76], 256], 120184: [[77], 256], 120185: [[78], 256], 120186: [[79], 256], 120187: [[80], 256], 120188: [[81], 256], 120189: [[82], 256], 120190: [[83], 256], 120191: [[84], 256], 120192: [[85], 256], 120193: [[86], 256], 120194: [[87], 256], 120195: [[88], 256], 120196: [[89], 256], 120197: [[90], 256], 120198: [[97], 256], 120199: [[98], 256], 120200: [[99], 256], 120201: [[100], 256], 120202: [[101], 256], 120203: [[102], 256], 120204: [[103], 256], 120205: [[104], 256], 120206: [[105], 256], 120207: [[106], 256], 120208: [[107], 256], 120209: [[108], 256], 120210: [[109], 256], 120211: [[110], 256], 120212: [[111], 256], 120213: [[112], 256], 120214: [[113], 256], 120215: [[114], 256], 120216: [[115], 256], 120217: [[116], 256], 120218: [[117], 256], 120219: [[118], 256], 120220: [[119], 256], 120221: [[120], 256], 120222: [[121], 256], 120223: [[122], 256], 120224: [[65], 256], 120225: [[66], 256], 120226: [[67], 256], 120227: [[68], 256], 120228: [[69], 256], 120229: [[70], 256], 120230: [[71], 256], 120231: [[72], 256], 120232: [[73], 256], 120233: [[74], 256], 120234: [[75], 256], 120235: [[76], 256], 120236: [[77], 256], 120237: [[78], 256], 120238: [[79], 256], 120239: [[80], 256], 120240: [[81], 256], 120241: [[82], 256], 120242: [[83], 256], 120243: [[84], 256], 120244: [[85], 256], 120245: [[86], 256], 120246: [[87], 256], 120247: [[88], 256], 120248: [[89], 256], 120249: [[90], 256], 120250: [[97], 256], 120251: [[98], 256], 120252: [[99], 256], 120253: [[100], 256], 120254: [[101], 256], 120255: [[102], 256], 120256: [[103], 256], 120257: [[104], 256], 120258: [[105], 256], 120259: [[106], 256], 120260: [[107], 256], 120261: [[108], 256], 120262: [[109], 256], 120263: [[110], 256], 120264: [[111], 256], 120265: [[112], 256], 120266: [[113], 256], 120267: [[114], 256], 120268: [[115], 256], 120269: [[116], 256], 120270: [[117], 256], 120271: [[118], 256], 120272: [[119], 256], 120273: [[120], 256], 120274: [[121], 256], 120275: [[122], 256], 120276: [[65], 256], 120277: [[66], 256], 120278: [[67], 256], 120279: [[68], 256], 120280: [[69], 256], 120281: [[70], 256], 120282: [[71], 256], 120283: [[72], 256], 120284: [[73], 256], 120285: [[74], 256], 120286: [[75], 256], 120287: [[76], 256], 120288: [[77], 256], 120289: [[78], 256], 120290: [[79], 256], 120291: [[80], 256], 120292: [[81], 256], 120293: [[82], 256], 120294: [[83], 256], 120295: [[84], 256], 120296: [[85], 256], 120297: [[86], 256], 120298: [[87], 256], 120299: [[88], 256], 120300: [[89], 256], 120301: [[90], 256], 120302: [[97], 256], 120303: [[98], 256], 120304: [[99], 256], 120305: [[100], 256], 120306: [[101], 256], 120307: [[102], 256], 120308: [[103], 256], 120309: [[104], 256], 120310: [[105], 256], 120311: [[106], 256], 120312: [[107], 256], 120313: [[108], 256], 120314: [[109], 256], 120315: [[110], 256], 120316: [[111], 256], 120317: [[112], 256], 120318: [[113], 256], 120319: [[114], 256] }, 54784: { 120320: [[115], 256], 120321: [[116], 256], 120322: [[117], 256], 120323: [[118], 256], 120324: [[119], 256], 120325: [[120], 256], 120326: [[121], 256], 120327: [[122], 256], 120328: [[65], 256], 120329: [[66], 256], 120330: [[67], 256], 120331: [[68], 256], 120332: [[69], 256], 120333: [[70], 256], 120334: [[71], 256], 120335: [[72], 256], 120336: [[73], 256], 120337: [[74], 256], 120338: [[75], 256], 120339: [[76], 256], 120340: [[77], 256], 120341: [[78], 256], 120342: [[79], 256], 120343: [[80], 256], 120344: [[81], 256], 120345: [[82], 256], 120346: [[83], 256], 120347: [[84], 256], 120348: [[85], 256], 120349: [[86], 256], 120350: [[87], 256], 120351: [[88], 256], 120352: [[89], 256], 120353: [[90], 256], 120354: [[97], 256], 120355: [[98], 256], 120356: [[99], 256], 120357: [[100], 256], 120358: [[101], 256], 120359: [[102], 256], 120360: [[103], 256], 120361: [[104], 256], 120362: [[105], 256], 120363: [[106], 256], 120364: [[107], 256], 120365: [[108], 256], 120366: [[109], 256], 120367: [[110], 256], 120368: [[111], 256], 120369: [[112], 256], 120370: [[113], 256], 120371: [[114], 256], 120372: [[115], 256], 120373: [[116], 256], 120374: [[117], 256], 120375: [[118], 256], 120376: [[119], 256], 120377: [[120], 256], 120378: [[121], 256], 120379: [[122], 256], 120380: [[65], 256], 120381: [[66], 256], 120382: [[67], 256], 120383: [[68], 256], 120384: [[69], 256], 120385: [[70], 256], 120386: [[71], 256], 120387: [[72], 256], 120388: [[73], 256], 120389: [[74], 256], 120390: [[75], 256], 120391: [[76], 256], 120392: [[77], 256], 120393: [[78], 256], 120394: [[79], 256], 120395: [[80], 256], 120396: [[81], 256], 120397: [[82], 256], 120398: [[83], 256], 120399: [[84], 256], 120400: [[85], 256], 120401: [[86], 256], 120402: [[87], 256], 120403: [[88], 256], 120404: [[89], 256], 120405: [[90], 256], 120406: [[97], 256], 120407: [[98], 256], 120408: [[99], 256], 120409: [[100], 256], 120410: [[101], 256], 120411: [[102], 256], 120412: [[103], 256], 120413: [[104], 256], 120414: [[105], 256], 120415: [[106], 256], 120416: [[107], 256], 120417: [[108], 256], 120418: [[109], 256], 120419: [[110], 256], 120420: [[111], 256], 120421: [[112], 256], 120422: [[113], 256], 120423: [[114], 256], 120424: [[115], 256], 120425: [[116], 256], 120426: [[117], 256], 120427: [[118], 256], 120428: [[119], 256], 120429: [[120], 256], 120430: [[121], 256], 120431: [[122], 256], 120432: [[65], 256], 120433: [[66], 256], 120434: [[67], 256], 120435: [[68], 256], 120436: [[69], 256], 120437: [[70], 256], 120438: [[71], 256], 120439: [[72], 256], 120440: [[73], 256], 120441: [[74], 256], 120442: [[75], 256], 120443: [[76], 256], 120444: [[77], 256], 120445: [[78], 256], 120446: [[79], 256], 120447: [[80], 256], 120448: [[81], 256], 120449: [[82], 256], 120450: [[83], 256], 120451: [[84], 256], 120452: [[85], 256], 120453: [[86], 256], 120454: [[87], 256], 120455: [[88], 256], 120456: [[89], 256], 120457: [[90], 256], 120458: [[97], 256], 120459: [[98], 256], 120460: [[99], 256], 120461: [[100], 256], 120462: [[101], 256], 120463: [[102], 256], 120464: [[103], 256], 120465: [[104], 256], 120466: [[105], 256], 120467: [[106], 256], 120468: [[107], 256], 120469: [[108], 256], 120470: [[109], 256], 120471: [[110], 256], 120472: [[111], 256], 120473: [[112], 256], 120474: [[113], 256], 120475: [[114], 256], 120476: [[115], 256], 120477: [[116], 256], 120478: [[117], 256], 120479: [[118], 256], 120480: [[119], 256], 120481: [[120], 256], 120482: [[121], 256], 120483: [[122], 256], 120484: [[305], 256], 120485: [[567], 256], 120488: [[913], 256], 120489: [[914], 256], 120490: [[915], 256], 120491: [[916], 256], 120492: [[917], 256], 120493: [[918], 256], 120494: [[919], 256], 120495: [[920], 256], 120496: [[921], 256], 120497: [[922], 256], 120498: [[923], 256], 120499: [[924], 256], 120500: [[925], 256], 120501: [[926], 256], 120502: [[927], 256], 120503: [[928], 256], 120504: [[929], 256], 120505: [[1012], 256], 120506: [[931], 256], 120507: [[932], 256], 120508: [[933], 256], 120509: [[934], 256], 120510: [[935], 256], 120511: [[936], 256], 120512: [[937], 256], 120513: [[8711], 256], 120514: [[945], 256], 120515: [[946], 256], 120516: [[947], 256], 120517: [[948], 256], 120518: [[949], 256], 120519: [[950], 256], 120520: [[951], 256], 120521: [[952], 256], 120522: [[953], 256], 120523: [[954], 256], 120524: [[955], 256], 120525: [[956], 256], 120526: [[957], 256], 120527: [[958], 256], 120528: [[959], 256], 120529: [[960], 256], 120530: [[961], 256], 120531: [[962], 256], 120532: [[963], 256], 120533: [[964], 256], 120534: [[965], 256], 120535: [[966], 256], 120536: [[967], 256], 120537: [[968], 256], 120538: [[969], 256], 120539: [[8706], 256], 120540: [[1013], 256], 120541: [[977], 256], 120542: [[1008], 256], 120543: [[981], 256], 120544: [[1009], 256], 120545: [[982], 256], 120546: [[913], 256], 120547: [[914], 256], 120548: [[915], 256], 120549: [[916], 256], 120550: [[917], 256], 120551: [[918], 256], 120552: [[919], 256], 120553: [[920], 256], 120554: [[921], 256], 120555: [[922], 256], 120556: [[923], 256], 120557: [[924], 256], 120558: [[925], 256], 120559: [[926], 256], 120560: [[927], 256], 120561: [[928], 256], 120562: [[929], 256], 120563: [[1012], 256], 120564: [[931], 256], 120565: [[932], 256], 120566: [[933], 256], 120567: [[934], 256], 120568: [[935], 256], 120569: [[936], 256], 120570: [[937], 256], 120571: [[8711], 256], 120572: [[945], 256], 120573: [[946], 256], 120574: [[947], 256], 120575: [[948], 256] }, 55040: { 120576: [[949], 256], 120577: [[950], 256], 120578: [[951], 256], 120579: [[952], 256], 120580: [[953], 256], 120581: [[954], 256], 120582: [[955], 256], 120583: [[956], 256], 120584: [[957], 256], 120585: [[958], 256], 120586: [[959], 256], 120587: [[960], 256], 120588: [[961], 256], 120589: [[962], 256], 120590: [[963], 256], 120591: [[964], 256], 120592: [[965], 256], 120593: [[966], 256], 120594: [[967], 256], 120595: [[968], 256], 120596: [[969], 256], 120597: [[8706], 256], 120598: [[1013], 256], 120599: [[977], 256], 120600: [[1008], 256], 120601: [[981], 256], 120602: [[1009], 256], 120603: [[982], 256], 120604: [[913], 256], 120605: [[914], 256], 120606: [[915], 256], 120607: [[916], 256], 120608: [[917], 256], 120609: [[918], 256], 120610: [[919], 256], 120611: [[920], 256], 120612: [[921], 256], 120613: [[922], 256], 120614: [[923], 256], 120615: [[924], 256], 120616: [[925], 256], 120617: [[926], 256], 120618: [[927], 256], 120619: [[928], 256], 120620: [[929], 256], 120621: [[1012], 256], 120622: [[931], 256], 120623: [[932], 256], 120624: [[933], 256], 120625: [[934], 256], 120626: [[935], 256], 120627: [[936], 256], 120628: [[937], 256], 120629: [[8711], 256], 120630: [[945], 256], 120631: [[946], 256], 120632: [[947], 256], 120633: [[948], 256], 120634: [[949], 256], 120635: [[950], 256], 120636: [[951], 256], 120637: [[952], 256], 120638: [[953], 256], 120639: [[954], 256], 120640: [[955], 256], 120641: [[956], 256], 120642: [[957], 256], 120643: [[958], 256], 120644: [[959], 256], 120645: [[960], 256], 120646: [[961], 256], 120647: [[962], 256], 120648: [[963], 256], 120649: [[964], 256], 120650: [[965], 256], 120651: [[966], 256], 120652: [[967], 256], 120653: [[968], 256], 120654: [[969], 256], 120655: [[8706], 256], 120656: [[1013], 256], 120657: [[977], 256], 120658: [[1008], 256], 120659: [[981], 256], 120660: [[1009], 256], 120661: [[982], 256], 120662: [[913], 256], 120663: [[914], 256], 120664: [[915], 256], 120665: [[916], 256], 120666: [[917], 256], 120667: [[918], 256], 120668: [[919], 256], 120669: [[920], 256], 120670: [[921], 256], 120671: [[922], 256], 120672: [[923], 256], 120673: [[924], 256], 120674: [[925], 256], 120675: [[926], 256], 120676: [[927], 256], 120677: [[928], 256], 120678: [[929], 256], 120679: [[1012], 256], 120680: [[931], 256], 120681: [[932], 256], 120682: [[933], 256], 120683: [[934], 256], 120684: [[935], 256], 120685: [[936], 256], 120686: [[937], 256], 120687: [[8711], 256], 120688: [[945], 256], 120689: [[946], 256], 120690: [[947], 256], 120691: [[948], 256], 120692: [[949], 256], 120693: [[950], 256], 120694: [[951], 256], 120695: [[952], 256], 120696: [[953], 256], 120697: [[954], 256], 120698: [[955], 256], 120699: [[956], 256], 120700: [[957], 256], 120701: [[958], 256], 120702: [[959], 256], 120703: [[960], 256], 120704: [[961], 256], 120705: [[962], 256], 120706: [[963], 256], 120707: [[964], 256], 120708: [[965], 256], 120709: [[966], 256], 120710: [[967], 256], 120711: [[968], 256], 120712: [[969], 256], 120713: [[8706], 256], 120714: [[1013], 256], 120715: [[977], 256], 120716: [[1008], 256], 120717: [[981], 256], 120718: [[1009], 256], 120719: [[982], 256], 120720: [[913], 256], 120721: [[914], 256], 120722: [[915], 256], 120723: [[916], 256], 120724: [[917], 256], 120725: [[918], 256], 120726: [[919], 256], 120727: [[920], 256], 120728: [[921], 256], 120729: [[922], 256], 120730: [[923], 256], 120731: [[924], 256], 120732: [[925], 256], 120733: [[926], 256], 120734: [[927], 256], 120735: [[928], 256], 120736: [[929], 256], 120737: [[1012], 256], 120738: [[931], 256], 120739: [[932], 256], 120740: [[933], 256], 120741: [[934], 256], 120742: [[935], 256], 120743: [[936], 256], 120744: [[937], 256], 120745: [[8711], 256], 120746: [[945], 256], 120747: [[946], 256], 120748: [[947], 256], 120749: [[948], 256], 120750: [[949], 256], 120751: [[950], 256], 120752: [[951], 256], 120753: [[952], 256], 120754: [[953], 256], 120755: [[954], 256], 120756: [[955], 256], 120757: [[956], 256], 120758: [[957], 256], 120759: [[958], 256], 120760: [[959], 256], 120761: [[960], 256], 120762: [[961], 256], 120763: [[962], 256], 120764: [[963], 256], 120765: [[964], 256], 120766: [[965], 256], 120767: [[966], 256], 120768: [[967], 256], 120769: [[968], 256], 120770: [[969], 256], 120771: [[8706], 256], 120772: [[1013], 256], 120773: [[977], 256], 120774: [[1008], 256], 120775: [[981], 256], 120776: [[1009], 256], 120777: [[982], 256], 120778: [[988], 256], 120779: [[989], 256], 120782: [[48], 256], 120783: [[49], 256], 120784: [[50], 256], 120785: [[51], 256], 120786: [[52], 256], 120787: [[53], 256], 120788: [[54], 256], 120789: [[55], 256], 120790: [[56], 256], 120791: [[57], 256], 120792: [[48], 256], 120793: [[49], 256], 120794: [[50], 256], 120795: [[51], 256], 120796: [[52], 256], 120797: [[53], 256], 120798: [[54], 256], 120799: [[55], 256], 120800: [[56], 256], 120801: [[57], 256], 120802: [[48], 256], 120803: [[49], 256], 120804: [[50], 256], 120805: [[51], 256], 120806: [[52], 256], 120807: [[53], 256], 120808: [[54], 256], 120809: [[55], 256], 120810: [[56], 256], 120811: [[57], 256], 120812: [[48], 256], 120813: [[49], 256], 120814: [[50], 256], 120815: [[51], 256], 120816: [[52], 256], 120817: [[53], 256], 120818: [[54], 256], 120819: [[55], 256], 120820: [[56], 256], 120821: [[57], 256], 120822: [[48], 256], 120823: [[49], 256], 120824: [[50], 256], 120825: [[51], 256], 120826: [[52], 256], 120827: [[53], 256], 120828: [[54], 256], 120829: [[55], 256], 120830: [[56], 256], 120831: [[57], 256] }, 60928: { 126464: [[1575], 256], 126465: [[1576], 256], 126466: [[1580], 256], 126467: [[1583], 256], 126469: [[1608], 256], 126470: [[1586], 256], 126471: [[1581], 256], 126472: [[1591], 256], 126473: [[1610], 256], 126474: [[1603], 256], 126475: [[1604], 256], 126476: [[1605], 256], 126477: [[1606], 256], 126478: [[1587], 256], 126479: [[1593], 256], 126480: [[1601], 256], 126481: [[1589], 256], 126482: [[1602], 256], 126483: [[1585], 256], 126484: [[1588], 256], 126485: [[1578], 256], 126486: [[1579], 256], 126487: [[1582], 256], 126488: [[1584], 256], 126489: [[1590], 256], 126490: [[1592], 256], 126491: [[1594], 256], 126492: [[1646], 256], 126493: [[1722], 256], 126494: [[1697], 256], 126495: [[1647], 256], 126497: [[1576], 256], 126498: [[1580], 256], 126500: [[1607], 256], 126503: [[1581], 256], 126505: [[1610], 256], 126506: [[1603], 256], 126507: [[1604], 256], 126508: [[1605], 256], 126509: [[1606], 256], 126510: [[1587], 256], 126511: [[1593], 256], 126512: [[1601], 256], 126513: [[1589], 256], 126514: [[1602], 256], 126516: [[1588], 256], 126517: [[1578], 256], 126518: [[1579], 256], 126519: [[1582], 256], 126521: [[1590], 256], 126523: [[1594], 256], 126530: [[1580], 256], 126535: [[1581], 256], 126537: [[1610], 256], 126539: [[1604], 256], 126541: [[1606], 256], 126542: [[1587], 256], 126543: [[1593], 256], 126545: [[1589], 256], 126546: [[1602], 256], 126548: [[1588], 256], 126551: [[1582], 256], 126553: [[1590], 256], 126555: [[1594], 256], 126557: [[1722], 256], 126559: [[1647], 256], 126561: [[1576], 256], 126562: [[1580], 256], 126564: [[1607], 256], 126567: [[1581], 256], 126568: [[1591], 256], 126569: [[1610], 256], 126570: [[1603], 256], 126572: [[1605], 256], 126573: [[1606], 256], 126574: [[1587], 256], 126575: [[1593], 256], 126576: [[1601], 256], 126577: [[1589], 256], 126578: [[1602], 256], 126580: [[1588], 256], 126581: [[1578], 256], 126582: [[1579], 256], 126583: [[1582], 256], 126585: [[1590], 256], 126586: [[1592], 256], 126587: [[1594], 256], 126588: [[1646], 256], 126590: [[1697], 256], 126592: [[1575], 256], 126593: [[1576], 256], 126594: [[1580], 256], 126595: [[1583], 256], 126596: [[1607], 256], 126597: [[1608], 256], 126598: [[1586], 256], 126599: [[1581], 256], 126600: [[1591], 256], 126601: [[1610], 256], 126603: [[1604], 256], 126604: [[1605], 256], 126605: [[1606], 256], 126606: [[1587], 256], 126607: [[1593], 256], 126608: [[1601], 256], 126609: [[1589], 256], 126610: [[1602], 256], 126611: [[1585], 256], 126612: [[1588], 256], 126613: [[1578], 256], 126614: [[1579], 256], 126615: [[1582], 256], 126616: [[1584], 256], 126617: [[1590], 256], 126618: [[1592], 256], 126619: [[1594], 256], 126625: [[1576], 256], 126626: [[1580], 256], 126627: [[1583], 256], 126629: [[1608], 256], 126630: [[1586], 256], 126631: [[1581], 256], 126632: [[1591], 256], 126633: [[1610], 256], 126635: [[1604], 256], 126636: [[1605], 256], 126637: [[1606], 256], 126638: [[1587], 256], 126639: [[1593], 256], 126640: [[1601], 256], 126641: [[1589], 256], 126642: [[1602], 256], 126643: [[1585], 256], 126644: [[1588], 256], 126645: [[1578], 256], 126646: [[1579], 256], 126647: [[1582], 256], 126648: [[1584], 256], 126649: [[1590], 256], 126650: [[1592], 256], 126651: [[1594], 256] }, 61696: { 127232: [[48, 46], 256], 127233: [[48, 44], 256], 127234: [[49, 44], 256], 127235: [[50, 44], 256], 127236: [[51, 44], 256], 127237: [[52, 44], 256], 127238: [[53, 44], 256], 127239: [[54, 44], 256], 127240: [[55, 44], 256], 127241: [[56, 44], 256], 127242: [[57, 44], 256], 127248: [[40, 65, 41], 256], 127249: [[40, 66, 41], 256], 127250: [[40, 67, 41], 256], 127251: [[40, 68, 41], 256], 127252: [[40, 69, 41], 256], 127253: [[40, 70, 41], 256], 127254: [[40, 71, 41], 256], 127255: [[40, 72, 41], 256], 127256: [[40, 73, 41], 256], 127257: [[40, 74, 41], 256], 127258: [[40, 75, 41], 256], 127259: [[40, 76, 41], 256], 127260: [[40, 77, 41], 256], 127261: [[40, 78, 41], 256], 127262: [[40, 79, 41], 256], 127263: [[40, 80, 41], 256], 127264: [[40, 81, 41], 256], 127265: [[40, 82, 41], 256], 127266: [[40, 83, 41], 256], 127267: [[40, 84, 41], 256], 127268: [[40, 85, 41], 256], 127269: [[40, 86, 41], 256], 127270: [[40, 87, 41], 256], 127271: [[40, 88, 41], 256], 127272: [[40, 89, 41], 256], 127273: [[40, 90, 41], 256], 127274: [[12308, 83, 12309], 256], 127275: [[67], 256], 127276: [[82], 256], 127277: [[67, 68], 256], 127278: [[87, 90], 256], 127280: [[65], 256], 127281: [[66], 256], 127282: [[67], 256], 127283: [[68], 256], 127284: [[69], 256], 127285: [[70], 256], 127286: [[71], 256], 127287: [[72], 256], 127288: [[73], 256], 127289: [[74], 256], 127290: [[75], 256], 127291: [[76], 256], 127292: [[77], 256], 127293: [[78], 256], 127294: [[79], 256], 127295: [[80], 256], 127296: [[81], 256], 127297: [[82], 256], 127298: [[83], 256], 127299: [[84], 256], 127300: [[85], 256], 127301: [[86], 256], 127302: [[87], 256], 127303: [[88], 256], 127304: [[89], 256], 127305: [[90], 256], 127306: [[72, 86], 256], 127307: [[77, 86], 256], 127308: [[83, 68], 256], 127309: [[83, 83], 256], 127310: [[80, 80, 86], 256], 127311: [[87, 67], 256], 127338: [[77, 67], 256], 127339: [[77, 68], 256], 127376: [[68, 74], 256] }, 61952: { 127488: [[12411, 12363], 256], 127489: [[12467, 12467], 256], 127490: [[12469], 256], 127504: [[25163], 256], 127505: [[23383], 256], 127506: [[21452], 256], 127507: [[12487], 256], 127508: [[20108], 256], 127509: [[22810], 256], 127510: [[35299], 256], 127511: [[22825], 256], 127512: [[20132], 256], 127513: [[26144], 256], 127514: [[28961], 256], 127515: [[26009], 256], 127516: [[21069], 256], 127517: [[24460], 256], 127518: [[20877], 256], 127519: [[26032], 256], 127520: [[21021], 256], 127521: [[32066], 256], 127522: [[29983], 256], 127523: [[36009], 256], 127524: [[22768], 256], 127525: [[21561], 256], 127526: [[28436], 256], 127527: [[25237], 256], 127528: [[25429], 256], 127529: [[19968], 256], 127530: [[19977], 256], 127531: [[36938], 256], 127532: [[24038], 256], 127533: [[20013], 256], 127534: [[21491], 256], 127535: [[25351], 256], 127536: [[36208], 256], 127537: [[25171], 256], 127538: [[31105], 256], 127539: [[31354], 256], 127540: [[21512], 256], 127541: [[28288], 256], 127542: [[26377], 256], 127543: [[26376], 256], 127544: [[30003], 256], 127545: [[21106], 256], 127546: [[21942], 256], 127552: [[12308, 26412, 12309], 256], 127553: [[12308, 19977, 12309], 256], 127554: [[12308, 20108, 12309], 256], 127555: [[12308, 23433, 12309], 256], 127556: [[12308, 28857, 12309], 256], 127557: [[12308, 25171, 12309], 256], 127558: [[12308, 30423, 12309], 256], 127559: [[12308, 21213, 12309], 256], 127560: [[12308, 25943, 12309], 256], 127568: [[24471], 256], 127569: [[21487], 256] }, 63488: { 194560: [[20029]], 194561: [[20024]], 194562: [[20033]], 194563: [[131362]], 194564: [[20320]], 194565: [[20398]], 194566: [[20411]], 194567: [[20482]], 194568: [[20602]], 194569: [[20633]], 194570: [[20711]], 194571: [[20687]], 194572: [[13470]], 194573: [[132666]], 194574: [[20813]], 194575: [[20820]], 194576: [[20836]], 194577: [[20855]], 194578: [[132380]], 194579: [[13497]], 194580: [[20839]], 194581: [[20877]], 194582: [[132427]], 194583: [[20887]], 194584: [[20900]], 194585: [[20172]], 194586: [[20908]], 194587: [[20917]], 194588: [[168415]], 194589: [[20981]], 194590: [[20995]], 194591: [[13535]], 194592: [[21051]], 194593: [[21062]], 194594: [[21106]], 194595: [[21111]], 194596: [[13589]], 194597: [[21191]], 194598: [[21193]], 194599: [[21220]], 194600: [[21242]], 194601: [[21253]], 194602: [[21254]], 194603: [[21271]], 194604: [[21321]], 194605: [[21329]], 194606: [[21338]], 194607: [[21363]], 194608: [[21373]], 194609: [[21375]], 194610: [[21375]], 194611: [[21375]], 194612: [[133676]], 194613: [[28784]], 194614: [[21450]], 194615: [[21471]], 194616: [[133987]], 194617: [[21483]], 194618: [[21489]], 194619: [[21510]], 194620: [[21662]], 194621: [[21560]], 194622: [[21576]], 194623: [[21608]], 194624: [[21666]], 194625: [[21750]], 194626: [[21776]], 194627: [[21843]], 194628: [[21859]], 194629: [[21892]], 194630: [[21892]], 194631: [[21913]], 194632: [[21931]], 194633: [[21939]], 194634: [[21954]], 194635: [[22294]], 194636: [[22022]], 194637: [[22295]], 194638: [[22097]], 194639: [[22132]], 194640: [[20999]], 194641: [[22766]], 194642: [[22478]], 194643: [[22516]], 194644: [[22541]], 194645: [[22411]], 194646: [[22578]], 194647: [[22577]], 194648: [[22700]], 194649: [[136420]], 194650: [[22770]], 194651: [[22775]], 194652: [[22790]], 194653: [[22810]], 194654: [[22818]], 194655: [[22882]], 194656: [[136872]], 194657: [[136938]], 194658: [[23020]], 194659: [[23067]], 194660: [[23079]], 194661: [[23000]], 194662: [[23142]], 194663: [[14062]], 194664: [[14076]], 194665: [[23304]], 194666: [[23358]], 194667: [[23358]], 194668: [[137672]], 194669: [[23491]], 194670: [[23512]], 194671: [[23527]], 194672: [[23539]], 194673: [[138008]], 194674: [[23551]], 194675: [[23558]], 194676: [[24403]], 194677: [[23586]], 194678: [[14209]], 194679: [[23648]], 194680: [[23662]], 194681: [[23744]], 194682: [[23693]], 194683: [[138724]], 194684: [[23875]], 194685: [[138726]], 194686: [[23918]], 194687: [[23915]], 194688: [[23932]], 194689: [[24033]], 194690: [[24034]], 194691: [[14383]], 194692: [[24061]], 194693: [[24104]], 194694: [[24125]], 194695: [[24169]], 194696: [[14434]], 194697: [[139651]], 194698: [[14460]], 194699: [[24240]], 194700: [[24243]], 194701: [[24246]], 194702: [[24266]], 194703: [[172946]], 194704: [[24318]], 194705: [[140081]], 194706: [[140081]], 194707: [[33281]], 194708: [[24354]], 194709: [[24354]], 194710: [[14535]], 194711: [[144056]], 194712: [[156122]], 194713: [[24418]], 194714: [[24427]], 194715: [[14563]], 194716: [[24474]], 194717: [[24525]], 194718: [[24535]], 194719: [[24569]], 194720: [[24705]], 194721: [[14650]], 194722: [[14620]], 194723: [[24724]], 194724: [[141012]], 194725: [[24775]], 194726: [[24904]], 194727: [[24908]], 194728: [[24910]], 194729: [[24908]], 194730: [[24954]], 194731: [[24974]], 194732: [[25010]], 194733: [[24996]], 194734: [[25007]], 194735: [[25054]], 194736: [[25074]], 194737: [[25078]], 194738: [[25104]], 194739: [[25115]], 194740: [[25181]], 194741: [[25265]], 194742: [[25300]], 194743: [[25424]], 194744: [[142092]], 194745: [[25405]], 194746: [[25340]], 194747: [[25448]], 194748: [[25475]], 194749: [[25572]], 194750: [[142321]], 194751: [[25634]], 194752: [[25541]], 194753: [[25513]], 194754: [[14894]], 194755: [[25705]], 194756: [[25726]], 194757: [[25757]], 194758: [[25719]], 194759: [[14956]], 194760: [[25935]], 194761: [[25964]], 194762: [[143370]], 194763: [[26083]], 194764: [[26360]], 194765: [[26185]], 194766: [[15129]], 194767: [[26257]], 194768: [[15112]], 194769: [[15076]], 194770: [[20882]], 194771: [[20885]], 194772: [[26368]], 194773: [[26268]], 194774: [[32941]], 194775: [[17369]], 194776: [[26391]], 194777: [[26395]], 194778: [[26401]], 194779: [[26462]], 194780: [[26451]], 194781: [[144323]], 194782: [[15177]], 194783: [[26618]], 194784: [[26501]], 194785: [[26706]], 194786: [[26757]], 194787: [[144493]], 194788: [[26766]], 194789: [[26655]], 194790: [[26900]], 194791: [[15261]], 194792: [[26946]], 194793: [[27043]], 194794: [[27114]], 194795: [[27304]], 194796: [[145059]], 194797: [[27355]], 194798: [[15384]], 194799: [[27425]], 194800: [[145575]], 194801: [[27476]], 194802: [[15438]], 194803: [[27506]], 194804: [[27551]], 194805: [[27578]], 194806: [[27579]], 194807: [[146061]], 194808: [[138507]], 194809: [[146170]], 194810: [[27726]], 194811: [[146620]], 194812: [[27839]], 194813: [[27853]], 194814: [[27751]], 194815: [[27926]] }, 63744: { 63744: [[35912]], 63745: [[26356]], 63746: [[36554]], 63747: [[36040]], 63748: [[28369]], 63749: [[20018]], 63750: [[21477]], 63751: [[40860]], 63752: [[40860]], 63753: [[22865]], 63754: [[37329]], 63755: [[21895]], 63756: [[22856]], 63757: [[25078]], 63758: [[30313]], 63759: [[32645]], 63760: [[34367]], 63761: [[34746]], 63762: [[35064]], 63763: [[37007]], 63764: [[27138]], 63765: [[27931]], 63766: [[28889]], 63767: [[29662]], 63768: [[33853]], 63769: [[37226]], 63770: [[39409]], 63771: [[20098]], 63772: [[21365]], 63773: [[27396]], 63774: [[29211]], 63775: [[34349]], 63776: [[40478]], 63777: [[23888]], 63778: [[28651]], 63779: [[34253]], 63780: [[35172]], 63781: [[25289]], 63782: [[33240]], 63783: [[34847]], 63784: [[24266]], 63785: [[26391]], 63786: [[28010]], 63787: [[29436]], 63788: [[37070]], 63789: [[20358]], 63790: [[20919]], 63791: [[21214]], 63792: [[25796]], 63793: [[27347]], 63794: [[29200]], 63795: [[30439]], 63796: [[32769]], 63797: [[34310]], 63798: [[34396]], 63799: [[36335]], 63800: [[38706]], 63801: [[39791]], 63802: [[40442]], 63803: [[30860]], 63804: [[31103]], 63805: [[32160]], 63806: [[33737]], 63807: [[37636]], 63808: [[40575]], 63809: [[35542]], 63810: [[22751]], 63811: [[24324]], 63812: [[31840]], 63813: [[32894]], 63814: [[29282]], 63815: [[30922]], 63816: [[36034]], 63817: [[38647]], 63818: [[22744]], 63819: [[23650]], 63820: [[27155]], 63821: [[28122]], 63822: [[28431]], 63823: [[32047]], 63824: [[32311]], 63825: [[38475]], 63826: [[21202]], 63827: [[32907]], 63828: [[20956]], 63829: [[20940]], 63830: [[31260]], 63831: [[32190]], 63832: [[33777]], 63833: [[38517]], 63834: [[35712]], 63835: [[25295]], 63836: [[27138]], 63837: [[35582]], 63838: [[20025]], 63839: [[23527]], 63840: [[24594]], 63841: [[29575]], 63842: [[30064]], 63843: [[21271]], 63844: [[30971]], 63845: [[20415]], 63846: [[24489]], 63847: [[19981]], 63848: [[27852]], 63849: [[25976]], 63850: [[32034]], 63851: [[21443]], 63852: [[22622]], 63853: [[30465]], 63854: [[33865]], 63855: [[35498]], 63856: [[27578]], 63857: [[36784]], 63858: [[27784]], 63859: [[25342]], 63860: [[33509]], 63861: [[25504]], 63862: [[30053]], 63863: [[20142]], 63864: [[20841]], 63865: [[20937]], 63866: [[26753]], 63867: [[31975]], 63868: [[33391]], 63869: [[35538]], 63870: [[37327]], 63871: [[21237]], 63872: [[21570]], 63873: [[22899]], 63874: [[24300]], 63875: [[26053]], 63876: [[28670]], 63877: [[31018]], 63878: [[38317]], 63879: [[39530]], 63880: [[40599]], 63881: [[40654]], 63882: [[21147]], 63883: [[26310]], 63884: [[27511]], 63885: [[36706]], 63886: [[24180]], 63887: [[24976]], 63888: [[25088]], 63889: [[25754]], 63890: [[28451]], 63891: [[29001]], 63892: [[29833]], 63893: [[31178]], 63894: [[32244]], 63895: [[32879]], 63896: [[36646]], 63897: [[34030]], 63898: [[36899]], 63899: [[37706]], 63900: [[21015]], 63901: [[21155]], 63902: [[21693]], 63903: [[28872]], 63904: [[35010]], 63905: [[35498]], 63906: [[24265]], 63907: [[24565]], 63908: [[25467]], 63909: [[27566]], 63910: [[31806]], 63911: [[29557]], 63912: [[20196]], 63913: [[22265]], 63914: [[23527]], 63915: [[23994]], 63916: [[24604]], 63917: [[29618]], 63918: [[29801]], 63919: [[32666]], 63920: [[32838]], 63921: [[37428]], 63922: [[38646]], 63923: [[38728]], 63924: [[38936]], 63925: [[20363]], 63926: [[31150]], 63927: [[37300]], 63928: [[38584]], 63929: [[24801]], 63930: [[20102]], 63931: [[20698]], 63932: [[23534]], 63933: [[23615]], 63934: [[26009]], 63935: [[27138]], 63936: [[29134]], 63937: [[30274]], 63938: [[34044]], 63939: [[36988]], 63940: [[40845]], 63941: [[26248]], 63942: [[38446]], 63943: [[21129]], 63944: [[26491]], 63945: [[26611]], 63946: [[27969]], 63947: [[28316]], 63948: [[29705]], 63949: [[30041]], 63950: [[30827]], 63951: [[32016]], 63952: [[39006]], 63953: [[20845]], 63954: [[25134]], 63955: [[38520]], 63956: [[20523]], 63957: [[23833]], 63958: [[28138]], 63959: [[36650]], 63960: [[24459]], 63961: [[24900]], 63962: [[26647]], 63963: [[29575]], 63964: [[38534]], 63965: [[21033]], 63966: [[21519]], 63967: [[23653]], 63968: [[26131]], 63969: [[26446]], 63970: [[26792]], 63971: [[27877]], 63972: [[29702]], 63973: [[30178]], 63974: [[32633]], 63975: [[35023]], 63976: [[35041]], 63977: [[37324]], 63978: [[38626]], 63979: [[21311]], 63980: [[28346]], 63981: [[21533]], 63982: [[29136]], 63983: [[29848]], 63984: [[34298]], 63985: [[38563]], 63986: [[40023]], 63987: [[40607]], 63988: [[26519]], 63989: [[28107]], 63990: [[33256]], 63991: [[31435]], 63992: [[31520]], 63993: [[31890]], 63994: [[29376]], 63995: [[28825]], 63996: [[35672]], 63997: [[20160]], 63998: [[33590]], 63999: [[21050]], 194816: [[27966]], 194817: [[28023]], 194818: [[27969]], 194819: [[28009]], 194820: [[28024]], 194821: [[28037]], 194822: [[146718]], 194823: [[27956]], 194824: [[28207]], 194825: [[28270]], 194826: [[15667]], 194827: [[28363]], 194828: [[28359]], 194829: [[147153]], 194830: [[28153]], 194831: [[28526]], 194832: [[147294]], 194833: [[147342]], 194834: [[28614]], 194835: [[28729]], 194836: [[28702]], 194837: [[28699]], 194838: [[15766]], 194839: [[28746]], 194840: [[28797]], 194841: [[28791]], 194842: [[28845]], 194843: [[132389]], 194844: [[28997]], 194845: [[148067]], 194846: [[29084]], 194847: [[148395]], 194848: [[29224]], 194849: [[29237]], 194850: [[29264]], 194851: [[149000]], 194852: [[29312]], 194853: [[29333]], 194854: [[149301]], 194855: [[149524]], 194856: [[29562]], 194857: [[29579]], 194858: [[16044]], 194859: [[29605]], 194860: [[16056]], 194861: [[16056]], 194862: [[29767]], 194863: [[29788]], 194864: [[29809]], 194865: [[29829]], 194866: [[29898]], 194867: [[16155]], 194868: [[29988]], 194869: [[150582]], 194870: [[30014]], 194871: [[150674]], 194872: [[30064]], 194873: [[139679]], 194874: [[30224]], 194875: [[151457]], 194876: [[151480]], 194877: [[151620]], 194878: [[16380]], 194879: [[16392]], 194880: [[30452]], 194881: [[151795]], 194882: [[151794]], 194883: [[151833]], 194884: [[151859]], 194885: [[30494]], 194886: [[30495]], 194887: [[30495]], 194888: [[30538]], 194889: [[16441]], 194890: [[30603]], 194891: [[16454]], 194892: [[16534]], 194893: [[152605]], 194894: [[30798]], 194895: [[30860]], 194896: [[30924]], 194897: [[16611]], 194898: [[153126]], 194899: [[31062]], 194900: [[153242]], 194901: [[153285]], 194902: [[31119]], 194903: [[31211]], 194904: [[16687]], 194905: [[31296]], 194906: [[31306]], 194907: [[31311]], 194908: [[153980]], 194909: [[154279]], 194910: [[154279]], 194911: [[31470]], 194912: [[16898]], 194913: [[154539]], 194914: [[31686]], 194915: [[31689]], 194916: [[16935]], 194917: [[154752]], 194918: [[31954]], 194919: [[17056]], 194920: [[31976]], 194921: [[31971]], 194922: [[32000]], 194923: [[155526]], 194924: [[32099]], 194925: [[17153]], 194926: [[32199]], 194927: [[32258]], 194928: [[32325]], 194929: [[17204]], 194930: [[156200]], 194931: [[156231]], 194932: [[17241]], 194933: [[156377]], 194934: [[32634]], 194935: [[156478]], 194936: [[32661]], 194937: [[32762]], 194938: [[32773]], 194939: [[156890]], 194940: [[156963]], 194941: [[32864]], 194942: [[157096]], 194943: [[32880]], 194944: [[144223]], 194945: [[17365]], 194946: [[32946]], 194947: [[33027]], 194948: [[17419]], 194949: [[33086]], 194950: [[23221]], 194951: [[157607]], 194952: [[157621]], 194953: [[144275]], 194954: [[144284]], 194955: [[33281]], 194956: [[33284]], 194957: [[36766]], 194958: [[17515]], 194959: [[33425]], 194960: [[33419]], 194961: [[33437]], 194962: [[21171]], 194963: [[33457]], 194964: [[33459]], 194965: [[33469]], 194966: [[33510]], 194967: [[158524]], 194968: [[33509]], 194969: [[33565]], 194970: [[33635]], 194971: [[33709]], 194972: [[33571]], 194973: [[33725]], 194974: [[33767]], 194975: [[33879]], 194976: [[33619]], 194977: [[33738]], 194978: [[33740]], 194979: [[33756]], 194980: [[158774]], 194981: [[159083]], 194982: [[158933]], 194983: [[17707]], 194984: [[34033]], 194985: [[34035]], 194986: [[34070]], 194987: [[160714]], 194988: [[34148]], 194989: [[159532]], 194990: [[17757]], 194991: [[17761]], 194992: [[159665]], 194993: [[159954]], 194994: [[17771]], 194995: [[34384]], 194996: [[34396]], 194997: [[34407]], 194998: [[34409]], 194999: [[34473]], 195000: [[34440]], 195001: [[34574]], 195002: [[34530]], 195003: [[34681]], 195004: [[34600]], 195005: [[34667]], 195006: [[34694]], 195007: [[17879]], 195008: [[34785]], 195009: [[34817]], 195010: [[17913]], 195011: [[34912]], 195012: [[34915]], 195013: [[161383]], 195014: [[35031]], 195015: [[35038]], 195016: [[17973]], 195017: [[35066]], 195018: [[13499]], 195019: [[161966]], 195020: [[162150]], 195021: [[18110]], 195022: [[18119]], 195023: [[35488]], 195024: [[35565]], 195025: [[35722]], 195026: [[35925]], 195027: [[162984]], 195028: [[36011]], 195029: [[36033]], 195030: [[36123]], 195031: [[36215]], 195032: [[163631]], 195033: [[133124]], 195034: [[36299]], 195035: [[36284]], 195036: [[36336]], 195037: [[133342]], 195038: [[36564]], 195039: [[36664]], 195040: [[165330]], 195041: [[165357]], 195042: [[37012]], 195043: [[37105]], 195044: [[37137]], 195045: [[165678]], 195046: [[37147]], 195047: [[37432]], 195048: [[37591]], 195049: [[37592]], 195050: [[37500]], 195051: [[37881]], 195052: [[37909]], 195053: [[166906]], 195054: [[38283]], 195055: [[18837]], 195056: [[38327]], 195057: [[167287]], 195058: [[18918]], 195059: [[38595]], 195060: [[23986]], 195061: [[38691]], 195062: [[168261]], 195063: [[168474]], 195064: [[19054]], 195065: [[19062]], 195066: [[38880]], 195067: [[168970]], 195068: [[19122]], 195069: [[169110]], 195070: [[38923]], 195071: [[38923]] }, 64000: { 64000: [[20999]], 64001: [[24230]], 64002: [[25299]], 64003: [[31958]], 64004: [[23429]], 64005: [[27934]], 64006: [[26292]], 64007: [[36667]], 64008: [[34892]], 64009: [[38477]], 64010: [[35211]], 64011: [[24275]], 64012: [[20800]], 64013: [[21952]], 64016: [[22618]], 64018: [[26228]], 64021: [[20958]], 64022: [[29482]], 64023: [[30410]], 64024: [[31036]], 64025: [[31070]], 64026: [[31077]], 64027: [[31119]], 64028: [[38742]], 64029: [[31934]], 64030: [[32701]], 64032: [[34322]], 64034: [[35576]], 64037: [[36920]], 64038: [[37117]], 64042: [[39151]], 64043: [[39164]], 64044: [[39208]], 64045: [[40372]], 64046: [[37086]], 64047: [[38583]], 64048: [[20398]], 64049: [[20711]], 64050: [[20813]], 64051: [[21193]], 64052: [[21220]], 64053: [[21329]], 64054: [[21917]], 64055: [[22022]], 64056: [[22120]], 64057: [[22592]], 64058: [[22696]], 64059: [[23652]], 64060: [[23662]], 64061: [[24724]], 64062: [[24936]], 64063: [[24974]], 64064: [[25074]], 64065: [[25935]], 64066: [[26082]], 64067: [[26257]], 64068: [[26757]], 64069: [[28023]], 64070: [[28186]], 64071: [[28450]], 64072: [[29038]], 64073: [[29227]], 64074: [[29730]], 64075: [[30865]], 64076: [[31038]], 64077: [[31049]], 64078: [[31048]], 64079: [[31056]], 64080: [[31062]], 64081: [[31069]], 64082: [[31117]], 64083: [[31118]], 64084: [[31296]], 64085: [[31361]], 64086: [[31680]], 64087: [[32244]], 64088: [[32265]], 64089: [[32321]], 64090: [[32626]], 64091: [[32773]], 64092: [[33261]], 64093: [[33401]], 64094: [[33401]], 64095: [[33879]], 64096: [[35088]], 64097: [[35222]], 64098: [[35585]], 64099: [[35641]], 64100: [[36051]], 64101: [[36104]], 64102: [[36790]], 64103: [[36920]], 64104: [[38627]], 64105: [[38911]], 64106: [[38971]], 64107: [[24693]], 64108: [[148206]], 64109: [[33304]], 64112: [[20006]], 64113: [[20917]], 64114: [[20840]], 64115: [[20352]], 64116: [[20805]], 64117: [[20864]], 64118: [[21191]], 64119: [[21242]], 64120: [[21917]], 64121: [[21845]], 64122: [[21913]], 64123: [[21986]], 64124: [[22618]], 64125: [[22707]], 64126: [[22852]], 64127: [[22868]], 64128: [[23138]], 64129: [[23336]], 64130: [[24274]], 64131: [[24281]], 64132: [[24425]], 64133: [[24493]], 64134: [[24792]], 64135: [[24910]], 64136: [[24840]], 64137: [[24974]], 64138: [[24928]], 64139: [[25074]], 64140: [[25140]], 64141: [[25540]], 64142: [[25628]], 64143: [[25682]], 64144: [[25942]], 64145: [[26228]], 64146: [[26391]], 64147: [[26395]], 64148: [[26454]], 64149: [[27513]], 64150: [[27578]], 64151: [[27969]], 64152: [[28379]], 64153: [[28363]], 64154: [[28450]], 64155: [[28702]], 64156: [[29038]], 64157: [[30631]], 64158: [[29237]], 64159: [[29359]], 64160: [[29482]], 64161: [[29809]], 64162: [[29958]], 64163: [[30011]], 64164: [[30237]], 64165: [[30239]], 64166: [[30410]], 64167: [[30427]], 64168: [[30452]], 64169: [[30538]], 64170: [[30528]], 64171: [[30924]], 64172: [[31409]], 64173: [[31680]], 64174: [[31867]], 64175: [[32091]], 64176: [[32244]], 64177: [[32574]], 64178: [[32773]], 64179: [[33618]], 64180: [[33775]], 64181: [[34681]], 64182: [[35137]], 64183: [[35206]], 64184: [[35222]], 64185: [[35519]], 64186: [[35576]], 64187: [[35531]], 64188: [[35585]], 64189: [[35582]], 64190: [[35565]], 64191: [[35641]], 64192: [[35722]], 64193: [[36104]], 64194: [[36664]], 64195: [[36978]], 64196: [[37273]], 64197: [[37494]], 64198: [[38524]], 64199: [[38627]], 64200: [[38742]], 64201: [[38875]], 64202: [[38911]], 64203: [[38923]], 64204: [[38971]], 64205: [[39698]], 64206: [[40860]], 64207: [[141386]], 64208: [[141380]], 64209: [[144341]], 64210: [[15261]], 64211: [[16408]], 64212: [[16441]], 64213: [[152137]], 64214: [[154832]], 64215: [[163539]], 64216: [[40771]], 64217: [[40846]], 195072: [[38953]], 195073: [[169398]], 195074: [[39138]], 195075: [[19251]], 195076: [[39209]], 195077: [[39335]], 195078: [[39362]], 195079: [[39422]], 195080: [[19406]], 195081: [[170800]], 195082: [[39698]], 195083: [[40000]], 195084: [[40189]], 195085: [[19662]], 195086: [[19693]], 195087: [[40295]], 195088: [[172238]], 195089: [[19704]], 195090: [[172293]], 195091: [[172558]], 195092: [[172689]], 195093: [[40635]], 195094: [[19798]], 195095: [[40697]], 195096: [[40702]], 195097: [[40709]], 195098: [[40719]], 195099: [[40726]], 195100: [[40763]], 195101: [[173568]] }, 64256: { 64256: [[102, 102], 256], 64257: [[102, 105], 256], 64258: [[102, 108], 256], 64259: [[102, 102, 105], 256], 64260: [[102, 102, 108], 256], 64261: [[383, 116], 256], 64262: [[115, 116], 256], 64275: [[1396, 1398], 256], 64276: [[1396, 1381], 256], 64277: [[1396, 1387], 256], 64278: [[1406, 1398], 256], 64279: [[1396, 1389], 256], 64285: [[1497, 1460], 512], 64286: [, 26], 64287: [[1522, 1463], 512], 64288: [[1506], 256], 64289: [[1488], 256], 64290: [[1491], 256], 64291: [[1492], 256], 64292: [[1499], 256], 64293: [[1500], 256], 64294: [[1501], 256], 64295: [[1512], 256], 64296: [[1514], 256], 64297: [[43], 256], 64298: [[1513, 1473], 512], 64299: [[1513, 1474], 512], 64300: [[64329, 1473], 512], 64301: [[64329, 1474], 512], 64302: [[1488, 1463], 512], 64303: [[1488, 1464], 512], 64304: [[1488, 1468], 512], 64305: [[1489, 1468], 512], 64306: [[1490, 1468], 512], 64307: [[1491, 1468], 512], 64308: [[1492, 1468], 512], 64309: [[1493, 1468], 512], 64310: [[1494, 1468], 512], 64312: [[1496, 1468], 512], 64313: [[1497, 1468], 512], 64314: [[1498, 1468], 512], 64315: [[1499, 1468], 512], 64316: [[1500, 1468], 512], 64318: [[1502, 1468], 512], 64320: [[1504, 1468], 512], 64321: [[1505, 1468], 512], 64323: [[1507, 1468], 512], 64324: [[1508, 1468], 512], 64326: [[1510, 1468], 512], 64327: [[1511, 1468], 512], 64328: [[1512, 1468], 512], 64329: [[1513, 1468], 512], 64330: [[1514, 1468], 512], 64331: [[1493, 1465], 512], 64332: [[1489, 1471], 512], 64333: [[1499, 1471], 512], 64334: [[1508, 1471], 512], 64335: [[1488, 1500], 256], 64336: [[1649], 256], 64337: [[1649], 256], 64338: [[1659], 256], 64339: [[1659], 256], 64340: [[1659], 256], 64341: [[1659], 256], 64342: [[1662], 256], 64343: [[1662], 256], 64344: [[1662], 256], 64345: [[1662], 256], 64346: [[1664], 256], 64347: [[1664], 256], 64348: [[1664], 256], 64349: [[1664], 256], 64350: [[1658], 256], 64351: [[1658], 256], 64352: [[1658], 256], 64353: [[1658], 256], 64354: [[1663], 256], 64355: [[1663], 256], 64356: [[1663], 256], 64357: [[1663], 256], 64358: [[1657], 256], 64359: [[1657], 256], 64360: [[1657], 256], 64361: [[1657], 256], 64362: [[1700], 256], 64363: [[1700], 256], 64364: [[1700], 256], 64365: [[1700], 256], 64366: [[1702], 256], 64367: [[1702], 256], 64368: [[1702], 256], 64369: [[1702], 256], 64370: [[1668], 256], 64371: [[1668], 256], 64372: [[1668], 256], 64373: [[1668], 256], 64374: [[1667], 256], 64375: [[1667], 256], 64376: [[1667], 256], 64377: [[1667], 256], 64378: [[1670], 256], 64379: [[1670], 256], 64380: [[1670], 256], 64381: [[1670], 256], 64382: [[1671], 256], 64383: [[1671], 256], 64384: [[1671], 256], 64385: [[1671], 256], 64386: [[1677], 256], 64387: [[1677], 256], 64388: [[1676], 256], 64389: [[1676], 256], 64390: [[1678], 256], 64391: [[1678], 256], 64392: [[1672], 256], 64393: [[1672], 256], 64394: [[1688], 256], 64395: [[1688], 256], 64396: [[1681], 256], 64397: [[1681], 256], 64398: [[1705], 256], 64399: [[1705], 256], 64400: [[1705], 256], 64401: [[1705], 256], 64402: [[1711], 256], 64403: [[1711], 256], 64404: [[1711], 256], 64405: [[1711], 256], 64406: [[1715], 256], 64407: [[1715], 256], 64408: [[1715], 256], 64409: [[1715], 256], 64410: [[1713], 256], 64411: [[1713], 256], 64412: [[1713], 256], 64413: [[1713], 256], 64414: [[1722], 256], 64415: [[1722], 256], 64416: [[1723], 256], 64417: [[1723], 256], 64418: [[1723], 256], 64419: [[1723], 256], 64420: [[1728], 256], 64421: [[1728], 256], 64422: [[1729], 256], 64423: [[1729], 256], 64424: [[1729], 256], 64425: [[1729], 256], 64426: [[1726], 256], 64427: [[1726], 256], 64428: [[1726], 256], 64429: [[1726], 256], 64430: [[1746], 256], 64431: [[1746], 256], 64432: [[1747], 256], 64433: [[1747], 256], 64467: [[1709], 256], 64468: [[1709], 256], 64469: [[1709], 256], 64470: [[1709], 256], 64471: [[1735], 256], 64472: [[1735], 256], 64473: [[1734], 256], 64474: [[1734], 256], 64475: [[1736], 256], 64476: [[1736], 256], 64477: [[1655], 256], 64478: [[1739], 256], 64479: [[1739], 256], 64480: [[1733], 256], 64481: [[1733], 256], 64482: [[1737], 256], 64483: [[1737], 256], 64484: [[1744], 256], 64485: [[1744], 256], 64486: [[1744], 256], 64487: [[1744], 256], 64488: [[1609], 256], 64489: [[1609], 256], 64490: [[1574, 1575], 256], 64491: [[1574, 1575], 256], 64492: [[1574, 1749], 256], 64493: [[1574, 1749], 256], 64494: [[1574, 1608], 256], 64495: [[1574, 1608], 256], 64496: [[1574, 1735], 256], 64497: [[1574, 1735], 256], 64498: [[1574, 1734], 256], 64499: [[1574, 1734], 256], 64500: [[1574, 1736], 256], 64501: [[1574, 1736], 256], 64502: [[1574, 1744], 256], 64503: [[1574, 1744], 256], 64504: [[1574, 1744], 256], 64505: [[1574, 1609], 256], 64506: [[1574, 1609], 256], 64507: [[1574, 1609], 256], 64508: [[1740], 256], 64509: [[1740], 256], 64510: [[1740], 256], 64511: [[1740], 256] }, 64512: { 64512: [[1574, 1580], 256], 64513: [[1574, 1581], 256], 64514: [[1574, 1605], 256], 64515: [[1574, 1609], 256], 64516: [[1574, 1610], 256], 64517: [[1576, 1580], 256], 64518: [[1576, 1581], 256], 64519: [[1576, 1582], 256], 64520: [[1576, 1605], 256], 64521: [[1576, 1609], 256], 64522: [[1576, 1610], 256], 64523: [[1578, 1580], 256], 64524: [[1578, 1581], 256], 64525: [[1578, 1582], 256], 64526: [[1578, 1605], 256], 64527: [[1578, 1609], 256], 64528: [[1578, 1610], 256], 64529: [[1579, 1580], 256], 64530: [[1579, 1605], 256], 64531: [[1579, 1609], 256], 64532: [[1579, 1610], 256], 64533: [[1580, 1581], 256], 64534: [[1580, 1605], 256], 64535: [[1581, 1580], 256], 64536: [[1581, 1605], 256], 64537: [[1582, 1580], 256], 64538: [[1582, 1581], 256], 64539: [[1582, 1605], 256], 64540: [[1587, 1580], 256], 64541: [[1587, 1581], 256], 64542: [[1587, 1582], 256], 64543: [[1587, 1605], 256], 64544: [[1589, 1581], 256], 64545: [[1589, 1605], 256], 64546: [[1590, 1580], 256], 64547: [[1590, 1581], 256], 64548: [[1590, 1582], 256], 64549: [[1590, 1605], 256], 64550: [[1591, 1581], 256], 64551: [[1591, 1605], 256], 64552: [[1592, 1605], 256], 64553: [[1593, 1580], 256], 64554: [[1593, 1605], 256], 64555: [[1594, 1580], 256], 64556: [[1594, 1605], 256], 64557: [[1601, 1580], 256], 64558: [[1601, 1581], 256], 64559: [[1601, 1582], 256], 64560: [[1601, 1605], 256], 64561: [[1601, 1609], 256], 64562: [[1601, 1610], 256], 64563: [[1602, 1581], 256], 64564: [[1602, 1605], 256], 64565: [[1602, 1609], 256], 64566: [[1602, 1610], 256], 64567: [[1603, 1575], 256], 64568: [[1603, 1580], 256], 64569: [[1603, 1581], 256], 64570: [[1603, 1582], 256], 64571: [[1603, 1604], 256], 64572: [[1603, 1605], 256], 64573: [[1603, 1609], 256], 64574: [[1603, 1610], 256], 64575: [[1604, 1580], 256], 64576: [[1604, 1581], 256], 64577: [[1604, 1582], 256], 64578: [[1604, 1605], 256], 64579: [[1604, 1609], 256], 64580: [[1604, 1610], 256], 64581: [[1605, 1580], 256], 64582: [[1605, 1581], 256], 64583: [[1605, 1582], 256], 64584: [[1605, 1605], 256], 64585: [[1605, 1609], 256], 64586: [[1605, 1610], 256], 64587: [[1606, 1580], 256], 64588: [[1606, 1581], 256], 64589: [[1606, 1582], 256], 64590: [[1606, 1605], 256], 64591: [[1606, 1609], 256], 64592: [[1606, 1610], 256], 64593: [[1607, 1580], 256], 64594: [[1607, 1605], 256], 64595: [[1607, 1609], 256], 64596: [[1607, 1610], 256], 64597: [[1610, 1580], 256], 64598: [[1610, 1581], 256], 64599: [[1610, 1582], 256], 64600: [[1610, 1605], 256], 64601: [[1610, 1609], 256], 64602: [[1610, 1610], 256], 64603: [[1584, 1648], 256], 64604: [[1585, 1648], 256], 64605: [[1609, 1648], 256], 64606: [[32, 1612, 1617], 256], 64607: [[32, 1613, 1617], 256], 64608: [[32, 1614, 1617], 256], 64609: [[32, 1615, 1617], 256], 64610: [[32, 1616, 1617], 256], 64611: [[32, 1617, 1648], 256], 64612: [[1574, 1585], 256], 64613: [[1574, 1586], 256], 64614: [[1574, 1605], 256], 64615: [[1574, 1606], 256], 64616: [[1574, 1609], 256], 64617: [[1574, 1610], 256], 64618: [[1576, 1585], 256], 64619: [[1576, 1586], 256], 64620: [[1576, 1605], 256], 64621: [[1576, 1606], 256], 64622: [[1576, 1609], 256], 64623: [[1576, 1610], 256], 64624: [[1578, 1585], 256], 64625: [[1578, 1586], 256], 64626: [[1578, 1605], 256], 64627: [[1578, 1606], 256], 64628: [[1578, 1609], 256], 64629: [[1578, 1610], 256], 64630: [[1579, 1585], 256], 64631: [[1579, 1586], 256], 64632: [[1579, 1605], 256], 64633: [[1579, 1606], 256], 64634: [[1579, 1609], 256], 64635: [[1579, 1610], 256], 64636: [[1601, 1609], 256], 64637: [[1601, 1610], 256], 64638: [[1602, 1609], 256], 64639: [[1602, 1610], 256], 64640: [[1603, 1575], 256], 64641: [[1603, 1604], 256], 64642: [[1603, 1605], 256], 64643: [[1603, 1609], 256], 64644: [[1603, 1610], 256], 64645: [[1604, 1605], 256], 64646: [[1604, 1609], 256], 64647: [[1604, 1610], 256], 64648: [[1605, 1575], 256], 64649: [[1605, 1605], 256], 64650: [[1606, 1585], 256], 64651: [[1606, 1586], 256], 64652: [[1606, 1605], 256], 64653: [[1606, 1606], 256], 64654: [[1606, 1609], 256], 64655: [[1606, 1610], 256], 64656: [[1609, 1648], 256], 64657: [[1610, 1585], 256], 64658: [[1610, 1586], 256], 64659: [[1610, 1605], 256], 64660: [[1610, 1606], 256], 64661: [[1610, 1609], 256], 64662: [[1610, 1610], 256], 64663: [[1574, 1580], 256], 64664: [[1574, 1581], 256], 64665: [[1574, 1582], 256], 64666: [[1574, 1605], 256], 64667: [[1574, 1607], 256], 64668: [[1576, 1580], 256], 64669: [[1576, 1581], 256], 64670: [[1576, 1582], 256], 64671: [[1576, 1605], 256], 64672: [[1576, 1607], 256], 64673: [[1578, 1580], 256], 64674: [[1578, 1581], 256], 64675: [[1578, 1582], 256], 64676: [[1578, 1605], 256], 64677: [[1578, 1607], 256], 64678: [[1579, 1605], 256], 64679: [[1580, 1581], 256], 64680: [[1580, 1605], 256], 64681: [[1581, 1580], 256], 64682: [[1581, 1605], 256], 64683: [[1582, 1580], 256], 64684: [[1582, 1605], 256], 64685: [[1587, 1580], 256], 64686: [[1587, 1581], 256], 64687: [[1587, 1582], 256], 64688: [[1587, 1605], 256], 64689: [[1589, 1581], 256], 64690: [[1589, 1582], 256], 64691: [[1589, 1605], 256], 64692: [[1590, 1580], 256], 64693: [[1590, 1581], 256], 64694: [[1590, 1582], 256], 64695: [[1590, 1605], 256], 64696: [[1591, 1581], 256], 64697: [[1592, 1605], 256], 64698: [[1593, 1580], 256], 64699: [[1593, 1605], 256], 64700: [[1594, 1580], 256], 64701: [[1594, 1605], 256], 64702: [[1601, 1580], 256], 64703: [[1601, 1581], 256], 64704: [[1601, 1582], 256], 64705: [[1601, 1605], 256], 64706: [[1602, 1581], 256], 64707: [[1602, 1605], 256], 64708: [[1603, 1580], 256], 64709: [[1603, 1581], 256], 64710: [[1603, 1582], 256], 64711: [[1603, 1604], 256], 64712: [[1603, 1605], 256], 64713: [[1604, 1580], 256], 64714: [[1604, 1581], 256], 64715: [[1604, 1582], 256], 64716: [[1604, 1605], 256], 64717: [[1604, 1607], 256], 64718: [[1605, 1580], 256], 64719: [[1605, 1581], 256], 64720: [[1605, 1582], 256], 64721: [[1605, 1605], 256], 64722: [[1606, 1580], 256], 64723: [[1606, 1581], 256], 64724: [[1606, 1582], 256], 64725: [[1606, 1605], 256], 64726: [[1606, 1607], 256], 64727: [[1607, 1580], 256], 64728: [[1607, 1605], 256], 64729: [[1607, 1648], 256], 64730: [[1610, 1580], 256], 64731: [[1610, 1581], 256], 64732: [[1610, 1582], 256], 64733: [[1610, 1605], 256], 64734: [[1610, 1607], 256], 64735: [[1574, 1605], 256], 64736: [[1574, 1607], 256], 64737: [[1576, 1605], 256], 64738: [[1576, 1607], 256], 64739: [[1578, 1605], 256], 64740: [[1578, 1607], 256], 64741: [[1579, 1605], 256], 64742: [[1579, 1607], 256], 64743: [[1587, 1605], 256], 64744: [[1587, 1607], 256], 64745: [[1588, 1605], 256], 64746: [[1588, 1607], 256], 64747: [[1603, 1604], 256], 64748: [[1603, 1605], 256], 64749: [[1604, 1605], 256], 64750: [[1606, 1605], 256], 64751: [[1606, 1607], 256], 64752: [[1610, 1605], 256], 64753: [[1610, 1607], 256], 64754: [[1600, 1614, 1617], 256], 64755: [[1600, 1615, 1617], 256], 64756: [[1600, 1616, 1617], 256], 64757: [[1591, 1609], 256], 64758: [[1591, 1610], 256], 64759: [[1593, 1609], 256], 64760: [[1593, 1610], 256], 64761: [[1594, 1609], 256], 64762: [[1594, 1610], 256], 64763: [[1587, 1609], 256], 64764: [[1587, 1610], 256], 64765: [[1588, 1609], 256], 64766: [[1588, 1610], 256], 64767: [[1581, 1609], 256] }, 64768: { 64768: [[1581, 1610], 256], 64769: [[1580, 1609], 256], 64770: [[1580, 1610], 256], 64771: [[1582, 1609], 256], 64772: [[1582, 1610], 256], 64773: [[1589, 1609], 256], 64774: [[1589, 1610], 256], 64775: [[1590, 1609], 256], 64776: [[1590, 1610], 256], 64777: [[1588, 1580], 256], 64778: [[1588, 1581], 256], 64779: [[1588, 1582], 256], 64780: [[1588, 1605], 256], 64781: [[1588, 1585], 256], 64782: [[1587, 1585], 256], 64783: [[1589, 1585], 256], 64784: [[1590, 1585], 256], 64785: [[1591, 1609], 256], 64786: [[1591, 1610], 256], 64787: [[1593, 1609], 256], 64788: [[1593, 1610], 256], 64789: [[1594, 1609], 256], 64790: [[1594, 1610], 256], 64791: [[1587, 1609], 256], 64792: [[1587, 1610], 256], 64793: [[1588, 1609], 256], 64794: [[1588, 1610], 256], 64795: [[1581, 1609], 256], 64796: [[1581, 1610], 256], 64797: [[1580, 1609], 256], 64798: [[1580, 1610], 256], 64799: [[1582, 1609], 256], 64800: [[1582, 1610], 256], 64801: [[1589, 1609], 256], 64802: [[1589, 1610], 256], 64803: [[1590, 1609], 256], 64804: [[1590, 1610], 256], 64805: [[1588, 1580], 256], 64806: [[1588, 1581], 256], 64807: [[1588, 1582], 256], 64808: [[1588, 1605], 256], 64809: [[1588, 1585], 256], 64810: [[1587, 1585], 256], 64811: [[1589, 1585], 256], 64812: [[1590, 1585], 256], 64813: [[1588, 1580], 256], 64814: [[1588, 1581], 256], 64815: [[1588, 1582], 256], 64816: [[1588, 1605], 256], 64817: [[1587, 1607], 256], 64818: [[1588, 1607], 256], 64819: [[1591, 1605], 256], 64820: [[1587, 1580], 256], 64821: [[1587, 1581], 256], 64822: [[1587, 1582], 256], 64823: [[1588, 1580], 256], 64824: [[1588, 1581], 256], 64825: [[1588, 1582], 256], 64826: [[1591, 1605], 256], 64827: [[1592, 1605], 256], 64828: [[1575, 1611], 256], 64829: [[1575, 1611], 256], 64848: [[1578, 1580, 1605], 256], 64849: [[1578, 1581, 1580], 256], 64850: [[1578, 1581, 1580], 256], 64851: [[1578, 1581, 1605], 256], 64852: [[1578, 1582, 1605], 256], 64853: [[1578, 1605, 1580], 256], 64854: [[1578, 1605, 1581], 256], 64855: [[1578, 1605, 1582], 256], 64856: [[1580, 1605, 1581], 256], 64857: [[1580, 1605, 1581], 256], 64858: [[1581, 1605, 1610], 256], 64859: [[1581, 1605, 1609], 256], 64860: [[1587, 1581, 1580], 256], 64861: [[1587, 1580, 1581], 256], 64862: [[1587, 1580, 1609], 256], 64863: [[1587, 1605, 1581], 256], 64864: [[1587, 1605, 1581], 256], 64865: [[1587, 1605, 1580], 256], 64866: [[1587, 1605, 1605], 256], 64867: [[1587, 1605, 1605], 256], 64868: [[1589, 1581, 1581], 256], 64869: [[1589, 1581, 1581], 256], 64870: [[1589, 1605, 1605], 256], 64871: [[1588, 1581, 1605], 256], 64872: [[1588, 1581, 1605], 256], 64873: [[1588, 1580, 1610], 256], 64874: [[1588, 1605, 1582], 256], 64875: [[1588, 1605, 1582], 256], 64876: [[1588, 1605, 1605], 256], 64877: [[1588, 1605, 1605], 256], 64878: [[1590, 1581, 1609], 256], 64879: [[1590, 1582, 1605], 256], 64880: [[1590, 1582, 1605], 256], 64881: [[1591, 1605, 1581], 256], 64882: [[1591, 1605, 1581], 256], 64883: [[1591, 1605, 1605], 256], 64884: [[1591, 1605, 1610], 256], 64885: [[1593, 1580, 1605], 256], 64886: [[1593, 1605, 1605], 256], 64887: [[1593, 1605, 1605], 256], 64888: [[1593, 1605, 1609], 256], 64889: [[1594, 1605, 1605], 256], 64890: [[1594, 1605, 1610], 256], 64891: [[1594, 1605, 1609], 256], 64892: [[1601, 1582, 1605], 256], 64893: [[1601, 1582, 1605], 256], 64894: [[1602, 1605, 1581], 256], 64895: [[1602, 1605, 1605], 256], 64896: [[1604, 1581, 1605], 256], 64897: [[1604, 1581, 1610], 256], 64898: [[1604, 1581, 1609], 256], 64899: [[1604, 1580, 1580], 256], 64900: [[1604, 1580, 1580], 256], 64901: [[1604, 1582, 1605], 256], 64902: [[1604, 1582, 1605], 256], 64903: [[1604, 1605, 1581], 256], 64904: [[1604, 1605, 1581], 256], 64905: [[1605, 1581, 1580], 256], 64906: [[1605, 1581, 1605], 256], 64907: [[1605, 1581, 1610], 256], 64908: [[1605, 1580, 1581], 256], 64909: [[1605, 1580, 1605], 256], 64910: [[1605, 1582, 1580], 256], 64911: [[1605, 1582, 1605], 256], 64914: [[1605, 1580, 1582], 256], 64915: [[1607, 1605, 1580], 256], 64916: [[1607, 1605, 1605], 256], 64917: [[1606, 1581, 1605], 256], 64918: [[1606, 1581, 1609], 256], 64919: [[1606, 1580, 1605], 256], 64920: [[1606, 1580, 1605], 256], 64921: [[1606, 1580, 1609], 256], 64922: [[1606, 1605, 1610], 256], 64923: [[1606, 1605, 1609], 256], 64924: [[1610, 1605, 1605], 256], 64925: [[1610, 1605, 1605], 256], 64926: [[1576, 1582, 1610], 256], 64927: [[1578, 1580, 1610], 256], 64928: [[1578, 1580, 1609], 256], 64929: [[1578, 1582, 1610], 256], 64930: [[1578, 1582, 1609], 256], 64931: [[1578, 1605, 1610], 256], 64932: [[1578, 1605, 1609], 256], 64933: [[1580, 1605, 1610], 256], 64934: [[1580, 1581, 1609], 256], 64935: [[1580, 1605, 1609], 256], 64936: [[1587, 1582, 1609], 256], 64937: [[1589, 1581, 1610], 256], 64938: [[1588, 1581, 1610], 256], 64939: [[1590, 1581, 1610], 256], 64940: [[1604, 1580, 1610], 256], 64941: [[1604, 1605, 1610], 256], 64942: [[1610, 1581, 1610], 256], 64943: [[1610, 1580, 1610], 256], 64944: [[1610, 1605, 1610], 256], 64945: [[1605, 1605, 1610], 256], 64946: [[1602, 1605, 1610], 256], 64947: [[1606, 1581, 1610], 256], 64948: [[1602, 1605, 1581], 256], 64949: [[1604, 1581, 1605], 256], 64950: [[1593, 1605, 1610], 256], 64951: [[1603, 1605, 1610], 256], 64952: [[1606, 1580, 1581], 256], 64953: [[1605, 1582, 1610], 256], 64954: [[1604, 1580, 1605], 256], 64955: [[1603, 1605, 1605], 256], 64956: [[1604, 1580, 1605], 256], 64957: [[1606, 1580, 1581], 256], 64958: [[1580, 1581, 1610], 256], 64959: [[1581, 1580, 1610], 256], 64960: [[1605, 1580, 1610], 256], 64961: [[1601, 1605, 1610], 256], 64962: [[1576, 1581, 1610], 256], 64963: [[1603, 1605, 1605], 256], 64964: [[1593, 1580, 1605], 256], 64965: [[1589, 1605, 1605], 256], 64966: [[1587, 1582, 1610], 256], 64967: [[1606, 1580, 1610], 256], 65008: [[1589, 1604, 1746], 256], 65009: [[1602, 1604, 1746], 256], 65010: [[1575, 1604, 1604, 1607], 256], 65011: [[1575, 1603, 1576, 1585], 256], 65012: [[1605, 1581, 1605, 1583], 256], 65013: [[1589, 1604, 1593, 1605], 256], 65014: [[1585, 1587, 1608, 1604], 256], 65015: [[1593, 1604, 1610, 1607], 256], 65016: [[1608, 1587, 1604, 1605], 256], 65017: [[1589, 1604, 1609], 256], 65018: [ [ 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605 ], 256 ], 65019: [[1580, 1604, 32, 1580, 1604, 1575, 1604, 1607], 256], 65020: [[1585, 1740, 1575, 1604], 256] }, 65024: { 65040: [[44], 256], 65041: [[12289], 256], 65042: [[12290], 256], 65043: [[58], 256], 65044: [[59], 256], 65045: [[33], 256], 65046: [[63], 256], 65047: [[12310], 256], 65048: [[12311], 256], 65049: [[8230], 256], 65056: [, 230], 65057: [, 230], 65058: [, 230], 65059: [, 230], 65060: [, 230], 65061: [, 230], 65062: [, 230], 65072: [[8229], 256], 65073: [[8212], 256], 65074: [[8211], 256], 65075: [[95], 256], 65076: [[95], 256], 65077: [[40], 256], 65078: [[41], 256], 65079: [[123], 256], 65080: [[125], 256], 65081: [[12308], 256], 65082: [[12309], 256], 65083: [[12304], 256], 65084: [[12305], 256], 65085: [[12298], 256], 65086: [[12299], 256], 65087: [[12296], 256], 65088: [[12297], 256], 65089: [[12300], 256], 65090: [[12301], 256], 65091: [[12302], 256], 65092: [[12303], 256], 65095: [[91], 256], 65096: [[93], 256], 65097: [[8254], 256], 65098: [[8254], 256], 65099: [[8254], 256], 65100: [[8254], 256], 65101: [[95], 256], 65102: [[95], 256], 65103: [[95], 256], 65104: [[44], 256], 65105: [[12289], 256], 65106: [[46], 256], 65108: [[59], 256], 65109: [[58], 256], 65110: [[63], 256], 65111: [[33], 256], 65112: [[8212], 256], 65113: [[40], 256], 65114: [[41], 256], 65115: [[123], 256], 65116: [[125], 256], 65117: [[12308], 256], 65118: [[12309], 256], 65119: [[35], 256], 65120: [[38], 256], 65121: [[42], 256], 65122: [[43], 256], 65123: [[45], 256], 65124: [[60], 256], 65125: [[62], 256], 65126: [[61], 256], 65128: [[92], 256], 65129: [[36], 256], 65130: [[37], 256], 65131: [[64], 256], 65136: [[32, 1611], 256], 65137: [[1600, 1611], 256], 65138: [[32, 1612], 256], 65140: [[32, 1613], 256], 65142: [[32, 1614], 256], 65143: [[1600, 1614], 256], 65144: [[32, 1615], 256], 65145: [[1600, 1615], 256], 65146: [[32, 1616], 256], 65147: [[1600, 1616], 256], 65148: [[32, 1617], 256], 65149: [[1600, 1617], 256], 65150: [[32, 1618], 256], 65151: [[1600, 1618], 256], 65152: [[1569], 256], 65153: [[1570], 256], 65154: [[1570], 256], 65155: [[1571], 256], 65156: [[1571], 256], 65157: [[1572], 256], 65158: [[1572], 256], 65159: [[1573], 256], 65160: [[1573], 256], 65161: [[1574], 256], 65162: [[1574], 256], 65163: [[1574], 256], 65164: [[1574], 256], 65165: [[1575], 256], 65166: [[1575], 256], 65167: [[1576], 256], 65168: [[1576], 256], 65169: [[1576], 256], 65170: [[1576], 256], 65171: [[1577], 256], 65172: [[1577], 256], 65173: [[1578], 256], 65174: [[1578], 256], 65175: [[1578], 256], 65176: [[1578], 256], 65177: [[1579], 256], 65178: [[1579], 256], 65179: [[1579], 256], 65180: [[1579], 256], 65181: [[1580], 256], 65182: [[1580], 256], 65183: [[1580], 256], 65184: [[1580], 256], 65185: [[1581], 256], 65186: [[1581], 256], 65187: [[1581], 256], 65188: [[1581], 256], 65189: [[1582], 256], 65190: [[1582], 256], 65191: [[1582], 256], 65192: [[1582], 256], 65193: [[1583], 256], 65194: [[1583], 256], 65195: [[1584], 256], 65196: [[1584], 256], 65197: [[1585], 256], 65198: [[1585], 256], 65199: [[1586], 256], 65200: [[1586], 256], 65201: [[1587], 256], 65202: [[1587], 256], 65203: [[1587], 256], 65204: [[1587], 256], 65205: [[1588], 256], 65206: [[1588], 256], 65207: [[1588], 256], 65208: [[1588], 256], 65209: [[1589], 256], 65210: [[1589], 256], 65211: [[1589], 256], 65212: [[1589], 256], 65213: [[1590], 256], 65214: [[1590], 256], 65215: [[1590], 256], 65216: [[1590], 256], 65217: [[1591], 256], 65218: [[1591], 256], 65219: [[1591], 256], 65220: [[1591], 256], 65221: [[1592], 256], 65222: [[1592], 256], 65223: [[1592], 256], 65224: [[1592], 256], 65225: [[1593], 256], 65226: [[1593], 256], 65227: [[1593], 256], 65228: [[1593], 256], 65229: [[1594], 256], 65230: [[1594], 256], 65231: [[1594], 256], 65232: [[1594], 256], 65233: [[1601], 256], 65234: [[1601], 256], 65235: [[1601], 256], 65236: [[1601], 256], 65237: [[1602], 256], 65238: [[1602], 256], 65239: [[1602], 256], 65240: [[1602], 256], 65241: [[1603], 256], 65242: [[1603], 256], 65243: [[1603], 256], 65244: [[1603], 256], 65245: [[1604], 256], 65246: [[1604], 256], 65247: [[1604], 256], 65248: [[1604], 256], 65249: [[1605], 256], 65250: [[1605], 256], 65251: [[1605], 256], 65252: [[1605], 256], 65253: [[1606], 256], 65254: [[1606], 256], 65255: [[1606], 256], 65256: [[1606], 256], 65257: [[1607], 256], 65258: [[1607], 256], 65259: [[1607], 256], 65260: [[1607], 256], 65261: [[1608], 256], 65262: [[1608], 256], 65263: [[1609], 256], 65264: [[1609], 256], 65265: [[1610], 256], 65266: [[1610], 256], 65267: [[1610], 256], 65268: [[1610], 256], 65269: [[1604, 1570], 256], 65270: [[1604, 1570], 256], 65271: [[1604, 1571], 256], 65272: [[1604, 1571], 256], 65273: [[1604, 1573], 256], 65274: [[1604, 1573], 256], 65275: [[1604, 1575], 256], 65276: [[1604, 1575], 256] }, 65280: { 65281: [[33], 256], 65282: [[34], 256], 65283: [[35], 256], 65284: [[36], 256], 65285: [[37], 256], 65286: [[38], 256], 65287: [[39], 256], 65288: [[40], 256], 65289: [[41], 256], 65290: [[42], 256], 65291: [[43], 256], 65292: [[44], 256], 65293: [[45], 256], 65294: [[46], 256], 65295: [[47], 256], 65296: [[48], 256], 65297: [[49], 256], 65298: [[50], 256], 65299: [[51], 256], 65300: [[52], 256], 65301: [[53], 256], 65302: [[54], 256], 65303: [[55], 256], 65304: [[56], 256], 65305: [[57], 256], 65306: [[58], 256], 65307: [[59], 256], 65308: [[60], 256], 65309: [[61], 256], 65310: [[62], 256], 65311: [[63], 256], 65312: [[64], 256], 65313: [[65], 256], 65314: [[66], 256], 65315: [[67], 256], 65316: [[68], 256], 65317: [[69], 256], 65318: [[70], 256], 65319: [[71], 256], 65320: [[72], 256], 65321: [[73], 256], 65322: [[74], 256], 65323: [[75], 256], 65324: [[76], 256], 65325: [[77], 256], 65326: [[78], 256], 65327: [[79], 256], 65328: [[80], 256], 65329: [[81], 256], 65330: [[82], 256], 65331: [[83], 256], 65332: [[84], 256], 65333: [[85], 256], 65334: [[86], 256], 65335: [[87], 256], 65336: [[88], 256], 65337: [[89], 256], 65338: [[90], 256], 65339: [[91], 256], 65340: [[92], 256], 65341: [[93], 256], 65342: [[94], 256], 65343: [[95], 256], 65344: [[96], 256], 65345: [[97], 256], 65346: [[98], 256], 65347: [[99], 256], 65348: [[100], 256], 65349: [[101], 256], 65350: [[102], 256], 65351: [[103], 256], 65352: [[104], 256], 65353: [[105], 256], 65354: [[106], 256], 65355: [[107], 256], 65356: [[108], 256], 65357: [[109], 256], 65358: [[110], 256], 65359: [[111], 256], 65360: [[112], 256], 65361: [[113], 256], 65362: [[114], 256], 65363: [[115], 256], 65364: [[116], 256], 65365: [[117], 256], 65366: [[118], 256], 65367: [[119], 256], 65368: [[120], 256], 65369: [[121], 256], 65370: [[122], 256], 65371: [[123], 256], 65372: [[124], 256], 65373: [[125], 256], 65374: [[126], 256], 65375: [[10629], 256], 65376: [[10630], 256], 65377: [[12290], 256], 65378: [[12300], 256], 65379: [[12301], 256], 65380: [[12289], 256], 65381: [[12539], 256], 65382: [[12530], 256], 65383: [[12449], 256], 65384: [[12451], 256], 65385: [[12453], 256], 65386: [[12455], 256], 65387: [[12457], 256], 65388: [[12515], 256], 65389: [[12517], 256], 65390: [[12519], 256], 65391: [[12483], 256], 65392: [[12540], 256], 65393: [[12450], 256], 65394: [[12452], 256], 65395: [[12454], 256], 65396: [[12456], 256], 65397: [[12458], 256], 65398: [[12459], 256], 65399: [[12461], 256], 65400: [[12463], 256], 65401: [[12465], 256], 65402: [[12467], 256], 65403: [[12469], 256], 65404: [[12471], 256], 65405: [[12473], 256], 65406: [[12475], 256], 65407: [[12477], 256], 65408: [[12479], 256], 65409: [[12481], 256], 65410: [[12484], 256], 65411: [[12486], 256], 65412: [[12488], 256], 65413: [[12490], 256], 65414: [[12491], 256], 65415: [[12492], 256], 65416: [[12493], 256], 65417: [[12494], 256], 65418: [[12495], 256], 65419: [[12498], 256], 65420: [[12501], 256], 65421: [[12504], 256], 65422: [[12507], 256], 65423: [[12510], 256], 65424: [[12511], 256], 65425: [[12512], 256], 65426: [[12513], 256], 65427: [[12514], 256], 65428: [[12516], 256], 65429: [[12518], 256], 65430: [[12520], 256], 65431: [[12521], 256], 65432: [[12522], 256], 65433: [[12523], 256], 65434: [[12524], 256], 65435: [[12525], 256], 65436: [[12527], 256], 65437: [[12531], 256], 65438: [[12441], 256], 65439: [[12442], 256], 65440: [[12644], 256], 65441: [[12593], 256], 65442: [[12594], 256], 65443: [[12595], 256], 65444: [[12596], 256], 65445: [[12597], 256], 65446: [[12598], 256], 65447: [[12599], 256], 65448: [[12600], 256], 65449: [[12601], 256], 65450: [[12602], 256], 65451: [[12603], 256], 65452: [[12604], 256], 65453: [[12605], 256], 65454: [[12606], 256], 65455: [[12607], 256], 65456: [[12608], 256], 65457: [[12609], 256], 65458: [[12610], 256], 65459: [[12611], 256], 65460: [[12612], 256], 65461: [[12613], 256], 65462: [[12614], 256], 65463: [[12615], 256], 65464: [[12616], 256], 65465: [[12617], 256], 65466: [[12618], 256], 65467: [[12619], 256], 65468: [[12620], 256], 65469: [[12621], 256], 65470: [[12622], 256], 65474: [[12623], 256], 65475: [[12624], 256], 65476: [[12625], 256], 65477: [[12626], 256], 65478: [[12627], 256], 65479: [[12628], 256], 65482: [[12629], 256], 65483: [[12630], 256], 65484: [[12631], 256], 65485: [[12632], 256], 65486: [[12633], 256], 65487: [[12634], 256], 65490: [[12635], 256], 65491: [[12636], 256], 65492: [[12637], 256], 65493: [[12638], 256], 65494: [[12639], 256], 65495: [[12640], 256], 65498: [[12641], 256], 65499: [[12642], 256], 65500: [[12643], 256], 65504: [[162], 256], 65505: [[163], 256], 65506: [[172], 256], 65507: [[175], 256], 65508: [[166], 256], 65509: [[165], 256], 65510: [[8361], 256], 65512: [[9474], 256], 65513: [[8592], 256], 65514: [[8593], 256], 65515: [[8594], 256], 65516: [[8595], 256], 65517: [[9632], 256], 65518: [[9675], 256] } }; es5-ext-0.10.30/string/#/normalize/implement.js000066400000000000000000000003101315003545300211160ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(String.prototype, "normalize", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/string/#/normalize/index.js000066400000000000000000000001621315003545300202400ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? String.prototype.normalize : require("./shim"); es5-ext-0.10.30/string/#/normalize/is-implemented.js000066400000000000000000000002721315003545300220470ustar00rootroot00000000000000"use strict"; var str = "æøåäüö"; module.exports = function () { if (typeof str.normalize !== "function") return false; return str.normalize("NFKD") === "æøåäüö"; }; es5-ext-0.10.30/string/#/normalize/shim.js000066400000000000000000000201071315003545300200720ustar00rootroot00000000000000/* eslint no-bitwise: "off", max-statements: "off", max-lines: "off" */ // Taken from: https://github.com/walling/unorm/blob/master/lib/unorm.js /* * UnicodeNormalizer 1.0.0 * Copyright (c) 2008 Matsuza * Dual licensed under the MIT (MIT-LICENSE.txt) and * GPL (GPL-LICENSE.txt) licenses. * $Date: 2008-06-05 16:44:17 +0200 (Thu, 05 Jun 2008) $ * $Rev: 13309 $ */ "use strict"; var primitiveSet = require("../../../object/primitive-set") , validValue = require("../../../object/valid-value") , data = require("./_data"); var floor = Math.floor , forms = primitiveSet("NFC", "NFD", "NFKC", "NFKD") , DEFAULT_FEATURE = [null, 0, {}] , CACHE_THRESHOLD = 10 , SBase = 0xac00 , LBase = 0x1100 , VBase = 0x1161 , TBase = 0x11a7 , LCount = 19 , VCount = 21 , TCount = 28 , NCount = VCount * TCount , SCount = LCount * NCount , UChar , cache = {} , cacheCounter = [] , fromCache , fromData , fromCpOnly , fromRuleBasedJamo , fromCpFilter , strategies , UCharIterator , RecursDecompIterator , DecompIterator , CompIterator , createIterator , normalize; UChar = function (cp, feature) { this.codepoint = cp; this.feature = feature; }; // Strategies (function () { for (var i = 0; i <= 0xff; ++i) cacheCounter[i] = 0; }()); fromCache = function (nextStep, cp, needFeature) { var ret = cache[cp]; if (!ret) { ret = nextStep(cp, needFeature); if (Boolean(ret.feature) && ++cacheCounter[(cp >> 8) & 0xff] > CACHE_THRESHOLD) { cache[cp] = ret; } } return ret; }; fromData = function (next, cp) { var hash = cp & 0xff00, dunit = UChar.udata[hash] || {}, feature = dunit[cp]; return feature ? new UChar(cp, feature) : new UChar(cp, DEFAULT_FEATURE); }; fromCpOnly = function (next, cp, needFeature) { return needFeature ? next(cp, needFeature) : new UChar(cp, null); }; fromRuleBasedJamo = function (next, cp, needFeature) { var char, base, i, arr, SIndex, TIndex, feature, j; if (cp < LBase || (LBase + LCount <= cp && cp < SBase) || SBase + SCount < cp) { return next(cp, needFeature); } if (LBase <= cp && cp < LBase + LCount) { char = {}; base = (cp - LBase) * VCount; for (i = 0; i < VCount; ++i) { char[VBase + i] = SBase + TCount * (i + base); } arr = new Array(3); arr[2] = char; return new UChar(cp, arr); } SIndex = cp - SBase; TIndex = SIndex % TCount; feature = []; if (TIndex === 0) { feature[0] = [LBase + floor(SIndex / NCount), VBase + floor(SIndex % NCount / TCount)]; feature[2] = {}; for (j = 1; j < TCount; ++j) { feature[2][TBase + j] = cp + j; } } else { feature[0] = [SBase + SIndex - TIndex, TBase + TIndex]; } return new UChar(cp, feature); }; fromCpFilter = function (next, cp, needFeature) { return cp < 60 || (cp > 13311 && cp < 42607) ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature); }; strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData]; UChar.fromCharCode = strategies.reduceRight(function (next, strategy) { return function (cp, needFeature) { return strategy(next, cp, needFeature); }; }, null); UChar.isHighSurrogate = function (cp) { return cp >= 0xd800 && cp <= 0xdbff; }; UChar.isLowSurrogate = function (cp) { return cp >= 0xdc00 && cp <= 0xdfff; }; UChar.prototype.prepFeature = function () { if (!this.feature) { this.feature = UChar.fromCharCode(this.codepoint, true).feature; } }; UChar.prototype.toString = function () { var num; if (this.codepoint < 0x10000) return String.fromCharCode(this.codepoint); num = this.codepoint - 0x10000; return String.fromCharCode(floor(num / 0x400) + 0xd800, num % 0x400 + 0xdc00); }; UChar.prototype.getDecomp = function () { this.prepFeature(); return this.feature[0] || null; }; UChar.prototype.isCompatibility = function () { this.prepFeature(); return Boolean(this.feature[1]) && this.feature[1] & (1 << 8); }; UChar.prototype.isExclude = function () { this.prepFeature(); return Boolean(this.feature[1]) && this.feature[1] & (1 << 9); }; UChar.prototype.getCanonicalClass = function () { this.prepFeature(); return this.feature[1] ? this.feature[1] & 0xff : 0; }; UChar.prototype.getComposite = function (following) { var cp; this.prepFeature(); if (!this.feature[2]) return null; cp = this.feature[2][following.codepoint]; return cp ? UChar.fromCharCode(cp) : null; }; UCharIterator = function (str) { this.str = str; this.cursor = 0; }; UCharIterator.prototype.next = function () { if (Boolean(this.str) && this.cursor < this.str.length) { var cp = this.str.charCodeAt(this.cursor++), d; if ( UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate(d = this.str.charCodeAt(this.cursor)) ) { cp = (cp - 0xd800) * 0x400 + (d - 0xdc00) + 0x10000; ++this.cursor; } return UChar.fromCharCode(cp); } this.str = null; return null; }; RecursDecompIterator = function (it, cano) { this.it = it; this.canonical = cano; this.resBuf = []; }; RecursDecompIterator.prototype.next = function () { var recursiveDecomp, uchar; recursiveDecomp = function (cano, ucharLoc) { var decomp = ucharLoc.getDecomp(), ret, i, a, j; if (Boolean(decomp) && !(cano && ucharLoc.isCompatibility())) { ret = []; for (i = 0; i < decomp.length; ++i) { a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i])); // Ret.concat(a); //<-why does not this work? // following block is a workaround. for (j = 0; j < a.length; ++j) ret.push(a[j]); } return ret; } return [ucharLoc]; }; if (this.resBuf.length === 0) { uchar = this.it.next(); if (!uchar) return null; this.resBuf = recursiveDecomp(this.canonical, uchar); } return this.resBuf.shift(); }; DecompIterator = function (it) { this.it = it; this.resBuf = []; }; DecompIterator.prototype.next = function () { var cc, uchar, inspt, uchar2, cc2; if (this.resBuf.length === 0) { do { uchar = this.it.next(); if (!uchar) break; cc = uchar.getCanonicalClass(); inspt = this.resBuf.length; if (cc !== 0) { for (inspt; inspt > 0; --inspt) { uchar2 = this.resBuf[inspt - 1]; cc2 = uchar2.getCanonicalClass(); // eslint-disable-next-line max-depth if (cc2 <= cc) break; } } this.resBuf.splice(inspt, 0, uchar); } while (cc !== 0); } return this.resBuf.shift(); }; CompIterator = function (it) { this.it = it; this.procBuf = []; this.resBuf = []; this.lastClass = null; }; CompIterator.prototype.next = function () { var uchar, starter, composite, cc; while (this.resBuf.length === 0) { uchar = this.it.next(); if (!uchar) { this.resBuf = this.procBuf; this.procBuf = []; break; } if (this.procBuf.length === 0) { this.lastClass = uchar.getCanonicalClass(); this.procBuf.push(uchar); } else { starter = this.procBuf[0]; composite = starter.getComposite(uchar); cc = uchar.getCanonicalClass(); if (Boolean(composite) && (this.lastClass < cc || this.lastClass === 0)) { this.procBuf[0] = composite; } else { if (cc === 0) { this.resBuf = this.procBuf; this.procBuf = []; } this.lastClass = cc; this.procBuf.push(uchar); } } } return this.resBuf.shift(); }; createIterator = function (mode, str) { switch (mode) { case "NFD": return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)); case "NFKD": return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)); case "NFC": return new CompIterator( new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)) ); case "NFKC": return new CompIterator( new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)) ); default: throw new Error(mode + " is invalid"); } }; normalize = function (mode, str) { var it = createIterator(mode, str), ret = "", uchar; while ((uchar = it.next())) ret += uchar.toString(); return ret; }; /* Unicode data */ UChar.udata = data; module.exports = function (/* Form*/) { var str = String(validValue(this)), form = arguments[0]; if (form === undefined) form = "NFC"; else form = String(form); if (!forms[form]) throw new RangeError("Invalid normalization form: " + form); return normalize(form, str); }; es5-ext-0.10.30/string/#/pad.js000066400000000000000000000011021315003545300156700ustar00rootroot00000000000000"use strict"; var toInteger = require("../../number/to-integer") , value = require("../../object/valid-value") , repeat = require("./repeat") , abs = Math.abs, max = Math.max; module.exports = function (fill/*, length*/) { var self = String(value(this)) , sLength = self.length , length = arguments[1]; length = isNaN(length) ? 1 : toInteger(length); fill = repeat.call(String(fill), abs(length)); if (length >= 0) return fill.slice(0, max(0, length - sLength)) + self; return self + ((sLength + length) >= 0 ? "" : fill.slice(length + sLength)); }; es5-ext-0.10.30/string/#/plain-replace-all.js000066400000000000000000000006431315003545300204170ustar00rootroot00000000000000"use strict"; var value = require("../../object/valid-value"); module.exports = function (search, replace) { var index, pos = 0, str = String(value(this)), sl, rl; search = String(search); replace = String(replace); sl = search.length; rl = replace.length; while ((index = str.indexOf(search, pos)) !== -1) { str = str.slice(0, index) + replace + str.slice(index + sl); pos = index + rl; } return str; }; es5-ext-0.10.30/string/#/plain-replace.js000066400000000000000000000004741315003545300176530ustar00rootroot00000000000000"use strict"; var indexOf = String.prototype.indexOf, slice = String.prototype.slice; module.exports = function (search, replace) { var index = indexOf.call(this, search); if (index === -1) return String(this); return slice.call(this, 0, index) + replace + slice.call(this, index + String(search).length); }; es5-ext-0.10.30/string/#/repeat/000077500000000000000000000000001315003545300160545ustar00rootroot00000000000000es5-ext-0.10.30/string/#/repeat/implement.js000066400000000000000000000003051315003545300204020ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(String.prototype, "repeat", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/string/#/repeat/index.js000066400000000000000000000001571315003545300175240ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? String.prototype.repeat : require("./shim"); es5-ext-0.10.30/string/#/repeat/is-implemented.js000066400000000000000000000002341315003545300213250ustar00rootroot00000000000000"use strict"; var str = "foo"; module.exports = function () { if (typeof str.repeat !== "function") return false; return str.repeat(2) === "foofoo"; }; es5-ext-0.10.30/string/#/repeat/shim.js000066400000000000000000000013071315003545300173530ustar00rootroot00000000000000// Thanks // @rauchma http://www.2ality.com/2014/01/efficient-string-repeat.html // @mathiasbynens https://github.com/mathiasbynens/String.prototype.repeat/blob/4a4b567def/repeat.js "use strict"; var value = require("../../../object/valid-value") , toInteger = require("../../../number/to-integer"); module.exports = function (count) { var str = String(value(this)), result; count = toInteger(count); if (count < 0) throw new RangeError("Count must be >= 0"); if (!isFinite(count)) throw new RangeError("Count must be < ∞"); result = ""; while (count) { if (count % 2) result += str; if (count > 1) str += str; // eslint-disable-next-line no-bitwise count >>= 1; } return result; }; es5-ext-0.10.30/string/#/starts-with/000077500000000000000000000000001315003545300170655ustar00rootroot00000000000000es5-ext-0.10.30/string/#/starts-with/implement.js000066400000000000000000000003111315003545300214100ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(String.prototype, "startsWith", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/string/#/starts-with/index.js000066400000000000000000000001631315003545300205320ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? String.prototype.startsWith : require("./shim"); es5-ext-0.10.30/string/#/starts-with/is-implemented.js000066400000000000000000000003251315003545300223370ustar00rootroot00000000000000"use strict"; var str = "razdwatrzy"; module.exports = function () { if (typeof str.startsWith !== "function") return false; return (str.startsWith("trzy") === false) && (str.startsWith("raz") === true); }; es5-ext-0.10.30/string/#/starts-with/shim.js000066400000000000000000000005671315003545300203730ustar00rootroot00000000000000"use strict"; var value = require("../../../object/valid-value") , toInteger = require("../../../number/to-integer") , max = Math.max, min = Math.min; module.exports = function (searchString/*, position*/) { var start, self = String(value(this)); start = min(max(toInteger(arguments[1]), 0), self.length); return self.indexOf(searchString, start) === start; }; es5-ext-0.10.30/string/#/uncapitalize.js000066400000000000000000000003341315003545300176220ustar00rootroot00000000000000"use strict"; var ensureStringifiable = require("../../object/validate-stringifiable-value"); module.exports = function () { var str = ensureStringifiable(this); return str.charAt(0).toLowerCase() + str.slice(1); }; es5-ext-0.10.30/string/format-method.js000066400000000000000000000013041315003545300175540ustar00rootroot00000000000000"use strict"; var isCallable = require("../object/is-callable") , value = require("../object/valid-value") , call = Function.prototype.call; module.exports = function (fmap) { fmap = Object(value(fmap)); return function (pattern) { var context = this; value(context); pattern = String(pattern); return pattern.replace(/%([a-zA-Z]+)|\\([\u0000-\uffff])/g, function ( match, token, escapeChar ) { var t, result; if (escapeChar) return escapeChar; t = token; while (t && !(result = fmap[t])) t = t.slice(0, -1); if (!result) return match; if (isCallable(result)) result = call.call(result, context); return result + token.slice(t.length); }); }; }; es5-ext-0.10.30/string/from-code-point/000077500000000000000000000000001315003545300174545ustar00rootroot00000000000000es5-ext-0.10.30/string/from-code-point/implement.js000066400000000000000000000002771315003545300220120ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(String, "fromCodePoint", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/string/from-code-point/index.js000066400000000000000000000001541315003545300211210ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? String.fromCodePoint : require("./shim"); es5-ext-0.10.30/string/from-code-point/is-implemented.js000066400000000000000000000003431315003545300227260ustar00rootroot00000000000000"use strict"; module.exports = function () { var fromCodePoint = String.fromCodePoint; if (typeof fromCodePoint !== "function") return false; return fromCodePoint(0x1D306, 0x61, 0x1D307) === "\ud834\udf06a\ud834\udf07"; }; es5-ext-0.10.30/string/from-code-point/shim.js000066400000000000000000000020311315003545300207460ustar00rootroot00000000000000// Based on: // http://norbertlindenberg.com/2012/05/ecmascript-supplementary-characters/ // and: // https://github.com/mathiasbynens/String.fromCodePoint/blob/master // /fromcodepoint.js "use strict"; var floor = Math.floor, fromCharCode = String.fromCharCode; // eslint-disable-next-line no-unused-vars module.exports = function (codePoint1 /*, …codePoints*/) { var chars = [], length = arguments.length, i, codePoint, result = ""; for (i = 0; i < length; ++i) { codePoint = Number(arguments[i]); if ( !isFinite(codePoint) || codePoint < 0 || codePoint > 0x10ffff || floor(codePoint) !== codePoint ) { throw new RangeError("Invalid code point " + codePoint); } if (codePoint < 0x10000) { chars.push(codePoint); } else { codePoint -= 0x10000; // eslint-disable-next-line no-bitwise chars.push((codePoint >> 10) + 0xd800, codePoint % 0x400 + 0xdc00); } if (i + 1 !== length && chars.length <= 0x4000) continue; result += fromCharCode.apply(null, chars); chars.length = 0; } return result; }; es5-ext-0.10.30/string/index.js000066400000000000000000000003771315003545300161260ustar00rootroot00000000000000"use strict"; module.exports = { "#": require("./#"), "formatMethod": require("./format-method"), "fromCodePoint": require("./from-code-point"), "isString": require("./is-string"), "randomUniq": require("./random-uniq"), "raw": require("./raw") }; es5-ext-0.10.30/string/is-string.js000066400000000000000000000004431315003545300167300ustar00rootroot00000000000000"use strict"; var objToString = Object.prototype.toString, id = objToString.call(""); module.exports = function (value) { return ( typeof value === "string" || (value && typeof value === "object" && (value instanceof String || objToString.call(value) === id)) || false ); }; es5-ext-0.10.30/string/random-uniq.js000066400000000000000000000003171315003545300172430ustar00rootroot00000000000000"use strict"; var generated = Object.create(null) , random = Math.random; module.exports = function () { var str; do { str = random().toString(36).slice(2); } while (generated[str]); return str; }; es5-ext-0.10.30/string/raw/000077500000000000000000000000001315003545300152435ustar00rootroot00000000000000es5-ext-0.10.30/string/raw/implement.js000066400000000000000000000002651315003545300175760ustar00rootroot00000000000000"use strict"; if (!require("./is-implemented")()) { Object.defineProperty(String, "raw", { value: require("./shim"), configurable: true, enumerable: false, writable: true }); } es5-ext-0.10.30/string/raw/index.js000066400000000000000000000001421315003545300167050ustar00rootroot00000000000000"use strict"; module.exports = require("./is-implemented")() ? String.raw : require("./shim"); es5-ext-0.10.30/string/raw/is-implemented.js000066400000000000000000000004031315003545300205120ustar00rootroot00000000000000"use strict"; module.exports = function () { var raw = String.raw, test; if (typeof raw !== "function") return false; test = ["foo\nbar", "marko\n"]; test.raw = ["foo\\nbar", "marko\\n"]; return raw(test, "INSE\nRT") === "foo\\nbarINSE\nRTmarko\\n"; }; es5-ext-0.10.30/string/raw/shim.js000066400000000000000000000007311315003545300165420ustar00rootroot00000000000000"use strict"; var toPosInt = require("../../number/to-pos-integer") , validValue = require("../../object/valid-value") , reduce = Array.prototype.reduce; module.exports = function (callSite /*, …substitutions*/) { var args, rawValue = Object(validValue(Object(validValue(callSite)).raw)); if (!toPosInt(rawValue.length)) return ""; args = arguments; return reduce.call(rawValue, function (str1, str2, i) { return str1 + String(args[i]) + str2; }); }; es5-ext-0.10.30/test/000077500000000000000000000000001315003545300141235ustar00rootroot00000000000000es5-ext-0.10.30/test/.eslintrc.json000066400000000000000000000003311315003545300167140ustar00rootroot00000000000000{ "globals": { "Symbol": true }, "rules": { "consistent-this": "off", "id-length": "off", "no-empty-function": "off", "no-new-wrappers": "off", "no-prototype-builtins": "off", "no-shadow": "off" } } es5-ext-0.10.30/test/__tad.js000066400000000000000000000000471315003545300155300ustar00rootroot00000000000000"use strict"; exports.context = null; es5-ext-0.10.30/test/array/000077500000000000000000000000001315003545300152415ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/000077500000000000000000000000001315003545300153635ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/@@iterator/000077500000000000000000000000001315003545300174145ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/@@iterator/implement.js000066400000000000000000000002341315003545300217430ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/@@iterator/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/@@iterator/index.js000066400000000000000000000000631315003545300210600ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/@@iterator/is-implemented.js000066400000000000000000000001201315003545300226570ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/@@iterator/shim.js000066400000000000000000000004671315003545300207210ustar00rootroot00000000000000"use strict"; exports.__generic = function (t, a) { var iterator = t.call(this); a.deep(iterator.next(), { value: "1", done: false }); a.deep(iterator.next(), { value: "2", done: false }); a.deep(iterator.next(), { value: "3", done: false }); a.deep(iterator.next(), { value: undefined, done: true }); }; es5-ext-0.10.30/test/array/#/_compare-by-length.js000066400000000000000000000003061315003545300213740ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var arr = [4, 5, 6], obj1 = { length: 8 }, obj2 = {}, obj3 = { length: 1 }; a.deep([arr, obj1, obj2, obj3].sort(t), [obj2, obj3, arr, obj1]); }; es5-ext-0.10.30/test/array/#/binary-search.js000066400000000000000000000006741315003545300204570ustar00rootroot00000000000000"use strict"; var compare = function (value) { return this - value; }; module.exports = function (t, a) { var arr; arr = [2, 5, 5, 8, 34, 67, 98, 345, 678]; // Highest, equal match a(t.call(arr, compare.bind(1)), 0, "All higher"); a(t.call(arr, compare.bind(679)), arr.length - 1, "All lower"); a(t.call(arr, compare.bind(4)), 0, "Mid"); a(t.call(arr, compare.bind(5)), 2, "Match"); a(t.call(arr, compare.bind(6)), 2, "Above"); }; es5-ext-0.10.30/test/array/#/clear.js000066400000000000000000000002361315003545300170100ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var arr = [1, 2, {}, 4]; a(t.call(arr), arr, "Returns same array"); a.deep(arr, [], "Empties array"); }; es5-ext-0.10.30/test/array/#/compact.js000066400000000000000000000005621315003545300173520ustar00rootroot00000000000000"use strict"; module.exports = { "__generic": function (t, a) { a(t.call(this).length, 3); }, "": function (t, a) { var o, x, y, z; o = {}; x = [0, 1, "", null, o, false, undefined, true]; y = x.slice(0); a.not(z = t.call(x), x, "Returns different object"); a.deep(x, y, "Origin not changed"); a.deep(z, [0, 1, "", o, false, true], "Result"); } }; es5-ext-0.10.30/test/array/#/concat/000077500000000000000000000000001315003545300166325ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/concat/implement.js000066400000000000000000000002301315003545300211550ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/concat/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/concat/index.js000066400000000000000000000000631315003545300202760ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/concat/is-implemented.js000066400000000000000000000001201315003545300220750ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/concat/shim.js000066400000000000000000000016441315003545300201350ustar00rootroot00000000000000"use strict"; var isConcatSpreadable = require("es6-symbol").isConcatSpreadable , SubArray = require("../../../../array/_sub-array-dummy-safe"); module.exports = function (t, a) { var arr = [1, 3, 45], x = {}, subArr, subArr2, result; a.deep(t.call(arr, "2d", x, ["ere", "fe", x], false, null), [1, 3, 45, "2d", x, "ere", "fe", x, false, null], "Plain array"); subArr = new SubArray("lol", "miszko"); subArr2 = new SubArray("elo", "fol"); result = t.call(subArr, "df", arr, "fef", subArr2, null); a(result instanceof SubArray, true, "Instance of subclass"); a.deep(result, ["lol", "miszko", "df", 1, 3, 45, "fef", "elo", "fol", null], "Spreable by default"); SubArray.prototype[isConcatSpreadable] = false; result = t.call(subArr, "df", arr, "fef", subArr2, null); a.deep(result, [subArr, "df", 1, 3, 45, "fef", subArr2, null], "Non spreadable"); delete SubArray.prototype[isConcatSpreadable]; }; es5-ext-0.10.30/test/array/#/contains.js000066400000000000000000000010411315003545300175330ustar00rootroot00000000000000"use strict"; module.exports = { "__generic": function (t, a) { a(t.call(this, this[1]), true, "Contains"); a(t.call(this, {}), false, "Does Not contain"); }, "": function (t, a) { var o, x = {}, y = {}; o = [1, "raz", x]; a(t.call(o, 1), true, "First"); a(t.call(o, "1"), false, "Type coercion"); a(t.call(o, "raz"), true, "Primitive"); a(t.call(o, "foo"), false, "Primitive not found"); a(t.call(o, x), true, "Object found"); a(t.call(o, y), false, "Object not found"); a(t.call(o, 1, 1), false, "Position"); } }; es5-ext-0.10.30/test/array/#/copy-within/000077500000000000000000000000001315003545300176355ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/copy-within/implement.js000066400000000000000000000002351315003545300221650ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/copy-within/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/copy-within/index.js000066400000000000000000000000631315003545300213010ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/copy-within/is-implemented.js000066400000000000000000000001201315003545300231000ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/copy-within/shim.js000066400000000000000000000017241315003545300211370ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var args, x; a.h1("2 args"); x = [1, 2, 3, 4, 5]; t.call(x, 0, 3); a.deep(x, [4, 5, 3, 4, 5]); a.deep(t.call([1, 2, 3, 4, 5], 1, 3), [1, 4, 5, 4, 5]); a.deep(t.call([1, 2, 3, 4, 5], 1, 2), [1, 3, 4, 5, 5]); a.deep(t.call([1, 2, 3, 4, 5], 2, 2), [1, 2, 3, 4, 5]); a.h1("3 args"); a.deep(t.call([1, 2, 3, 4, 5], 0, 3, 4), [4, 2, 3, 4, 5]); a.deep(t.call([1, 2, 3, 4, 5], 1, 3, 4), [1, 4, 3, 4, 5]); a.deep(t.call([1, 2, 3, 4, 5], 1, 2, 4), [1, 3, 4, 4, 5]); a.h1("Negative args"); a.deep(t.call([1, 2, 3, 4, 5], 0, -2), [4, 5, 3, 4, 5]); a.deep(t.call([1, 2, 3, 4, 5], 0, -2, -1), [4, 2, 3, 4, 5]); a.deep(t.call([1, 2, 3, 4, 5], -4, -3, -2), [1, 3, 3, 4, 5]); a.deep(t.call([1, 2, 3, 4, 5], -4, -3, -1), [1, 3, 4, 4, 5]); a.deep(t.call([1, 2, 3, 4, 5], -4, -3), [1, 3, 4, 5, 5]); a.h1("Array-likes"); args = { 0: 1, 1: 2, 2: 3, length: 3 }; a.deep(t.call(args, -2, 0), { 0: 1, 1: 1, 2: 2, length: 3 }); }; es5-ext-0.10.30/test/array/#/diff.js000066400000000000000000000007101315003545300166270ustar00rootroot00000000000000"use strict"; module.exports = { "__generic": function (t, a) { a.deep(t.call(this, this), []); }, "": function (t, a) { var x = {}, y = {}; a.deep(t.call([1, "raz", x, 2, "trzy", y], [x, 2, "trzy"]), [1, "raz", y], "Scope longer"); a.deep(t.call([1, "raz", x], [x, 2, "trzy", 1, y]), ["raz"], "Arg longer"); a.deep(t.call([1, "raz", x], []), [1, "raz", x], "Empty arg"); a.deep(t.call([], [1, y, "sdfs"]), [], "Empty scope"); } }; es5-ext-0.10.30/test/array/#/e-index-of.js000066400000000000000000000010521315003545300176520ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = {}; a(t.call([3, "raz", {}, x, {}], x), 3, "Regular"); a(t.call([3, "raz", NaN, {}, NaN], NaN), 2, "NaN"); a(t.call([3, "raz", 0, {}, -0], -0), 2, "-0"); a(t.call([3, "raz", -0, {}, 0], +0), 2, "+0"); a(t.call([3, "raz", NaN, {}, NaN], NaN, 3), 4, "fromIndex"); a(t.call([3, "raz", NaN, {}, NaN], NaN, -1), 4, "fromIndex negative #1"); a(t.call([3, "raz", NaN, {}, NaN], NaN, -2), 4, "fromIndex negative #2"); a(t.call([3, "raz", NaN, {}, NaN], NaN, -3), 2, "fromIndex negative #3"); }; es5-ext-0.10.30/test/array/#/e-last-index-of.js000066400000000000000000000007361315003545300206230ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = {}; a(t.call([3, "raz", {}, x, {}, x], x), 5, "Regular"); a(t.call([3, "raz", NaN, {}, x], NaN), 2, "NaN"); a(t.call([3, "raz", 0, {}, -0], -0), 4, "-0"); a(t.call([3, "raz", -0, {}, 0], +0), 4, "+0"); a(t.call([3, "raz", NaN, {}, NaN], NaN, 3), 2, "fromIndex"); a(t.call([3, "raz", NaN, 2, NaN], NaN, -1), 4, "Negative fromIndex #1"); a(t.call([3, "raz", NaN, 2, NaN], NaN, -2), 2, "Negative fromIndex #2"); }; es5-ext-0.10.30/test/array/#/entries/000077500000000000000000000000001315003545300170345ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/entries/implement.js000066400000000000000000000002311315003545300213600ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/entries/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/entries/index.js000066400000000000000000000000631315003545300205000ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/entries/is-implemented.js000066400000000000000000000001201315003545300222770ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/entries/shim.js000066400000000000000000000005061315003545300203330ustar00rootroot00000000000000"use strict"; exports.__generic = function (t, a) { var iterator = t.call(this); a.deep(iterator.next(), { value: [0, "1"], done: false }); a.deep(iterator.next(), { value: [1, "2"], done: false }); a.deep(iterator.next(), { value: [2, "3"], done: false }); a.deep(iterator.next(), { value: undefined, done: true }); }; es5-ext-0.10.30/test/array/#/exclusion.js000066400000000000000000000005701315003545300177340ustar00rootroot00000000000000"use strict"; module.exports = { "__generic": function (t, a) { var x = {}; a.deep(t.call(this, this, [this[0], this[2], x]), [x]); }, "": function (t, a) { var x = {}, y = {}; a.deep(t.call([x, y]), [x, y], "No arguments"); a.deep(t.call([x, 1], [], []), [x, 1], "Empty arguments"); a.deep(t.call([1, "raz", x], [2, "raz", y], [2, "raz", x]), [1, y]); } }; es5-ext-0.10.30/test/array/#/fill/000077500000000000000000000000001315003545300163115ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/fill/implement.js000066400000000000000000000002261315003545300206410ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/fill/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/fill/index.js000066400000000000000000000000631315003545300177550ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/fill/is-implemented.js000066400000000000000000000001201315003545300215540ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/fill/shim.js000066400000000000000000000010031315003545300176010ustar00rootroot00000000000000// Taken from https://github.com/paulmillr/es6-shim/blob/master/test/array.js "use strict"; module.exports = function (t, a) { var x; x = [1, 2, 3, 4, 5, 6]; a(t.call(x, -1), x, "Returns self object"); a.deep(x, [-1, -1, -1, -1, -1, -1], "Value"); a.deep(t.call([1, 2, 3, 4, 5, 6], -1, 3), [1, 2, 3, -1, -1, -1], "Positive start"); a.deep(t.call([1, 2, 3, 4, 5, 6], -1, -3), [1, 2, 3, -1, -1, -1], "Negative start"); a.deep(t.call([1, 2, 3, 4, 5, 6], -1, 9), [1, 2, 3, 4, 5, 6], "Large start"); }; es5-ext-0.10.30/test/array/#/filter/000077500000000000000000000000001315003545300166505ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/filter/implement.js000066400000000000000000000002301315003545300211730ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/filter/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/filter/index.js000066400000000000000000000000631315003545300203140ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/filter/is-implemented.js000066400000000000000000000001201315003545300221130ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/filter/shim.js000066400000000000000000000007601315003545300201510ustar00rootroot00000000000000"use strict"; var SubArray = require("../../../../array/_sub-array-dummy-safe"); module.exports = function (t, a) { var arr, x = {}, subArr, result; arr = ["foo", undefined, 0, "2d", false, x, null]; a.deep(t.call(arr, Boolean), ["foo", "2d", x], "Plain array"); subArr = new SubArray("foo", undefined, 0, "2d", false, x, null); result = t.call(subArr, Boolean); a(result instanceof SubArray, true, "Instance of subclass"); a.deep(result, ["foo", "2d", x], "Result of subclass"); }; es5-ext-0.10.30/test/array/#/find-index/000077500000000000000000000000001315003545300174105ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/find-index/implement.js000066400000000000000000000002341315003545300217370ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/find-index/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/find-index/index.js000066400000000000000000000000631315003545300210540ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/find-index/is-implemented.js000066400000000000000000000001201315003545300226530ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/find-index/shim.js000066400000000000000000000006121315003545300207050ustar00rootroot00000000000000"use strict"; exports.__generic = function (t, a) { var count = 0, o = {}, self = Object(this); a(t.call(self, function (value, i, scope) { a(value, this[i], "Value"); a(i, count++, "Index"); a(scope, this, "Scope"); }, self), -1, "Falsy result"); a(count, 3); count = -1; a(t.call(this, function () { return ++count ? o : null; }, this), 1, "Truthy result"); a(count, 1); }; es5-ext-0.10.30/test/array/#/find/000077500000000000000000000000001315003545300163035ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/find/implement.js000066400000000000000000000002261315003545300206330ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/find/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/find/index.js000066400000000000000000000000631315003545300177470ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/find/is-implemented.js000066400000000000000000000001201315003545300215460ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/find/shim.js000066400000000000000000000006271315003545300176060ustar00rootroot00000000000000"use strict"; exports.__generic = function (t, a) { var count = 0, o = {}, self = Object(this); a(t.call(self, function (value, i, scope) { a(value, this[i], "Value"); a(i, count++, "Index"); a(scope, this, "Scope"); }, self), undefined, "Falsy result"); a(count, 3); count = -1; a(t.call(this, function () { return ++count ? o : null; }, this), this[1], "Truthy result"); a(count, 1); }; es5-ext-0.10.30/test/array/#/first-index.js000066400000000000000000000006461315003545300201630ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x; a(t.call([]), null, "Empty"); a(t.call([null]), 0, "One value"); a(t.call([1, 2, 3]), 0, "Many values"); a(t.call(new Array(1000)), null, "Sparse empty"); x = []; x[883] = undefined; x[890] = null; a(t.call(x), 883, "Manual sparse, distant value"); x = new Array(1000); x[657] = undefined; x[700] = null; a(t.call(x), 657, "Sparse, distant value"); }; es5-ext-0.10.30/test/array/#/first.js000066400000000000000000000004361315003545300170530ustar00rootroot00000000000000"use strict"; exports.__generic = function (t, a) { a(t.call(this), this[0]); }; exports[""] = function (t, a) { var x; a(t.call([]), undefined, "Empty"); a(t.call(new Array(234), undefined, "Sparse empty")); x = new Array(2342); x[434] = {}; a(t.call(x), x[434], "Sparse"); }; es5-ext-0.10.30/test/array/#/flatten.js000066400000000000000000000005101315003545300173520ustar00rootroot00000000000000"use strict"; var o = [1, 2, [3, 4, [5, 6], 7, 8], 9, 10, [11, 12, [13, 14]], 15]; module.exports = { "__generic": function (t, a) { a(t.call(this).length, 3); }, "Nested Arrays": function (t, a) { var result = t.call(o); a.not(o, result); a.deep(result, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]); } }; es5-ext-0.10.30/test/array/#/for-each-right.js000066400000000000000000000016001315003545300205150ustar00rootroot00000000000000"use strict"; module.exports = { "__generic": function (t, a) { var count = 0, first, last, x, icount = this.length; t.call(this, function (item, index, col) { ++count; if (!first) { first = item; } last = item; x = col; a(index, --icount, "Index"); }); a(count, this.length, "Iterated"); a(first, this[this.length - 1], "First is last"); a(last, this[0], "Last is first"); a.deep(x, Object(this), "Collection as third argument"); // Jslint: skip }, "": function (t, a) { var x = {}, y, count; t.call( [1], function () { y = this; }, x ); a(y, x, "Scope"); y = 0; t.call([3, 4, 4], function (a, i) { y += i; }); a(y, 3, "Indexes"); x = [1, 3]; x[5] = "x"; y = 0; count = 0; t.call(x, function (a, i) { ++count; y += i; }); a(y, 6, "Misssing Indexes"); a(count, 3, "Misssing Indexes, count"); } }; es5-ext-0.10.30/test/array/#/group.js000066400000000000000000000010461315003545300170560ustar00rootroot00000000000000"use strict"; module.exports = { "__generic": function (t, a) { var count = 0, self; self = Object(this); a.deep(t.call(self, function (v, i, scope) { a(v, this[i], "Value"); a(i, count++, "Index"); a(scope, this, "Scope"); return i; }, self), { 0: [this[0]], 1: [this[1]], 2: [this[2]] }); }, "": function (t, a) { var r; r = t.call([2, 3, 3, 4, 5, 6, 7, 7, 23, 45, 34, 56], function (v) { return v % 2 ? "odd" : "even"; }); a.deep(r.odd, [3, 3, 5, 7, 7, 23, 45]); a.deep(r.even, [2, 4, 6, 34, 56]); } }; es5-ext-0.10.30/test/array/#/indexes-of.js000066400000000000000000000006161315003545300177650ustar00rootroot00000000000000"use strict"; module.exports = { "__generic": function (t, a) { a.deep(t.call(this, this[1]), [1]); }, "": function (t, a) { var x = {}; a.deep(t.call([1, 3, 5, 3, 5], 6), [], "No result"); a.deep(t.call([1, 3, 5, 1, 3, 5, 1], 1), [0, 3, 6], "Some results"); a.deep(t.call([], x), [], "Empty array"); a.deep(t.call([x, 3, {}, x, 3, 5, x], x), [0, 3, 6], "Search for object"); } }; es5-ext-0.10.30/test/array/#/intersection.js000066400000000000000000000013031315003545300204240ustar00rootroot00000000000000"use strict"; var toArray = require("../../../array/to-array"); module.exports = { "__generic": function (t, a) { a.deep(t.call(this, this, this), toArray(this)); }, "": function (t, a) { var x = {}, y = {}, p, r; a.deep(t.call([], [2, 3, 4]), [], "Empty #1"); a.deep(t.call([2, 3, 4], []), [], "Empty #2"); a.deep(t.call([2, 3, x], [y, 5, 7]), [], "Different"); p = t.call([3, 5, "raz", {}, "dwa", x], [1, 3, "raz", "dwa", "trzy", x, {}], [3, "raz", x, 65]); r = [3, "raz", x]; p.sort(); r.sort(); a.deep(p, r, "Same parts"); a.deep(t.call(r, r), r, "Same"); a.deep(t.call([1, 2, x, 4, 5, y, 7], [7, y, 5, 4, x, 2, 1]), [1, 2, x, 4, 5, y, 7], "Long reverse same"); } }; es5-ext-0.10.30/test/array/#/is-copy.js000066400000000000000000000007241315003545300173070ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = {}; a(t.call([], []), true, "Empty"); a(t.call([], {}), true, "Empty lists"); a(t.call([1, x, "raz"], [1, x, "raz"]), true, "Same"); a(t.call([1, x, "raz"], { 0: 1, 1: x, 2: "raz", length: 3 }), true, "Same lists"); a(t.call([1, x, "raz"], [x, 1, "raz"]), false, "Diff order"); a(t.call([1, x], [1, x, "raz"]), false, "Diff length #1"); a(t.call([1, x, "raz"], [1, x]), false, "Diff length #2"); }; es5-ext-0.10.30/test/array/#/is-empty.js000066400000000000000000000003001315003545300174610ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = {}; a(t.call([]), true, "Empty"); a(t.call({ length: 0 }), true, "Empty lists"); a(t.call([1, x, "raz"]), false, "Non empty"); }; es5-ext-0.10.30/test/array/#/is-uniq.js000066400000000000000000000005361315003545300173120ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = {}; a(t.call([]), true, "Empty"); a(t.call({}), true, "Empty lists"); a(t.call([1, x, "raz"]), true, "Uniq"); a(t.call([1, x, 1, "raz"]), false, "Not Uniq: primitive"); a(t.call([1, x, "1", "raz"]), true, "Uniq: primitive"); a(t.call([1, x, 1, {}, "raz"]), false, "Not Uniq: Obj"); }; es5-ext-0.10.30/test/array/#/keys/000077500000000000000000000000001315003545300163365ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/keys/implement.js000066400000000000000000000002261315003545300206660ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/keys/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/keys/index.js000066400000000000000000000000631315003545300200020ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/keys/is-implemented.js000066400000000000000000000001201315003545300216010ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/keys/shim.js000066400000000000000000000004611315003545300176350ustar00rootroot00000000000000"use strict"; exports.__generic = function (t, a) { var iterator = t.call(this); a.deep(iterator.next(), { value: 0, done: false }); a.deep(iterator.next(), { value: 1, done: false }); a.deep(iterator.next(), { value: 2, done: false }); a.deep(iterator.next(), { value: undefined, done: true }); }; es5-ext-0.10.30/test/array/#/last-index.js000066400000000000000000000006461315003545300177770ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x; a(t.call([]), null, "Empty"); a(t.call([null]), 0, "One value"); a(t.call([1, 2, 3]), 2, "Many values"); a(t.call(new Array(1000)), null, "Sparse empty"); x = []; x[883] = null; x[890] = undefined; a(t.call(x), 890, "Manual sparse, distant value"); x = new Array(1000); x[657] = null; x[700] = undefined; a(t.call(x), 700, "Sparse, distant value"); }; es5-ext-0.10.30/test/array/#/last.js000066400000000000000000000004731315003545300166700ustar00rootroot00000000000000"use strict"; exports.__generic = function (t, a) { a(t.call(this), this[this.length - 1]); }; exports[""] = function (t, a) { var x; a(t.call([]), undefined, "Empty"); a(t.call(new Array(234), undefined, "Sparse empty")); x = new Array(2342); x[434] = {}; x[450] = {}; a(t.call(x), x[450], "Sparse"); }; es5-ext-0.10.30/test/array/#/map/000077500000000000000000000000001315003545300161405ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/map/implement.js000066400000000000000000000002251315003545300204670ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/map/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/map/index.js000066400000000000000000000000631315003545300176040ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/map/is-implemented.js000066400000000000000000000001201315003545300214030ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/map/shim.js000066400000000000000000000010601315003545300174330ustar00rootroot00000000000000"use strict"; var SubArray = require("../../../../array/_sub-array-dummy-safe"); module.exports = function (t, a) { var arr, x = {}, subArr, result; arr = ["foo", undefined, 0, "2d", false, x, null]; a.deep(t.call(arr, Boolean), [true, false, false, true, false, true, false], "Plain array"); subArr = new SubArray("foo", undefined, 0, "2d", false, x, null); result = t.call(subArr, Boolean); a(result instanceof SubArray, true, "Instance of subclass"); a.deep(result, [true, false, false, true, false, true, false], "Result of subclass"); }; es5-ext-0.10.30/test/array/#/remove.js000066400000000000000000000005461315003545300172230ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var y = {}, z = {}, x = [9, z, 5, y, "foo"]; t.call(x, y); a.deep(x, [9, z, 5, "foo"]); t.call(x, {}); a.deep(x, [9, z, 5, "foo"], "Not existing"); t.call(x, 5); a.deep(x, [9, z, "foo"], "Primitive"); x = [9, z, 5, y, "foo"]; t.call(x, z, 5, "foo"); a.deep(x, [9, y], "More than one argument"); }; es5-ext-0.10.30/test/array/#/separate.js000066400000000000000000000006561315003545300175340ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = [], y = {}, z = {}; a.deep(t.call(x, y), [], "Empty"); a.not(t.call(x), x, "Returns copy"); a.deep(t.call([1], y), [1], "One"); a.deep(t.call([1, "raz"], y), [1, y, "raz"], "One"); a.deep(t.call([1, "raz", x], y), [1, y, "raz", y, x], "More"); x = new Array(1000); x[23] = 2; x[3453] = "raz"; x[500] = z; a.deep(t.call(x, y), [2, y, z, y, "raz"], "Sparse"); }; es5-ext-0.10.30/test/array/#/slice/000077500000000000000000000000001315003545300164625ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/slice/implement.js000066400000000000000000000002271315003545300210130ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/slice/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/slice/index.js000066400000000000000000000000631315003545300201260ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/slice/is-implemented.js000066400000000000000000000001201315003545300217250ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/slice/shim.js000066400000000000000000000007421315003545300177630ustar00rootroot00000000000000"use strict"; var SubArray = require("../../../../array/_sub-array-dummy-safe"); module.exports = function (t, a) { var arr, x = {}, subArr, result; arr = ["foo", undefined, 0, "2d", false, x, null]; a.deep(t.call(arr, 2, 4), [0, "2d"], "Plain array: result"); subArr = new SubArray("foo", undefined, 0, "2d", false, x, null); result = t.call(subArr, 2, 4); a(result instanceof SubArray, true, "Instance of subclass"); a.deep(result, [0, "2d"], "Subclass: result"); }; es5-ext-0.10.30/test/array/#/some-right.js000066400000000000000000000021321315003545300177750ustar00rootroot00000000000000"use strict"; module.exports = { "__generic": function (t, a) { var count = 0, first, last, x, icount = this.length; t.call(this, function (item, index, col) { ++count; if (!first) { first = item; } last = item; x = col; a(index, --icount, "Index"); }); a(count, this.length, "Iterated"); a(first, this[this.length - 1], "First is last"); a(last, this[0], "Last is first"); a.deep(x, Object(this), "Collection as third argument"); // Jslint: skip }, "": function (t, a) { var x = {}, y, count; t.call( [1], function () { y = this; }, x ); a(y, x, "Scope"); y = 0; t.call([3, 4, 4], function (a, i) { y += i; }); a(y, 3, "Indexes"); x = [1, 3]; x[5] = "x"; y = 0; count = 0; a( t.call(x, function (a, i) { ++count; y += i; }), false, "Return" ); a(y, 6, "Misssing Indexes"); a(count, 3, "Misssing Indexes, count"); count = 0; a( t.call([-2, -3, -4, 2, -5], function (item) { ++count; return item > 0; }), true, "Return" ); a(count, 2, "Break after true is returned"); } }; es5-ext-0.10.30/test/array/#/splice/000077500000000000000000000000001315003545300166425ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/splice/implement.js000066400000000000000000000002301315003545300211650ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/splice/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/splice/index.js000066400000000000000000000000631315003545300203060ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/splice/is-implemented.js000066400000000000000000000001201315003545300221050ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/splice/shim.js000066400000000000000000000012201315003545300201330ustar00rootroot00000000000000"use strict"; var SubArray = require("../../../../array/_sub-array-dummy-safe"); module.exports = function (t, a) { var arr, x = {}, subArr, result; arr = ["foo", undefined, 0, "2d", false, x, null]; a.deep(t.call(arr, 2, 2, "bar"), [0, "2d"], "Plain array: result"); a.deep(arr, ["foo", undefined, "bar", false, x, null], "Plain array: change"); subArr = new SubArray("foo", undefined, 0, "2d", false, x, null); result = t.call(subArr, 2, 2, "bar"); a(result instanceof SubArray, true, "Instance of subclass"); a.deep(result, [0, "2d"], "Subclass: result"); a.deep(subArr, ["foo", undefined, "bar", false, x, null], "Subclass: change"); }; es5-ext-0.10.30/test/array/#/uniq.js000066400000000000000000000005261315003545300167000ustar00rootroot00000000000000"use strict"; module.exports = { "__generic": function (t, a) { a(t.call(this).length, 3); }, "": function (t, a) { var o, x = {}, y = {}, z = {}, w; o = [1, 2, x, 3, 1, "raz", "1", y, x, "trzy", z, "raz"]; a.not(w = t.call(o), o, "Returns different object"); a.deep(w, [1, 2, x, 3, "raz", "1", y, "trzy", z], "Result"); } }; es5-ext-0.10.30/test/array/#/values/000077500000000000000000000000001315003545300166625ustar00rootroot00000000000000es5-ext-0.10.30/test/array/#/values/implement.js000066400000000000000000000002301315003545300212050ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../array/#/values/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/#/values/index.js000066400000000000000000000000631315003545300203260ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/#/values/is-implemented.js000066400000000000000000000001201315003545300221250ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/#/values/shim.js000066400000000000000000000004671315003545300201670ustar00rootroot00000000000000"use strict"; exports.__generic = function (t, a) { var iterator = t.call(this); a.deep(iterator.next(), { value: "1", done: false }); a.deep(iterator.next(), { value: "2", done: false }); a.deep(iterator.next(), { value: "3", done: false }); a.deep(iterator.next(), { value: undefined, done: true }); }; es5-ext-0.10.30/test/array/__scopes.js000066400000000000000000000003241315003545300173700ustar00rootroot00000000000000"use strict"; exports.Array = ["1", "2", "3"]; exports.Arguments = (function () { return arguments; }("1", "2", "3")); exports.String = "123"; exports.Object = { 0: "1", 1: "2", 2: "3", 3: "4", length: 3 }; es5-ext-0.10.30/test/array/_is-extensible.js000066400000000000000000000001161315003545300205070ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t, "boolean"); }; es5-ext-0.10.30/test/array/_sub-array-dummy-safe.js000066400000000000000000000001761315003545300217140ustar00rootroot00000000000000"use strict"; var isArray = Array.isArray; module.exports = function (t) { t(t === null || isArray(t.prototype), true); }; es5-ext-0.10.30/test/array/_sub-array-dummy.js000066400000000000000000000001761315003545300210000ustar00rootroot00000000000000"use strict"; var isArray = Array.isArray; module.exports = function (t) { t(t === null || isArray(t.prototype), true); }; es5-ext-0.10.30/test/array/from/000077500000000000000000000000001315003545300162045ustar00rootroot00000000000000es5-ext-0.10.30/test/array/from/implement.js000066400000000000000000000002211315003545300205270ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../array/from/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/from/index.js000066400000000000000000000000631315003545300176500ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/from/is-implemented.js000066400000000000000000000001201315003545300214470ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/from/shim.js000066400000000000000000000051231315003545300175030ustar00rootroot00000000000000// Some tests taken from: https://github.com/mathiasbynens/Array.from/blob/master/tests/tests.js "use strict"; module.exports = function (t, a) { var o = [1, 2, 3], MyType; a.not(t(o), o, "Array"); a.deep(t(o), o, "Array: same content"); a.deep(t("12r3v"), ["1", "2", "r", "3", "v"], "String"); a.deep( t( (function () { return arguments; })(3, o, "raz") ), [3, o, "raz"], "Arguments" ); a.deep( t( (function () { return arguments; })(3) ), [3], "Arguments with one numeric value" ); a.deep(t({ 0: "raz", 1: "dwa", length: 2 }), ["raz", "dwa"], "Other"); a.deep( t( o, function (val) { return (val + 2) * 10; }, 10 ), [30, 40, 50], "Mapping" ); a.throws( function () { t(); }, TypeError, "Undefined" ); a.deep(t(3), [], "Primitive"); a(t.length, 1, "Length"); a.deep(t({ length: 0 }), [], "No values Array-like"); a.deep(t({ length: -1 }), [], "Invalid length Array-like"); a.deep(t({ length: -Infinity }), [], "Invalid length Array-like #2"); a.throws( function () { t(undefined); }, TypeError, "Undefined" ); a.throws( function () { t(null); }, TypeError, "Null" ); a.deep(t(false), [], "Boolean"); a.deep(t(-Infinity), [], "Inifity"); a.deep(t(-0), [], "-0"); a.deep(t(+0), [], "+0"); a.deep(t(1), [], "1"); a.deep(t(Number(Infinity)), [], "+Infinity"); a.deep(t({}), [], "Plain object"); a.deep(t({ length: 1 }), [undefined], "Sparse array-like"); a.deep( t({ 0: "a", 1: "b", length: 2 }, function (x) { return x + x; }), ["aa", "bb"], "Map" ); a.deep( t( { 0: "a", 1: "b", length: 2 }, function () { return String(this); }, undefined ), ["undefined", "undefined"], "Map context" ); a.deep( t( { 0: "a", 1: "b", length: 2 }, function () { return String(this); }, "x" ), ["x", "x"], "Map primitive context" ); a.throws( function () { t({}, "foo", "x"); }, TypeError, "Non callable for map" ); a.deep(t({ length: 1, 0: "a" }), ["a"], "Null context"); a(t({ __proto__: { 0: "abc", length: 1 } })[0], "abc", "Values on prototype"); a.throws( function () { t.call(function () { return Object.freeze({}); }, {}); }, TypeError, "Contructor producing freezed objects" ); // Ensure no setters are called for the indexes // Ensure no setters are called for the indexes MyType = function () {}; Object.defineProperty(MyType.prototype, "0", { set: function (x) { throw new Error("Setter called: " + x); } }); a.deep(t.call(MyType, { 0: "abc", length: 1 }), { 0: "abc", length: 1 }, "Defined not set"); }; es5-ext-0.10.30/test/array/generate.js000066400000000000000000000005401315003545300173700ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = {}, y = {}; a.deep(t(3), [undefined, undefined, undefined], "Just length"); a.deep(t(0, "x"), [], "No repeat"); a.deep(t(1, x, y), [x], "Arguments length larger than repeat number"); a.deep(t(3, x), [x, x, x], "Single argument"); a.deep(t(5, x, y), [x, y, x, y, x], "Many arguments"); }; es5-ext-0.10.30/test/array/is-plain-array.js000066400000000000000000000010431315003545300204250ustar00rootroot00000000000000"use strict"; var SubArray = require("../../array/_sub-array-dummy-safe"); module.exports = function (t, a) { var arr = [1, 2, 3]; a(t(arr), true, "Array"); a(t(null), false, "Null"); a(t(), false, "Undefined"); a(t("234"), false, "String"); a(t(23), false, "Number"); a(t({}), false, "Plain object"); a(t({ length: 1, 0: "raz" }), false, "Array-like"); a(t(Object.create(arr)), false, "Array extension"); if (!SubArray) return; a(t(new SubArray(23)), false, "Subclass instance"); a(t(Array.prototype), false, "Array.prototype"); }; es5-ext-0.10.30/test/array/of/000077500000000000000000000000001315003545300156455ustar00rootroot00000000000000es5-ext-0.10.30/test/array/of/implement.js000066400000000000000000000002171315003545300201750ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../array/of/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/array/of/index.js000066400000000000000000000000631315003545300173110ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/array/of/is-implemented.js000066400000000000000000000001201315003545300211100ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/array/of/shim.js000066400000000000000000000052731315003545300171520ustar00rootroot00000000000000/* eslint no-useless-call: "off" */ // Most tests taken from https://github.com/mathiasbynens/Array.of/blob/master/tests/tests.js // Thanks @mathiasbynens "use strict"; var defineProperty = Object.defineProperty; module.exports = function (t, a) { var x = {}, testObject, MyType; a.deep(t(), [], "No arguments"); a.deep(t(3), [3], "One numeric argument"); a.deep(t(3, "raz", null, x, undefined), [3, "raz", null, x, undefined], "Many arguments"); a(t.length, 0, "Length"); a.deep(t("abc"), ["abc"], "String"); a.deep(t(undefined), [undefined], "Undefined"); a.deep(t(null), [null], "Null"); a.deep(t(false), [false], "Boolean"); a.deep(t(-Infinity), [-Infinity], "Infinity"); a.deep(t(-0), [-0], "-0"); a.deep(t(+0), [+0], "+0"); a.deep(t(1), [1], "1"); a.deep(t(1, 2, 3), [1, 2, 3], "Numeric args"); a.deep(t(Number(Infinity)), [Number(Infinity)], "+Infinity"); a.deep( t({ 0: "a", 1: "b", 2: "c", length: 3 }), [{ 0: "a", 1: "b", 2: "c", length: 3 }], "Array like" ); a.deep( t(undefined, null, false, -Infinity, -0, +0, 1, 2, Number(Infinity)), [undefined, null, false, -Infinity, -0, +0, 1, 2, Number(Infinity)], "Falsy arguments" ); a.h1("Null context"); a.deep(t.call(null, "abc"), ["abc"], "String"); a.deep(t.call(null, undefined), [undefined], "Undefined"); a.deep(t.call(null, null), [null], "Null"); a.deep(t.call(null, false), [false], "Boolean"); a.deep(t.call(null, -Infinity), [-Infinity], "-Infinity"); a.deep(t.call(null, -0), [-0], "-0"); a.deep(t.call(null, +0), [+0], "+0"); a.deep(t.call(null, 1), [1], "1"); a.deep(t.call(null, 1, 2, 3), [1, 2, 3], "Numeric"); a.deep(t.call(null, Number(Infinity)), [Number(Infinity)], "+Infinity"); a.deep( t.call(null, { 0: "a", 1: "b", 2: "c", length: 3 }), [{ 0: "a", 1: "b", 2: "c", length: 3 }], "Array-like" ); a.deep( t.call(null, undefined, null, false, -Infinity, -0, +0, 1, 2, Number(Infinity)), [undefined, null, false, -Infinity, -0, +0, 1, 2, Number(Infinity)], "Falsy" ); a.h1("Other constructor context"); a.deep(t.call(Object, 1, 2, 3), { 0: 1, 1: 2, 2: 3, length: 3 }, "Many arguments"); testObject = Object(3); testObject[0] = 1; testObject[1] = 2; testObject[2] = 3; testObject.length = 3; a.deep(t.call(Object, 1, 2, 3), testObject, "Test object"); a(t.call(Object).length, 0, "No arguments"); a.throws( function () { t.call(function () { return Object.freeze({}); }); }, TypeError, "Frozen instance" ); // Ensure no setters are called for the indexes MyType = function () {}; defineProperty(MyType.prototype, "0", { set: function (x) { throw new Error("Setter called: " + x); } }); a.deep(t.call(MyType, "abc"), { 0: "abc", length: 1 }, "Define, not set"); }; es5-ext-0.10.30/test/array/to-array.js000066400000000000000000000006371315003545300173430ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o = [1, 2, 3]; a(t(o), o, "Array"); a.deep(t("12r3v"), ["1", "2", "r", "3", "v"], "String"); a.deep(t((function () { return arguments; }(3, o, "raz"))), [3, o, "raz"], "Arguments"); a.deep(t((function () { return arguments; }(3))), [3], "Arguments with one numeric value"); a.deep(t({ 0: "raz", 1: "dwa", length: 2 }), ["raz", "dwa"], "Other"); }; es5-ext-0.10.30/test/array/valid-array.js000066400000000000000000000011031315003545300200050ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x; a.throws(function () { t(); }, TypeError, "Undefined"); a.throws(function () { t(null); }, TypeError, "Null"); a.throws(function () { t(0); }, TypeError, "Number"); a.throws(function () { t(true); }, TypeError, "Boolean"); a.throws(function () { t("raz"); }, TypeError, "String"); a.throws(function () { t(function () {}); }, TypeError, "Function"); a.throws(function () { t({}); }, TypeError, "Object"); a.throws(function () { t({ length: 0 }); }, TypeError, "Array-like"); a(t(x = []), x, "Array"); }; es5-ext-0.10.30/test/boolean/000077500000000000000000000000001315003545300155425ustar00rootroot00000000000000es5-ext-0.10.30/test/boolean/is-boolean.js000066400000000000000000000005421315003545300201310ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t("arar"), false, "String"); a(t(12), false, "Number"); a(t(false), true, "Boolean"); a(t(new Boolean(false)), true, "Boolean object"); a(t(new Date()), false, "Date"); a(t(new String("raz")), false, "String object"); a(t({}), false, "Plain object"); a(t(/a/), false, "Regular expression"); }; es5-ext-0.10.30/test/date/000077500000000000000000000000001315003545300150405ustar00rootroot00000000000000es5-ext-0.10.30/test/date/#/000077500000000000000000000000001315003545300151625ustar00rootroot00000000000000es5-ext-0.10.30/test/date/#/copy.js000066400000000000000000000003371315003545300164750ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o = new Date(), o2; o2 = t.call(o); a.not(o, o2, "Different objects"); a.ok(o2 instanceof Date, "Instance of Date"); a(o.getTime(), o2.getTime(), "Same time"); }; es5-ext-0.10.30/test/date/#/days-in-month.js000066400000000000000000000012621315003545300202100ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call(new Date(2001, 0, 1)), 31, "January"); a(t.call(new Date(2001, 1, 1)), 28, "February"); a(t.call(new Date(2000, 1, 1)), 29, "February (leap)"); a(t.call(new Date(2001, 2, 1)), 31, "March"); a(t.call(new Date(2001, 3, 1)), 30, "April"); a(t.call(new Date(2001, 4, 1)), 31, "May"); a(t.call(new Date(2001, 5, 1)), 30, "June"); a(t.call(new Date(2001, 6, 1)), 31, "July"); a(t.call(new Date(2001, 7, 1)), 31, "August"); a(t.call(new Date(2001, 8, 1)), 30, "September"); a(t.call(new Date(2001, 9, 1)), 31, "October"); a(t.call(new Date(2001, 10, 1)), 30, "November"); a(t.call(new Date(2001, 11, 1)), 31, "December"); }; es5-ext-0.10.30/test/date/#/floor-day.js000066400000000000000000000002241315003545300174120ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call(new Date(2000, 0, 1, 13, 32, 34, 234)).valueOf(), new Date(2000, 0, 1).valueOf()); }; es5-ext-0.10.30/test/date/#/floor-month.js000066400000000000000000000002251315003545300177630ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call(new Date(2000, 0, 15, 13, 32, 34, 234)).valueOf(), new Date(2000, 0, 1).valueOf()); }; es5-ext-0.10.30/test/date/#/floor-year.js000066400000000000000000000002251315003545300175760ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call(new Date(2000, 5, 13, 13, 32, 34, 234)).valueOf(), new Date(2000, 0, 1).valueOf()); }; es5-ext-0.10.30/test/date/#/format.js000066400000000000000000000002571315003545300170140ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var dt = new Date(2011, 2, 3, 3, 5, 5, 32); a(t.call(dt, " %Y.%y.%m.%d.%H.%M.%S.%L "), " 2011.11.03.03.03.05.05.032 "); }; es5-ext-0.10.30/test/date/is-date.js000066400000000000000000000004051315003545300167230ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t("arar"), false, "String"); a(t(12), false, "Number"); a(t(true), false, "Boolean"); a(t(new Date()), true, "Date"); a(t(new String("raz")), false, "String object"); a(t({}), false, "Plain object"); }; es5-ext-0.10.30/test/date/valid-date.js000066400000000000000000000003541315003545300174120ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var d = new Date(); a(t(d), d, "Date"); a.throws(function () { t({}); }, "Object"); a.throws(function () { t({ valueOf: function () { return 20; } }); }, "Number object"); }; es5-ext-0.10.30/test/error/000077500000000000000000000000001315003545300152545ustar00rootroot00000000000000es5-ext-0.10.30/test/error/#/000077500000000000000000000000001315003545300153765ustar00rootroot00000000000000es5-ext-0.10.30/test/error/#/throw.js000066400000000000000000000001761315003545300171030ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var e = new Error(); try { t.call(e); } catch (e2) { a(e2, e); } }; es5-ext-0.10.30/test/error/custom.js000066400000000000000000000006401315003545300171240ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var T = t, err = new T("My Error", "MY_ERROR", { errno: 123 }); a(err instanceof Error, true, "Instance of error"); a(err.constructor, Error, "Constructor"); a(err.name, "Error", "Name"); a(String(err), "Error: My Error", "String representation"); a(err.code, "MY_ERROR", "Code"); a(err.errno, 123, "Errno"); a(typeof err.stack, "string", "Stack trace"); }; es5-ext-0.10.30/test/error/is-error.js000066400000000000000000000010271315003545300173540ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(), false, "Undefined"); a(t(1), false, "Primitive"); a(t({}), false, "Objectt"); a(t({ toString: function () { return "[object Error]"; } }), false, "Fake error"); a(t(new Error()), true, "Error"); a(t(new EvalError()), true, "EvalError"); a(t(new RangeError()), true, "RangeError"); a(t(new ReferenceError()), true, "ReferenceError"); a(t(new SyntaxError()), true, "SyntaxError"); a(t(new TypeError()), true, "TypeError"); a(t(new URIError()), true, "URIError"); }; es5-ext-0.10.30/test/error/valid-error.js000066400000000000000000000002201315003545300200320ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var e = new Error(); a(t(e), e, "Error"); a.throws(function () { t({}); }, "Other"); }; es5-ext-0.10.30/test/function/000077500000000000000000000000001315003545300157505ustar00rootroot00000000000000es5-ext-0.10.30/test/function/#/000077500000000000000000000000001315003545300160725ustar00rootroot00000000000000es5-ext-0.10.30/test/function/#/compose.js000066400000000000000000000005021315003545300200720ustar00rootroot00000000000000"use strict"; var f = function (a, b) { return ["a", arguments.length, a, b]; } , g = function (a) { return ["b", arguments.length].concat(a); } , h = function (a) { return ["c", arguments.length].concat(a); }; module.exports = function (t, a) { a.deep(t.call(h, g, f)(1, 2), ["c", 1, "b", 1, "a", 2, 1, 2]); }; es5-ext-0.10.30/test/function/#/copy.js000066400000000000000000000010011315003545300173720ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var foo = "raz", bar = "dwa"; // eslint-disable-next-line func-names var fn = function marko (a, b) { return this + a + b + foo + bar; }; var result, o = {}; fn.prototype = o; fn.foo = "raz"; result = t.call(fn); a(result.length, fn.length, "Length"); a(result.name, fn.name, "Length"); a(result.call("marko", "el", "fe"), "markoelferazdwa", "Body"); a(result.prototype, fn.prototype, "Prototype"); a(result.foo, fn.foo, "Custom property"); }; es5-ext-0.10.30/test/function/#/curry.js000066400000000000000000000007631315003545300176020ustar00rootroot00000000000000"use strict"; var toArray = require("../../../array/to-array") , f = function () { return toArray(arguments); }; module.exports = function (t, a) { var x, y = {}, z; a.deep(t.call(f, 0, 1, 2)(3), [], "0 arguments"); x = t.call(f, 5, {}); a(x.length, 5, "Length #1"); z = x(1, 2); a(z.length, 3, "Length #2"); z = z(3, 4); a(z.length, 1, "Length #1"); a.deep(z(5, 6), [1, 2, 3, 4, 5], "Many arguments"); a.deep(x(8, 3)(y, 45)("raz", 6), [8, 3, y, 45, "raz"], "Many arguments #2"); }; es5-ext-0.10.30/test/function/#/lock.js000066400000000000000000000001721315003545300173600ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call(function () { return arguments.length; })(1, 2, 3), 0); }; es5-ext-0.10.30/test/function/#/not.js000066400000000000000000000005071315003545300172320ustar00rootroot00000000000000"use strict"; var identity = require("../../../function/identity") , noop = require("../../../function/noop"); module.exports = function (t, a) { a(t.call(identity)(""), true, "Falsy"); a(t.call(noop)(), true, "Undefined"); a(t.call(identity)({}), false, "Any object"); a(t.call(identity)(true), false, "True"); }; es5-ext-0.10.30/test/function/#/partial.js000066400000000000000000000003051315003545300200620ustar00rootroot00000000000000"use strict"; var toArray = require("../../../array/to-array") , f = function () { return toArray(arguments); }; module.exports = function (t, a) { a.deep(t.call(f, 1)(2, 3), [1, 2, 3]); }; es5-ext-0.10.30/test/function/#/spread.js000066400000000000000000000002531315003545300177060ustar00rootroot00000000000000"use strict"; var f = function (a, b) { return this[a] + this[b]; } , o = { a: 3, b: 4 }; module.exports = function (t, a) { a(t.call(f).call(o, ["a", "b"]), 7); }; es5-ext-0.10.30/test/function/#/to-string-tokens.js000066400000000000000000000015311315003545300216570ustar00rootroot00000000000000/* eslint no-eval: "off" */ "use strict"; module.exports = function (t, a) { a.deep( t.call(function (a, b) { return this[a] + this[b]; }), { args: "a, b", body: "\n\t\t\treturn this[a] + this[b];\n\t\t" } ); a.deep(t.call(function () {}), { args: "", body: "" }); // eslint-disable-next-line no-unused-vars a.deep(t.call(function (raz) {}), { args: "raz", body: "" }); a.deep( t.call(function () { Object(); }), { args: "", body: "\n\t\t\tObject();\n\t\t" } ); try { eval("(() => {})"); } catch (e) { // Non ES2015 env return; } a.deep(t.call(eval("(() => {})")), { args: "", body: "" }); a.deep(t.call(eval("((elo) => foo)")), { args: "elo", body: "foo" }); a.deep(t.call(eval("(elo => foo)")), { args: "elo", body: "foo" }); a.deep(t.call(eval("((elo, bar) => foo())")), { args: "elo, bar", body: "foo()" }); }; es5-ext-0.10.30/test/function/_define-length.js000066400000000000000000000005121315003545300211540ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var foo = "raz", bar = "dwa" , fn = function (a, b) { return this + a + b + foo + bar; } , result; result = t(fn, 3); a(result.call("marko", "el", "fe"), "markoelferazdwa", "Content"); a(result.length, 3, "Length"); a(result.prototype, fn.prototype, "Prototype"); }; es5-ext-0.10.30/test/function/constant.js000066400000000000000000000001211315003545300201310ustar00rootroot00000000000000"use strict"; var o = {}; module.exports = function (t, a) { a(t(o)(), o); }; es5-ext-0.10.30/test/function/identity.js000066400000000000000000000001171315003545300201360ustar00rootroot00000000000000"use strict"; var o = {}; module.exports = function (t, a) { a(t(o), o); }; es5-ext-0.10.30/test/function/invoke.js000066400000000000000000000002331315003545300175770ustar00rootroot00000000000000"use strict"; var constant = require("../../function/constant") , o = { b: constant("c") }; module.exports = function (t, a) { a(t("b")(o), "c"); }; es5-ext-0.10.30/test/function/is-arguments.js000066400000000000000000000004401315003545300207220ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var args, dummy; args = (function () { return arguments; }()); dummy = { 0: 1, 1: 2 }; Object.defineProperty(dummy, "length", { value: 2 }); a(t(args), true, "Arguments"); a(t(dummy), false, "Dummy"); a(t([]), false, "Array"); }; es5-ext-0.10.30/test/function/is-function.js000066400000000000000000000003501315003545300205420ustar00rootroot00000000000000"use strict"; var o = { call: Function.prototype.call, apply: Function.prototype.apply }; module.exports = function (t, a) { a(t(function () {}), true, "Function is function"); a(t(o), false, "Plain object is not function"); }; es5-ext-0.10.30/test/function/noop.js000066400000000000000000000001311315003545300172540ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(1, 2, 3), "undefined"); }; es5-ext-0.10.30/test/function/pluck.js000066400000000000000000000001461315003545300174250ustar00rootroot00000000000000"use strict"; var o = { foo: "bar" }; module.exports = function (t, a) { a(t("foo")(o), o.foo); }; es5-ext-0.10.30/test/function/valid-function.js000066400000000000000000000006041315003545300212300ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var f = function () {}; a(t(f), f, "Function"); // eslint-disable-next-line no-new-func f = new Function(); a(t(f), f, "Function"); a.throws(function () { t({}); }, "Object"); a.throws(function () { t(/re/); }, "RegExp"); a.throws(function () { t({ call: function () { return 20; } }); }, "Plain object"); }; es5-ext-0.10.30/test/global.js000066400000000000000000000001701315003545300157170ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.ok(t && typeof t === "object"); a(typeof t.Array, "function"); }; es5-ext-0.10.30/test/iterable/000077500000000000000000000000001315003545300157125ustar00rootroot00000000000000es5-ext-0.10.30/test/iterable/for-each.js000066400000000000000000000024021315003545300177320ustar00rootroot00000000000000"use strict"; var ArrayIterator = require("es6-iterator/array") , slice = Array.prototype.slice; module.exports = function (t, a) { var i = 0, x = ["raz", "dwa", "trzy"], y = {}; t(x, function () { a.deep(slice.call(arguments, 0, 1), [x[i]], "Array " + i + "#"); a(this, y, "Array: context: " + i++ + "#"); }, y); i = 0; t((function () { return arguments; }("raz", "dwa", "trzy")), function () { a.deep(slice.call(arguments, 0, 1), [x[i]], "Arguments" + i + "#"); a(this, y, "Arguments: context: " + i++ + "#"); }, y); i = 0; t({ 0: "raz", 1: "dwa", 2: "trzy", length: 3 }, function () { a.deep(slice.call(arguments, 0, 1), [x[i]], "Array-like" + i + "#"); a(this, y, "Array-like: context: " + i++ + "#"); }, y); i = 0; t(x = "foo", function () { a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#"); a(this, y, "Regular String: context: " + i++ + "#"); }, y); i = 0; x = ["r", "💩", "z"]; t("r💩z", function () { a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#"); a(this, y, "Unicode String: context: " + i++ + "#"); }, y); i = 0; t(new ArrayIterator(x), function () { a.deep(slice.call(arguments, 0, 1), [x[i]], "Iterator " + i + "#"); a(this, y, "Iterator: context: " + i++ + "#"); }, y); }; es5-ext-0.10.30/test/iterable/is.js000066400000000000000000000010531315003545300166620ustar00rootroot00000000000000"use strict"; var iteratorSymbol = require("es6-symbol").iterator; module.exports = function (t, a) { var x; a(t([]), true, "Array"); a(t(""), true, "String"); a(t((function () { return arguments; }())), true, "Arguments"); a(t({ length: 0 }), true, "List object"); a(t(function () {}), false, "Function"); a(t({}), false, "Plain object"); a(t(/raz/), false, "Regexp"); a(t(), false, "No argument"); a(t(null), false, "Null"); a(t(undefined), false, "Undefined"); x = {}; x[iteratorSymbol] = function () {}; a(t(x), true, "Iterable"); }; es5-ext-0.10.30/test/iterable/validate-object.js000066400000000000000000000013121315003545300213020ustar00rootroot00000000000000"use strict"; var iteratorSymbol = require("es6-symbol").iterator; module.exports = function (t, a) { var x; a.throws(function () { t(0); }, TypeError, "0"); a.throws(function () { t(false); }, TypeError, "false"); a.throws(function () { t(""); }, TypeError, "String"); a.throws(function () { t({}); }, TypeError, "Plain Object"); a.throws(function () { t(function () {}); }, TypeError, "Function"); a(t(x = new String("raz")), x, "String object"); // Jslint: ignore a(t(x = { length: 1 }), x, "Array like"); a.throws(function () { t(); }, TypeError, "Undefined"); a.throws(function () { t(null); }, TypeError, "null"); x = {}; x[iteratorSymbol] = function () {}; a(t(x), x, "Iterable"); }; es5-ext-0.10.30/test/iterable/validate.js000066400000000000000000000012461315003545300200440ustar00rootroot00000000000000"use strict"; var iteratorSymbol = require("es6-symbol").iterator; module.exports = function (t, a) { var x; a.throws(function () { t(0); }, TypeError, "0"); a.throws(function () { t(false); }, TypeError, "false"); a(t(""), "", "''"); a.throws(function () { t({}); }, TypeError, "Plain Object"); a.throws(function () { t(function () {}); }, TypeError, "Function"); a(t(x = new String("raz")), x, "String object"); // Jslint: ignore a(t(x = { length: 1 }), x, "Array like"); a.throws(function () { t(); }, TypeError, "Undefined"); a.throws(function () { t(null); }, TypeError, "null"); x = {}; x[iteratorSymbol] = function () {}; a(t(x), x, "Iterable"); }; es5-ext-0.10.30/test/json/000077500000000000000000000000001315003545300150745ustar00rootroot00000000000000es5-ext-0.10.30/test/json/safe-stringify.js000066400000000000000000000010621315003545300203630ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({ foo: "bar" }), JSON.stringify({ foo: "bar" })); a(t({ foo: { elo: 12 } }), "{\"foo\":{\"elo\":12}}"); a(t({ foo: { elo: 12, mel: { toJSON: function () { throw new Error("Nu nu!"); } } } }), "{\"foo\":{\"elo\":12}}"); a(t({ foo: { elo: 12 }, mel: { toJSON: function () { throw new Error("Nu nu!"); } } }), "{\"foo\":{\"elo\":12}}"); a(t({ foo: { elo: 12 }, mel: [ "raz", { toJSON: function () { throw new Error("Nu nu!"); } }, 0, 2 ] }), "{\"foo\":{\"elo\":12},\"mel\":[\"raz\",0,2]}"); }; es5-ext-0.10.30/test/math/000077500000000000000000000000001315003545300150545ustar00rootroot00000000000000es5-ext-0.10.30/test/math/_pack-ieee754.js000066400000000000000000000001431315003545300176320ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.deep(t(1.337, 8, 23), [63, 171, 34, 209]); }; es5-ext-0.10.30/test/math/_unpack-ieee754.js000066400000000000000000000001601315003545300201740ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.deep(t([63, 171, 34, 209], 8, 23), 1.3370000123977661); }; es5-ext-0.10.30/test/math/acosh/000077500000000000000000000000001315003545300161515ustar00rootroot00000000000000es5-ext-0.10.30/test/math/acosh/implement.js000066400000000000000000000002211315003545300204740ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/acosh/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/acosh/index.js000066400000000000000000000000631315003545300176150ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/acosh/is-implemented.js000066400000000000000000000001201315003545300214140ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/acosh/shim.js000066400000000000000000000003731315003545300174520ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(-1), NaN, "Negative"); a(t(0), NaN, "Zero"); a(t(0.5), NaN, "Below 1"); a(t(1), 0, "1"); a(t(2), 1.3169578969248166, "Other"); a(t(Infinity), Infinity, "Infinity"); }; es5-ext-0.10.30/test/math/asinh/000077500000000000000000000000001315003545300161565ustar00rootroot00000000000000es5-ext-0.10.30/test/math/asinh/implement.js000066400000000000000000000002211315003545300205010ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/asinh/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/asinh/index.js000066400000000000000000000000631315003545300176220ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/asinh/is-implemented.js000066400000000000000000000001201315003545300214210ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/asinh/shim.js000066400000000000000000000004101315003545300174470ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(0), 0, "Zero"); a(t(Infinity), Infinity, "Infinity"); a(t(-Infinity), -Infinity, "-Infinity"); a(t(-2), -1.4436354751788103, "Negative"); a(t(2), 1.4436354751788103, "Positive"); }; es5-ext-0.10.30/test/math/atanh/000077500000000000000000000000001315003545300161475ustar00rootroot00000000000000es5-ext-0.10.30/test/math/atanh/implement.js000066400000000000000000000002211315003545300204720ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/atanh/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/atanh/index.js000066400000000000000000000000631315003545300176130ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/atanh/is-implemented.js000066400000000000000000000001201315003545300214120ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/atanh/shim.js000066400000000000000000000004201315003545300174410ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(-2), NaN, "Less than -1"); a(t(2), NaN, "Greater than 1"); a(t(-1), -Infinity, "-1"); a(t(1), Infinity, "1"); a(t(0), 0, "Zero"); a(Math.round(t(0.5) * 1e15), 549306144334055, "Other"); }; es5-ext-0.10.30/test/math/cbrt/000077500000000000000000000000001315003545300160065ustar00rootroot00000000000000es5-ext-0.10.30/test/math/cbrt/implement.js000066400000000000000000000002201315003545300203300ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/cbrt/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/cbrt/index.js000066400000000000000000000000631315003545300174520ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/cbrt/is-implemented.js000066400000000000000000000001201315003545300212510ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/cbrt/shim.js000066400000000000000000000004001315003545300172760ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(0), 0, "Zero"); a(t(Infinity), Infinity, "Infinity"); a(t(-Infinity), -Infinity, "-Infinity"); a(t(-1), -1, "-1"); a(t(1), 1, "1"); a(t(2), 1.2599210498948732, "Ohter"); }; es5-ext-0.10.30/test/math/clz32/000077500000000000000000000000001315003545300160115ustar00rootroot00000000000000es5-ext-0.10.30/test/math/clz32/implement.js000066400000000000000000000002211315003545300203340ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/clz32/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/clz32/index.js000066400000000000000000000000631315003545300174550ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/clz32/is-implemented.js000066400000000000000000000001201315003545300212540ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/clz32/shim.js000066400000000000000000000004231315003545300173060ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(1), 31, "1"); a(t(1000), 22, "1000"); a(t(), 32, "No arguments"); a(t(Infinity), 32, "Infinity"); a(t(-Infinity), 32, "-Infinity"); a(t("foo"), 32, "String"); a(t(true), 31, "Boolean"); a(t(3.5), 30, "Float"); }; es5-ext-0.10.30/test/math/cosh/000077500000000000000000000000001315003545300160105ustar00rootroot00000000000000es5-ext-0.10.30/test/math/cosh/implement.js000066400000000000000000000002201315003545300203320ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/cosh/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/cosh/index.js000066400000000000000000000000631315003545300174540ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/cosh/is-implemented.js000066400000000000000000000001201315003545300212530ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/cosh/shim.js000066400000000000000000000005241315003545300173070ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(0), 1, "Zero"); a(t(Infinity), Infinity, "Infinity"); a(t(-Infinity), Infinity, "-Infinity"); a(t(1), 1.5430806348152437, "1"); a(t(Number.MAX_VALUE), Infinity); a(t(-Number.MAX_VALUE), Infinity); a(t(Number.MIN_VALUE), 1); a(t(-Number.MIN_VALUE), 1); }; es5-ext-0.10.30/test/math/expm1/000077500000000000000000000000001315003545300161065ustar00rootroot00000000000000es5-ext-0.10.30/test/math/expm1/implement.js000066400000000000000000000002211315003545300204310ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/expm1/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/expm1/index.js000066400000000000000000000000631315003545300175520ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/expm1/is-implemented.js000066400000000000000000000001201315003545300213510ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/expm1/shim.js000066400000000000000000000003331315003545300174030ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(0), 0, "Zero"); a(t(Infinity), Infinity, "Infinity"); a(t(-Infinity), -1, "-Infinity"); a(t(1).toFixed(15), "1.718281828459045", "1"); }; es5-ext-0.10.30/test/math/fround/000077500000000000000000000000001315003545300163515ustar00rootroot00000000000000es5-ext-0.10.30/test/math/fround/implement.js000066400000000000000000000002221315003545300206750ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/fround/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/fround/index.js000066400000000000000000000000631315003545300200150ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/fround/is-implemented.js000066400000000000000000000001201315003545300216140ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/fround/shim.js000066400000000000000000000003311315003545300176440ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(0), 0, "Zero"); a(t(Infinity), Infinity, "Infinity"); a(t(-Infinity), -Infinity, "-Infinity"); a(t(1.337), 1.3370000123977661, "1"); }; es5-ext-0.10.30/test/math/hypot/000077500000000000000000000000001315003545300162175ustar00rootroot00000000000000es5-ext-0.10.30/test/math/hypot/implement.js000066400000000000000000000002211315003545300205420ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/hypot/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/hypot/index.js000066400000000000000000000000631315003545300176630ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/hypot/is-implemented.js000066400000000000000000000001201315003545300214620ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/hypot/shim.js000066400000000000000000000004541315003545300175200ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(), 0, "No arguments"); a(t(0, -0, 0), 0, "Zeros"); a(t(4, NaN, Infinity), Infinity, "Infinity"); a(t(4, NaN, -Infinity), Infinity, "Infinity"); a(t(4, NaN, 34), NaN, "NaN"); a(t(3, 4), 5, "#1"); a(t(3, 4, 5), 7.0710678118654755, "#2"); }; es5-ext-0.10.30/test/math/imul/000077500000000000000000000000001315003545300160225ustar00rootroot00000000000000es5-ext-0.10.30/test/math/imul/implement.js000066400000000000000000000002201315003545300203440ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/imul/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/imul/index.js000066400000000000000000000000631315003545300174660ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/imul/is-implemented.js000066400000000000000000000001201315003545300212650ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/imul/shim.js000066400000000000000000000002711315003545300173200ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(), 0, "No arguments"); a(t(0, 0), 0, "Zeros"); a(t(2, 4), 8, "#1"); a(t(-1, 8), -8, "#2"); a(t(0xfffffffe, 5), -10, "#3"); }; es5-ext-0.10.30/test/math/log10/000077500000000000000000000000001315003545300157765ustar00rootroot00000000000000es5-ext-0.10.30/test/math/log10/implement.js000066400000000000000000000002211315003545300203210ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/log10/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/log10/index.js000066400000000000000000000000631315003545300174420ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/log10/is-implemented.js000066400000000000000000000001201315003545300212410ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/log10/shim.js000066400000000000000000000003471315003545300173000ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(-0.5), NaN, "Less than 0"); a(t(0), -Infinity, "0"); a(t(1), 0, "1"); a(t(Infinity), Infinity, "Infinity"); a(t(2), 0.3010299956639812, "Other"); }; es5-ext-0.10.30/test/math/log1p/000077500000000000000000000000001315003545300160765ustar00rootroot00000000000000es5-ext-0.10.30/test/math/log1p/implement.js000066400000000000000000000002211315003545300204210ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/log1p/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/log1p/index.js000066400000000000000000000000631315003545300175420ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/log1p/is-implemented.js000066400000000000000000000001201315003545300213410ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/log1p/shim.js000066400000000000000000000003521315003545300173740ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(-1.5), NaN, "Less than -1"); a(t(-1), -Infinity, "-1"); a(t(0), 0, "0"); a(t(Infinity), Infinity, "Infinity"); a(t(1), 0.6931471805599453, "Other"); }; es5-ext-0.10.30/test/math/log2/000077500000000000000000000000001315003545300157175ustar00rootroot00000000000000es5-ext-0.10.30/test/math/log2/implement.js000066400000000000000000000002201315003545300202410ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/log2/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/log2/index.js000066400000000000000000000000631315003545300173630ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/log2/is-implemented.js000066400000000000000000000001201315003545300211620ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/log2/shim.js000066400000000000000000000003641315003545300172200ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(-0.5), NaN, "Less than 0"); a(t(0), -Infinity, "0"); a(t(1), 0, "1"); a(t(Infinity), Infinity, "Infinity"); a(t(3).toFixed(15), "1.584962500721156", "Other"); }; es5-ext-0.10.30/test/math/sign/000077500000000000000000000000001315003545300160145ustar00rootroot00000000000000es5-ext-0.10.30/test/math/sign/implement.js000066400000000000000000000002201315003545300203360ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/sign/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/sign/index.js000066400000000000000000000000631315003545300174600ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/sign/is-implemented.js000066400000000000000000000001201315003545300212570ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/sign/shim.js000066400000000000000000000003741315003545300173160ustar00rootroot00000000000000"use strict"; var is = require("../../../object/is"); module.exports = function (t, a) { a(is(t(0), +0), true, "+0"); a(is(t(-0), -0), true, "-0"); a(t({}), NaN, true, "NaN"); a(t(-234234234), -1, "Negative"); a(t(234234234), 1, "Positive"); }; es5-ext-0.10.30/test/math/sinh/000077500000000000000000000000001315003545300160155ustar00rootroot00000000000000es5-ext-0.10.30/test/math/sinh/implement.js000066400000000000000000000002201315003545300203370ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/sinh/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/sinh/index.js000066400000000000000000000000631315003545300174610ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/sinh/is-implemented.js000066400000000000000000000001201315003545300212600ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/sinh/shim.js000066400000000000000000000005411315003545300173130ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(0), 0, "Zero"); a(t(Infinity), Infinity, "Infinity"); a(t(-Infinity), -Infinity, "-Infinity"); a(t(1), 1.1752011936438014, "1"); a(t(Number.MAX_VALUE), Infinity); a(t(-Number.MAX_VALUE), -Infinity); a(t(Number.MIN_VALUE), 5e-324); a(t(-Number.MIN_VALUE), -5e-324); }; es5-ext-0.10.30/test/math/tanh/000077500000000000000000000000001315003545300160065ustar00rootroot00000000000000es5-ext-0.10.30/test/math/tanh/implement.js000066400000000000000000000002201315003545300203300ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/tanh/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/tanh/index.js000066400000000000000000000000631315003545300174520ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/tanh/is-implemented.js000066400000000000000000000001201315003545300212510ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/tanh/shim.js000066400000000000000000000004011315003545300172770ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(0), 0, "Zero"); a(t(Infinity), 1, "Infinity"); a(t(-Infinity), -1, "-Infinity"); a(t(1), 0.7615941559557649, "1"); a(t(Number.MAX_VALUE), 1); a(t(-Number.MAX_VALUE), -1); }; es5-ext-0.10.30/test/math/trunc/000077500000000000000000000000001315003545300162075ustar00rootroot00000000000000es5-ext-0.10.30/test/math/trunc/implement.js000066400000000000000000000002211315003545300205320ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../math/trunc/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/math/trunc/index.js000066400000000000000000000000631315003545300176530ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/math/trunc/is-implemented.js000066400000000000000000000001201315003545300214520ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/math/trunc/shim.js000066400000000000000000000006421315003545300175070ustar00rootroot00000000000000"use strict"; var is = require("../../../object/is"); module.exports = function (t, a) { a(t({}), NaN, "NaN"); a(t(0), 0, "Zero"); a(t(Infinity), Infinity, "Infinity"); a(t(-Infinity), -Infinity, "-Infinity"); a(is(t(0.234), 0), true, "0"); a(is(t(-0.234), -0), true, "-0"); a(t(13.7), 13, "Positive #1"); a(t(12.3), 12, "Positive #2"); a(t(-12.3), -12, "Negative #1"); a(t(-14.7), -14, "Negative #2"); }; es5-ext-0.10.30/test/number/000077500000000000000000000000001315003545300154135ustar00rootroot00000000000000es5-ext-0.10.30/test/number/#/000077500000000000000000000000001315003545300155355ustar00rootroot00000000000000es5-ext-0.10.30/test/number/#/pad.js000066400000000000000000000002741315003545300166420ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call(78, 4), "0078"); a(t.call(65.12323, 4, 3), "0065.123", "Precision"); a(t.call(65, 4, 3), "0065.000", "Precision integer"); }; es5-ext-0.10.30/test/number/epsilon/000077500000000000000000000000001315003545300170645ustar00rootroot00000000000000es5-ext-0.10.30/test/number/epsilon/implement.js000066400000000000000000000002251315003545300214130ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../number/epsilon/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/number/epsilon/index.js000066400000000000000000000001151315003545300205260ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t, "number"); }; es5-ext-0.10.30/test/number/epsilon/is-implemented.js000066400000000000000000000001201315003545300223270ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/number/is-finite/000077500000000000000000000000001315003545300173025ustar00rootroot00000000000000es5-ext-0.10.30/test/number/is-finite/implement.js000066400000000000000000000002271315003545300216330ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../number/is-finite/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/number/is-finite/index.js000066400000000000000000000000631315003545300207460ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/number/is-finite/is-implemented.js000066400000000000000000000001201315003545300225450ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/number/is-finite/shim.js000066400000000000000000000002601315003545300205760ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(2), true, "Number"); a(t("23"), false, "Not numeric"); a(t(NaN), false, "NaN"); a(t(Infinity), false, "Infinity"); }; es5-ext-0.10.30/test/number/is-integer/000077500000000000000000000000001315003545300174615ustar00rootroot00000000000000es5-ext-0.10.30/test/number/is-integer/implement.js000066400000000000000000000002301315003545300220040ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../number/is-integer/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/number/is-integer/index.js000066400000000000000000000000631315003545300211250ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/number/is-integer/is-implemented.js000066400000000000000000000001201315003545300227240ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/number/is-integer/shim.js000066400000000000000000000003151315003545300207560ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(2), true, "Number"); a(t(2.34), false, "Float"); a(t("23"), false, "Not numeric"); a(t(NaN), false, "NaN"); a(t(Infinity), false, "Infinity"); }; es5-ext-0.10.30/test/number/is-nan/000077500000000000000000000000001315003545300166005ustar00rootroot00000000000000es5-ext-0.10.30/test/number/is-nan/implement.js000066400000000000000000000002241315003545300211260ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../number/is-nan/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/number/is-nan/index.js000066400000000000000000000000631315003545300202440ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/number/is-nan/is-implemented.js000066400000000000000000000001201315003545300220430ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/number/is-nan/shim.js000066400000000000000000000002121315003545300200710ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(2), false, "Number"); a(t({}), false, "Not numeric"); a(t(NaN), true, "NaN"); }; es5-ext-0.10.30/test/number/is-natural.js000066400000000000000000000003531315003545300200310ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(2), true, "Number"); a(t(-2), false, "Negative"); a(t(2.34), false, "Float"); a(t("23"), false, "Not numeric"); a(t(NaN), false, "NaN"); a(t(Infinity), false, "Infinity"); }; es5-ext-0.10.30/test/number/is-number.js000066400000000000000000000005271315003545300176560ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(0), true, "Zero"); a(t(NaN), true, "NaN"); a(t(Infinity), true, "Infinity"); a(t(12), true, "Number"); a(t(false), false, "Boolean"); a(t(new Date()), false, "Date"); a(t(new Number(2)), true, "Number object"); a(t("asdfaf"), false, "String"); a(t(""), false, "Empty String"); }; es5-ext-0.10.30/test/number/is-safe-integer/000077500000000000000000000000001315003545300203755ustar00rootroot00000000000000es5-ext-0.10.30/test/number/is-safe-integer/implement.js000066400000000000000000000002351315003545300227250ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../number/is-safe-integer/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/number/is-safe-integer/index.js000066400000000000000000000000631315003545300220410ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/number/is-safe-integer/is-implemented.js000066400000000000000000000001201315003545300236400ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/number/is-safe-integer/shim.js000066400000000000000000000004461315003545300216770ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(2), true, "Number"); a(t(2.34), false, "Float"); a(t(Math.pow(2, 53)), false, "Too large"); a(t(Math.pow(2, 53) - 1), true, "Maximum"); a(t("23"), false, "Not numeric"); a(t(NaN), false, "NaN"); a(t(Infinity), false, "Infinity"); }; es5-ext-0.10.30/test/number/max-safe-integer/000077500000000000000000000000001315003545300205475ustar00rootroot00000000000000es5-ext-0.10.30/test/number/max-safe-integer/implement.js000066400000000000000000000002361315003545300231000ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../number/max-safe-integer/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/number/max-safe-integer/index.js000066400000000000000000000001151315003545300222110ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t, "number"); }; es5-ext-0.10.30/test/number/max-safe-integer/is-implemented.js000066400000000000000000000001201315003545300240120ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/number/min-safe-integer/000077500000000000000000000000001315003545300205455ustar00rootroot00000000000000es5-ext-0.10.30/test/number/min-safe-integer/implement.js000066400000000000000000000002361315003545300230760ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../number/min-safe-integer/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/number/min-safe-integer/index.js000066400000000000000000000001151315003545300222070ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t, "number"); }; es5-ext-0.10.30/test/number/min-safe-integer/is-implemented.js000066400000000000000000000001201315003545300240100ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/number/to-integer.js000066400000000000000000000004051315003545300200250ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), 0, "NaN"); a(t(20), 20, "Positive integer"); a(t("-20"), -20, "String negative integer"); a(t(Infinity), Infinity, "Infinity"); a(t(15.343), 15, "Float"); a(t(-15.343), -15, "Negative float"); }; es5-ext-0.10.30/test/number/to-pos-integer.js000066400000000000000000000003701315003545300206250ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), 0, "NaN"); a(t(20), 20, "Positive integer"); a(t(-20), 0, "Negative integer"); a(t(Infinity), Infinity, "Infinity"); a(t(15.343), 15, "Float"); a(t(-15.343), 0, "Negative float"); }; es5-ext-0.10.30/test/number/to-uint32.js000066400000000000000000000003061315003545300175140ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), 0, "Not numeric"); a(t(-4), 4294967292, "Negative"); a(t(133432), 133432, "Positive"); a(t(8589934592), 0, "Greater than maximum"); }; es5-ext-0.10.30/test/object/000077500000000000000000000000001315003545300153715ustar00rootroot00000000000000es5-ext-0.10.30/test/object/_iterate.js000066400000000000000000000011771315003545300175310ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o = { raz: 1, dwa: 2, trzy: 3 } , o2 = {}, o3 = {}, arr, i = -1; t = t("forEach"); t(o, function (value, name, self, index) { o2[name] = value; a(index, ++i, "Index"); a(self, o, "Self"); a(this, o3, "Scope"); }, o3); a.deep(o2, o); arr = []; o2 = {}; i = -1; t(o, function (value, name, self, index) { arr.push(value); o2[name] = value; a(index, ++i, "Index"); a(self, o, "Self"); a(this, o3, "Scope"); }, o3, function (a, b) { return o[b] - o[a]; }); a.deep(o2, o, "Sort by Values: Content"); a.deep(arr, [3, 2, 1], "Sort by Values: Order"); }; es5-ext-0.10.30/test/object/assign/000077500000000000000000000000001315003545300166555ustar00rootroot00000000000000es5-ext-0.10.30/test/object/assign/implement.js000066400000000000000000000002241315003545300212030ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../object/assign/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/object/assign/index.js000066400000000000000000000000631315003545300203210ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/object/assign/is-implemented.js000066400000000000000000000001201315003545300221200ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/object/assign/shim.js000066400000000000000000000004031315003545300201500ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o1 = { a: 1, b: 2 } , o2 = { b: 3, c: 4 }; a(t(o1, o2), o1, "Returns self"); a.deep(o1, { a: 1, b: 3, c: 4 }, "Single: content"); a.deep(t({}, o1, o2), { a: 1, b: 3, c: 4 }, "Multi argument"); }; es5-ext-0.10.30/test/object/clear.js000066400000000000000000000004471315003545300170220ustar00rootroot00000000000000"use strict"; var isEmpty = require("../../object/is-empty"); module.exports = function (t, a) { var x = {}; a(t(x), x, "Empty: Returns same object"); a(isEmpty(x), true, "Empty: Not changed"); x.foo = "raz"; x.bar = "dwa"; a(t(x), x, "Same object"); a(isEmpty(x), true, "Emptied"); }; es5-ext-0.10.30/test/object/compact.js000066400000000000000000000005431315003545300173570ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = {}, y = {}, z; z = t(x); a.not(z, x, "Returns different object"); a.deep(z, {}, "Empty on empty"); x = { foo: "bar", a: 0, b: false, c: "", d: "0", e: null, bar: y, elo: undefined }; z = t(x); a.deep(z, { foo: "bar", a: 0, b: false, c: "", d: "0", bar: y }, "Cleared null values"); }; es5-ext-0.10.30/test/object/compare.js000066400000000000000000000005611315003545300173570ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var d = new Date(); a.ok(t(12, 3) > 0, "Numbers"); a.ok(t(2, 13) < 0, "Numbers #2"); a.ok(t("aaa", "aa") > 0, "Strings"); a.ok(t("aa", "ab") < 0, "Strings #2"); a(t("aa", "aa"), 0, "Strings same"); a(t(d, new Date(d.getTime())), 0, "Same date"); a.ok(t(d, new Date(d.getTime() + 1)) < 0, "Different date"); }; es5-ext-0.10.30/test/object/copy-deep.js000066400000000000000000000016371315003545300176230ustar00rootroot00000000000000"use strict"; var stringify = JSON.stringify; module.exports = function (t, a) { var o = { 1: "raz", 2: "dwa", 3: "trzy" } , no = t(o); a.not(no, o, "Return different object"); a(stringify(no), stringify(o), "Match properties and values"); o = { foo: "bar", raz: { dwa: "dwa", trzy: { cztery: "pięć", sześć: "siedem" }, osiem: {}, dziewięć: function () { } }, dziesięć: 10, jedenaście: ["raz", ["dwa", "trzy", { elo: "true" }]] }; o.raz.rec = o; no = t(o); a.not(o.raz, no.raz, "Deep"); a.not(o.raz.trzy, no.raz.trzy, "Deep #2"); a(stringify(o.raz.trzy), stringify(no.raz.trzy), "Deep content"); a(no.raz.rec, no, "Recursive"); a.not(o.raz.osiem, no.raz.osiem, "Empty object"); a(o.raz["dziewięć"], no.raz["dziewięć"], "Function"); a.not(o["jedenaście"], no["jedenaście"]); a.not(o["jedenaście"][1], no["jedenaście"][1]); a.not(o["jedenaście"][1][2], no["jedenaście"][1][2]); }; es5-ext-0.10.30/test/object/copy.js000066400000000000000000000012771315003545300167100ustar00rootroot00000000000000"use strict"; var stringify = JSON.stringify; module.exports = function (t, a) { var o = { 1: "raz", 2: "dwa", 3: "trzy" }, no = t(o); a.not(no, o, "Return different object"); a(stringify(no), stringify(o), "Match properties and values"); o = { foo: "bar", raz: { dwa: "dwa", trzy: { cztery: "pięć", sześć: "siedem" }, osiem: {}, dziewięć: function () {} }, dziesięć: 10 }; o.raz.rec = o; no = t(o); a(o.raz, no.raz, "Shallow"); a.deep(t(o, ["foo"]), { foo: "bar" }); a.deep(t(Object.create(o), ["foo"]), { foo: "bar" }); a.deep(t(o, ["foo", "habla"]), { foo: "bar" }); a.deep(t(o, ["foo", "habla"], { ensure: true }), { foo: "bar", habla: undefined }); }; es5-ext-0.10.30/test/object/count.js000066400000000000000000000004501315003545300170560ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), 0, "Empty"); a(t({ raz: 1, dwa: null, trzy: undefined, cztery: 0 }), 4, "Some properties"); a(t(Object.defineProperties({}, { raz: { value: "raz" }, dwa: { value: "dwa", enumerable: true } })), 1, "Some properties hidden"); }; es5-ext-0.10.30/test/object/create.js000066400000000000000000000012221315003545300171670ustar00rootroot00000000000000"use strict"; var setPrototypeOf = require("../../object/set-prototype-of") , getPrototypeOf = Object.getPrototypeOf; module.exports = function (t, a) { var x = {}, obj; a(getPrototypeOf(t(x)), x, "Normal object"); a(getPrototypeOf(t(null)), (setPrototypeOf && setPrototypeOf.nullPolyfill) || null, "Null"); a.h1("Properties"); a.h2("Normal object"); a(getPrototypeOf(obj = t(x, { foo: { value: "bar" } })), x, "Prototype"); a(obj.foo, "bar", "Property"); a.h2("Null"); a(getPrototypeOf(obj = t(null, { foo: { value: "bar2" } })), (setPrototypeOf && setPrototypeOf.nullPolyfill) || null, "Prototype"); a(obj.foo, "bar2", "Property"); }; es5-ext-0.10.30/test/object/ensure-array.js000066400000000000000000000013401315003545300203420ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var arr = []; a(t(arr), arr, "Array"); a(t(""), "", "String"); var args = (function () { return arguments; }()); a(t(args), args, "Arguments"); var arrayLike = { length: 0 }; a(t(arrayLike), arrayLike, "Array like"); a.throws( function () { t(function () {}); }, TypeError, "Function" ); a.throws( function () { t({}); }, TypeError, "Plain object" ); a.throws( function () { t(/raz/); }, TypeError, "Regexp" ); a.throws( function () { t(); }, TypeError, "No argument" ); a.throws( function () { t(null); }, TypeError, "Null" ); a.throws( function () { t(undefined); }, TypeError, "Undefined" ); }; es5-ext-0.10.30/test/object/ensure-finite-number.js000066400000000000000000000013471315003545300217770ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.throws( function () { t(undefined); }, TypeError, "Undefined" ); a.throws( function () { t(null); }, TypeError, "Null" ); a(t(0), 0, "Zero"); a.throws( function () { t(NaN); }, TypeError, "NaN" ); a.throws( function () { t(Infinity); }, TypeError, "Infinity" ); a(t(12), 12, "Number"); a(t(false), 0, "Boolean"); a(t(new Date(1000000)), 1000000, "Date"); a(t(new Number(2)), 2, "Number object"); a.throws( function () { t("asdfaf"); }, TypeError, "String" ); a(t(""), 0, "Empty String"); if (typeof Symbol === "function") { a.throws( function () { t(Symbol("test")); }, TypeError, "Symbol" ); } }; es5-ext-0.10.30/test/object/ensure-natural-number-value.js000066400000000000000000000007301315003545300232740ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.throws(function () { t(undefined); }, TypeError, "Undefined"); a.throws(function () { t(null); }, TypeError, "Null"); a(t(2), 2, "Number"); a.throws(function () { t(-2); }, TypeError, "Negative"); a.throws(function () { t(2.34); }, TypeError, "Float"); a(t("23"), 23, "Numeric string"); a.throws(function () { t(NaN); }, TypeError, "NaN"); a.throws(function () { t(Infinity); }, TypeError, "Infinity"); }; es5-ext-0.10.30/test/object/ensure-natural-number.js000066400000000000000000000006671315003545300221730ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.throws(function () { t(undefined); }, TypeError, "Undefined"); a(t(null), 0, "Null"); a(t(2), 2, "Number"); a.throws(function () { t(-2); }, TypeError, "Negative"); a.throws(function () { t(2.34); }, TypeError, "Float"); a(t("23"), 23, "Numeric string"); a.throws(function () { t(NaN); }, TypeError, "NaN"); a.throws(function () { t(Infinity); }, TypeError, "Infinity"); }; es5-ext-0.10.30/test/object/ensure-promise.js000066400000000000000000000011241315003545300207020ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var promise; a.throws(function () { t(); }, TypeError); a.throws(function () { t(null); }, TypeError); a.throws(function () { t("promise"); }, TypeError); a.throws(function () { t({}); }, TypeError); a.throws(function () { t(function () {}); }, TypeError); a.throws(function () { t({ then: {} }); }, TypeError); promise = { then: function () {} }; a(t(promise), promise); promise = function () {}; promise.then = {}; a.throws(function () { t(promise); }, TypeError); promise.then = function () {}; a(t(promise), promise); }; es5-ext-0.10.30/test/object/eq.js000066400000000000000000000004771315003545300163440ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o = {}; a(t(o, {}), false, "Different objects"); a(t(o, o), true, "Same objects"); a(t("1", "1"), true, "Same primitive"); a(t("1", 1), false, "Different primitive types"); a(t(NaN, NaN), true, "NaN"); a(t(0, 0), true, "0,0"); a(t(0, -0), true, "0,-0"); }; es5-ext-0.10.30/test/object/every.js000066400000000000000000000005341315003545300170630ustar00rootroot00000000000000"use strict"; var o = { 1: 1, 2: 2, 3: 3 }; module.exports = function (t, a) { var o2 = {}; t(o, function (value, name) { o2[name] = value; return true; }); a(JSON.stringify(o2), JSON.stringify(o), "Iterates"); a(t(o, function () { return true; }), true, "Succeeds"); a(t(o, function () { return false; }), false, "Fails"); }; es5-ext-0.10.30/test/object/filter.js000066400000000000000000000002411315003545300172110ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.deep(t({ 1: 1, 2: 2, 3: 3, 4: 4 }, function (value) { return Boolean(value % 2); }), { 1: 1, 3: 3 }); }; es5-ext-0.10.30/test/object/find-key.js000066400000000000000000000006371315003545300174430ustar00rootroot00000000000000"use strict"; var o = { 1: 1, 2: 2, 3: 3 }; module.exports = function (t, a) { var o2 = {}, i = 0; t(o, function (value, name) { o2[name] = value; return false; }); a(JSON.stringify(o2), JSON.stringify(o), "Iterates"); a(t(o, function () { ++i; return true; }), "1", "Finds"); a(i, 1, "Stops iteration after condition is met"); a(t(o, function () { return false; }), undefined, "Fails"); }; es5-ext-0.10.30/test/object/find.js000066400000000000000000000006351315003545300166530ustar00rootroot00000000000000"use strict"; var o = { 1: 1, 2: 2, 3: 3 }; module.exports = function (t, a) { var o2 = {}, i = 0; t(o, function (value, name) { o2[name] = value; return false; }); a(JSON.stringify(o2), JSON.stringify(o), "Iterates"); a(t(o, function () { ++i; return true; }), 1, "Finds"); a(i, 1, "Stops iteration after condition is met"); a(t(o, function () { return false; }), undefined, "Fails"); }; es5-ext-0.10.30/test/object/first-key.js000066400000000000000000000005351315003545300176470ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = {}, y = Object.create(null); a(t(x), null, "Normal: Empty"); a(t(y), null, "Null extension: Empty"); x.foo = "raz"; x.bar = 343; a(["foo", "bar"].indexOf(t(x)) !== -1, true, "Normal"); y.elo = "foo"; y.mar = "wew"; a(["elo", "mar"].indexOf(t(y)) !== -1, true, "Null extension"); }; es5-ext-0.10.30/test/object/flatten.js000066400000000000000000000002211315003545300173570ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.deep(t({ a: { aa: 1, ab: 2 }, b: { ba: 3, bb: 4 } }), { aa: 1, ab: 2, ba: 3, bb: 4 }); }; es5-ext-0.10.30/test/object/for-each.js000066400000000000000000000003101315003545300174050ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o = { raz: 1, dwa: 2, trzy: 3 } , o2 = {}; a(t(o, function (value, name) { o2[name] = value; }), undefined, "Return"); a.deep(o2, o); }; es5-ext-0.10.30/test/object/get-property-names.js000066400000000000000000000005451315003545300214750ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o = { first: 1, second: 4 }, r1, r2; o = Object.create(o, { third: { value: null } }); o.first = 2; o = Object.create(o); o.fourth = 3; r1 = t(o); r1.sort(); r2 = ["first", "second", "third", "fourth"] .concat(Object.getOwnPropertyNames(Object.prototype)); r2.sort(); a.deep(r1, r2); }; es5-ext-0.10.30/test/object/is-array-like.js000066400000000000000000000006431315003545300204030ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t([]), true, "Array"); a(t(""), true, "String"); a(t((function () { return arguments; }())), true, "Arguments"); a(t({ length: 0 }), true, "List object"); a(t(function () {}), false, "Function"); a(t({}), false, "Plain object"); a(t(/raz/), false, "Regexp"); a(t(), false, "No argument"); a(t(null), false, "Null"); a(t(undefined), false, "Undefined"); }; es5-ext-0.10.30/test/object/is-callable.js000066400000000000000000000002631315003545300201000ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(function () {}), true, "Function"); a(t({}), false, "Object"); a(t(), false, "Undefined"); a(t(null), false, "Null"); }; es5-ext-0.10.30/test/object/is-copy-deep.js000066400000000000000000000024531315003545300202310ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x, y; a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 3 }), true, "Same"); a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 4 }), false, "Different property value"); a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2 }), false, "Property only in source"); a(t({ 1: 1, 2: 2 }, { 1: 1, 2: 2, 3: 4 }), false, "Property only in target"); a(t("raz", "dwa"), false, "String: diff"); a(t("raz", "raz"), true, "String: same"); a(t("32", 32), false, "String & Number"); a(t([1, "raz", true], [1, "raz", true]), true, "Array: same"); a(t([1, "raz", undefined], [1, "raz"]), false, "Array: diff"); a(t(["foo"], ["one"]), false, "Array: One value comparision"); x = { foo: { bar: { mar: {} } } }; y = { foo: { bar: { mar: {} } } }; a(t(x, y), true, "Deep"); a(t({ foo: { bar: { mar: "foo" } } }, { foo: { bar: { mar: {} } } }), false, "Deep: false"); x = { foo: { bar: { mar: {} } } }; x.rec = { foo: x }; y = { foo: { bar: { mar: {} } } }; y.rec = { foo: x }; a(t(x, y), true, "Object: Infinite Recursion: Same #1"); x.rec.foo = y; a(t(x, y), true, "Object: Infinite Recursion: Same #2"); x.rec.foo = x; y.rec.foo = y; a(t(x, y), true, "Object: Infinite Recursion: Same #3"); y.foo.bar.mar = "raz"; a(t(x, y), false, "Object: Infinite Recursion: Diff"); }; es5-ext-0.10.30/test/object/is-copy.js000066400000000000000000000011641315003545300173140ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 3 }), true, "Same"); a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 4 }), false, "Different property value"); a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2 }), false, "Property only in source"); a(t({ 1: 1, 2: 2 }, { 1: 1, 2: 2, 3: 4 }), false, "Property only in target"); a(t("raz", "dwa"), false, "String: diff"); a(t("raz", "raz"), true, "String: same"); a(t("32", 32), false, "String & Number"); a(t([1, "raz", true], [1, "raz", true]), true, "Array: same"); a(t([1, "raz", undefined], [1, "raz"]), false, "Array: diff"); }; es5-ext-0.10.30/test/object/is-empty.js000066400000000000000000000001641315003545300174770ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), true, "Empty"); a(t({ 1: 1 }), false, "Not empty"); }; es5-ext-0.10.30/test/object/is-finite-number.js000066400000000000000000000007511315003545300211070ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(undefined), false, "Undefined"); a(t(null), false, "Null"); a(t(0), true, "Zero"); a(t(NaN), false, "NaN"); a(t(Infinity), false, "Infinity"); a(t(12), true, "Number"); a(t(false), true, "Boolean"); a(t(new Date()), true, "Date"); a(t(new Number(2)), true, "Number object"); a(t("asdfaf"), false, "String"); a(t(""), true, "Empty String"); if (typeof Symbol === "function") { a(t(Symbol("test")), false, "Symbol"); } }; es5-ext-0.10.30/test/object/is-number-value.js000066400000000000000000000007501315003545300207440ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(undefined), false, "Undefined"); a(t(null), false, "Null"); a(t(0), true, "Zero"); a(t(NaN), false, "NaN"); a(t(Infinity), true, "Infinity"); a(t(12), true, "Number"); a(t(false), true, "Boolean"); a(t(new Date()), true, "Date"); a(t(new Number(2)), true, "Number object"); a(t("asdfaf"), false, "String"); a(t(""), true, "Empty String"); if (typeof Symbol === "function") { a(t(Symbol("test")), false, "Symbol"); } }; es5-ext-0.10.30/test/object/is-object.js000066400000000000000000000005601315003545300176070ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t("arar"), false, "String"); a(t(12), false, "Number"); a(t(true), false, "Boolean"); a(t(null), false, "Null"); a(t(new Date()), true, "Date"); a(t(new String("raz")), true, "String object"); a(t({}), true, "Plain object"); a(t(/a/), true, "Regular expression"); a(t(function () {}), true, "Function"); }; es5-ext-0.10.30/test/object/is-plain-object.js000066400000000000000000000014241315003545300207100ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t({}), true, "Empty {} is plain object"); a(t({ a: true }), true, "{} with property is plain object"); a(t({ prototype: 1, constructor: 2, __proto__: 3 }), true, "{} with any property keys is plain object"); a(t(null), false, "Null is not plain object"); a(t("string"), false, "Primitive is not plain object"); a(t(function () {}), false, "Function is not plain object"); a(t(Object.create({})), false, "Object whose prototype is not Object.prototype is not plain object"); a(t(Object.create(Object.prototype)), true, "Object whose prototype is Object.prototype is plain object"); a(t(Object.create(null)), true, "Object whose prototype is null is plain object"); a(t(Object.prototype), false, "Object.prototype"); }; es5-ext-0.10.30/test/object/is-promise.js000066400000000000000000000005571315003545300200250ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var promise; a(t(), false); a(t(null), false); a(t("promise"), false); a(t({}), false); a(t(function () {}), false); a(t({ then: {} }), false); a(t({ then: function () {} }), true); promise = function () {}; promise.then = {}; a(t(promise), false); promise.then = function () {}; a(t(promise), true); }; es5-ext-0.10.30/test/object/is-value.js000066400000000000000000000003761315003545300174620ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(), false); a(t(undefined), false); a(t(null), false); a(t(NaN), true); a(t(0), true); a(t(false), true); a(t("null"), true); a(t(""), true); a(t({}), true); a(t(Object.prototype), true); }; es5-ext-0.10.30/test/object/is.js000066400000000000000000000005001315003545300163350ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o = {}; a(t(o, {}), false, "Different objects"); a(t(o, o), true, "Same objects"); a(t("1", "1"), true, "Same primitive"); a(t("1", 1), false, "Different primitive types"); a(t(NaN, NaN), true, "NaN"); a(t(0, 0), true, "0,0"); a(t(0, -0), false, "0,-0"); }; es5-ext-0.10.30/test/object/key-of.js000066400000000000000000000005251315003545300171230ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x = {}, y = {} , o = { foo: "bar", raz: x, trzy: "cztery", five: "6" }; a(t(o, "bar"), "foo", "First property"); a(t(o, 6), null, "Primitive that's not there"); a(t(o, x), "raz", "Object"); a(t(o, y), null, "Object that's not there"); a(t(o, "6"), "five", "Last property"); }; es5-ext-0.10.30/test/object/keys/000077500000000000000000000000001315003545300163445ustar00rootroot00000000000000es5-ext-0.10.30/test/object/keys/implement.js000066400000000000000000000002221315003545300206700ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../object/keys/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/object/keys/index.js000066400000000000000000000000631315003545300200100ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/object/keys/is-implemented.js000066400000000000000000000001201315003545300216070ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/object/keys/shim.js000066400000000000000000000004151315003545300176420ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.deep(t({ foo: "bar" }), ["foo"], "Object"); a.deep(t("raz"), ["0", "1", "2"], "Primitive"); a.throws(function () { t(); }, TypeError, "Undefined"); a.throws(function () { t(null); }, TypeError, "Undefined"); }; es5-ext-0.10.30/test/object/map-keys.js000066400000000000000000000002551315003545300174570ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.deep(t({ 1: 1, 2: 2, 3: 3 }, function (key, value) { return "x" + (key + value); }), { x11: 1, x22: 2, x33: 3 }); }; es5-ext-0.10.30/test/object/map.js000066400000000000000000000003561315003545300165100ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var obj = { 1: 1, 2: 2, 3: 3 }; a.deep(t(obj, function (value, key, context) { a(context, obj, "Context argument"); return (value + 1) + key; }), { 1: "21", 2: "32", 3: "43" }); }; es5-ext-0.10.30/test/object/mixin-prototypes.js000066400000000000000000000033341315003545300213040ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o, o1, o2, x, y = {}, z = {}; o = { inherited: true, visible: 23 }; o1 = Object.create(o); o1.visible = z; o1.nonremovable = "raz"; Object.defineProperty(o1, "hidden", { value: "hidden" }); o2 = Object.defineProperties({}, { nonremovable: { value: y } }); o2.other = "other"; try { t(o2, o1); } catch (ignore) {} a(o2.visible, z, "Enumerable"); a(o1.hidden, "hidden", "Not Enumerable"); a(o2.propertyIsEnumerable("visible"), true, "Enumerable is enumerable"); a(o2.propertyIsEnumerable("hidden"), false, "Not enumerable is not enumerable"); a(o2.inherited, true, "Extend deep"); a(o2.nonremovable, y, "Do not overwrite non configurable"); a(o2.other, "other", "Own kept"); x = {}; t(x, o2); try { t(x, o1); } catch (ignore) {} a(x.visible, z, "Enumerable"); a(x.hidden, "hidden", "Not Enumerable"); a(x.propertyIsEnumerable("visible"), true, "Enumerable is enumerable"); a(x.propertyIsEnumerable("hidden"), false, "Not enumerable is not enumerable"); a(x.inherited, true, "Extend deep"); a(x.nonremovable, y, "Ignored non configurable"); a(x.other, "other", "Other"); x.visible = 3; a(x.visible, 3, "Writable is writable"); x = {}; t(x, o1); a.throws(function () { x.hidden = 3; }, "Not writable is not writable"); x = {}; t(x, o1); delete x.visible; a.ok(!x.hasOwnProperty("visible"), "Configurable is configurable"); x = {}; t(x, o1); a.throws(function () { delete x.hidden; }, "Not configurable is not configurable"); x = Object.defineProperty({}, "foo", { configurable: false, writable: true, enumerable: false, value: "bar" }); try { t(x, { foo: "lorem" }); } catch (ignore) {} a(x.foo, "bar", "Writable, not enumerable"); }; es5-ext-0.10.30/test/object/mixin.js000066400000000000000000000035501315003545300170560ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o, o1, o2, x, y = {}, z = {}; o = { inherited: true }; o1 = Object.create(o); o1.visible = z; o1.nonremovable = "raz"; Object.defineProperty(o1, "hidden", { value: "hidden" }); o2 = Object.defineProperties({}, { nonremovable: { value: y } }); o2.other = "other"; try { t(o2, o1); } catch (ignore) {} a(o2.visible, z, "Enumerable"); a(o1.hidden, "hidden", "Not Enumerable"); a(o2.propertyIsEnumerable("visible"), true, "Enumerable is enumerable"); a(o2.propertyIsEnumerable("hidden"), false, "Not enumerable is not enumerable"); a(o2.hasOwnProperty("inherited"), false, "Extend only own"); a(o2.inherited, undefined, "Extend ony own: value"); a(o2.nonremovable, y, "Do not overwrite non configurable"); a(o2.other, "other", "Own kept"); x = {}; t(x, o2); try { t(x, o1); } catch (ignore) {} a(x.visible, z, "Enumerable"); a(x.hidden, "hidden", "Not Enumerable"); a(x.propertyIsEnumerable("visible"), true, "Enumerable is enumerable"); a(x.propertyIsEnumerable("hidden"), false, "Not enumerable is not enumerable"); a(x.hasOwnProperty("inherited"), false, "Extend only own"); a(x.inherited, undefined, "Extend ony own: value"); a(x.nonremovable, y, "Ignored non configurable"); a(x.other, "other", "Other"); x.visible = 3; a(x.visible, 3, "Writable is writable"); x = {}; t(x, o1); a.throws(function () { x.hidden = 3; }, "Not writable is not writable"); x = {}; t(x, o1); delete x.visible; a.ok(!x.hasOwnProperty("visible"), "Configurable is configurable"); x = {}; t(x, o1); a.throws(function () { delete x.hidden; }, "Not configurable is not configurable"); x = Object.defineProperty({}, "foo", { configurable: false, writable: true, enumerable: false, value: "bar" }); try { t(x, { foo: "lorem" }); } catch (ignore) {} a(x.foo, "bar", "Writable, not enumerable"); }; es5-ext-0.10.30/test/object/normalize-options.js000066400000000000000000000015751315003545300214300ustar00rootroot00000000000000"use strict"; var create = Object.create, defineProperty = Object.defineProperty; module.exports = function (t, a) { var x = { foo: "raz", bar: "dwa" }, y; y = t(x); a.not(y, x, "Returns copy"); a.deep(y, x, "Plain"); x = { raz: "one", dwa: "two" }; defineProperty(x, "get", { configurable: true, enumerable: true, get: function () { return this.dwa; } }); x = create(x); x.trzy = "three"; x.cztery = "four"; x = create(x); x.dwa = "two!"; x.trzy = "three!"; x.piec = "five"; x.szesc = "six"; a.deep(t(x), { raz: "one", dwa: "two!", trzy: "three!", cztery: "four", piec: "five", szesc: "six", get: "two!" }, "Deep object"); a.deep(t({ marko: "raz", raz: "foo" }, x, { szesc: "elo", siedem: "bibg" }), { marko: "raz", raz: "one", dwa: "two!", trzy: "three!", cztery: "four", piec: "five", szesc: "elo", siedem: "bibg", get: "two!" }, "Multiple options"); }; es5-ext-0.10.30/test/object/primitive-set.js000066400000000000000000000007031315003545300205300ustar00rootroot00000000000000"use strict"; var getPropertyNames = require("../../object/get-property-names") , isPlainObject = require("../../object/is-plain-object"); module.exports = function (t, a) { var x = t(); a(isPlainObject(x), true, "Plain object"); a.deep(getPropertyNames(x), [], "No properties"); x.foo = "bar"; a.deep(getPropertyNames(x), ["foo"], "Extensible"); a.deep(t("raz", "dwa", 3), { raz: true, dwa: true, 3: true }, "Arguments handling"); }; es5-ext-0.10.30/test/object/safe-traverse.js000066400000000000000000000011361315003545300204770ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var obj = { foo: { bar: { lorem: 12 } } }; a(t(obj), obj, "No props"); a(t(obj, "foo"), obj.foo, "One"); a(t(obj, "raz"), undefined, "One: Fail"); a(t(obj, "foo", "bar"), obj.foo.bar, "Two"); a(t(obj, "dsd", "raz"), undefined, "Two: Fail #1"); a(t(obj, "foo", "raz"), undefined, "Two: Fail #2"); a(t(obj, "foo", "bar", "lorem"), obj.foo.bar.lorem, "Three"); a(t(obj, "dsd", "raz", "fef"), undefined, "Three: Fail #1"); a(t(obj, "foo", "raz", "asdf"), undefined, "Three: Fail #2"); a(t(obj, "foo", "bar", "asd"), undefined, "Three: Fail #3"); }; es5-ext-0.10.30/test/object/serialize.js000066400000000000000000000023471315003545300177240ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var fn = function (raz, dwa) { return raz + dwa; }; a(t(), "undefined", "Undefined"); a(t(null), "null", "Null"); a(t(null), "null", "Null"); a(t("raz"), "\"raz\"", "String"); a(t("raz\"ddwa\ntrzy"), "\"raz\\\"ddwa\\ntrzy\"", "String with escape"); a(t(false), "false", "Booelean"); a(t(fn), String(fn), "Function"); a(t(/raz-dwa/g), "/raz-dwa/g", "RegExp"); a(t(new Date(1234567)), "new Date(1234567)", "Date"); a(t([]), "[]", "Empty array"); a( t([undefined, false, null, "raz\"ddwa\ntrzy", fn, /raz/g, new Date(1234567), ["foo"]]), "[undefined,false,null,\"raz\\\"ddwa\\ntrzy\"," + String(fn) + ",/raz/g,new Date(1234567),[\"foo\"]]", "Rich Array" ); a(t({}), "{}", "Empty object"); a( t({ raz: undefined, dwa: false, trzy: null, cztery: "raz\"ddwa\ntrzy", piec: fn, szesc: /raz/g, siedem: new Date(1234567), osiem: ["foo", 32], dziewiec: { foo: "bar", dwa: 343 } }), "{\"raz\":undefined,\"dwa\":false,\"trzy\":null,\"cztery\":\"raz\\\"ddwa\\ntrzy\"," + "\"piec\":" + String(fn) + ",\"szesc\":/raz/g,\"siedem\":new Date(1234567),\"osiem\":[\"foo\",32]," + "\"dziewiec\":{\"foo\":\"bar\",\"dwa\":343}}", "Rich object" ); }; es5-ext-0.10.30/test/object/set-prototype-of/000077500000000000000000000000001315003545300206315ustar00rootroot00000000000000es5-ext-0.10.30/test/object/set-prototype-of/implement.js000066400000000000000000000003321315003545300231570ustar00rootroot00000000000000"use strict"; var create = require("../../../object/create") , isImplemented = require("../../../object/set-prototype-of/is-implemented"); module.exports = function (a) { a(isImplemented(create), true); }; es5-ext-0.10.30/test/object/set-prototype-of/index.js000066400000000000000000000012571315003545300223030ustar00rootroot00000000000000"use strict"; var create = require("../../../object/create") , getPrototypeOf = Object.getPrototypeOf; module.exports = function (t, a) { var x = {}, y = {}; if (t === null) return; a(t(x, y), x, "Return self object"); a(getPrototypeOf(x), y, "Object"); a.throws(function () { t(x); }, TypeError, "Undefined"); a.throws(function () { t("foo"); }, TypeError, "Primitive"); a(getPrototypeOf(t(x, null)), t.nullPolyfill || null, "Null"); x = create(null); a.h1("Change null prototype"); a(t(x, y), x, "Result"); a(getPrototypeOf(x), y, "Prototype"); a.h1("Set null prototype"); a(t(y, null), y, "Result"); a(getPrototypeOf(y), t.nullPolyfill || null, "Prototype"); }; es5-ext-0.10.30/test/object/set-prototype-of/is-implemented.js000066400000000000000000000001201315003545300240740ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/object/set-prototype-of/shim.js000066400000000000000000000012571315003545300221340ustar00rootroot00000000000000"use strict"; var create = require("../../../object/create") , getPrototypeOf = Object.getPrototypeOf; module.exports = function (t, a) { var x = {}, y = {}; if (t === null) return; a(t(x, y), x, "Return self object"); a(getPrototypeOf(x), y, "Object"); a.throws(function () { t(x); }, TypeError, "Undefined"); a.throws(function () { t("foo"); }, TypeError, "Primitive"); a(getPrototypeOf(t(x, null)), t.nullPolyfill || null, "Null"); x = create(null); a.h1("Change null prototype"); a(t(x, y), x, "Result"); a(getPrototypeOf(x), y, "Prototype"); a.h1("Set null prototype"); a(t(y, null), y, "Result"); a(getPrototypeOf(y), t.nullPolyfill || null, "Prototype"); }; es5-ext-0.10.30/test/object/some.js000066400000000000000000000006371315003545300167000ustar00rootroot00000000000000"use strict"; var o = { 1: 1, 2: 2, 3: 3 }; module.exports = function (t, a) { var o2 = {}, i = 0; t(o, function (value, name) { o2[name] = value; return false; }); a(JSON.stringify(o2), JSON.stringify(o), "Iterates"); a(t(o, function () { ++i; return true; }), true, "Succeeds"); a(i, 1, "Stops iteration after condition is met"); a(t(o, function () { return false; }), false, "Fails"); }; es5-ext-0.10.30/test/object/to-array.js000066400000000000000000000005271315003545300174710ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var o = { 1: 1, 2: 2, 3: 3 }, o1 = {} , o2 = t(o, function (value, name, self) { a(self, o, "Self"); a(this, o1, "Scope"); return value + Number(name); }, o1); a.deep(o2, [2, 4, 6]); t(o).sort().forEach(function (item) { a.deep(item, [item[0], o[item[0]]], "Default"); }); }; es5-ext-0.10.30/test/object/unserialize.js000066400000000000000000000022761315003545300202700ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var fn = function (raz, dwa) { return raz + dwa; }; a(t("undefined"), undefined, "Undefined"); a(t("null"), null, "Null"); a(t("\"raz\""), "raz", "String"); a(t("\"raz\\\"ddwa\\ntrzy\""), "raz\"ddwa\ntrzy", "String with escape"); a(t("false"), false, "Booelean"); a(String(t(String(fn))), String(fn), "Function"); a.deep(t("/raz-dwa/g"), /raz-dwa/g, "RegExp"); a.deep(t("new Date(1234567)"), new Date(1234567), "Date"); a.deep(t("[]"), [], "Empty array"); a.deep( t("[undefined,false,null,\"raz\\\"ddwa\\ntrzy\",/raz/g,new Date(1234567),[\"foo\"]]"), [undefined, false, null, "raz\"ddwa\ntrzy", /raz/g, new Date(1234567), ["foo"]], "Rich Array" ); a.deep(t("{}"), {}, "Empty object"); a.deep( t( "{\"raz\":undefined,\"dwa\":false,\"trzy\":null,\"cztery\":\"raz\\\"ddwa\\ntrzy\"," + "\"szesc\":/raz/g,\"siedem\":new Date(1234567),\"osiem\":[\"foo\",32]," + "\"dziewiec\":{\"foo\":\"bar\",\"dwa\":343}}" ), { raz: undefined, dwa: false, trzy: null, cztery: "raz\"ddwa\ntrzy", szesc: /raz/g, siedem: new Date(1234567), osiem: ["foo", 32], dziewiec: { foo: "bar", dwa: 343 } }, "Rich object" ); }; es5-ext-0.10.30/test/object/valid-callable.js000066400000000000000000000002351315003545300205630ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var f = function () {}; a(t(f), f, "Function"); a.throws(function () { t({}); }, "Not Function"); }; es5-ext-0.10.30/test/object/valid-object.js000066400000000000000000000010001315003545300202610ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x; a.throws(function () { t(0); }, TypeError, "0"); a.throws(function () { t(false); }, TypeError, "false"); a.throws(function () { t(""); }, TypeError, "''"); a(t(x = {}), x, "Object"); a(t(x = function () {}), x, "Function"); a(t(x = new String("raz")), x, "String object"); // Jslint: ignore a(t(x = new Date()), x, "Date"); a.throws(function () { t(); }, TypeError, "Undefined"); a.throws(function () { t(null); }, TypeError, "null"); }; es5-ext-0.10.30/test/object/valid-value.js000066400000000000000000000005171315003545300201430ustar00rootroot00000000000000"use strict"; var numIsNaN = require("../../number/is-nan"); module.exports = function (t, a) { var x; a(t(0), 0, "0"); a(t(false), false, "false"); a(t(""), "", "''"); a(numIsNaN(t(NaN)), true, "NaN"); a(t(x = {}), x, "{}"); a.throws(function () { t(); }, "Undefined"); a.throws(function () { t(null); }, "null"); }; es5-ext-0.10.30/test/object/validate-array-like-object.js000066400000000000000000000011151315003545300230200ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x; a.throws(function () { t(0); }, TypeError, "0"); a.throws(function () { t(false); }, TypeError, "false"); a.throws(function () { t(""); }, TypeError, "String"); a.throws(function () { t({}); }, TypeError, "Plain Object"); a.throws(function () { t(function () {}); }, TypeError, "Function"); a(t(x = new String("raz")), x, "String object"); // Jslint: ignore a(t(x = { length: 1 }), x, "Array like"); a.throws(function () { t(); }, TypeError, "Undefined"); a.throws(function () { t(null); }, TypeError, "null"); }; es5-ext-0.10.30/test/object/validate-array-like.js000066400000000000000000000010511315003545300215530ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x; a.throws(function () { t(0); }, TypeError, "0"); a.throws(function () { t(false); }, TypeError, "false"); a(t(""), "", "''"); a.throws(function () { t({}); }, TypeError, "Plain Object"); a.throws(function () { t(function () {}); }, TypeError, "Function"); a(t(x = new String("raz")), x, "String object"); // Jslint: ignore a(t(x = { length: 1 }), x, "Array like"); a.throws(function () { t(); }, TypeError, "Undefined"); a.throws(function () { t(null); }, TypeError, "null"); }; es5-ext-0.10.30/test/object/validate-stringifiable-value.js000066400000000000000000000010101315003545300234420ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x; a.throws(function () { t(); }, TypeError, "Undefined"); a.throws(function () { t(null); }, TypeError, "Null"); a(t(0), "0"); a(t(false), "false"); a(t(""), ""); a(t({}), String({}), "Object"); a(t(x = function () {}), String(x), "Function"); a(t(x = new String("raz")), String(x), "String object"); // Jslint: ignore a(t(x = new Date()), String(x), "Date"); a.throws(function () { t(Object.create(null)); }, TypeError, "Null prototype object"); }; es5-ext-0.10.30/test/object/validate-stringifiable.js000066400000000000000000000007251315003545300223440ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var x; a(t(), "undefined", "Undefined"); a(t(null), "null", "Null"); a(t(0), "0"); a(t(false), "false"); a(t(""), ""); a(t({}), String({}), "Object"); a(t(x = function () {}), String(x), "Function"); a(t(x = new String("raz")), String(x), "String object"); // Jslint: ignore a(t(x = new Date()), String(x), "Date"); a.throws(function () { t(Object.create(null)); }, TypeError, "Null prototype object"); }; es5-ext-0.10.30/test/optional-chaining.js000066400000000000000000000007321315003545300200660ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var obj = { foo: { bar: "elo", par: null } }; a(t(), undefined); a(t(null), null); a(t(obj), obj); a(t(obj, "foo"), obj.foo); a(t(obj, "foo", "bar"), "elo"); a(t(obj, "foo", "bar", "slice"), String.prototype.slice); a(t(obj, "foo", "par"), null); a(t(obj, "foo", "par", "marko"), undefined); a(t(obj, "marko"), undefined); a(t(""), ""); a(t("", "foo"), undefined); a(t("", "slice"), String.prototype.slice); }; es5-ext-0.10.30/test/reg-exp/000077500000000000000000000000001315003545300154725ustar00rootroot00000000000000es5-ext-0.10.30/test/reg-exp/#/000077500000000000000000000000001315003545300156145ustar00rootroot00000000000000es5-ext-0.10.30/test/reg-exp/#/index.js000066400000000000000000000005151315003545300172620ustar00rootroot00000000000000/* eslint-env node */ "use strict"; var indexTest = require("tad/lib/utils/index-test") , path = require("path").resolve(__dirname, "../../../reg-exp/#"); module.exports = function (t, a, d) { indexTest( indexTest.readDir(path).aside(function (data) { delete data.sticky; delete data.unicode; }) )(t, a, d); }; es5-ext-0.10.30/test/reg-exp/#/is-sticky.js000066400000000000000000000004441315003545300200730ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var re; a(t.call(/raz/), false, "Normal"); a(t.call(/raz/g), false, "Global"); try { // eslint-disable-next-line no-invalid-regexp re = new RegExp("raz", "y"); } catch (ignore) {} if (!re) return; a(t.call(re), true, "Sticky"); }; es5-ext-0.10.30/test/reg-exp/#/is-unicode.js000066400000000000000000000004451315003545300202140ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var re; a(t.call(/raz/), false, "Normal"); a(t.call(/raz/g), false, "Global"); try { // eslint-disable-next-line no-invalid-regexp re = new RegExp("raz", "u"); } catch (ignore) {} if (!re) return; a(t.call(re), true, "Unicode"); }; es5-ext-0.10.30/test/reg-exp/#/match/000077500000000000000000000000001315003545300167105ustar00rootroot00000000000000es5-ext-0.10.30/test/reg-exp/#/match/implement.js000066400000000000000000000002311315003545300212340ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../reg-exp/#/match/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/reg-exp/#/match/index.js000066400000000000000000000000631315003545300203540ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/reg-exp/#/match/is-implemented.js000066400000000000000000000001201315003545300221530ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/reg-exp/#/match/shim.js000066400000000000000000000002431315003545300202050ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var result = ["foo"]; result.index = 0; result.input = "foobar"; a.deep(t.call(/foo/, "foobar"), result); }; es5-ext-0.10.30/test/reg-exp/#/replace/000077500000000000000000000000001315003545300172275ustar00rootroot00000000000000es5-ext-0.10.30/test/reg-exp/#/replace/implement.js000066400000000000000000000002331315003545300215550ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../reg-exp/#/replace/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/reg-exp/#/replace/index.js000066400000000000000000000000631315003545300206730ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/reg-exp/#/replace/is-implemented.js000066400000000000000000000001201315003545300224720ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/reg-exp/#/replace/shim.js000066400000000000000000000001431315003545300205230ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call(/foo/, "foobar", "mar"), "marbar"); }; es5-ext-0.10.30/test/reg-exp/#/search/000077500000000000000000000000001315003545300170615ustar00rootroot00000000000000es5-ext-0.10.30/test/reg-exp/#/search/implement.js000066400000000000000000000002321315003545300214060ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../reg-exp/#/search/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/reg-exp/#/search/index.js000066400000000000000000000000631315003545300205250ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/reg-exp/#/search/is-implemented.js000066400000000000000000000001201315003545300223240ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/reg-exp/#/search/shim.js000066400000000000000000000001251315003545300203550ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call(/foo/, "barfoo"), 3); }; es5-ext-0.10.30/test/reg-exp/#/split/000077500000000000000000000000001315003545300167475ustar00rootroot00000000000000es5-ext-0.10.30/test/reg-exp/#/split/implement.js000066400000000000000000000002311315003545300212730ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../reg-exp/#/split/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/reg-exp/#/split/index.js000066400000000000000000000000631315003545300204130ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/reg-exp/#/split/is-implemented.js000066400000000000000000000001201315003545300222120ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/reg-exp/#/split/shim.js000066400000000000000000000001471315003545300202470ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.deep(t.call(/\|/, "bar|foo"), ["bar", "foo"]); }; es5-ext-0.10.30/test/reg-exp/#/sticky/000077500000000000000000000000001315003545300171225ustar00rootroot00000000000000es5-ext-0.10.30/test/reg-exp/#/sticky/implement.js000066400000000000000000000002321315003545300214470ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../reg-exp/#/sticky/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/reg-exp/#/sticky/is-implemented.js000066400000000000000000000001201315003545300223650ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/reg-exp/#/unicode/000077500000000000000000000000001315003545300172425ustar00rootroot00000000000000es5-ext-0.10.30/test/reg-exp/#/unicode/implement.js000066400000000000000000000002331315003545300215700ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../reg-exp/#/unicode/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/reg-exp/#/unicode/is-implemented.js000066400000000000000000000001201315003545300225050ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/reg-exp/escape.js000066400000000000000000000002141315003545300172650ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var str = "(?:^te|er)s{2}t\\[raz]+$"; a(RegExp("^" + t(str) + "$").test(str), true); }; es5-ext-0.10.30/test/reg-exp/is-reg-exp.js000066400000000000000000000005621315003545300200130ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t("arar"), false, "String"); a(t(12), false, "Number"); a(t(true), false, "Boolean"); a(t(new Date()), false, "Date"); a(t(new String("raz")), false, "String object"); a(t({}), false, "Plain object"); a(t(/a/), true, "Regular expression"); a(t(new RegExp("a")), true, "Regular expression via constructor"); }; es5-ext-0.10.30/test/reg-exp/valid-reg-exp.js000066400000000000000000000005271315003545300205000ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var r = /raz/; a(t(r), r, "Direct"); r = new RegExp("foo"); a(t(r), r, "Constructor"); a.throws(function () { t({}); }, "Object"); a.throws(function () { t(function () {}); }, "Function"); a.throws(function () { t({ exec: function () { return 20; } }); }, "Plain object"); }; es5-ext-0.10.30/test/safe-to-string.js000066400000000000000000000006021315003545300173210ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(), "undefined"); a(t(null), "null"); a(t(10), "10"); a(t("str"), "str"); a( t({ toString: function () { return "miszka"; } }), "miszka" ); // eslint-disable-next-line symbol-description if (typeof Symbol === "function") a(t(Symbol()), "Symbol()"); a(t(Object.create(null)), ""); }; es5-ext-0.10.30/test/string/000077500000000000000000000000001315003545300154315ustar00rootroot00000000000000es5-ext-0.10.30/test/string/#/000077500000000000000000000000001315003545300155535ustar00rootroot00000000000000es5-ext-0.10.30/test/string/#/@@iterator/000077500000000000000000000000001315003545300176045ustar00rootroot00000000000000es5-ext-0.10.30/test/string/#/@@iterator/implement.js000066400000000000000000000002351315003545300221340ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../string/#/@@iterator/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/string/#/@@iterator/index.js000066400000000000000000000000631315003545300212500ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/string/#/@@iterator/is-implemented.js000066400000000000000000000001201315003545300230470ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/string/#/@@iterator/shim.js000066400000000000000000000004661315003545300211100ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { var it = t.call("r💩z"); a.deep(it.next(), { done: false, value: "r" }, "#1"); a.deep(it.next(), { done: false, value: "💩" }, "#2"); a.deep(it.next(), { done: false, value: "z" }, "#3"); a.deep(it.next(), { done: true, value: undefined }, "End"); }; es5-ext-0.10.30/test/string/#/at.js000066400000000000000000000107251315003545300165220ustar00rootroot00000000000000/* eslint no-useless-call: "off" */ // See tests at https://github.com/mathiasbynens/String.prototype.at "use strict"; module.exports = function (t, a) { a(t.length, 1, "Length"); a.h1("BMP"); a(t.call("abc\uD834\uDF06def", -Infinity), "", "-Infinity"); a(t.call("abc\uD834\uDF06def", -1), "", "-1"); a(t.call("abc\uD834\uDF06def", -0), "a", "-0"); a(t.call("abc\uD834\uDF06def", +0), "a", "+0"); a(t.call("abc\uD834\uDF06def", 1), "b", "1"); a(t.call("abc\uD834\uDF06def", 3), "\uD834\uDF06", "3"); a(t.call("abc\uD834\uDF06def", 4), "\uDF06", "4"); a(t.call("abc\uD834\uDF06def", 5), "d", "5"); a(t.call("abc\uD834\uDF06def", 42), "", "42"); a(t.call("abc\uD834\uDF06def", Number(Infinity)), "", "+Infinity"); a(t.call("abc\uD834\uDF06def", null), "a", "null"); a(t.call("abc\uD834\uDF06def", undefined), "a", "undefined"); a(t.call("abc\uD834\uDF06def"), "a", "No argument"); a(t.call("abc\uD834\uDF06def", false), "a", "false"); a(t.call("abc\uD834\uDF06def", NaN), "a", "NaN"); a(t.call("abc\uD834\uDF06def", ""), "a", "Empty string"); a(t.call("abc\uD834\uDF06def", "_"), "a", "_"); a(t.call("abc\uD834\uDF06def", "1"), "b", "'1'"); a(t.call("abc\uD834\uDF06def", []), "a", "[]"); a(t.call("abc\uD834\uDF06def", {}), "a", "{}"); a(t.call("abc\uD834\uDF06def", -0.9), "a", "-0.9"); a(t.call("abc\uD834\uDF06def", 1.9), "b", "1.9"); a(t.call("abc\uD834\uDF06def", 7.9), "f", "7.9"); a(t.call("abc\uD834\uDF06def", Math.pow(2, 32)), "", "Big number"); a.h1("Astral symbol"); a(t.call("\uD834\uDF06def", -Infinity), "", "-Infinity"); a(t.call("\uD834\uDF06def", -1), "", "-1"); a(t.call("\uD834\uDF06def", -0), "\uD834\uDF06", "-0"); a(t.call("\uD834\uDF06def", +0), "\uD834\uDF06", "+0"); a(t.call("\uD834\uDF06def", 1), "\uDF06", "1"); a(t.call("\uD834\uDF06def", 2), "d", "2"); a(t.call("\uD834\uDF06def", 3), "e", "3"); a(t.call("\uD834\uDF06def", 4), "f", "4"); a(t.call("\uD834\uDF06def", 42), "", "42"); a(t.call("\uD834\uDF06def", Number(Infinity)), "", "+Infinity"); a(t.call("\uD834\uDF06def", null), "\uD834\uDF06", "null"); a(t.call("\uD834\uDF06def", undefined), "\uD834\uDF06", "undefined"); a(t.call("\uD834\uDF06def"), "\uD834\uDF06", "No arguments"); a(t.call("\uD834\uDF06def", false), "\uD834\uDF06", "false"); a(t.call("\uD834\uDF06def", NaN), "\uD834\uDF06", "NaN"); a(t.call("\uD834\uDF06def", ""), "\uD834\uDF06", "Empty string"); a(t.call("\uD834\uDF06def", "_"), "\uD834\uDF06", "_"); a(t.call("\uD834\uDF06def", "1"), "\uDF06", "'1'"); a.h1("Lone high surrogates"); a(t.call("\uD834abc", -Infinity), "", "-Infinity"); a(t.call("\uD834abc", -1), "", "-1"); a(t.call("\uD834abc", -0), "\uD834", "-0"); a(t.call("\uD834abc", +0), "\uD834", "+0"); a(t.call("\uD834abc", 1), "a", "1"); a(t.call("\uD834abc", 42), "", "42"); a(t.call("\uD834abc", Number(Infinity)), "", "Infinity"); a(t.call("\uD834abc", null), "\uD834", "null"); a(t.call("\uD834abc", undefined), "\uD834", "undefined"); a(t.call("\uD834abc"), "\uD834", "No arguments"); a(t.call("\uD834abc", false), "\uD834", "false"); a(t.call("\uD834abc", NaN), "\uD834", "NaN"); a(t.call("\uD834abc", ""), "\uD834", "Empty string"); a(t.call("\uD834abc", "_"), "\uD834", "_"); a(t.call("\uD834abc", "1"), "a", "'a'"); a.h1("Lone low surrogates"); a(t.call("\uDF06abc", -Infinity), "", "-Infinity"); a(t.call("\uDF06abc", -1), "", "-1"); a(t.call("\uDF06abc", -0), "\uDF06", "-0"); a(t.call("\uDF06abc", +0), "\uDF06", "+0"); a(t.call("\uDF06abc", 1), "a", "1"); a(t.call("\uDF06abc", 42), "", "42"); a(t.call("\uDF06abc", Number(Infinity)), "", "+Infinity"); a(t.call("\uDF06abc", null), "\uDF06", "null"); a(t.call("\uDF06abc", undefined), "\uDF06", "undefined"); a(t.call("\uDF06abc"), "\uDF06", "No arguments"); a(t.call("\uDF06abc", false), "\uDF06", "false"); a(t.call("\uDF06abc", NaN), "\uDF06", "NaN"); a(t.call("\uDF06abc", ""), "\uDF06", "Empty string"); a(t.call("\uDF06abc", "_"), "\uDF06", "_"); a(t.call("\uDF06abc", "1"), "a", "'1'"); a.h1("Context"); a.throws( function () { t.call(undefined); }, TypeError, "Undefined" ); a.throws( function () { t.call(undefined, 4); }, TypeError, "Undefined + argument" ); a.throws( function () { t.call(null); }, TypeError, "Null" ); a.throws( function () { t.call(null, 4); }, TypeError, "Null + argument" ); a(t.call(42, 0), "4", "Number #1"); a(t.call(42, 1), "2", "Number #2"); a( t.call( { toString: function () { return "abc"; } }, 2 ), "c", "Object" ); }; es5-ext-0.10.30/test/string/#/camel-to-hyphen.js000066400000000000000000000003701315003545300211030ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("razDwaTRzy4yFoo45My"), "raz-dwa-t-rzy4y-foo45-my"); a(t.call("razDwaTRzy4yFoo45My-"), "raz-dwa-t-rzy4y-foo45-my-"); a(t.call("razDwaTRzy4yFoo45My--"), "raz-dwa-t-rzy4y-foo45-my--"); }; es5-ext-0.10.30/test/string/#/capitalize.js000066400000000000000000000003731315003545300202410ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("raz"), "Raz", "Word"); a(t.call("BLA"), "BLA", "Uppercase"); a(t.call(""), "", "Empty"); a(t.call("a"), "A", "One letter"); a(t.call("this is a test"), "This is a test", "Sentence"); }; es5-ext-0.10.30/test/string/#/case-insensitive-compare.js000066400000000000000000000002651315003545300230110ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("AA", "aa"), 0, "Same"); a.ok(t.call("Amber", "zebra") < 0, "Less"); a.ok(t.call("Zebra", "amber") > 0, "Greater"); }; es5-ext-0.10.30/test/string/#/code-point-at/000077500000000000000000000000001315003545300202165ustar00rootroot00000000000000es5-ext-0.10.30/test/string/#/code-point-at/implement.js000066400000000000000000000002411315003545300225430ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../string/#/code-point-at/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/string/#/code-point-at/index.js000066400000000000000000000000631315003545300216620ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/string/#/code-point-at/is-implemented.js000066400000000000000000000001201315003545300234610ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/string/#/code-point-at/shim.js000066400000000000000000000063171315003545300215230ustar00rootroot00000000000000/* eslint no-useless-call: "off" */ // Taken from: https://github.com/mathiasbynens/String.prototype.codePointAt // /blob/master/tests/tests.js "use strict"; module.exports = function (t, a) { a(t.length, 1, "Length"); // String that starts with a BMP symbol a(t.call("abc\uD834\uDF06def", ""), 0x61); a(t.call("abc\uD834\uDF06def", "_"), 0x61); a(t.call("abc\uD834\uDF06def"), 0x61); a(t.call("abc\uD834\uDF06def", -Infinity), undefined); a(t.call("abc\uD834\uDF06def", -1), undefined); a(t.call("abc\uD834\uDF06def", -0), 0x61); a(t.call("abc\uD834\uDF06def", 0), 0x61); a(t.call("abc\uD834\uDF06def", 3), 0x1d306); a(t.call("abc\uD834\uDF06def", 4), 0xdf06); a(t.call("abc\uD834\uDF06def", 5), 0x64); a(t.call("abc\uD834\uDF06def", 42), undefined); a(t.call("abc\uD834\uDF06def", Infinity), undefined); a(t.call("abc\uD834\uDF06def", Infinity), undefined); a(t.call("abc\uD834\uDF06def", NaN), 0x61); a(t.call("abc\uD834\uDF06def", false), 0x61); a(t.call("abc\uD834\uDF06def", null), 0x61); a(t.call("abc\uD834\uDF06def", undefined), 0x61); // String that starts with an astral symbol a(t.call("\uD834\uDF06def", ""), 0x1d306); a(t.call("\uD834\uDF06def", "1"), 0xdf06); a(t.call("\uD834\uDF06def", "_"), 0x1d306); a(t.call("\uD834\uDF06def"), 0x1d306); a(t.call("\uD834\uDF06def", -1), undefined); a(t.call("\uD834\uDF06def", -0), 0x1d306); a(t.call("\uD834\uDF06def", 0), 0x1d306); a(t.call("\uD834\uDF06def", 1), 0xdf06); a(t.call("\uD834\uDF06def", 42), undefined); a(t.call("\uD834\uDF06def", false), 0x1d306); a(t.call("\uD834\uDF06def", null), 0x1d306); a(t.call("\uD834\uDF06def", undefined), 0x1d306); // Lone high surrogates a(t.call("\uD834abc", ""), 0xd834); a(t.call("\uD834abc", "_"), 0xd834); a(t.call("\uD834abc"), 0xd834); a(t.call("\uD834abc", -1), undefined); a(t.call("\uD834abc", -0), 0xd834); a(t.call("\uD834abc", 0), 0xd834); a(t.call("\uD834abc", false), 0xd834); a(t.call("\uD834abc", NaN), 0xd834); a(t.call("\uD834abc", null), 0xd834); a(t.call("\uD834abc", undefined), 0xd834); // Lone low surrogates a(t.call("\uDF06abc", ""), 0xdf06); a(t.call("\uDF06abc", "_"), 0xdf06); a(t.call("\uDF06abc"), 0xdf06); a(t.call("\uDF06abc", -1), undefined); a(t.call("\uDF06abc", -0), 0xdf06); a(t.call("\uDF06abc", 0), 0xdf06); a(t.call("\uDF06abc", false), 0xdf06); a(t.call("\uDF06abc", NaN), 0xdf06); a(t.call("\uDF06abc", null), 0xdf06); a(t.call("\uDF06abc", undefined), 0xdf06); a.throws(function () { t.call(undefined); }, TypeError); a.throws(function () { t.call(undefined, 4); }, TypeError); a.throws(function () { t.call(null); }, TypeError); a.throws(function () { t.call(null, 4); }, TypeError); a(t.call(42, 0), 0x34); a(t.call(42, 1), 0x32); a( t.call( { toString: function () { return "abc"; } }, 2 ), 0x63 ); a.throws(function () { t.apply(undefined); }, TypeError); a.throws(function () { t.apply(undefined, [4]); }, TypeError); a.throws(function () { t.apply(null); }, TypeError); a.throws(function () { t.apply(null, [4]); }, TypeError); a(t.apply(42, [0]), 0x34); a(t.apply(42, [1]), 0x32); a( t.apply( { toString: function () { return "abc"; } }, [2] ), 0x63 ); }; es5-ext-0.10.30/test/string/#/contains/000077500000000000000000000000001315003545300173715ustar00rootroot00000000000000es5-ext-0.10.30/test/string/#/contains/implement.js000066400000000000000000000002331315003545300217170ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../string/#/contains/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/string/#/contains/index.js000066400000000000000000000000631315003545300210350ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/string/#/contains/is-implemented.js000066400000000000000000000001201315003545300226340ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/string/#/contains/shim.js000066400000000000000000000010041315003545300206620ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("raz", ""), true, "Empty"); a(t.call("", ""), true, "Both Empty"); a(t.call("raz", "raz"), true, "Same"); a(t.call("razdwa", "raz"), true, "Starts with"); a(t.call("razdwa", "dwa"), true, "Ends with"); a(t.call("razdwa", "zdw"), true, "In middle"); a(t.call("", "raz"), false, "Something in empty"); a(t.call("az", "raz"), false, "Longer"); a(t.call("azasdfasdf", "azff"), false, "Not found"); a(t.call("razdwa", "raz", 1), false, "Position"); }; es5-ext-0.10.30/test/string/#/count.js000066400000000000000000000004501315003545300172400ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a.throws(function () { t.call("", ""); }); a(t.call("x", "x"), 1); a(t.call("xx", "x"), 2); a(t.call("xxx", "xx"), 1); a(t.call("xxxx", "xx"), 2); a(t.call("xx", "xxx"), 0); a(t.call("", "elo"), 0); a(t.call("fooo", "foofooo"), 0); }; es5-ext-0.10.30/test/string/#/ends-with/000077500000000000000000000000001315003545300174555ustar00rootroot00000000000000es5-ext-0.10.30/test/string/#/ends-with/implement.js000066400000000000000000000002341315003545300220040ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../string/#/ends-with/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/string/#/ends-with/index.js000066400000000000000000000000631315003545300211210ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/string/#/ends-with/is-implemented.js000066400000000000000000000001201315003545300227200ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/string/#/ends-with/shim.js000066400000000000000000000011471315003545300207560ustar00rootroot00000000000000// In some parts copied from: // http://closure-library.googlecode.com/svn/trunk/closure/goog/ // string/string_test.html "use strict"; module.exports = function (t, a) { a(t.call("abc", ""), true, "Empty needle"); a(t.call("abcd", "cd"), true, "Ends with needle"); a(t.call("abcd", "abcd"), true, "Needle equals haystack"); a(t.call("abcd", "ab"), false, "Doesn't end with needle"); a(t.call("abc", "defg"), false, "Length trick"); a(t.call("razdwa", "zd", 3), false, "Position: false"); a(t.call("razdwa", "zd", 4), true, "Position: true"); a(t.call("razdwa", "zd", 5), false, "Position: false #2"); }; es5-ext-0.10.30/test/string/#/hyphen-to-camel.js000066400000000000000000000004311315003545300211010ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("raz-dwa-t-rzy-4y-rtr4-tiu-45-pa"), "razDwaTRzy4yRtr4Tiu45Pa"); a(t.call("raz-dwa-t-rzy-4y-rtr4-tiu-45-pa-"), "razDwaTRzy4yRtr4Tiu45Pa-"); a(t.call("raz-dwa-t-rzy-4y-rtr4-tiu-45-pa--"), "razDwaTRzy4yRtr4Tiu45Pa--"); }; es5-ext-0.10.30/test/string/#/indent.js000066400000000000000000000005131315003545300173710ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("ra\nzz", ""), "ra\nzz", "Empty"); a(t.call("ra\nzz", "\t", 3), "\t\t\tra\n\t\t\tzz", "String repeat"); a(t.call("ra\nzz\nsss\nfff\n", "\t"), "\tra\n\tzz\n\tsss\n\tfff\n", "Multi-line"); a(t.call("ra\n\nzz\n", "\t"), "\tra\n\n\tzz\n", "Don't touch empty lines"); }; es5-ext-0.10.30/test/string/#/last.js000066400000000000000000000001701315003545300170520ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call(""), null, "Null"); a(t.call("abcdef"), "f", "String"); }; es5-ext-0.10.30/test/string/#/normalize/000077500000000000000000000000001315003545300175535ustar00rootroot00000000000000es5-ext-0.10.30/test/string/#/normalize/_data.js000066400000000000000000000001201315003545300211520ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t[0], "object"); }; es5-ext-0.10.30/test/string/#/normalize/implement.js000066400000000000000000000002341315003545300221020ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../string/#/normalize/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/string/#/normalize/index.js000066400000000000000000000000631315003545300212170ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/string/#/normalize/is-implemented.js000066400000000000000000000001201315003545300230160ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/string/#/normalize/shim.js000066400000000000000000000005151315003545300210520ustar00rootroot00000000000000// Taken from: https://github.com/walling/unorm/blob/master/test/es6-shim.js "use strict"; var str = "äiti"; module.exports = function (t, a) { a(t.call(str), "\u00e4iti"); a(t.call(str, "NFC"), "\u00e4iti"); a(t.call(str, "NFD"), "a\u0308iti"); a(t.call(str, "NFKC"), "\u00e4iti"); a(t.call(str, "NFKD"), "a\u0308iti"); }; es5-ext-0.10.30/test/string/#/pad.js000066400000000000000000000010351315003545300166540ustar00rootroot00000000000000"use strict"; var partial = require("../../../function/#/partial"); module.exports = { Left: function (t, a) { t = partial.call(t, "x", 5); a(t.call("yy"), "xxxyy"); a(t.call(""), "xxxxx", "Empty string"); a(t.call("yyyyy"), "yyyyy", "Equal length"); a(t.call("yyyyyyy"), "yyyyyyy", "Longer"); }, Right: function (t, a) { t = partial.call(t, "x", -5); a(t.call("yy"), "yyxxx"); a(t.call(""), "xxxxx", "Empty string"); a(t.call("yyyyy"), "yyyyy", "Equal length"); a(t.call("yyyyyyy"), "yyyyyyy", "Longer"); } }; es5-ext-0.10.30/test/string/#/plain-replace-all.js000066400000000000000000000006361315003545300214000ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("razdwatrzy", "dwa", "olera"), "razoleratrzy", "Basic"); a(t.call("razdwatrzy", "dwa", "ole$&a"), "razole$&atrzy", "Inserts"); a(t.call("razdwa", "ola", "sdfs"), "razdwa", "No replace"); a(t.call("$raz$$dwa$trzy$", "$", "&&"), "&&raz&&&&dwa&&trzy&&", "Multi"); a(t.call("$raz$$dwa$$$$trzy$", "$$", "&"), "$raz&dwa&&trzy$", "Multi many chars"); }; es5-ext-0.10.30/test/string/#/plain-replace.js000066400000000000000000000003741315003545300206310ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("razdwatrzy", "dwa", "olera"), "razoleratrzy", "Basic"); a(t.call("razdwatrzy", "dwa", "ole$&a"), "razole$&atrzy", "Inserts"); a(t.call("razdwa", "ola", "sdfs"), "razdwa", "No replace"); }; es5-ext-0.10.30/test/string/#/repeat/000077500000000000000000000000001315003545300170335ustar00rootroot00000000000000es5-ext-0.10.30/test/string/#/repeat/implement.js000066400000000000000000000002311315003545300213570ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../string/#/repeat/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/string/#/repeat/index.js000066400000000000000000000000631315003545300204770ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/string/#/repeat/is-implemented.js000066400000000000000000000001201315003545300222760ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/string/#/repeat/shim.js000066400000000000000000000006431315003545300203340ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("a", 0), "", "Empty"); a(t.call("a", 1), "a", "1"); a(t.call("a", 2), "aa", "2"); a(t.call("\t", 5), "\t\t\t\t\t", "Whitespace"); a(t.call("raz", 3), "razrazraz", "Many chars"); a(t.call("raz", 3), "razrazraz", "Many chars"); a(t.call("razfoobar", 5), "razfoobarrazfoobarrazfoobarrazfoobarrazfoobar", "Many chars"); a(t.call("a", 300).length, 300); }; es5-ext-0.10.30/test/string/#/starts-with/000077500000000000000000000000001315003545300200445ustar00rootroot00000000000000es5-ext-0.10.30/test/string/#/starts-with/implement.js000066400000000000000000000002361315003545300223750ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../../string/#/starts-with/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/string/#/starts-with/index.js000066400000000000000000000000631315003545300215100ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/string/#/starts-with/is-implemented.js000066400000000000000000000001201315003545300233070ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/string/#/starts-with/shim.js000066400000000000000000000010161315003545300213400ustar00rootroot00000000000000// Inspired and in some parts copied from: // http://closure-library.googlecode.com/svn/trunk/closure/goog // /string/string_test.html "use strict"; module.exports = function (t, a) { a(t.call("abc", ""), true, "Empty needle"); a(t.call("abcd", "ab"), true, "Starts with needle"); a(t.call("abcd", "abcd"), true, "Needle equals haystack"); a(t.call("abcd", "bcde", 1), false, "Needle larger than haystack"); a(!t.call("abcd", "cd"), true, "Doesn't start with needle"); a(t.call("abcd", "bc", 1), true, "Position"); }; es5-ext-0.10.30/test/string/#/uncapitalize.js000066400000000000000000000005031315003545300205770ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t.call("raz"), "raz", "Word"); a(t.call("BLA"), "bLA", "Uppercase"); a(t.call(""), "", "Empty"); a(t.call("a"), "a", "One letter"); a(t.call("this is a test"), "this is a test", "Sentence"); a(t.call("This is a test"), "this is a test", "Capitalized sentence"); }; es5-ext-0.10.30/test/string/format-method.js000066400000000000000000000003211315003545300205310ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { t = t({ a: "A", aa: "B", ab: "C", b: "D", c: function () { return ++this.a; } }); a(t.call({ a: 0 }, " %a%aab%abb%b\\%aa%ab%c%c "), " ABbCbD%aaC12 "); }; es5-ext-0.10.30/test/string/from-code-point/000077500000000000000000000000001315003545300204335ustar00rootroot00000000000000es5-ext-0.10.30/test/string/from-code-point/implement.js000066400000000000000000000002351315003545300227630ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../string/from-code-point/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/string/from-code-point/index.js000066400000000000000000000000631315003545300220770ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/string/from-code-point/is-implemented.js000066400000000000000000000001201315003545300236760ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/string/from-code-point/shim.js000066400000000000000000000035021315003545300217310ustar00rootroot00000000000000// Taken from: https://github.com/mathiasbynens/String.fromCodePoint/blob/master // /tests/tests.js "use strict"; var pow = Math.pow; module.exports = function (t, a) { var counter, result; a(t.length, 1, "Length"); a(String.propertyIsEnumerable("fromCodePoint"), false, "Not enumerable"); a(t(""), "\0", "Empty string"); a(t(), "", "No arguments"); a(t(-0), "\0", "-0"); a(t(0), "\0", "0"); a(t(0x1D306), "\uD834\uDF06", "Unicode"); a(t(0x1D306, 0x61, 0x1D307), "\uD834\uDF06a\uD834\uDF07", "Complex unicode"); a(t(0x61, 0x62, 0x1D307), "ab\uD834\uDF07", "Complex"); a(t(false), "\0", "false"); a(t(null), "\0", "null"); a.throws(function () { t("_"); }, RangeError, "_"); a.throws(function () { t(Infinity); }, RangeError, "Infinity"); a.throws(function () { t(-Infinity); }, RangeError, "-Infinity"); a.throws(function () { t(-1); }, RangeError, "-1"); a.throws(function () { t(0x10FFFF + 1); }, RangeError, "Range error #1"); a.throws(function () { t(3.14); }, RangeError, "Range error #2"); a.throws(function () { t(3e-2); }, RangeError, "Range error #3"); a.throws(function () { t(-Infinity); }, RangeError, "Range error #4"); a.throws(function () { t(Number(Infinity)); }, RangeError, "Range error #5"); a.throws(function () { t(NaN); }, RangeError, "Range error #6"); a.throws(function () { t(undefined); }, RangeError, "Range error #7"); a.throws(function () { t({}); }, RangeError, "Range error #8"); a.throws(function () { t(/re/); }, RangeError, "Range error #9"); counter = pow(2, 15) * 3 / 2; result = []; while (--counter >= 0) result.push(0); // One code unit per symbol t.apply(null, result); // Must not throw counter = pow(2, 15) * 3 / 2; result = []; while (--counter >= 0) result.push(0xFFFF + 1); // Two code units per symbol t.apply(null, result); // Must not throw }; es5-ext-0.10.30/test/string/is-string.js000066400000000000000000000004421315003545300177060ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(t(null), false, "Null"); a(t(""), true, "Empty string"); a(t(12), false, "Number"); a(t(false), false, "Boolean"); a(t(new Date()), false, "Date"); a(t(new String("raz")), true, "String object"); a(t("asdfaf"), true, "String"); }; es5-ext-0.10.30/test/string/random-uniq.js000066400000000000000000000004771315003545300202310ustar00rootroot00000000000000"use strict"; var isValidFormat = RegExp.prototype.test.bind(/^[a-z0-9]+$/); module.exports = function (t, a) { a(typeof t(), "string"); a.ok(t().length > 7); a.not(t(), t()); a.ok(isValidFormat(t())); a.ok(isValidFormat(t())); a.ok(isValidFormat(t())); a.ok(isValidFormat(t())); a.ok(isValidFormat(t())); }; es5-ext-0.10.30/test/string/raw/000077500000000000000000000000001315003545300162225ustar00rootroot00000000000000es5-ext-0.10.30/test/string/raw/implement.js000066400000000000000000000002211315003545300205450ustar00rootroot00000000000000"use strict"; var isImplemented = require("../../../string/raw/is-implemented"); module.exports = function (a) { a(isImplemented(), true); }; es5-ext-0.10.30/test/string/raw/index.js000066400000000000000000000000631315003545300176660ustar00rootroot00000000000000"use strict"; module.exports = require("./shim"); es5-ext-0.10.30/test/string/raw/is-implemented.js000066400000000000000000000001201315003545300214650ustar00rootroot00000000000000"use strict"; module.exports = function (t, a) { a(typeof t(), "boolean"); }; es5-ext-0.10.30/test/string/raw/shim.js000066400000000000000000000006121315003545300175170ustar00rootroot00000000000000// Partially taken from: // https://github.com/paulmillr/es6-shim/blob/master/test/string.js "use strict"; module.exports = function (t, a) { var callSite = []; callSite.raw = ["The total is ", " ($", " with tax)"]; a(t(callSite, "{total}", "{total * 1.01}"), "The total is {total} (${total * 1.01} with tax)"); callSite.raw = []; a(t(callSite, "{total}", "{total * 1.01}"), ""); }; es5-ext-0.10.30/test/to-short-string-representation.js000066400000000000000000000010261315003545300226030ustar00rootroot00000000000000"use strict"; var repeat = require("../string/#/repeat"); module.exports = function (t, a) { a(t(), "undefined"); a(t(null), "null"); a(t(10), "10"); a(t("str"), "str"); a( t({ toString: function () { return "miszka"; } }), "miszka" ); // eslint-disable-next-line symbol-description if (typeof Symbol === "function") a(t(Symbol()), "Symbol()"); a(t(Object.create(null)), ""); a(t(repeat.call("a", 300)), repeat.call("a", 99) + "…"); a(t("mar\ntoo\nfar"), "mar\\ntoo\\nfar"); }; es5-ext-0.10.30/to-short-string-representation.js000066400000000000000000000006351315003545300216310ustar00rootroot00000000000000"use strict"; var safeToString = require("./safe-to-string"); var reNewLine = /[\n\r\u2028\u2029]/g; module.exports = function (value) { var string = safeToString(value); // Trim if too long if (string.length > 100) string = string.slice(0, 99) + "…"; // Replace eventual new lines string = string.replace(reNewLine, function (char) { return JSON.stringify(char).slice(1, -1); }); return string; };