es6-shim
Version:
ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines
1 lines • 82.2 kB
Source Map (JSON)
{"version":3,"sources":["es6-shim.js"],"names":["root","factory","define","amd","exports","module","returnExports","this","_apply","Function","call","bind","apply","_call","isArray","Array","keys","Object","not","notThunker","func","notThunk","arguments","throwsError","e","valueOrFalseIfThrows","isCallableWithoutNew","arePropertyDescriptorsSupported","defineProperty","get","supportsDescriptors","functionsHaveNames","foo","name","_forEach","prototype","forEach","_reduce","reduce","_filter","filter","_some","some","object","value","force","configurable","enumerable","writable","defineProperties","map","forceOverride","method","_toString","toString","isCallable","IsCallableSlow","x","IsCallableFast","Value","getter","TypeError","proxy","originalObject","key","targetObject","originalDescriptor","getOwnPropertyDescriptor","getKey","set","setKey","redefine","property","newValue","descriptor","defineByDescriptor","preserveToString","target","source","create","properties","Prototype","supportsSubclassing","C","f","setPrototypeOf","Sub","Subclass","arg","o","constructor","getGlobal","self","window","global","Error","globals","globalIsFinite","isFinite","_indexOf","String","indexOf","_arrayIndexOfApply","_concat","concat","_strSlice","slice","_push","push","_pushApply","_join","join","_shift","shift","_max","Math","max","_min","min","_floor","floor","_abs","abs","_exp","exp","_log","log","_sqrt","sqrt","_hasOwnProperty","hasOwnProperty","ArrayIterator","noop","OrigMap","Map","origMapDelete","origMapGet","origMapHas","has","origMapSet","Symbol","symbolSpecies","species","numberIsNaN","Number","isNaN","numberIsFinite","_sign","sign","number","_log1p","log1p","NaN","Infinity","isStandardArguments","isArguments","isLegacyArguments","length","callee","Type","primitive","string","regex","symbol","overrideNative","replacement","original","hasSymbols","$iterator$","iterator","Set","Reflect","$String","domAll","document","all","isNullOrUndefined","isNullOrUndefinedAndNotDocumentAll","ES","Call","F","V","args","IsCallable","RequireObjectCoercible","optMessage","TypeIsObject","ToObject","IsConstructor","ToInt32","ToNumber","ToUint32","ToInteger","ToLength","len","MAX_SAFE_INTEGER","SameValue","a","b","SameValueZero","GetIterator","itFn","GetMethod","it","p","IteratorComplete","iterResult","done","IteratorClose","completionIsThrow","returnMethod","innerResult","innerException","IteratorNext","result","next","IteratorStep","Construct","newTarget","isES6internal","construct","proto","obj","SpeciesConstructor","O","defaultConstructor","S","CreateHTML","tag","attribute","ToString","p1","escapedV","replace","p2","p3","IsRegExp","argument","isRegExp","match","defineWellKnownSymbol","sym","search","symbolSearch","originalSearch","RegExp","searchShim","regexp","searcher","symbolReplace","originalReplace","replaceValue","replaceShim","searchValue","replacer","split","symbolSplit","originalSplit","limit","splitShim","separator","splitter","symbolMatchExists","stringMatchIgnoresSymbolMatch","symbolMatch","originalMatch","matchShim","matcher","wrapConstructor","keysToSkip","getOwnPropertyNames","defaultSpeciesGetter","addDefaultSpecies","addIterator","impl","implementation","createDataProperty","createDataPropertyOrThrow","emulateES6construct","defaultNewTarget","defaultProto","slots","fromCodePoint","originalFromCodePoint","codePoints","StringShims","i","RangeError","fromCharCode","raw","template","numberOfSubstitutions","cooked","literalSegments","stringElements","nextIndex","nextKey","nextSeg","nextSub","0","1","stringRepeat","repeat","s","times","half","stringMaxLength","StringPrototypeShims","thisStr","numTimes","startsWith","searchString","searchStr","position","start","endsWith","endPosition","pos","end","includes","codePointAt","first","charCodeAt","isEnd","second","startsWithRejectsRegex","startsWithHandlesInfinity","startsWithSupportsSymbolMatch","re","endsWithSupportsSymbolMatch","includesSupportsSymbolMatch","ws","trimRegexp","trimShim","trim","nonWS","nonWSregex","isBadHexRegex","hasStringTrimBug","iteratorResult","StringIterator","_s","_i","substr","ArrayShims","from","items","mapFn","mapping","T","usingIterator","nextValue","arrayLike","of","A","k","array","kind","retval","arrayOfSupportsSubclassing","Foo","fooArr","ArrayPrototypeShims","copyWithin","relativeTarget","relativeStart","to","relativeEnd","finalItem","count","direction","fill","find","predicate","list","thisArg","findIndex","values","entries","unscopables","originalArrayPrototypeValues","searchElement","getPrototypeOf","ChromeArrayIterator","arrayFromSwallowsNegativeLengths","arrayFromHandlesIterables","arr","arrayFromHandlesUndefinedMapFunction","origArrayFrom","int32sAsOne","pow","toLengthsCorrectly","reversed","originalForEach","callbackFn","originalMap","originalFilter","originalSome","every","originalEvery","originalReduce","reduceRight","originalReduceRight","lacksOctalSupport","lacksBinarySupport","trimsNonWhitespace","c","OrigNumber","binaryRegex","octalRegex","isBinary","test","isOctal","toPrimitive","hint","valueOf","hasNonWS","isBadHex","NumberShim","primValue","parseInt","receiver","valueOfSucceeds","MAX_VALUE","MIN_VALUE","NEGATIVE_INFINITY","POSITIVE_INFINITY","maxSafeInteger","MIN_SAFE_INTEGER","EPSILON","parseFloat","isInteger","isSafeInteger","isEnumerableOn","propertyIsEnumerable","ensureEnumerable","prop","sliceArgs","initial","desiredArgCount","assignTo","assignToSource","assignReducer","sourceKeys","symbols","getOwnPropertySymbols","ObjectShims","assign","is","assignHasPendingExceptions","preventExtensions","thrower","ES5ObjectShims","checkArgs","__proto__","polyfill","FAKENULL","gpo","spo","objectKeysAcceptsPrimitives","originalObjectKeys","objectKeysRejectsRegex","regexRejectingObjectKeys","regexKeys","objectGOPNAcceptsPrimitives","cachedWindowNames","originalObjectGetOwnPropertyNames","val","objectGOPDAcceptsPrimitives","originalObjectGetOwnPropertyDescriptor","seal","objectSealAcceptsPrimitives","originalObjectSeal","isSealed","objectIsSealedAcceptsPrimitives","originalObjectIsSealed","freeze","objectFreezeAcceptsPrimitives","originalObjectFreeze","isFrozen","objectIsFrozenAcceptsPrimitives","originalObjectIsFrozen","objectPreventExtensionsAcceptsPrimitives","originalObjectPreventExtensions","isExtensible","objectIsExtensibleAcceptsPrimitives","originalObjectIsExtensible","objectGetProtoAcceptsPrimitives","originalGetProto","hasFlags","desc","regExpFlagsGetter","flags","ignoreCase","multiline","unicode","sticky","regExpSupportsFlagsWithRegex","regExpNeedsToSupportSymbolMatch","regexToStringIsGeneric","regexToStringSupportsGenericFlags","origRegExpToString","R","pattern","flagsGetter","sourceDesc","legacySourceGetter","sourceGetter","OrigRegExp","RegExpShim","patternIsRegExp","calledWithNew","P","$input","regexGlobals","input","lastMatch","lastParen","leftContext","rightContext","inverseEpsilon","roundTiesToEven","n","BINARY_32_EPSILON","BINARY_32_MAX_VALUE","BINARY_32_MIN_VALUE","E","LOG2E","LOG10E","numberCLZ","clz","MathShims","acosh","xInvSquared","halfX","asinh","aSquared","atanh","cbrt","negate","clz32","cosh","t","expm1","sum","hypot","y","largest","log2","log10","sinh","u","tanh","trunc","imul","ah","al","bh","bl","fround","v","withinULPDistance","expected","distance","expm1OfTen","origMathRound","round","roundHandlesBoundaryConditions","smallestPositiveNumberWhereRoundBreaks","largestPositiveNumberWhereRoundBreaks","roundDoesNotIncreaseIntegers","num","ceil","origImul","PromiseShim","setTimeout","IsPromise","promise","_promise","PromiseCapability","capability","resolver","resolve","reject","makeZeroTimeout","postMessage","timeouts","messageName","setZeroTimeout","fn","handleMessage","event","data","stopPropagation","addEventListener","makePromiseAsap","Promise","pr","task","then","enqueue","setImmediate","process","nextTick","PROMISE_IDENTITY","PROMISE_THROWER","PROMISE_PENDING","PROMISE_FULFILLED","PROMISE_REJECTED","PROMISE_FULFILL_OFFSET","PROMISE_REJECT_OFFSET","PROMISE_CAPABILITY_OFFSET","PROMISE_FAKE_CAPABILITY","enqueuePromiseReactionJob","handler","promiseReactionJob","promiseCapability","handlerResult","fulfillPromise","reactionLength","fulfillReactionHandler0","reactionCapability0","rejectReactions0","idx","state","rejectPromise","reason","rejectReactionHandler0","createResolvingFunctions","alreadyResolved","resolution","promiseResolveThenableJob","optimizedThen","thenable","Promise$prototype$then","resolvingFunctions","Promise$prototype","_promiseAllResolver","index","remaining","alreadyCalled","performPromiseAll","iteratorRecord","resultCapability","nextPromise","resolveElement","performPromiseRace","iterable","exception","ee","race","rejectFunc","resolveFunc","catch","onRejected","onFulfilled","returnValueIsIgnored","fulfillReactionHandler","rejectReactionHandler","accept","defer","chain","promiseSupportsSubclassing","promiseIgnoresNonFunctionThenCallbacks","promiseRequiresObjectContext","promiseResolveBroken","getsThenSynchronously","BadResolverPromise","executor","hasBadResolverPromise","origAll","origRace","origResolve","origReject","r","testOrder","preservesInsertionOrder","preservesNumericInsertionOrder","fastkey","skipInsertionOrderCheck","emptyObject","addIterableToMap","MapConstructor","entry","iter","adder","nextItem","addIterableToSet","SetConstructor","add","collectionShims","empty","MapEntry","prev","isRemoved","isMap","_es6map","requireMapSlot","MapIterator","_head","head","isMapIterator","Map$prototype","MapShim","_map","_size","_storage","fkey","delete","clear","callback","context","isSet","_es6set","requireSetSlot","Set$prototype","SetShim","[[SetData]]","decodeKey","charAt","ensureMap","m","size","hasFKey","SetIterator","entireSet","isSetIterator","isGoogleTranslate","remove","mapAcceptsArguments","testMap","mapUsesSameValueZero","mapSupportsChaining","testSet","setUsesSameValueZero","setSupportsChaining","origSetAdd","origSetHas","origSetDel","SetDelete","mapSupportsSubclassing","M","mapFailsToSupportSubclassing","mapRequiresNew","setSupportsSubclassing","setFailsToSupportSubclassing","setRequiresNew","OrigSet","newMap","mapIterationThrowsStopIterator","anonymousSetHas","throwUnlessTargetIsObject","ReflectShims","deleteProperty","ownKeys","callAndCatchException","ConvertExceptionToBoolean","internalGet","parent","internalSet","existingDesc","propertyKey","attributes","objectDotGetPrototypeOf","willCreateCircularPrototype","lastProto","defineOrOverrideReflectProperty","shim","acceptsPrimitives","originalReflectGetProto","basic","extensible","Date","dateToString","shimmedDateToString","stringHTMLshims","anchor","big","blink","bold","fixed","fontcolor","color","fontsize","italics","link","url","small","strike","sub","sup","shouldOverwrite","output","quotesCount","toLowerCase","JSONstringifiesSymbols","stringify","JSON","JSONstringifyAcceptsObjectSymbol","origStringify","replaceFn","wrappedReplacer","parsedValue"],"mappings":"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