-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathpolyfill.map.json
1 lines (1 loc) · 129 KB
/
polyfill.map.json
1
{"version":3,"sources":["node_modules/browser-pack/_prelude.js","src/scripts/polyfill.js","src/scripts/polyfills/pageOffset.js","src/scripts/polyfills/rAF.js","src/scripts/polyfills/events.js","src/scripts/polyfills/Element.js","src/scripts/polyfills/String.js","src/scripts/polyfills/hasOwnProperty.js","src/scripts/polyfills/whichIE.js","node_modules/es5-shim/es5-sham.js","node_modules/es5-shim/es5-shim.js"],"names":["require","define","amd","exports","oldAmd","module","skyComponents","window","polyfill","undefined","pageYOffset","Object","defineProperty","get","this","document","documentElement","scrollTop","pageXOffset","scrollLeft","lastTime","vendors","x","length","requestAnimationFrame","cancelAnimationFrame","callback","element","currTime","Date","getTime","timeToCall","Math","max","id","setTimeout","clearTimeout","addEventListener","WindowPrototype","DocumentPrototype","ElementPrototype","removeEventListener","dispatchEvent","registry","type","listener","target","unshift","event","currentTarget","preventDefault","returnValue","stopPropagation","cancelBubble","srcElement","call","attachEvent","register","index","detachEvent","splice","eventObject","fireEvent","Window","prototype","HTMLDocument","Element","self","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","i","len","arguments","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","String","trim","replace","arrIndexOf","Array","indexOf","item","DOMEx","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","Error","tokens","l","updated","remove","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","endsWith","suffix","hasOwnProperty","nav","navigator","appName","version","appVersion","ie","match","userAgent","parseFloat","ieObj","ie12","ie11","ie10","ie9","ie8","ie7","ie6","parseInt","whichIE","root","factory","returnExports","defineGetter","defineSetter","lookupGetter","lookupSetter","Function","prototypeOfObject","owns","bind","propertyIsEnumerable","toStr","supportsAccessors","__defineSetter__","__lookupGetter__","__lookupSetter__","getPrototypeOf","object","proto","__proto__","constructor","doesGetOwnPropertyDescriptorWork","sentinel","getOwnPropertyDescriptor","value","exception","getOwnPropertyDescriptorWorksOnObject","getOwnPropertyDescriptorWorksOnDom","getOwnPropertyDescriptorFallback","ERR_NON_OBJECT","property","TypeError","descriptor","notPrototypeOfObject","getter","setter","set","writable","getOwnPropertyNames","keys","create","createEmpty","supportsProto","shouldUseActiveX","domain","ActiveXObject","getEmptyViaActiveX","empty","xDoc","write","close","parentWindow","getEmptyViaIFrame","iframe","parent","body","style","display","appendChild","src","contentWindow","removeChild","isPrototypeOf","toLocaleString","valueOf","Empty","properties","Type","defineProperties","doesDefinePropertyWork","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","definePropertiesFallback","ERR_NON_OBJECT_DESCRIPTOR","ERR_NON_OBJECT_TARGET","ERR_ACCESSORS_NOT_SUPPORTED","forEach","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","isCallable","$Array","ArrayPrototype","$Object","ObjectPrototype","FunctionPrototype","$String","StringPrototype","$Number","Number","NumberPrototype","array_slice","slice","array_splice","array_push","array_unshift","array_concat","concat","min","to_string","hasToStringTag","Symbol","toStringTag","fnToStr","tryFunctionObject","e","fnClass","genClass","strClass","isRegex","regexExec","RegExp","exec","tryRegexExec","regexClass","isString","strValue","tryStringObject","stringClass","has","supportsDescriptors","obj","_","forceAssign","map","isPrimitive","input","ES","ToInteger","num","n","floor","abs","ToPrimitive","val","ToObject","o","ToUint32","that","bound","args","binder","apply","boundLength","boundArgs","strSlice","strSplit","isArray","hasUnshiftReturnValueBug","boxedString","splitString","properlyBoxesContext","properlyBoxesNonStrict","properlyBoxesStrict","__","context","callbackfn","T","filter","every","some","reduceCoercesToObject","reduce","___","list","reduceRightCoercesToObject","reduceRight","hasFirefox2IndexOfBug","searchElement","hasFirefox2LastIndexOfBug","lastIndexOf","spliceNoopReturnsEmptyArray","a","start","deleteCount","spliceWorksWithEmptyObject","spliceWorksWithLargeSparseArrays","arr","spliceWorksWithSmallSparseArrays","from","O","A","relativeStart","actualStart","actualDeleteCount","k","to","items","itemCount","hasDontEnumBug","hasProtoEnumBug","hasStringEnumBug","equalsConstructorPrototype","ctor","blacklistedKeys","$window","$console","$parent","$self","$frames","$frameElement","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","dontEnums","dontEnumsLength","isArguments","str","isArgs","callee","isFn","isObject","isStr","theKeys","skipProto","skipConstructor","j","dontEnum","keysWorksWithArguments","keysHasArgumentsLengthBug","argKeys","originalKeys","negativeDate","negativeYearString","hasNegativeDateBug","toISOString","hasSafari51DateBug","year","month","isFinite","RangeError","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","dateToJSONIsSupported","toJSON","NaN","key","tv","toISO","supportsExtendedYears","parse","acceptsInvalidDates","isNaN","doesNotParseY2KNewYear","NativeDate","DateShim","Y","M","D","h","m","s","ms","date","isoDateExpression","months","dayFromMonth","t","toUTC","now","UTC","parseShim","string","day","hour","minute","second","millisecond","isLocalTime","Boolean","signOffset","hourOffset","minuteOffset","hasToFixedBugs","toFixed","toFixedHelpers","base","size","data","multiply","c","c2","divide","numToString","pow","acc","log","x2","fractionDigits","f","z","compliantExecNpcg","separator","limit","separator2","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","splitLimit","str_replace","replaceReportsGroupsCorrectly","groups","group","searchValue","replaceValue","hasCapturingGroups","wrappedReplaceValue","originalLastIndex","string_substr","substr","hasNegativeSubstrBug","normalizedStart","ws","zeroWidth","wsRegexChars","trimBeginRegexp","trimEndRegexp","hasTrimWhitespaceBug","origParseInt","hexRegex","radix","defaultedRadix"],"mappings":"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","file":"bundle.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})","require('./polyfills/Element')();\nrequire('./polyfills/events')();\nrequire('./polyfills/hasOwnProperty')();\nrequire('./polyfills/String')();\nrequire('./polyfills/whichIE')();\nrequire('./polyfills/pageOffset.js')();\nrequire('./polyfills/rAF.js')();\n\nif (typeof define === 'function' && define.amd && typeof exports === 'object') {\n var oldAmd = define.amd;\n delete define.amd;\n\n require('es5-shim/es5-shim');\n require('es5-shim/es5-sham');\n\n define.amd = oldAmd;\n} else {\n require('es5-shim/es5-shim');\n require('es5-shim/es5-sham');\n}\n\nmodule.exports = {};\n\nif (typeof skyComponents === \"undefined\") window.skyComponents = {};\nskyComponents.polyfill = module.exports;\n","module.exports = function() {\n if (window.pageYOffset === undefined) {\n Object.defineProperty(window, \"pageYOffset\", {\n get : function () { return this.document.documentElement.scrollTop; }\n });\n }\n\n if (window.pageXOffset === undefined) {\n Object.defineProperty(window, \"pageXOffset\", {\n get : function () { return this.document.documentElement.scrollLeft; }\n });\n }\n};\n","// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n\n// MIT license\n\nmodule.exports = function() {\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] \n || window[vendors[x]+'CancelRequestAnimationFrame'];\n }\n \n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function(callback, element) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function() { callback(currTime + timeToCall); }, \n timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n \n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function(id) {\n clearTimeout(id);\n };\n};","module.exports = function(){\n\n // from Jonathan Neal's Gist https://gist.github.com/jonathantneal/3748027\n !window.addEventListener && (function (WindowPrototype, DocumentPrototype, ElementPrototype, addEventListener, removeEventListener, dispatchEvent, registry) {\n WindowPrototype[addEventListener] = DocumentPrototype[addEventListener] = ElementPrototype[addEventListener] = function (type, listener) {\n var target = this;\n\n if (type === 'DOMContentLoaded') {\n type = 'readystatechange';\n }\n\n registry.unshift([target, type, listener, function (event) {\n event.currentTarget = target;\n event.preventDefault = function () { event.returnValue = false };\n event.stopPropagation = function () { event.cancelBubble = true };\n event.target = event.srcElement || target;\n\n listener.call(target, event);\n }]);\n\n this.attachEvent(\"on\" + type, registry[0][3]);\n };\n\n WindowPrototype[removeEventListener] = DocumentPrototype[removeEventListener] = ElementPrototype[removeEventListener] = function (type, listener) {\n for (var index = 0, register; register = registry[index]; ++index) {\n if (register[0] == this && register[1] == type && register[2] == listener) {\n return this.detachEvent(\"on\" + type, registry.splice(index, 1)[0][3]);\n }\n }\n };\n\n WindowPrototype[dispatchEvent] = DocumentPrototype[dispatchEvent] = ElementPrototype[dispatchEvent] = function (eventObject) {\n return this.fireEvent(\"on\" + eventObject.type, eventObject);\n };\n })(Window.prototype, HTMLDocument.prototype, Element.prototype, \"addEventListener\", \"removeEventListener\", \"dispatchEvent\", []);\n\n\n};","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 2014-07-23\n *\n * By Eli Grey, http://eligrey.com\n * Public Domain.\n * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/\n\nmodule.exports = function() {\n\n\nif (\"document\" in self) {\n\n// Full polyfill for browsers with no classList support\nif (!(\"classList\" in document.createElement(\"_\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n classListProp = \"classList\"\n , protoProp = \"prototype\"\n , elemCtrProto = view.Element[protoProp]\n , objCtr = Object\n , strTrim = String[protoProp].trim || function () {\n return this.replace(/^\\s+|\\s+$/g, \"\");\n }\n , arrIndexOf = Array[protoProp].indexOf || function (item) {\n var\n i = 0\n , len = this.length\n ;\n for (; i < len; i++) {\n if (i in this && this[i] === item) {\n return i;\n }\n }\n return -1;\n }\n // Vendors: please allow content code to instantiate DOMExceptions\n , DOMEx = function (type, message) {\n this.name = type;\n this.code = DOMException[type];\n this.message = message;\n }\n , checkTokenAndGetIndex = function (classList, token) {\n if (token === \"\") {\n throw new DOMEx(\n \"SYNTAX_ERR\"\n , \"An invalid or illegal string was specified\"\n );\n }\n if (/\\s/.test(token)) {\n throw new DOMEx(\n \"INVALID_CHARACTER_ERR\"\n , \"String contains an invalid character\"\n );\n }\n return arrIndexOf.call(classList, token);\n }\n , ClassList = function (elem) {\n var\n trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n , classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n , i = 0\n , len = classes.length\n ;\n for (; i < len; i++) {\n this.push(classes[i]);\n }\n this._updateClassName = function () {\n elem.setAttribute(\"class\", this.toString());\n };\n }\n , classListProto = ClassList[protoProp] = []\n , classListGetter = function () {\n return new ClassList(this);\n }\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n return this[i] || null;\n};\nclassListProto.contains = function (token) {\n token += \"\";\n return checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n var\n tokens = arguments\n , i = 0\n , l = tokens.length\n , token\n , updated = false\n ;\n do {\n token = tokens[i] + \"\";\n if (checkTokenAndGetIndex(this, token) === -1) {\n this.push(token);\n updated = true;\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n};\nclassListProto.remove = function () {\n var\n tokens = arguments\n , i = 0\n , l = tokens.length\n , token\n , updated = false\n , index\n ;\n do {\n token = tokens[i] + \"\";\n index = checkTokenAndGetIndex(this, token);\n while (index !== -1) {\n this.splice(index, 1);\n updated = true;\n index = checkTokenAndGetIndex(this, token);\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n};\nclassListProto.toggle = function (token, force) {\n token += \"\";\n\n var\n result = this.contains(token)\n , method = result ?\n force !== true && \"remove\"\n :\n force !== false && \"add\"\n ;\n\n if (method) {\n this[method](token);\n }\n\n if (force === true || force === false) {\n return force;\n } else {\n return !result;\n }\n};\nclassListProto.toString = function () {\n return this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n var classListPropDesc = {\n get: classListGetter\n , enumerable: true\n , configurable: true\n };\n try {\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n } catch (ex) { // IE 8 doesn't support enumerable:true\n if (ex.number === -0x7FF5EC54) {\n classListPropDesc.enumerable = false;\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n }\n }\n} else if (objCtr[protoProp].__defineGetter__) {\n elemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(self));\n\n} else {\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n \"use strict\";\n\n var testElement = document.createElement(\"_\");\n\n testElement.classList.add(\"c1\", \"c2\");\n\n // Polyfill for IE 10/11 and Firefox <26, where classList.add and\n // classList.remove exist but support only one argument at a time.\n if (!testElement.classList.contains(\"c2\")) {\n var createMethod = function(method) {\n var original = DOMTokenList.prototype[method];\n\n DOMTokenList.prototype[method] = function(token) {\n var i, len = arguments.length;\n\n for (i = 0; i < len; i++) {\n token = arguments[i];\n original.call(this, token);\n }\n };\n };\n createMethod('add');\n createMethod('remove');\n }\n\n testElement.classList.toggle(\"c3\", false);\n\n // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n // support the second argument.\n if (testElement.classList.contains(\"c3\")) {\n var _toggle = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function(token, force) {\n if (1 in arguments && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n\n }\n\n testElement = null;\n}());\n\n}\n\n}\n\n}\n","module.exports = function() {\n\n if ( typeof String.prototype.endsWith !== 'function') {\n String.prototype.endsWith = function(suffix) {\n return this.indexOf(suffix, this.length - suffix.length) !== -1;\n };\n }\n};\n","\nmodule.exports = function() {\n window.hasOwnProperty = window.hasOwnProperty || Object.prototype.hasOwnProperty;\n}","\nmodule.exports = function() {\n\n var nav = navigator.appName,\n version = navigator.appVersion,\n ie = (nav == 'Microsoft Internet Explorer');\n if (ie) {\n var match = navigator.userAgent.match(/MSIE ([0-9]{1,}[\\.0-9]{0,})/);\n version = match ? parseFloat(match[1]) : 0;\n }\n var ieObj = {\n name: nav,\n version: version,\n ie: ie,\n ie12: false,\n ie11: false,\n ie10: false,\n ie9: false,\n ie8: false,\n ie7: false,\n ie6: false\n };\n ieObj['ie' + parseInt(version,10)] = ie;\n window.whichIE = ieObj;\n\n};","/*!\n * https://github.com/es-shims/es5-shim\n * @license es5-shim Copyright 2009-2015 by contributors, MIT License\n * see https://github.com/es-shims/es5-shim/blob/master/LICENSE\n */\n\n// vim: ts=4 sts=4 sw=4 expandtab\n\n// Add semicolon to prevent IIFE from being passed as argument to concatenated code.\n;\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n 'use strict';\n\n /* global define, exports, module */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n\nvar call = Function.prototype.call;\nvar prototypeOfObject = Object.prototype;\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar propertyIsEnumerable = call.bind(prototypeOfObject.propertyIsEnumerable);\nvar toStr = call.bind(prototypeOfObject.toString);\n\n// If JS engine supports accessors creating shortcuts.\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors = owns(prototypeOfObject, '__defineGetter__');\nif (supportsAccessors) {\n /* eslint-disable no-underscore-dangle */\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n /* eslint-enable no-underscore-dangle */\n}\n\n// ES5 15.2.3.2\n// http://es5.github.com/#x15.2.3.2\nif (!Object.getPrototypeOf) {\n // https://github.com/es-shims/es5-shim/issues#issue/2\n // http://ejohn.org/blog/objectgetprototypeof/\n // recommended by fschaefer on github\n //\n // sure, and webreflection says ^_^\n // ... this will nerever possibly return null\n // ... Opera Mini breaks here with infinite loops\n Object.getPrototypeOf = function getPrototypeOf(object) {\n /* eslint-disable no-proto */\n var proto = object.__proto__;\n /* eslint-enable no-proto */\n if (proto || proto === null) {\n return proto;\n } else if (toStr(object.constructor) === '[object Function]') {\n return object.constructor.prototype;\n } else if (!(object instanceof Object)) {\n // Correctly return null for Objects created with `Object.create(null)`\n // (shammed or native) or `{ __proto__: null}`. Also returns null for\n // cross-realm objects on browsers that lack `__proto__` support (like\n // IE <11), but that's the best we can do.\n return null;\n } else {\n return prototypeOfObject;\n }\n };\n}\n\n// ES5 15.2.3.3\n// http://es5.github.com/#x15.2.3.3\n\nvar doesGetOwnPropertyDescriptorWork = function doesGetOwnPropertyDescriptorWork(object) {\n try {\n object.sentinel = 0;\n return Object.getOwnPropertyDescriptor(object, 'sentinel').value === 0;\n } catch (exception) {\n return false;\n }\n};\n\n// check whether getOwnPropertyDescriptor works if it's given. Otherwise, shim partially.\nif (Object.defineProperty) {\n var getOwnPropertyDescriptorWorksOnObject = doesGetOwnPropertyDescriptorWork({});\n var getOwnPropertyDescriptorWorksOnDom = typeof document === 'undefined' ||\n doesGetOwnPropertyDescriptorWork(document.createElement('div'));\n if (!getOwnPropertyDescriptorWorksOnDom || !getOwnPropertyDescriptorWorksOnObject) {\n var getOwnPropertyDescriptorFallback = Object.getOwnPropertyDescriptor;\n }\n}\n\nif (!Object.getOwnPropertyDescriptor || getOwnPropertyDescriptorFallback) {\n var ERR_NON_OBJECT = 'Object.getOwnPropertyDescriptor called on a non-object: ';\n\n /* eslint-disable no-proto */\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object !== 'object' && typeof object !== 'function') || object === null) {\n throw new TypeError(ERR_NON_OBJECT + object);\n }\n\n // make a valiant attempt to use the real getOwnPropertyDescriptor\n // for I8's DOM elements.\n if (getOwnPropertyDescriptorFallback) {\n try {\n return getOwnPropertyDescriptorFallback.call(Object, object, property);\n } catch (exception) {\n // try the shim if the real one doesn't work\n }\n }\n\n var descriptor;\n\n // If object does not owns property return undefined immediately.\n if (!owns(object, property)) {\n return descriptor;\n }\n\n // If object has a property then it's for sure `configurable`, and\n // probably `enumerable`. Detect enumerability though.\n descriptor = {\n enumerable: propertyIsEnumerable(object, property),\n configurable: true\n };\n\n // If JS engine supports accessor properties then property may be a\n // getter or setter.\n if (supportsAccessors) {\n // Unfortunately `__lookupGetter__` will return a getter even\n // if object has own non getter property along with a same named\n // inherited getter. To avoid misbehavior we temporary remove\n // `__proto__` so that `__lookupGetter__` will return getter only\n // if it's owned by an object.\n var prototype = object.__proto__;\n var notPrototypeOfObject = object !== prototypeOfObject;\n // avoid recursion problem, breaking in Opera Mini when\n // Object.getOwnPropertyDescriptor(Object.prototype, 'toString')\n // or any other Object.prototype accessor\n if (notPrototypeOfObject) {\n object.__proto__ = prototypeOfObject;\n }\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n\n if (notPrototypeOfObject) {\n // Once we have getter and setter we can put values back.\n object.__proto__ = prototype;\n }\n\n if (getter || setter) {\n if (getter) {\n descriptor.get = getter;\n }\n if (setter) {\n descriptor.set = setter;\n }\n // If it was accessor property we're done and return here\n // in order to avoid adding `value` to the descriptor.\n return descriptor;\n }\n }\n\n // If we got this far we know that object has an own property that is\n // not an accessor so we set it as a value and return descriptor.\n descriptor.value = object[property];\n descriptor.writable = true;\n return descriptor;\n };\n /* eslint-enable no-proto */\n}\n\n// ES5 15.2.3.4\n// http://es5.github.com/#x15.2.3.4\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\n\n// ES5 15.2.3.5\n// http://es5.github.com/#x15.2.3.5\nif (!Object.create) {\n\n // Contributed by Brandon Benvie, October, 2012\n var createEmpty;\n var supportsProto = !({ __proto__: null } instanceof Object);\n // the following produces false positives\n // in Opera Mini => not a reliable check\n // Object.prototype.__proto__ === null\n\n // Check for document.domain and active x support\n // No need to use active x approach when document.domain is not set\n // see https://github.com/es-shims/es5-shim/issues/150\n // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n /* global ActiveXObject */\n var shouldUseActiveX = function shouldUseActiveX() {\n // return early if document.domain not set\n if (!document.domain) {\n return false;\n }\n\n try {\n return !!new ActiveXObject('htmlfile');\n } catch (exception) {\n return false;\n }\n };\n\n // This supports IE8 when document.domain is used\n // see https://github.com/es-shims/es5-shim/issues/150\n // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n var getEmptyViaActiveX = function getEmptyViaActiveX() {\n var empty;\n var xDoc;\n\n xDoc = new ActiveXObject('htmlfile');\n\n xDoc.write('<script><\\/script>');\n xDoc.close();\n\n empty = xDoc.parentWindow.Object.prototype;\n xDoc = null;\n\n return empty;\n };\n\n // The original implementation using an iframe\n // before the activex approach was added\n // see https://github.com/es-shims/es5-shim/issues/150\n var getEmptyViaIFrame = function getEmptyViaIFrame() {\n var iframe = document.createElement('iframe');\n var parent = document.body || document.documentElement;\n var empty;\n\n iframe.style.display = 'none';\n parent.appendChild(iframe);\n /* eslint-disable no-script-url */\n iframe.src = 'javascript:';\n /* eslint-enable no-script-url */\n\n empty = iframe.contentWindow.Object.prototype;\n parent.removeChild(iframe);\n iframe = null;\n\n return empty;\n };\n\n /* global document */\n if (supportsProto || typeof document === 'undefined') {\n createEmpty = function () {\n return { __proto__: null };\n };\n } else {\n // In old IE __proto__ can't be used to manually set `null`, nor does\n // any other method exist to make an object that inherits from nothing,\n // aside from Object.prototype itself. Instead, create a new global\n // object and *steal* its Object.prototype and strip it bare. This is\n // used as the prototype to create nullary objects.\n createEmpty = function () {\n // Determine which approach to use\n // see https://github.com/es-shims/es5-shim/issues/150\n var empty = shouldUseActiveX() ? getEmptyViaActiveX() : getEmptyViaIFrame();\n\n delete empty.constructor;\n delete empty.hasOwnProperty;\n delete empty.propertyIsEnumerable;\n delete empty.isPrototypeOf;\n delete empty.toLocaleString;\n delete empty.toString;\n delete empty.valueOf;\n\n var Empty = function Empty() {};\n Empty.prototype = empty;\n // short-circuit future calls\n createEmpty = function () {\n return new Empty();\n };\n return new Empty();\n };\n }\n\n Object.create = function create(prototype, properties) {\n\n var object;\n var Type = function Type() {}; // An empty constructor.\n\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype !== 'object' && typeof prototype !== 'function') {\n // In the native implementation `parent` can be `null`\n // OR *any* `instanceof Object` (Object|Function|Array|RegExp|etc)\n // Use `typeof` tho, b/c in old IE, DOM elements are not `instanceof Object`\n // like they are in modern browsers. Using `Object.create` on DOM elements\n // is...err...probably inappropriate, but the native version allows for it.\n throw new TypeError('Object prototype may only be an Object or null'); // same msg as Chrome\n }\n Type.prototype = prototype;\n object = new Type();\n // IE has no built-in implementation of `Object.getPrototypeOf`\n // neither `__proto__`, but this manually setting `__proto__` will\n // guarantee that `Object.getPrototypeOf` will work as expected with\n // objects created using `Object.create`\n /* eslint-disable no-proto */\n object.__proto__ = prototype;\n /* eslint-enable no-proto */\n }\n\n if (properties !== void 0) {\n Object.defineProperties(object, properties);\n }\n\n return object;\n };\n}\n\n// ES5 15.2.3.6\n// http://es5.github.com/#x15.2.3.6\n\n// Patch for WebKit and IE8 standard mode\n// Designed by hax <hax.github.com>\n// related issue: https://github.com/es-shims/es5-shim/issues#issue/5\n// IE8 Reference:\n// http://msdn.microsoft.com/en-us/library/dd282900.aspx\n// http://msdn.microsoft.com/en-us/library/dd229916.aspx\n// WebKit Bugs:\n// https://bugs.webkit.org/show_bug.cgi?id=36423\n\nvar doesDefinePropertyWork = function doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, 'sentinel', {});\n return 'sentinel' in object;\n } catch (exception) {\n return false;\n }\n};\n\n// check whether defineProperty works if it's given. Otherwise,\n// shim partially.\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document === 'undefined' ||\n doesDefinePropertyWork(document.createElement('div'));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty,\n definePropertiesFallback = Object.defineProperties;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = 'Property description must be an object: ';\n var ERR_NON_OBJECT_TARGET = 'Object.defineProperty called on non-object: ';\n var ERR_ACCESSORS_NOT_SUPPORTED = 'getters & setters can not be defined on this javascript engine';\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object !== 'object' && typeof object !== 'function') || object === null) {\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n }\n if ((typeof descriptor !== 'object' && typeof descriptor !== 'function') || descriptor === null) {\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n }\n // make a valiant attempt to use the real defineProperty\n // for I8's DOM elements.\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n // try the shim if the real one doesn't work\n }\n }\n\n // If it's a data property.\n if ('value' in descriptor) {\n // fail silently if 'writable', 'enumerable', or 'configurable'\n // are requested but not supported\n /*\n // alternate approach:\n if ( // can't implement these features; allow false but not true\n ('writable' in descriptor && !descriptor.writable) ||\n ('enumerable' in descriptor && !descriptor.enumerable) ||\n ('configurable' in descriptor && !descriptor.configurable)\n ))\n throw new RangeError(\n 'This implementation of Object.defineProperty does not support configurable, enumerable, or writable.'\n );\n */\n\n if (supportsAccessors && (lookupGetter(object, property) || lookupSetter(object, property))) {\n // As accessors are supported only on engines implementing\n // `__proto__` we can safely override `__proto__` while defining\n // a property to make sure that we don't hit an inherited\n // accessor.\n /* eslint-disable no-proto */\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n // Deleting a property anyway since getter / setter may be\n // defined on object itself.\n delete object[property];\n object[property] = descriptor.value;\n // Setting original `__proto__` back now.\n object.__proto__ = prototype;\n /* eslint-enable no-proto */\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors && (('get' in descriptor) || ('set' in descriptor))) {\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n }\n // If we got that far then getters and setters can be defined !!\n if ('get' in descriptor) {\n defineGetter(object, property, descriptor.get);\n }\n if ('set' in descriptor) {\n defineSetter(object, property, descriptor.set);\n }\n }\n return object;\n };\n}\n\n// ES5 15.2.3.7\n// http://es5.github.com/#x15.2.3.7\nif (!Object.defineProperties || definePropertiesFallback) {\n Object.defineProperties = function defineProperties(object, properties) {\n // make a valiant attempt to use the real defineProperties\n if (definePropertiesFallback) {\n try {\n return definePropertiesFallback.call(Object, object, properties);\n } catch (exception) {\n // try the shim if the real one doesn't work\n }\n }\n\n Object.keys(properties).forEach(function (property) {\n if (property !== '__proto__') {\n Object.defineProperty(object, property, properties[property]);\n }\n });\n return object;\n };\n}\n\n// ES5 15.2.3.8\n// http://es5.github.com/#x15.2.3.8\nif (!Object.seal) {\n Object.seal = function seal(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.seal can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n}\n\n// ES5 15.2.3.9\n// http://es5.github.com/#x15.2.3.9\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.freeze can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n}\n\n// detect a Rhino bug and patch it\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function (freezeObject) {\n return function freeze(object) {\n if (typeof object === 'function') {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n }(Object.freeze));\n}\n\n// ES5 15.2.3.10\n// http://es5.github.com/#x15.2.3.10\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.preventExtensions can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n}\n\n// ES5 15.2.3.11\n// http://es5.github.com/#x15.2.3.11\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.isSealed can only be called on Objects.');\n }\n return false;\n };\n}\n\n// ES5 15.2.3.12\n// http://es5.github.com/#x15.2.3.12\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.isFrozen can only be called on Objects.');\n }\n return false;\n };\n}\n\n// ES5 15.2.3.13\n// http://es5.github.com/#x15.2.3.13\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n // 1. If Type(O) is not Object throw a TypeError exception.\n if (Object(object) !== object) {\n throw new TypeError('Object.isExtensible can only be called on Objects.');\n }\n // 2. Return the Boolean value of the [[Extensible]] internal property of O.\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\n\n}));\n","/*!\n * https://github.com/es-shims/es5-shim\n * @license es5-shim Copyright 2009-2015 by contributors, MIT License\n * see https://github.com/es-shims/es5-shim/blob/master/LICENSE\n */\n\n// vim: ts=4 sts=4 sw=4 expandtab\n\n// Add semicolon to prevent IIFE from being passed as argument to concatenated code.\n;\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n 'use strict';\n\n /* global define, exports, module */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.returnExports = factory();\n }\n}(this, function () {\n\n/**\n * Brings an environment as close to ECMAScript 5 compliance\n * as is possible with the facilities of erstwhile engines.\n *\n * Annotated ES5: http://es5.github.com/ (specific links below)\n * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf\n * Required reading: http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/\n */\n\n// Shortcut to an often accessed properties, in order to avoid multiple\n// dereference that costs universally. This also holds a reference to known-good\n// functions.\nvar $Array = Array;\nvar ArrayPrototype = $Array.prototype;\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\nvar FunctionPrototype = Function.prototype;\nvar $String = String;\nvar StringPrototype = $String.prototype;\nvar $Number = Number;\nvar NumberPrototype = $Number.prototype;\nvar array_slice = ArrayPrototype.slice;\nvar array_splice = ArrayPrototype.splice;\nvar array_push = ArrayPrototype.push;\nvar array_unshift = ArrayPrototype.unshift;\nvar array_concat = ArrayPrototype.concat;\nvar call = FunctionPrototype.call;\nvar max = Math.max;\nvar min = Math.min;\n\n// Having a toString local variable name breaks in Opera so use to_string.\nvar to_string = ObjectPrototype.toString;\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, tryFunctionObject = function tryFunctionObject(value) { try { fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]'; isCallable = function isCallable(value) { if (typeof value !== 'function') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };\nvar isRegex; /* inlined from https://npmjs.com/is-regex */ var regexExec = RegExp.prototype.exec, tryRegexExec = function tryRegexExec(value) { try { regexExec.call(value); return true; } catch (e) { return false; } }, regexClass = '[object RegExp]'; isRegex = function isRegex(value) { if (typeof value !== 'object') { return false; } return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass; };\nvar isString; /* inlined from https://npmjs.com/is-string */ var strValue = String.prototype.valueOf, tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }, stringClass = '[object String]'; isString = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass; };\n\n/* inlined from http://npmjs.com/define-properties */\nvar defineProperties = (function (has) {\n var supportsDescriptors = $Object.defineProperty && (function () {\n try {\n var obj = {};\n $Object.defineProperty(obj, 'x', { enumerable: false, value: obj });\n for (var _ in obj) { return false; }\n return obj.x === obj;\n } catch (e) { /* this is ES3 */\n return false;\n }\n }());\n\n // Define configurable, writable and non-enumerable props\n // if they don't exist.\n var defineProperty;\n if (supportsDescriptors) {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) { return; }\n $Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: method\n });\n };\n } else {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) { return; }\n object[name] = method;\n };\n }\n return function defineProperties(object, map, forceAssign) {\n for (var name in map) {\n if (has.call(map, name)) {\n defineProperty(object, name, map[name], forceAssign);\n }\n }\n };\n}(ObjectPrototype.hasOwnProperty));\n\n//\n// Util\n// ======\n//\n\n/* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */\nvar isPrimitive = function isPrimitive(input) {\n var type = typeof input;\n return input === null || (type !== 'object' && type !== 'function');\n};\n\nvar ES = {\n // ES5 9.4\n // http://es5.github.com/#x9.4\n // http://jsperf.com/to-integer\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */\n ToInteger: function ToInteger(num) {\n var n = +num;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n },\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */\n ToPrimitive: function ToPrimitive(input) {\n var val, valueOf, toStr;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (isCallable(valueOf)) {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toStr = input.toString;\n if (isCallable(toStr)) {\n val = toStr.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n },\n\n // ES5 9.9\n // http://es5.github.com/#x9.9\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */\n ToObject: function (o) {\n /* jshint eqnull: true */\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \" + o + ' to object');\n }\n return $Object(o);\n },\n\n /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */\n ToUint32: function ToUint32(x) {\n return x >>> 0;\n }\n};\n\n//\n// Function\n// ========\n//\n\n// ES-5 15.3.4.5\n// http://es5.github.com/#x15.3.4.5\n\nvar Empty = function Empty() {};\n\ndefineProperties(FunctionPrototype, {\n bind: function bind(that) { // .length is 1\n // 1. Let Target be the this value.\n var target = this;\n // 2. If IsCallable(Target) is false, throw a TypeError exception.\n if (!isCallable(target)) {\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n }\n // 3. Let A be a new (possibly empty) internal list of all of the\n // argument values provided after thisArg (arg1, arg2 etc), in order.\n // XXX slicedArgs will stand in for \"A\" if used\n var args = array_slice.call(arguments, 1); // for normal call\n // 4. Let F be a new native ECMAScript object.\n // 11. Set the [[Prototype]] internal property of F to the standard\n // built-in Function prototype object as specified in 15.3.3.1.\n // 12. Set the [[Call]] internal property of F as described in\n // 15.3.4.5.1.\n // 13. Set the [[Construct]] internal property of F as described in\n // 15.3.4.5.2.\n // 14. Set the [[HasInstance]] internal property of F as described in\n // 15.3.4.5.3.\n var bound;\n var binder = function () {\n\n if (this instanceof bound) {\n // 15.3.4.5.2 [[Construct]]\n // When the [[Construct]] internal method of a function object,\n // F that was created using the bind function is called with a\n // list of arguments ExtraArgs, the following steps are taken:\n // 1. Let target be the value of F's [[TargetFunction]]\n // internal property.\n // 2. If target has no [[Construct]] internal method, a\n // TypeError exception is thrown.\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Construct]] internal\n // method of target providing args as the arguments.\n\n var result = target.apply(\n this,\n array_concat.call(args, array_slice.call(arguments))\n );\n if ($Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n // 15.3.4.5.1 [[Call]]\n // When the [[Call]] internal method of a function object, F,\n // which was created using the bind function is called with a\n // this value and a list of arguments ExtraArgs, the following\n // steps are taken:\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\n // property.\n // 3. Let target be the value of F's [[TargetFunction]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Call]] internal method\n // of target providing boundThis as the this value and\n // providing args as the arguments.\n\n // equiv: target.call(this, ...boundArgs, ...args)\n return target.apply(\n that,\n array_concat.call(args, array_slice.call(arguments))\n );\n\n }\n\n };\n\n // 15. If the [[Class]] internal property of Target is \"Function\", then\n // a. Let L be the length property of Target minus the length of A.\n // b. Set the length own property of F to either 0 or L, whichever is\n // larger.\n // 16. Else set the length own property of F to 0.\n\n var boundLength = max(0, target.length - args.length);\n\n // 17. Set the attributes of the length own property of F to the values\n // specified in 15.3.5.1.\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n array_push.call(boundArgs, '$' + i);\n }\n\n // XXX Build a dynamic function with desired amount of arguments is the only\n // way to set the length property of a function.\n // In environments where Content Security Policies enabled (Chrome extensions,\n // for ex.) all use of eval or Function costructor throws an exception.\n // However in all of these environments Function.prototype.bind exists\n // and so this code will never be executed.\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\n\n if (target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n // Clean up dangling references.\n Empty.prototype = null;\n }\n\n // TODO\n // 18. Set the [[Extensible]] internal property of F to true.\n\n // TODO\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n // 20. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n // false.\n // 21. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n // and false.\n\n // TODO\n // NOTE Function objects created using Function.prototype.bind do not\n // have a prototype property or the [[Code]], [[FormalParameters]], and\n // [[Scope]] internal properties.\n // XXX can't delete prototype in pure-js.\n\n // 22. Return F.\n return bound;\n }\n});\n\n// _Please note: Shortcuts are defined after `Function.prototype.bind` as we\n// us it in defining shortcuts.\nvar owns = call.bind(ObjectPrototype.hasOwnProperty);\nvar toStr = call.bind(ObjectPrototype.toString);\nvar strSlice = call.bind(StringPrototype.slice);\nvar strSplit = call.bind(StringPrototype.split);\n\n//\n// Array\n// =====\n//\n\nvar isArray = $Array.isArray || function isArray(obj) {\n return toStr(obj) === '[object Array]';\n};\n\n// ES5 15.4.4.12\n// http://es5.github.com/#x15.4.4.13\n// Return len+argCount.\n// [bugfix, ielt8]\n// IE < 8 bug: [].unshift(0) === undefined but should be \"1\"\nvar hasUnshiftReturnValueBug = [].unshift(0) !== 1;\ndefineProperties(ArrayPrototype, {\n unshift: function () {\n array_unshift.apply(this, arguments);\n return this.length;\n }\n}, hasUnshiftReturnValueBug);\n\n// ES5 15.4.3.2\n// http://es5.github.com/#x15.4.3.2\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\ndefineProperties($Array, { isArray: isArray });\n\n// The IsCallable() check in the Array functions\n// has been replaced with a strict check on the\n// internal class of the object to trap cases where\n// the provided function was actually a regular\n// expression literal, which in V8 and\n// JavaScriptCore is a typeof \"function\". Only in\n// V8 are regular expression literals permitted as\n// reduce parameters, so it is desirable in the\n// general case for the shim to match the more\n// strict and common behavior of rejecting regular\n// expressions.\n\n// ES5 15.4.4.18\n// http://es5.github.com/#x15.4.4.18\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach\n\n// Check failure of by-index access of string characters (IE < 9)\n// and failure of `0 in boxedString` (Rhino)\nvar boxedString = $Object('a');\nvar splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\nvar properlyBoxesContext = function properlyBoxed(method) {\n // Check node 0.6.21 bug where third parameter is not boxed\n var properlyBoxesNonStrict = true;\n var properlyBoxesStrict = true;\n if (method) {\n method.call('foo', function (_, __, context) {\n if (typeof context !== 'object') { properlyBoxesNonStrict = false; }\n });\n\n method.call([1], function () {\n 'use strict';\n\n properlyBoxesStrict = typeof this === 'string';\n }, 'x');\n }\n return !!method && properlyBoxesNonStrict && properlyBoxesStrict;\n};\n\ndefineProperties(ArrayPrototype, {\n forEach: function forEach(callbackfn /*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var i = -1;\n var length = self.length >>> 0;\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.forEach callback must be a function');\n }\n\n while (++i < length) {\n if (i in self) {\n // Invoke the callback function with call, passing arguments:\n // context, property value, property key, thisArg object\n if (typeof T !== 'undefined') {\n callbackfn.call(T, self[i], i, object);\n } else {\n callbackfn(self[i], i, object);\n }\n }\n }\n }\n}, !properlyBoxesContext(ArrayPrototype.forEach));\n\n// ES5 15.4.4.19\n// http://es5.github.com/#x15.4.4.19\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map\ndefineProperties(ArrayPrototype, {\n map: function map(callbackfn/*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = self.length >>> 0;\n var result = $Array(length);\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.map callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n if (typeof T !== 'undefined') {\n result[i] = callbackfn.call(T, self[i], i, object);\n } else {\n result[i] = callbackfn(self[i], i, object);\n }\n }\n }\n return result;\n }\n}, !properlyBoxesContext(ArrayPrototype.map));\n\n// ES5 15.4.4.20\n// http://es5.github.com/#x15.4.4.20\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter\ndefineProperties(ArrayPrototype, {\n filter: function filter(callbackfn /*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = self.length >>> 0;\n var result = [];\n var value;\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.filter callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) {\n array_push.call(result, value);\n }\n }\n }\n return result;\n }\n}, !properlyBoxesContext(ArrayPrototype.filter));\n\n// ES5 15.4.4.16\n// http://es5.github.com/#x15.4.4.16\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every\ndefineProperties(ArrayPrototype, {\n every: function every(callbackfn /*, thisArg*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = self.length >>> 0;\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.every callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n return false;\n }\n }\n return true;\n }\n}, !properlyBoxesContext(ArrayPrototype.every));\n\n// ES5 15.4.4.17\n// http://es5.github.com/#x15.4.4.17\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some\ndefineProperties(ArrayPrototype, {\n some: function some(callbackfn/*, thisArg */) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = self.length >>> 0;\n var T;\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.some callback must be a function');\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n return true;\n }\n }\n return false;\n }\n}, !properlyBoxesContext(ArrayPrototype.some));\n\n// ES5 15.4.4.21\n// http://es5.github.com/#x15.4.4.21\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce\nvar reduceCoercesToObject = false;\nif (ArrayPrototype.reduce) {\n reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) { return list; }) === 'object';\n}\ndefineProperties(ArrayPrototype, {\n reduce: function reduce(callbackfn /*, initialValue*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = self.length >>> 0;\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.reduce callback must be a function');\n }\n\n // no value to return if no initial value and an empty array\n if (length === 0 && arguments.length === 1) {\n throw new TypeError('reduce of empty array with no initial value');\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n\n // if array contains no values, no initial value to return\n if (++i >= length) {\n throw new TypeError('reduce of empty array with no initial value');\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = callbackfn(result, self[i], i, object);\n }\n }\n\n return result;\n }\n}, !reduceCoercesToObject);\n\n// ES5 15.4.4.22\n// http://es5.github.com/#x15.4.4.22\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight\nvar reduceRightCoercesToObject = false;\nif (ArrayPrototype.reduceRight) {\n reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) { return list; }) === 'object';\n}\ndefineProperties(ArrayPrototype, {\n reduceRight: function reduceRight(callbackfn/*, initial*/) {\n var object = ES.ToObject(this);\n var self = splitString && isString(this) ? strSplit(this, '') : object;\n var length = self.length >>> 0;\n\n // If no callback function or if callback is not a callable function\n if (!isCallable(callbackfn)) {\n throw new TypeError('Array.prototype.reduceRight callback must be a function');\n }\n\n // no value to return if no initial value, empty array\n if (length === 0 && arguments.length === 1) {\n throw new TypeError('reduceRight of empty array with no initial value');\n }\n\n var result;\n var i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n\n // if array contains no values, no initial value to return\n if (--i < 0) {\n throw new TypeError('reduceRight of empty array with no initial value');\n }\n } while (true);\n }\n\n if (i < 0) {\n return result;\n }\n\n do {\n if (i in self) {\n result = callbackfn(result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n }\n}, !reduceRightCoercesToObject);\n\n// ES5 15.4.4.14\n// http://es5.github.com/#x15.4.4.14\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\nvar hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\ndefineProperties(ArrayPrototype, {\n indexOf: function indexOf(searchElement /*, fromIndex */) {\n var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n var length = self.length >>> 0;\n\n if (length === 0) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = ES.ToInteger(arguments[1]);\n }\n\n // handle negative indices\n i = i >= 0 ? i : max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === searchElement) {\n return i;\n }\n }\n return -1;\n }\n}, hasFirefox2IndexOfBug);\n\n// ES5 15.4.4.15\n// http://es5.github.com/#x15.4.4.15\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf\nvar hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;\ndefineProperties(ArrayPrototype, {\n lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */) {\n var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n var length = self.length >>> 0;\n\n if (length === 0) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = min(i, ES.ToInteger(arguments[1]));\n }\n // handle negative indices\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && searchElement === self[i]) {\n return i;\n }\n }\n return -1;\n }\n}, hasFirefox2LastIndexOfBug);\n\n// ES5 15.4.4.12\n// http://es5.github.com/#x15.4.4.12\nvar spliceNoopReturnsEmptyArray = (function () {\n var a = [1, 2];\n var result = a.splice();\n return a.length === 2 && isArray(result) && result.length === 0;\n}());\ndefineProperties(ArrayPrototype, {\n // Safari 5.0 bug where .splice() returns undefined\n splice: function splice(start, deleteCount) {\n if (arguments.length === 0) {\n return [];\n } else {\n return array_splice.apply(this, arguments);\n }\n }\n}, !spliceNoopReturnsEmptyArray);\n\nvar spliceWorksWithEmptyObject = (function () {\n var obj = {};\n ArrayPrototype.splice.call(obj, 0, 0, 1);\n return obj.length === 1;\n}());\ndefineProperties(ArrayPrototype, {\n splice: function splice(start, deleteCount) {\n if (arguments.length === 0) { return []; }\n var args = arguments;\n this.length = max(ES.ToInteger(this.length), 0);\n if (arguments.length > 0 && typeof deleteCount !== 'number') {\n args = array_slice.call(arguments);\n if (args.length < 2) {\n array_push.call(args, this.length - start);\n } else {\n args[1] = ES.ToInteger(deleteCount);\n }\n }\n return array_splice.apply(this, args);\n }\n}, !spliceWorksWithEmptyObject);\nvar spliceWorksWithLargeSparseArrays = (function () {\n // Per https://github.com/es-shims/es5-shim/issues/295\n // Safari 7/8 breaks with sparse arrays of size 1e5 or greater\n var arr = new $Array(1e5);\n // note: the index MUST be 8 or larger or the test will false pass\n arr[8] = 'x';\n arr.splice(1, 1);\n // note: this test must be defined *after* the indexOf shim\n // per https://github.com/es-shims/es5-shim/issues/313\n return arr.indexOf('x') === 7;\n}());\nvar spliceWorksWithSmallSparseArrays = (function () {\n // Per https://github.com/es-shims/es5-shim/issues/295\n // Opera 12.15 breaks on this, no idea why.\n var n = 256;\n var arr = [];\n arr[n] = 'a';\n arr.splice(n + 1, 0, 'b');\n return arr[n] === 'a';\n}());\ndefineProperties(ArrayPrototype, {\n splice: function splice(start, deleteCount) {\n var O = ES.ToObject(this);\n var A = [];\n var len = ES.ToUint32(O.length);\n var relativeStart = ES.ToInteger(start);\n var actualStart = relativeStart < 0 ? max((len + relativeStart), 0) : min(relativeStart, len);\n var actualDeleteCount = min(max(ES.ToInteger(deleteCount), 0), len - actualStart);\n\n var k = 0;\n var from;\n while (k < actualDeleteCount) {\n from = $String(actualStart + k);\n if (owns(O, from)) {\n A[k] = O[from];\n }\n k += 1;\n }\n\n var items = array_slice.call(arguments, 2);\n var itemCount = items.length;\n var to;\n if (itemCount < actualDeleteCount) {\n k = actualStart;\n while (k < (len - actualDeleteCount)) {\n from = $String(k + actualDeleteCount);\n to = $String(k + itemCount);\n if (owns(O, from)) {\n O[to] = O[from];\n } else {\n delete O[to];\n }\n k += 1;\n }\n k = len;\n while (k > (len - actualDeleteCount + itemCount)) {\n delete O[k - 1];\n k -= 1;\n }\n } else if (itemCount > actualDeleteCount) {\n k = len - actualDeleteCount;\n while (k > actualStart) {\n from = $String(k + actualDeleteCount - 1);\n to = $String(k + itemCount - 1);\n if (owns(O, from)) {\n O[to] = O[from];\n } else {\n delete O[to];\n }\n k -= 1;\n }\n }\n k = actualStart;\n for (var i = 0; i < items.length; ++i) {\n O[k] = items[i];\n k += 1;\n }\n O.length = len - actualDeleteCount + itemCount;\n\n return A;\n }\n}, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays);\n\n//\n// Object\n// ======\n//\n\n// ES5 15.2.3.14\n// http://es5.github.com/#x15.2.3.14\n\n// http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar hasStringEnumBug = !owns('x', '0');\nvar equalsConstructorPrototype = function (o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n $window: true,\n $console: true,\n $parent: true,\n $self: true,\n $frames: true,\n $frameElement: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n /* globals window */\n if (typeof window === 'undefined') { return false; }\n for (var k in window) {\n if (!blacklistedKeys['$' + k] && owns(window, k) && window[k] !== null && typeof window[k] === 'object') {\n try {\n equalsConstructorPrototype(window[k]);\n } catch (e) {\n return true;\n }\n }\n }\n return false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (object) {\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) { return equalsConstructorPrototype(object); }\n try {\n return equalsConstructorPrototype(object);\n } catch (e) {\n return false;\n }\n};\nvar dontEnums = [\n 'toString',\n 'toLocaleString',\n 'valueOf',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'constructor'\n];\nvar dontEnumsLength = dontEnums.length;\n\nvar isArguments = function isArguments(value) {\n var str = toStr(value);\n var isArgs = str === '[object Arguments]';\n if (!isArgs) {\n isArgs = !isArray(value) &&\n value !== null &&\n typeof value === 'object' &&\n typeof value.length === 'number' &&\n value.length >= 0 &&\n isCallable(value.callee);\n }\n return isArgs;\n};\n\ndefineProperties($Object, {\n keys: function keys(object) {\n var isFn = isCallable(object);\n var isArgs = isArguments(object);\n var isObject = object !== null && typeof object === 'object';\n var isStr = isObject && isString(object);\n\n if (!isObject && !isFn && !isArgs) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var theKeys = [];\n var skipProto = hasProtoEnumBug && isFn;\n if ((isStr && hasStringEnumBug) || isArgs) {\n for (var i = 0; i < object.length; ++i) {\n array_push.call(theKeys, $String(i));\n }\n }\n\n if (!isArgs) {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && owns(object, name)) {\n array_push.call(theKeys, $String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n for (var j = 0; j < dontEnumsLength; j++) {\n var dontEnum = dontEnums[j];\n if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) {\n array_push.call(theKeys, dontEnum);\n }\n }\n }\n return theKeys;\n }\n});\n\nvar keysWorksWithArguments = $Object.keys && (function () {\n // Safari 5.0 bug\n return $Object.keys(arguments).length === 2;\n}(1, 2));\nvar keysHasArgumentsLengthBug = $Object.keys && (function () {\n var argKeys = $Object.keys(arguments);\n\treturn arguments.length !== 1 || argKeys.length !== 1 || argKeys[0] !== 1;\n}(1));\nvar originalKeys = $Object.keys;\ndefineProperties($Object, {\n keys: function keys(object) {\n if (isArguments(object)) {\n return originalKeys(array_slice.call(object));\n } else {\n return originalKeys(object);\n }\n }\n}, !keysWorksWithArguments || keysHasArgumentsLengthBug);\n\n//\n// Date\n// ====\n//\n\n// ES5 15.9.5.43\n// http://es5.github.com/#x15.9.5.43\n// This function returns a String value represent the instance in time\n// represented by this Date object. The format of the String is the Date Time\n// string format defined in 15.9.1.15. All fields are present in the String.\n// The time zone is always UTC, denoted by the suffix Z. If the time value of\n// this object is not a finite Number a RangeError exception is thrown.\nvar negativeDate = -62198755200000;\nvar negativeYearString = '-000001';\nvar hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1;\nvar hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z';\n\ndefineProperties(Date.prototype, {\n toISOString: function toISOString() {\n var result, length, value, year, month;\n if (!isFinite(this)) {\n throw new RangeError('Date.prototype.toISOString called on non-finite value.');\n }\n\n year = this.getUTCFullYear();\n\n month = this.getUTCMonth();\n // see https://github.com/es-shims/es5-shim/issues/111\n year += Math.floor(month / 12);\n month = (month % 12 + 12) % 12;\n\n // the date time string format is specified in 15.9.1.15.\n result = [month + 1, this.getUTCDate(), this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()];\n year = (\n (year < 0 ? '-' : (year > 9999 ? '+' : '')) +\n strSlice('00000' + Math.abs(year), (0 <= year && year <= 9999) ? -4 : -6)\n );\n\n length = result.length;\n while (length--) {\n value = result[length];\n // pad months, days, hours, minutes, and seconds to have two\n // digits.\n if (value < 10) {\n result[length] = '0' + value;\n }\n }\n // pad milliseconds to have three digits.\n return (\n year + '-' + array_slice.call(result, 0, 2).join('-') +\n 'T' + array_slice.call(result, 2).join(':') + '.' +\n strSlice('000' + this.getUTCMilliseconds(), -3) + 'Z'\n );\n }\n}, hasNegativeDateBug || hasSafari51DateBug);\n\n// ES5 15.9.5.44\n// http://es5.github.com/#x15.9.5.44\n// This function provides a String representation of a Date object for use by\n// JSON.stringify (15.12.3).\nvar dateToJSONIsSupported = (function () {\n try {\n return Date.prototype.toJSON &&\n new Date(NaN).toJSON() === null &&\n new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 &&\n Date.prototype.toJSON.call({ // generic\n toISOString: function () { return true; }\n });\n } catch (e) {\n return false;\n }\n}());\nif (!dateToJSONIsSupported) {\n Date.prototype.toJSON = function toJSON(key) {\n // When the toJSON method is called with argument key, the following\n // steps are taken:\n\n // 1. Let O be the result of calling ToObject, giving it the this\n // value as its argument.\n // 2. Let tv be ES.ToPrimitive(O, hint Number).\n var O = $Object(this);\n var tv = ES.ToPrimitive(O);\n // 3. If tv is a Number and is not finite, return null.\n if (typeof tv === 'number' && !isFinite(tv)) {\n return null;\n }\n // 4. Let toISO be the result of calling the [[Get]] internal method of\n // O with argument \"toISOString\".\n var toISO = O.toISOString;\n // 5. If IsCallable(toISO) is false, throw a TypeError exception.\n if (!isCallable(toISO)) {\n throw new TypeError('toISOString property is not callable');\n }\n // 6. Return the result of calling the [[Call]] internal method of\n // toISO with O as the this value and an empty argument list.\n return toISO.call(O);\n\n // NOTE 1 The argument is ignored.\n\n // NOTE 2 The toJSON function is intentionally generic; it does not\n // require that its this value be a Date object. Therefore, it can be\n // transferred to other kinds of objects for use as a method. However,\n // it does require that any such object have a toISOString method. An\n // object is free to use the argument key to filter its\n // stringification.\n };\n}\n\n// ES5 15.9.4.2\n// http://es5.github.com/#x15.9.4.2\n// based on work shared by Daniel Friesen (dantman)\n// http://gist.github.com/303249\nvar supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15;\nvar acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z'));\nvar doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z'));\nif (doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) {\n // XXX global assignment won't work in embeddings that use\n // an alternate object for the context.\n /* global Date: true */\n /* eslint-disable no-undef */\n Date = (function (NativeDate) {\n /* eslint-enable no-undef */\n // Date.length === 7\n var DateShim = function Date(Y, M, D, h, m, s, ms) {\n var length = arguments.length;\n var date;\n if (this instanceof NativeDate) {\n date = length === 1 && $String(Y) === Y ? // isString(Y)\n // We explicitly pass it through parse:\n new NativeDate(DateShim.parse(Y)) :\n // We have to manually make calls depending on argument\n // length here\n length >= 7 ? new NativeDate(Y, M, D, h, m, s, ms) :\n length >= 6 ? new NativeDate(Y, M, D, h, m, s) :\n length >= 5 ? new NativeDate(Y, M, D, h, m) :\n length >= 4 ? new NativeDate(Y, M, D, h) :\n length >= 3 ? new NativeDate(Y, M, D) :\n length >= 2 ? new NativeDate(Y, M) :\n length >= 1 ? new NativeDate(Y) :\n new NativeDate();\n } else {\n date = NativeDate.apply(this, arguments);\n }\n // Prevent mixups with unfixed Date object\n defineProperties(date, { constructor: DateShim }, true);\n return date;\n };\n\n // 15.9.1.15 Date Time String Format.\n var isoDateExpression = new RegExp('^' +\n '(\\\\d{4}|[+-]\\\\d{6})' + // four-digit year capture or sign +\n // 6-digit extended year\n '(?:-(\\\\d{2})' + // optional month capture\n '(?:-(\\\\d{2})' + // optional day capture\n '(?:' + // capture hours:minutes:seconds.milliseconds\n 'T(\\\\d{2})' + // hours capture\n ':(\\\\d{2})' + // minutes capture\n '(?:' + // optional :seconds.milliseconds\n ':(\\\\d{2})' + // seconds capture\n '(?:(\\\\.\\\\d{1,}))?' + // milliseconds capture\n ')?' +\n '(' + // capture UTC offset component\n 'Z|' + // UTC capture\n '(?:' + // offset specifier +/-hours:minutes\n '([-+])' + // sign capture\n '(\\\\d{2})' + // hours offset capture\n ':(\\\\d{2})' + // minutes offset capture\n ')' +\n ')?)?)?)?' +\n '$');\n\n var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\n\n var dayFromMonth = function dayFromMonth(year, month) {\n var t = month > 1 ? 1 : 0;\n return (\n months[month] +\n Math.floor((year - 1969 + t) / 4) -\n Math.floor((year - 1901 + t) / 100) +\n Math.floor((year - 1601 + t) / 400) +\n 365 * (year - 1970)\n );\n };\n\n var toUTC = function toUTC(t) {\n return $Number(new NativeDate(1970, 0, 1, 0, 0, 0, t));\n };\n\n // Copy any custom methods a 3rd party library may have added\n for (var key in NativeDate) {\n if (owns(NativeDate, key)) {\n DateShim[key] = NativeDate[key];\n }\n }\n\n // Copy \"native\" methods explicitly; they may be non-enumerable\n defineProperties(DateShim, {\n now: NativeDate.now,\n UTC: NativeDate.UTC\n }, true);\n DateShim.prototype = NativeDate.prototype;\n defineProperties(DateShim.prototype, {\n constructor: DateShim\n }, true);\n\n // Upgrade Date.parse to handle simplified ISO 8601 strings\n var parseShim = function parse(string) {\n var match = isoDateExpression.exec(string);\n if (match) {\n // parse months, days, hours, minutes, seconds, and milliseconds\n // provide default values if necessary\n // parse the UTC offset component\n var year = $Number(match[1]),\n month = $Number(match[2] || 1) - 1,\n day = $Number(match[3] || 1) - 1,\n hour = $Number(match[4] || 0),\n minute = $Number(match[5] || 0),\n second = $Number(match[6] || 0),\n millisecond = Math.floor($Number(match[7] || 0) * 1000),\n // When time zone is missed, local offset should be used\n // (ES 5.1 bug)\n // see https://bugs.ecmascript.org/show_bug.cgi?id=112\n isLocalTime = Boolean(match[4] && !match[8]),\n signOffset = match[9] === '-' ? 1 : -1,\n hourOffset = $Number(match[10] || 0),\n minuteOffset = $Number(match[11] || 0),\n result;\n if (\n hour < (\n minute > 0 || second > 0 || millisecond > 0 ?\n 24 : 25\n ) &&\n minute < 60 && second < 60 && millisecond < 1000 &&\n month > -1 && month < 12 && hourOffset < 24 &&\n minuteOffset < 60 && // detect invalid offsets\n day > -1 &&\n day < (\n dayFromMonth(year, month + 1) -\n dayFromMonth(year, month)\n )\n ) {\n result = (\n (dayFromMonth(year, month) + day) * 24 +\n hour +\n hourOffset * signOffset\n ) * 60;\n result = (\n (result + minute + minuteOffset * signOffset) * 60 +\n second\n ) * 1000 + millisecond;\n if (isLocalTime) {\n result = toUTC(result);\n }\n if (-8.64e15 <= result && result <= 8.64e15) {\n return result;\n }\n }\n return NaN;\n }\n return NativeDate.parse.apply(this, arguments);\n };\n defineProperties(DateShim, { parse: parseShim });\n\n return DateShim;\n }(Date));\n /* global Date: false */\n}\n\n// ES5 15.9.4.4\n// http://es5.github.com/#x15.9.4.4\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\n\n//\n// Number\n// ======\n//\n\n// ES5.1 15.7.4.5\n// http://es5.github.com/#x15.7.4.5\nvar hasToFixedBugs = NumberPrototype.toFixed && (\n (0.00008).toFixed(3) !== '0.000' ||\n (0.9).toFixed(0) !== '1' ||\n (1.255).toFixed(2) !== '1.25' ||\n (1000000000000000128).toFixed(0) !== '1000000000000000128'\n);\n\nvar toFixedHelpers = {\n base: 1e7,\n size: 6,\n data: [0, 0, 0, 0, 0, 0],\n multiply: function multiply(n, c) {\n var i = -1;\n var c2 = c;\n while (++i < toFixedHelpers.size) {\n c2 += n * toFixedHelpers.data[i];\n toFixedHelpers.data[i] = c2 % toFixedHelpers.base;\n c2 = Math.floor(c2 / toFixedHelpers.base);\n }\n },\n divide: function divide(n) {\n var i = toFixedHelpers.size, c = 0;\n while (--i >= 0) {\n c += toFixedHelpers.data[i];\n toFixedHelpers.data[i] = Math.floor(c / n);\n c = (c % n) * toFixedHelpers.base;\n }\n },\n numToString: function numToString() {\n var i = toFixedHelpers.size;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) {\n var t = $String(toFixedHelpers.data[i]);\n if (s === '') {\n s = t;\n } else {\n s += strSlice('0000000', 0, 7 - t.length) + t;\n }\n }\n }\n return s;\n },\n pow: function pow(x, n, acc) {\n return (n === 0 ? acc : (n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc)));\n },\n log: function log(x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n }\n return n;\n }\n};\n\ndefineProperties(NumberPrototype, {\n toFixed: function toFixed(fractionDigits) {\n var f, x, s, m, e, z, j, k;\n\n // Test for NaN and round fractionDigits down\n f = $Number(fractionDigits);\n f = f !== f ? 0 : Math.floor(f);\n\n if (f < 0 || f > 20) {\n throw new RangeError('Number.toFixed called with invalid number of decimals');\n }\n\n x = $Number(this);\n\n // Test for NaN\n if (x !== x) {\n return 'NaN';\n }\n\n // If it is too big or small, return the string value of the number\n if (x <= -1e21 || x >= 1e21) {\n return $String(x);\n }\n\n s = '';\n\n if (x < 0) {\n s = '-';\n x = -x;\n }\n\n m = '0';\n\n if (x > 1e-21) {\n // 1e-21 < x < 1e21\n // -70 < log2(x) < 70\n e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69;\n z = (e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1));\n z *= 0x10000000000000; // Math.pow(2, 52);\n e = 52 - e;\n\n // -18 < e < 122\n // x = z / 2 ^ e\n if (e > 0) {\n toFixedHelpers.multiply(0, z);\n j = f;\n\n while (j >= 7) {\n toFixedHelpers.multiply(1e7, 0);\n j -= 7;\n }\n\n toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0);\n j = e - 1;\n\n while (j >= 23) {\n toFixedHelpers.divide(1 << 23);\n j -= 23;\n }\n\n toFixedHelpers.divide(1 << j);\n toFixedHelpers.multiply(1, 1);\n toFixedHelpers.divide(2);\n m = toFixedHelpers.numToString();\n } else {\n toFixedHelpers.multiply(0, z);\n toFixedHelpers.multiply(1 << (-e), 0);\n m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f);\n }\n }\n\n if (f > 0) {\n k = m.length;\n\n if (k <= f) {\n m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m;\n } else {\n m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f);\n }\n } else {\n m = s + m;\n }\n\n return m;\n }\n}, hasToFixedBugs);\n\n//\n// String\n// ======\n//\n\n// ES5 15.5.4.14\n// http://es5.github.com/#x15.5.4.14\n\n// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n// Many browsers do not split properly with regular expressions or they\n// do not perform the split correctly under obscure conditions.\n// See http://blog.stevenlevithan.com/archives/cross-browser-split\n// I've tested in many browsers and this seems to cover the deviant ones:\n// 'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n// '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n// 'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n// [undefined, \"t\", undefined, \"e\", ...]\n// ''.split(/.?/) should be [], not [\"\"]\n// '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\nif (\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n 'tesst'.split(/(s)*/)[1] === 't' ||\n 'test'.split(/(?:)/, -1).length !== 4 ||\n ''.split(/.?/).length ||\n '.'.split(/()()/).length > 1\n) {\n (function () {\n var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group\n\n StringPrototype.split = function (separator, limit) {\n var string = this;\n if (typeof separator === 'undefined' && limit === 0) {\n return [];\n }\n\n // If `separator` is not a regex, use native split\n if (!isRegex(separator)) {\n return strSplit(this, separator, limit);\n }\n\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') + // in ES6\n (separator.sticky ? 'y' : ''), // Firefox 3+ and ES6\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2, match, lastIndex, lastLength;\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n string += ''; // Type-convert\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n var splitLimit = typeof limit === 'undefined' ?\n -1 >>> 0 : // Math.pow(2, 32) - 1\n ES.ToUint32(limit);\n match = separatorCopy.exec(string);\n while (match) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n array_push.call(output, strSlice(string, lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n /* eslint-disable no-loop-func */\n match[0].replace(separator2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (typeof arguments[i] === 'undefined') {\n match[i] = void 0;\n }\n }\n });\n /* eslint-enable no-loop-func */\n }\n if (match.length > 1 && match.index < string.length) {\n array_push.apply(output, array_slice.call(match, 1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= splitLimit) {\n break;\n }\n }\n if (separatorCopy.lastIndex === match.index) {\n separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n match = separatorCopy.exec(string);\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) {\n array_push.call(output, '');\n }\n } else {\n array_push.call(output, strSlice(string, lastLastIndex));\n }\n return output.length > splitLimit ? strSlice(output, 0, splitLimit) : output;\n };\n }());\n\n// [bugfix, chrome]\n// If separator is undefined, then the result array contains just one String,\n// which is the this value (converted to a String). If limit is not undefined,\n// then the output array is truncated so that it contains no more than limit\n// elements.\n// \"0\".split(undefined, 0) -> []\n} else if ('0'.split(void 0, 0).length) {\n StringPrototype.split = function split(separator, limit) {\n if (typeof separator === 'undefined' && limit === 0) { return []; }\n return strSplit(this, separator, limit);\n };\n}\n\nvar str_replace = StringPrototype.replace;\nvar replaceReportsGroupsCorrectly = (function () {\n var groups = [];\n 'x'.replace(/x(.)?/g, function (match, group) {\n array_push.call(groups, group);\n });\n return groups.length === 1 && typeof groups[0] === 'undefined';\n}());\n\nif (!replaceReportsGroupsCorrectly) {\n StringPrototype.replace = function replace(searchValue, replaceValue) {\n var isFn = isCallable(replaceValue);\n var hasCapturingGroups = isRegex(searchValue) && (/\\)[*?]/).test(searchValue.source);\n if (!isFn || !hasCapturingGroups) {\n return str_replace.call(this, searchValue, replaceValue);\n } else {\n var wrappedReplaceValue = function (match) {\n var length = arguments.length;\n var originalLastIndex = searchValue.lastIndex;\n searchValue.lastIndex = 0;\n var args = searchValue.exec(match) || [];\n searchValue.lastIndex = originalLastIndex;\n array_push.call(args, arguments[length - 2], arguments[length - 1]);\n return replaceValue.apply(this, args);\n };\n return str_replace.call(this, searchValue, wrappedReplaceValue);\n }\n };\n}\n\n// ECMA-262, 3rd B.2.3\n// Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n// non-normative section suggesting uniform semantics and it should be\n// normalized across all browsers\n// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\nvar string_substr = StringPrototype.substr;\nvar hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\ndefineProperties(StringPrototype, {\n substr: function substr(start, length) {\n var normalizedStart = start;\n if (start < 0) {\n normalizedStart = max(this.length + start, 0);\n }\n return string_substr.call(this, normalizedStart, length);\n }\n}, hasNegativeSubstrBug);\n\n// ES5 15.5.4.20\n// whitespace from: http://es5.github.io/#x15.5.4.20\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' +\n '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar wsRegexChars = '[' + ws + ']';\nvar trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');\nvar trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');\nvar hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim());\ndefineProperties(StringPrototype, {\n // http://blog.stevenlevithan.com/archives/faster-trim-javascript\n // http://perfectionkills.com/whitespace-deviations/\n trim: function trim() {\n if (typeof this === 'undefined' || this === null) {\n throw new TypeError(\"can't convert \" + this + ' to object');\n }\n return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');\n }\n}, hasTrimWhitespaceBug);\n\n// ES-5 15.1.2.2\nif (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) {\n /* global parseInt: true */\n parseInt = (function (origParseInt) {\n var hexRegex = /^0[xX]/;\n return function parseInt(str, radix) {\n var string = $String(str).trim();\n var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10);\n return origParseInt(string, defaultedRadix);\n };\n }(parseInt));\n}\n\n}));\n"]}