├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── SECURITY.md ├── karma-polyfill-library-plugin.js ├── karma.conf.js ├── lib ├── index.js ├── rumTemplate.js.handlebars └── sources.js ├── package-lock.json ├── package.json ├── polyfills ├── .eslintrc ├── AbortController │ ├── config.toml │ ├── detect.js │ └── tests.js ├── AggregateError │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── Array │ ├── from │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── of │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ └── prototype │ │ ├── @@iterator │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── at │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── copyWithin │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── entries │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── fill │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── find │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── findIndex │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── findLast │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── findLastIndex │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── flat │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── flatMap │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── includes │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── keys │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── sort │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── toReversed │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── toSorted │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── toSpliced │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── values │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ └── with │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── ArrayBuffer │ ├── config.toml │ ├── detect.js │ ├── isView │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── prototype │ │ └── @@toStringTag │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ ├── tests.js │ └── update.task.js ├── AudioContext │ ├── config.toml │ └── detect.js ├── Blob │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── CSS │ └── supports │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── CharacterData │ └── prototype │ │ ├── after │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js │ │ ├── before │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js │ │ ├── nextElementSibling │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js │ │ ├── previousElementSibling │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js │ │ ├── remove │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js │ │ └── replaceWith │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js ├── CustomEvent │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── DOMRect │ ├── config.toml │ ├── detect.js │ ├── fromRect │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── polyfill.js │ └── tests.js ├── DOMTokenList │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── prototype │ │ ├── @@iterator │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── forEach │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ └── replace │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── DocumentFragment │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ ├── prototype │ │ ├── append │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── prepend │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ └── replaceChildren │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ └── tests.js ├── Element │ └── prototype │ │ ├── after │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── append │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── before │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── classList │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── closest │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── dataset │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── getAttributeNames │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── matches │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── placeholder │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js │ │ ├── prepend │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── remove │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── replaceChildren │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── replaceWith │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ └── toggleAttribute │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── Error │ └── cause │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── Event │ ├── config.toml │ ├── detect.js │ ├── focusin │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── hashchange │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── polyfill.js │ └── tests.js ├── EventSource │ ├── config.toml │ ├── detect.js │ └── polyfill.js ├── Function │ └── prototype │ │ └── name │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── HTMLCanvasElement │ └── prototype │ │ └── toBlob │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── HTMLCollection │ └── prototype │ │ └── @@iterator │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── HTMLDocument │ ├── config.toml │ ├── detect.js │ └── polyfill.js ├── HTMLElement │ └── prototype │ │ └── inert │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── HTMLFormElement │ └── prototype │ │ └── requestSubmit │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── HTMLInputElement │ └── prototype │ │ └── valueAsDate │ │ ├── config.toml │ │ ├── detect.js │ │ ├── generated_tests.js │ │ ├── polyfill.js │ │ └── tests.js ├── HTMLPictureElement │ ├── config.toml │ └── detect.js ├── HTMLSelectElement │ └── prototype │ │ └── selectedOptions │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── HTMLTemplateElement │ ├── config.toml │ ├── detect.js │ └── tests.js ├── IntersectionObserver │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── IntersectionObserverEntry │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── Intl │ ├── DateTimeFormat │ │ ├── .gitignore │ │ ├── config.toml │ │ ├── detect.js │ │ ├── tests.js │ │ ├── update.task.js │ │ └── ~timeZone │ │ │ ├── all │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ └── tests.js │ │ │ └── golden │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ └── tests.js │ ├── DisplayNames │ │ ├── .gitignore │ │ ├── config.toml │ │ ├── detect.js │ │ ├── tests.js │ │ └── update.task.js │ ├── ListFormat │ │ ├── .gitignore │ │ ├── config.toml │ │ ├── detect.js │ │ ├── tests.js │ │ └── update.task.js │ ├── Locale │ │ ├── .gitignore │ │ ├── config.toml │ │ ├── detect.js │ │ └── tests.js │ ├── NumberFormat │ │ ├── .gitignore │ │ ├── config.toml │ │ ├── detect.js │ │ ├── tests.js │ │ └── update.task.js │ ├── PluralRules │ │ ├── .gitignore │ │ ├── config.toml │ │ ├── detect.js │ │ ├── tests.js │ │ └── update.task.js │ ├── RelativeTimeFormat │ │ ├── .gitignore │ │ ├── config.toml │ │ ├── detect.js │ │ ├── tests.js │ │ └── update.task.js │ └── getCanonicalLocales │ │ ├── .gitignore │ │ ├── config.toml │ │ ├── detect.js │ │ └── tests.js ├── Map │ ├── config.toml │ ├── detect.js │ ├── groupBy │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── polyfill.js │ └── tests.js ├── Math │ ├── acosh │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── asinh │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── atanh │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── cbrt │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── clz32 │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── cosh │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── expm1 │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── fround │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js │ ├── hypot │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── imul │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── log10 │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── log1p │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── log2 │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── sign │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── sinh │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── tanh │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ └── trunc │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── MediaQueryList │ └── prototype │ │ └── addEventListener │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── MutationObserver │ ├── config.toml │ └── detect.js ├── Node │ └── prototype │ │ ├── contains │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── getRootNode │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── isConnected │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ └── isSameNode │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── NodeList │ └── prototype │ │ ├── @@iterator │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ └── forEach │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── Number │ ├── Epsilon │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── MAX_SAFE_INTEGER │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── MIN_SAFE_INTEGER │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── isFinite │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── isInteger │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── isNaN │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── isSafeInteger │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── parseFloat │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ └── parseInt │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── Object │ ├── assign │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── entries │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── freeze │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── fromEntries │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── getOwnPropertyDescriptor │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── getOwnPropertyDescriptors │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── getOwnPropertyNames │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── groupBy │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── hasOwn │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── is │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── isExtensible │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── isFrozen │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── isSealed │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── keys │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── preventExtensions │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── prototype │ │ └── toString │ ├── seal │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── setPrototypeOf │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ └── values │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── Promise │ ├── allSettled │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── any │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ ├── prototype │ │ └── finally │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ └── tests.js ├── Reflect │ ├── apply │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── config.toml │ ├── construct │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── defineProperty │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── deleteProperty │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── detect.js │ ├── get │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── getOwnPropertyDescriptor │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── getPrototypeOf │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── has │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── isExtensible │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── ownKeys │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── polyfill.js │ ├── preventExtensions │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── set │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── setPrototypeOf │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ └── tests.js ├── RegExp │ └── prototype │ │ ├── @@matchAll │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ └── flags │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── ResizeObserver │ ├── config.toml │ ├── detect.js │ ├── tests.js │ └── update.task.js ├── Set │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── String │ ├── fromCodePoint │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── prototype │ │ ├── @@iterator │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── at │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── codePointAt │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── endsWith │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── includes │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── isWellFormed │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── matchAll │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── normalize │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── patch.jsdiff │ │ │ ├── tests.js │ │ │ └── update.task.js │ │ ├── padEnd │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── padStart │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── repeat │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── replaceAll │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── startsWith │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── toWellFormed │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── trim │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ ├── trimEnd │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ │ └── trimStart │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ └── raw │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── Symbol │ ├── asyncIterator │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── config.toml │ ├── detect.js │ ├── hasInstance │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── isConcatSpreadable │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── iterator │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── match │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── matchAll │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── polyfill.js │ ├── prototype │ │ └── description │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ ├── replace │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── search │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── species │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── split │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── tests.js │ ├── toPrimitive │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── toStringTag │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ └── unscopables │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── TextEncoder │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── TypedArray │ └── prototype │ │ ├── @@iterator │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── @@toStringTag │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── at │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── entries │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── findLast │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── findLastIndex │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── keys │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── sort │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── toLocaleString │ │ ├── toReversed │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── toSorted │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ ├── toString │ │ ├── values │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ │ └── with │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── URL │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ ├── prototype │ │ └── toJSON │ │ │ ├── config.toml │ │ │ ├── detect.js │ │ │ ├── polyfill.js │ │ │ └── tests.js │ └── tests.js ├── UserTiming │ ├── config.toml │ ├── detect.js │ └── tests.js ├── WeakMap │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── WeakSet │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── WebAnimations │ ├── config.toml │ └── detect.js ├── _ArrayIterator │ ├── config.toml │ └── polyfill.js ├── _DOMTokenList │ ├── config.toml │ └── polyfill.js ├── _ESAbstract │ ├── AddEntriesFromIterable │ │ ├── config.toml │ │ └── polyfill.js │ ├── AddValueToKeyedGroup │ │ ├── config.toml │ │ └── polyfill.js │ ├── AdvanceStringIndex │ │ ├── config.toml │ │ └── polyfill.js │ ├── ArrayCreate │ │ ├── config.toml │ │ └── polyfill.js │ ├── ArraySpeciesCreate │ │ ├── config.toml │ │ └── polyfill.js │ ├── Call │ │ ├── config.toml │ │ └── polyfill.js │ ├── CanonicalNumericIndexString │ │ ├── config.toml │ │ └── polyfill.js │ ├── CodePointAt │ │ ├── config.toml │ │ └── polyfill.js │ ├── Construct │ │ ├── config.toml │ │ └── polyfill.js │ ├── CreateDataProperty │ │ ├── config.toml │ │ └── polyfill.js │ ├── CreateDataPropertyOrThrow │ │ ├── config.toml │ │ └── polyfill.js │ ├── CreateHTML │ │ ├── config.toml │ │ └── polyfill.js │ ├── CreateIterResultObject │ │ ├── config.toml │ │ └── polyfill.js │ ├── CreateListFromArrayLike │ │ ├── config.toml │ │ └── polyfill.js │ ├── CreateMethodProperty │ │ ├── config.toml │ │ └── polyfill.js │ ├── CreateNonEnumerableDataPropertyOrThrow │ │ ├── config.toml │ │ └── polyfill.js │ ├── CreateRegExpStringIterator │ │ ├── config.toml │ │ └── polyfill.js │ ├── DefinePropertyOrThrow │ │ ├── config.toml │ │ └── polyfill.js │ ├── EnumerableOwnProperties │ │ ├── config.toml │ │ └── polyfill.js │ ├── FlattenIntoArray │ │ ├── config.toml │ │ └── polyfill.js │ ├── Get │ │ ├── config.toml │ │ └── polyfill.js │ ├── GetIterator │ │ ├── config.toml │ │ └── polyfill.js │ ├── GetMethod │ │ ├── config.toml │ │ └── polyfill.js │ ├── GetPrototypeFromConstructor │ │ ├── config.toml │ │ └── polyfill.js │ ├── GetSubstitution │ │ ├── config.toml │ │ └── polyfill.js │ ├── GetV │ │ ├── config.toml │ │ └── polyfill.js │ ├── GroupBy │ │ ├── config.toml │ │ └── polyfill.js │ ├── HasOwnProperty │ │ ├── config.toml │ │ └── polyfill.js │ ├── HasProperty │ │ ├── config.toml │ │ └── polyfill.js │ ├── Invoke │ │ ├── config.toml │ │ └── polyfill.js │ ├── IsArray │ │ ├── config.toml │ │ └── polyfill.js │ ├── IsCallable │ │ ├── config.toml │ │ └── polyfill.js │ ├── IsConstructor │ │ ├── config.toml │ │ └── polyfill.js │ ├── IsInteger │ │ ├── config.toml │ │ └── polyfill.js │ ├── IsPropertyKey │ │ ├── config.toml │ │ └── polyfill.js │ ├── IsRegExp │ │ ├── config.toml │ │ └── polyfill.js │ ├── IsStringWellFormedUnicode │ │ ├── config.toml │ │ └── polyfill.js │ ├── IsValidIntegerIndex │ │ ├── config.toml │ │ └── polyfill.js │ ├── IterableToList │ │ ├── config.toml │ │ └── polyfill.js │ ├── IteratorClose │ │ ├── config.toml │ │ └── polyfill.js │ ├── IteratorComplete │ │ ├── config.toml │ │ └── polyfill.js │ ├── IteratorNext │ │ ├── config.toml │ │ └── polyfill.js │ ├── IteratorStep │ │ ├── config.toml │ │ └── polyfill.js │ ├── IteratorValue │ │ ├── config.toml │ │ └── polyfill.js │ ├── LengthOfArrayLike │ │ ├── config.toml │ │ └── polyfill.js │ ├── OrdinaryCreateFromConstructor │ │ ├── config.toml │ │ └── polyfill.js │ ├── OrdinaryToPrimitive │ │ ├── config.toml │ │ └── polyfill.js │ ├── RegExpExec │ │ ├── config.toml │ │ └── polyfill.js │ ├── RequireObjectCoercible │ │ ├── config.toml │ │ └── polyfill.js │ ├── SameValue │ │ ├── config.toml │ │ └── polyfill.js │ ├── SameValueNonNumber │ │ ├── config.toml │ │ └── polyfill.js │ ├── SameValueZero │ │ ├── config.toml │ │ └── polyfill.js │ ├── SpeciesConstructor │ │ ├── config.toml │ │ └── polyfill.js │ ├── StringIndexOf │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToBoolean │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToIndex │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToInt16 │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToInt32 │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToInt8 │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToInteger │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToIntegerOrInfinity │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToLength │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToNumber │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToObject │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToPrimitive │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToPropertyDescriptor │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToPropertyKey │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToString │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToUint16 │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToUint32 │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToUint8 │ │ ├── config.toml │ │ └── polyfill.js │ ├── ToUint8Clamp │ │ ├── config.toml │ │ └── polyfill.js │ ├── TrimString │ │ ├── config.toml │ │ └── polyfill.js │ ├── Type │ │ ├── config.toml │ │ └── polyfill.js │ ├── TypedArrayCreate │ │ ├── config.toml │ │ └── polyfill.js │ ├── TypedArrayCreateSameType │ │ ├── config.toml │ │ └── polyfill.js │ ├── UTF16EncodeCodePoint │ │ ├── config.toml │ │ └── polyfill.js │ └── UTF16SurrogatePairToCodePoint │ │ ├── config.toml │ │ └── polyfill.js ├── _ErrorConstructor │ ├── config.toml │ └── polyfill.js ├── _Iterator │ ├── config.toml │ └── polyfill.js ├── _StringIterator │ ├── config.toml │ └── polyfill.js ├── _mutation │ ├── config.toml │ └── polyfill.js ├── atob │ ├── config.toml │ ├── detect.js │ └── tests.js ├── console │ ├── assert │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── clear │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── config.toml │ ├── count │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── debug │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── detect.js │ ├── dir │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── dirxml │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── error │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── exception │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── group │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── groupCollapsed │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── groupEnd │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── info │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── log │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── markTimeline │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── polyfill.js │ ├── profile │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── profileEnd │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── profiles │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── table │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── tests.js │ ├── time │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── timeEnd │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── timeStamp │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── timeline │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── timelineEnd │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── trace │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ └── warn │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── devicePixelRatio │ ├── config.toml │ ├── detect.js │ └── polyfill.js ├── document │ ├── currentScript │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ ├── elementsFromPoint │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js │ └── visibilityState │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── fetch │ ├── config.toml │ ├── detect.js │ ├── patch.jsdiff │ ├── tests.js │ └── update.task.js ├── globalThis │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── location │ └── origin │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── matchMedia │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── navigator │ └── sendBeacon │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js ├── performance │ └── now │ │ ├── config.toml │ │ ├── detect.js │ │ └── polyfill.js ├── queueMicrotask │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── requestAnimationFrame │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── requestIdleCallback │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── screen │ └── orientation │ │ ├── config.toml │ │ ├── detect.js │ │ ├── polyfill.js │ │ └── tests.js ├── setImmediate │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── smoothscroll │ ├── config.toml │ ├── detect.js │ ├── patch.jsdiff │ ├── tests.js │ └── update.task.js ├── structuredClone │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js └── ~html5-elements │ ├── config.toml │ └── detect.js ├── tasks ├── buildsources │ ├── build.js │ ├── buildsources-child-proc.js │ ├── buildsources.js │ ├── check-dependencies-exist.js │ ├── check-for-circular-dependencies.js │ ├── flatten-polyfill-directories.js │ ├── polyfill.js │ ├── validate-source.js │ ├── watchsource.js │ └── write-alias-file.js ├── clean.js ├── create-new-polyfill.js ├── lint-config │ ├── .gitignore │ ├── for-each-polyfill-config.js │ ├── index.js │ ├── mcd.js │ ├── mdn-browser-key.js │ ├── parse-range.js │ ├── simplify-versions.js │ └── static-mapping.js ├── polyfill-templates │ ├── config.toml │ ├── detect.js │ ├── polyfill.js │ └── tests.js ├── updatebrowserstacklist.js └── updatesources.js └── test ├── .eslintrc.js ├── end-to-end └── generating-bundles.test.js ├── node ├── lib │ └── test-index.js └── utils │ └── test-modified-polyfills-with-tests.js ├── polyfills ├── browsers.toml ├── browserstackBrowsers.toml ├── compat.js ├── empty-document.html ├── remotetest.js ├── server.js ├── test-all-features.js ├── test-director.handlebars ├── test-iframe.handlebars ├── test-individual-feature.js ├── test-job.js ├── test-runner.handlebars └── update-polyfill-targeting.js ├── unit ├── lib │ ├── index.js │ └── sources.js ├── mock │ ├── aliases.mock.js │ ├── console.mock.js │ ├── denodeify.mock.js │ ├── from2-string.mock.js │ ├── graceful-fs.mock.js │ ├── handlebars.mock.js │ ├── lazystream.mock.js │ ├── lru-cache.mock.js │ ├── merge2.mock.js │ ├── path.mock.js │ ├── process.mock.js │ ├── sources.mock.js │ ├── stream-from-promise.mock.js │ ├── stream-to-string.mock.js │ ├── toposort.mock.js │ └── ua.mock.js └── setup.js └── utils ├── modified-polyfills-with-tests.js └── sets-to-arrays.js /polyfills/AbortController/detect.js: -------------------------------------------------------------------------------- 1 | "AbortController" in self && typeof self.AbortController === "function" 2 | -------------------------------------------------------------------------------- /polyfills/AggregateError/detect.js: -------------------------------------------------------------------------------- 1 | 'AggregateError' in self 2 | -------------------------------------------------------------------------------- /polyfills/Array/from/detect.js: -------------------------------------------------------------------------------- 1 | 'from' in Array && (function () { 2 | try { 3 | Array.from({ length: -Infinity }); 4 | 5 | if (Array.from(new self.Set(['a']))[0] !== 'a') { 6 | return false; 7 | } 8 | 9 | if (Array.from(new self.Map([['a', 'one']]))[0][0] !== 'a') { 10 | return false; 11 | } 12 | 13 | return true; 14 | } catch (e) { 15 | return false; 16 | } 17 | }()) 18 | -------------------------------------------------------------------------------- /polyfills/Array/of/detect.js: -------------------------------------------------------------------------------- 1 | 'of' in Array 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/@@iterator/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'iterator' in self.Symbol && !!Array.prototype[self.Symbol.iterator] 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/@@iterator/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol, CreateMethodProperty */ 2 | // 22.1.3.31. Array.prototype [ @@iterator ] ( ) 3 | // The initial value of the @@iterator property is the same function object as the initial value of the Array.prototype.values property. 4 | CreateMethodProperty(Array.prototype, Symbol.iterator, Array.prototype.values); 5 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/@@iterator/tests.js: -------------------------------------------------------------------------------- 1 | /* globals proclaim, Symbol */ 2 | 3 | it('is an alias to Array.prototype.values', function () { 4 | proclaim.deepEqual(Array.prototype[Symbol.iterator], Array.prototype.values); 5 | }); 6 | 7 | it('ArrayIteratorPrototype[Symbol.toStringTag]', function () { 8 | proclaim.strictEqual(Object.getPrototypeOf([][Symbol.iterator]())[Symbol.toStringTag], 'Array Iterator'); 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/at/detect.js: -------------------------------------------------------------------------------- 1 | 'at' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/entries/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'iterator' in self.Symbol && !!Array.prototype.entries 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/entries/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, ToObject, ArrayIterator */ 2 | // 22.1.3.4. Array.prototype.entries ( ) 3 | CreateMethodProperty(Array.prototype, 'entries', function entries() { 4 | // 1. Let O be ? ToObject(this value). 5 | var O = ToObject(this); 6 | // 2. Return CreateArrayIterator(O, "key+value"). 7 | // TODO: Add CreateArrayIterator 8 | return new ArrayIterator(O, 'key+value'); 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/fill/detect.js: -------------------------------------------------------------------------------- 1 | 'fill' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/find/detect.js: -------------------------------------------------------------------------------- 1 | 'find' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/findIndex/detect.js: -------------------------------------------------------------------------------- 1 | 'findIndex' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/findLast/detect.js: -------------------------------------------------------------------------------- 1 | 'findLast' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/findLastIndex/detect.js: -------------------------------------------------------------------------------- 1 | 'findLastIndex' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/flat/detect.js: -------------------------------------------------------------------------------- 1 | 'flat' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/flatMap/detect.js: -------------------------------------------------------------------------------- 1 | 'flatMap' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/includes/detect.js: -------------------------------------------------------------------------------- 1 | 'includes' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/keys/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'iterator' in self.Symbol && !!Array.prototype.keys 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/keys/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, ToObject, ArrayIterator */ 2 | // 22.1.3.14. Array.prototype.keys ( ) 3 | CreateMethodProperty(Array.prototype, 'keys', function keys() { 4 | // 1. Let O be ? ToObject(this value). 5 | var O = ToObject(this); 6 | // 2. Return CreateArrayIterator(O, "key"). 7 | // TODO: Add CreateArrayIterator. 8 | return new ArrayIterator(O, 'key'); 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/sort/detect.js: -------------------------------------------------------------------------------- 1 | 'sort' in Array.prototype && (function() { 2 | // Check it does a stable sort 3 | var obj = {length:3, 0:2, 1:1,2:3}; 4 | return Array.prototype.sort.call(obj, function(a,b) {return a-b}) === obj; 5 | }()) 6 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/toReversed/detect.js: -------------------------------------------------------------------------------- 1 | 'toReversed' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/toSorted/detect.js: -------------------------------------------------------------------------------- 1 | 'toSorted' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/toSpliced/detect.js: -------------------------------------------------------------------------------- 1 | 'toSpliced' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/values/detect.js: -------------------------------------------------------------------------------- 1 | 'values' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Array/prototype/with/detect.js: -------------------------------------------------------------------------------- 1 | 'with' in Array.prototype 2 | -------------------------------------------------------------------------------- /polyfills/ArrayBuffer/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | // confirm that the prototype of "Int8Array" is NOT the "Object" prototype, which is a bug in IE11 and maybe other old browsers 3 | 'ArrayBuffer' in self && 'DataView' in self && 'Int8Array' in self 4 | // TODO: add back this check once we remove support for ie10 and below 5 | // && Object.getPrototypeOf(self.Int8Array) !== Object.getPrototypeOf(Object) 6 | -------------------------------------------------------------------------------- /polyfills/ArrayBuffer/isView/detect.js: -------------------------------------------------------------------------------- 1 | 'ArrayBuffer' in self && 'isView' in self.ArrayBuffer 2 | -------------------------------------------------------------------------------- /polyfills/ArrayBuffer/isView/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global ArrayBuffer, CreateMethodProperty, Type */ 2 | // 25.1.4.1 ArrayBuffer.isView ( arg ) 3 | CreateMethodProperty(ArrayBuffer, 'isView', function isView (arg) { 4 | // 1. If Type(arg) is not Object, return false. 5 | if (Type(arg) !== 'object') { 6 | return false; 7 | } 8 | // 2. If arg has a [[ViewedArrayBuffer]] internal slot, return true. 9 | // 3. Return false. 10 | return arg.buffer instanceof ArrayBuffer; 11 | }); 12 | -------------------------------------------------------------------------------- /polyfills/ArrayBuffer/prototype/@@toStringTag/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'toStringTag' in self.Symbol && 'ArrayBuffer' in self && self.Symbol.toStringTag in self.ArrayBuffer.prototype && self.ArrayBuffer.prototype[self.Symbol.toStringTag] !== undefined 2 | -------------------------------------------------------------------------------- /polyfills/AudioContext/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:audio-api", "modernizr:webaudio" ] 2 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/AudioContext" 3 | repo = "https://github.com/JakeChampion/AudioContext" 4 | 5 | [install] 6 | module = "audio-context-polyfill" 7 | paths = [ "AudioContext.js" ] 8 | -------------------------------------------------------------------------------- /polyfills/AudioContext/detect.js: -------------------------------------------------------------------------------- 1 | 'AudioContext' in self || !('webkitAudioContext' in self) 2 | -------------------------------------------------------------------------------- /polyfills/Blob/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "atob", "URL" ] 2 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob" 3 | license = "MIT" 4 | repo = "https://github.com/eligrey/Blob.js/blob" 5 | 6 | [browsers] 7 | chrome = "<20" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "<13" 11 | firefox_mob = "<14" 12 | ie = "*" 13 | opera = "<12" 14 | op_mob = "<12" 15 | safari = "<6.0" 16 | ios_saf = "<6.0" 17 | samsung_mob = "<1.5" 18 | -------------------------------------------------------------------------------- /polyfills/Blob/detect.js: -------------------------------------------------------------------------------- 1 | 'Blob' in self && (function () { 2 | try { 3 | new Blob(); 4 | return true; 5 | } catch (e) { 6 | return false; 7 | } 8 | }()) && (function () { 9 | try { 10 | Blob(); 11 | return false; 12 | } catch (e) { 13 | return true; 14 | } 15 | }()) 16 | -------------------------------------------------------------------------------- /polyfills/CSS/supports/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "css_fq" ] 2 | dependencies = [ ] 3 | license = "MIT" 4 | spec = "https://drafts.csswg.org/css-conditional/#the-css-interface" 5 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/CSS/supports" 6 | 7 | [browsers] 8 | android = "<4.4" 9 | chrome = "<28" 10 | firefox = "<22" 11 | firefox_mob = "<22" 12 | ie = "*" 13 | opera = "<15" 14 | op_mini = "*" 15 | safari = "<9.0" 16 | ios_saf = "<9.0" 17 | samsung_mob = "<8.0" 18 | -------------------------------------------------------------------------------- /polyfills/CSS/supports/detect.js: -------------------------------------------------------------------------------- 1 | (typeof self.CSS === "function" || typeof self.CSS === "object") && typeof self.CSS.supports === "function" 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/after/detect.js: -------------------------------------------------------------------------------- 1 | 'after' in CharacterData.prototype 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/after/polyfill.js: -------------------------------------------------------------------------------- 1 | CharacterData.prototype.after = Element.prototype.after 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/before/detect.js: -------------------------------------------------------------------------------- 1 | 'before' in CharacterData.prototype 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/before/polyfill.js: -------------------------------------------------------------------------------- 1 | CharacterData.prototype.before = Element.prototype.before 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/nextElementSibling/detect.js: -------------------------------------------------------------------------------- 1 | 'nextElementSibling' in CharacterData.prototype 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/nextElementSibling/polyfill.js: -------------------------------------------------------------------------------- 1 | Object.defineProperty(CharacterData.prototype, 'nextElementSibling', 2 | Object.getOwnPropertyDescriptor(Element.prototype, 'nextElementSibling') 3 | ); 4 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/previousElementSibling/detect.js: -------------------------------------------------------------------------------- 1 | 'previousElementSibling' in CharacterData.prototype 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/previousElementSibling/polyfill.js: -------------------------------------------------------------------------------- 1 | Object.defineProperty(CharacterData.prototype, 'previousElementSibling', 2 | Object.getOwnPropertyDescriptor(Element.prototype, 'previousElementSibling') 3 | ); 4 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/remove/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [] 2 | dependencies = [ "Element.prototype.remove" ] 3 | 4 | spec = "https://dom.spec.whatwg.org/#dom-childnode-remove" 5 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/remove" 6 | 7 | [browsers] 8 | android = "<4.4" 9 | bb = "*" 10 | chrome = "<24" 11 | firefox = "<23" 12 | firefox_mob = "<23" 13 | ie = "*" 14 | ie_mob = "*" 15 | opera = "<15" 16 | op_mob = "<14" 17 | op_mini = "*" 18 | safari = "<7.0" 19 | ios_saf = "<7.0" 20 | samsung_mob = "<1.5" 21 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/remove/detect.js: -------------------------------------------------------------------------------- 1 | 'remove' in CharacterData.prototype 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/remove/polyfill.js: -------------------------------------------------------------------------------- 1 | CharacterData.prototype.remove = Element.prototype.remove 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/replaceWith/detect.js: -------------------------------------------------------------------------------- 1 | 'replaceWith' in CharacterData.prototype 2 | -------------------------------------------------------------------------------- /polyfills/CharacterData/prototype/replaceWith/polyfill.js: -------------------------------------------------------------------------------- 1 | CharacterData.prototype.replaceWith = Element.prototype.replaceWith 2 | -------------------------------------------------------------------------------- /polyfills/CustomEvent/detect.js: -------------------------------------------------------------------------------- 1 | 'CustomEvent' in self && 2 | 3 | // In Safari, typeof CustomEvent == 'object' but it otherwise works fine 4 | (typeof self.CustomEvent === 'function' || 5 | (self.CustomEvent.toString().indexOf('CustomEventConstructor')>-1)) 6 | -------------------------------------------------------------------------------- /polyfills/DOMRect/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [] 2 | dependencies = [ ] 3 | spec = "https://www.w3.org/TR/geometry-1/#DOMRect" 4 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/DOMRect" 5 | 6 | [browsers] 7 | android = "*" 8 | chrome = "<61" 9 | edge = "*" 10 | firefox = "<31" 11 | firefox_mob = "<31" 12 | ie = ">=9" 13 | ie_mob = ">=9" 14 | opera = "<48" 15 | op_mob = "<45" 16 | safari = "<10.1" 17 | ios_saf = "<10.3" 18 | samsung_mob = "<8.0" 19 | -------------------------------------------------------------------------------- /polyfills/DOMRect/detect.js: -------------------------------------------------------------------------------- 1 | 'DOMRect' in self && (function (DOMRect) { 2 | try { return new DOMRect(); } 3 | catch (e) { return false; } 4 | }(self.DOMRect)) 5 | -------------------------------------------------------------------------------- /polyfills/DOMRect/fromRect/detect.js: -------------------------------------------------------------------------------- 1 | 'DOMRect' in self && 'fromRect' in self.DOMRect 2 | -------------------------------------------------------------------------------- /polyfills/DOMRect/fromRect/polyfill.js: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line no-unused-vars 2 | (function (global) { 3 | function number(v) { 4 | return v === undefined ? 0 : Number(v); 5 | } 6 | 7 | global.DOMRect.fromRect = function fromRect(rect) { 8 | if (!rect) { 9 | rect = {}; 10 | } 11 | 12 | var newRect = new global.DOMRect(); 13 | newRect.x = number(rect.x); 14 | newRect.y = number(rect.y); 15 | newRect.width = number(rect.width); 16 | newRect.height = number(rect.height); 17 | 18 | return newRect; 19 | } 20 | }(self)); 21 | -------------------------------------------------------------------------------- /polyfills/DOMTokenList/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ 2 | "default-3.3", 3 | "default-3.4", 4 | "default-3.5", 5 | "default-3.6", 6 | "default" 7 | ] 8 | dependencies = [ "_DOMTokenList" ] 9 | spec = "http://www.whatwg.org/specs/web-apps/current-work/#domtokenlist" 10 | docs = "https://developer.mozilla.org/en/docs/Web/API/DOMTokenList" 11 | 12 | [browsers] 13 | edge = "<14" 14 | edge_mob = "<14" 15 | ie = "*" 16 | ie_mob = ">=10" 17 | safari = "<6.0" 18 | ios_saf = "<6.0" 19 | -------------------------------------------------------------------------------- /polyfills/DOMTokenList/detect.js: -------------------------------------------------------------------------------- 1 | 'DOMTokenList' in self && (function (x) { 2 | return 'classList' in x ? !x.classList.toggle('x', false) && !x.className : true; 3 | })(document.createElement('x')) 4 | -------------------------------------------------------------------------------- /polyfills/DOMTokenList/prototype/@@iterator/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ArrayIterator", 3 | "Symbol.iterator", 4 | "DOMTokenList", 5 | "Element.prototype.classList" 6 | ] 7 | 8 | license = "MIT" 9 | spec = "https://dom.spec.whatwg.org/#domtokenlist" 10 | 11 | [browsers] 12 | bb = "10 - *" 13 | chrome = "<50" 14 | edge = "<16" 15 | edge_mob = "<16" 16 | firefox = "<50" 17 | firefox_mob = "<50" 18 | ie = ">=9" 19 | ie_mob = ">=9" 20 | opera = "<50" 21 | op_mob = "<46" 22 | safari = "<10.1" 23 | ios_saf = "<10.3" 24 | samsung_mob = "<5.0" 25 | -------------------------------------------------------------------------------- /polyfills/DOMTokenList/prototype/@@iterator/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'iterator' in self.Symbol && (function(){ 2 | try { 3 | var div = document.createElement('div'); 4 | return !!(div.classList && div.classList[self.Symbol.iterator]); 5 | } catch (err) { 6 | return false; 7 | } 8 | }()) 9 | -------------------------------------------------------------------------------- /polyfills/DOMTokenList/prototype/forEach/detect.js: -------------------------------------------------------------------------------- 1 | 'DOMTokenList' in self && 'forEach' in self.DOMTokenList.prototype 2 | -------------------------------------------------------------------------------- /polyfills/DOMTokenList/prototype/forEach/polyfill.js: -------------------------------------------------------------------------------- 1 | (function (global) { 2 | global.DOMTokenList.prototype.forEach = global.Array.prototype.forEach; 3 | 4 | var e = document.createElement('span'); 5 | if ( 6 | e.classList && 7 | e.classList.constructor && 8 | e.classList.constructor.prototype && 9 | !e.classList.constructor.prototype.forEach 10 | ) { 11 | e.classList.constructor.prototype.forEach = global.Array.prototype.forEach; 12 | } 13 | }(self)); 14 | -------------------------------------------------------------------------------- /polyfills/DOMTokenList/prototype/replace/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "Element.prototype.classList" ] 2 | license = "MIT" 3 | spec = "https://dom.spec.whatwg.org/#domtokenlist" 4 | 5 | [browsers] 6 | android = "*" 7 | bb = "*" 8 | chrome = "<67" 9 | edge = "<18" 10 | edge_mob = "<18" 11 | firefox = "<61" 12 | firefox_mob = "<61" 13 | ie = "*" 14 | ie_mob = "*" 15 | opera = "<54" 16 | op_mob = "<48" 17 | op_mini = "*" 18 | safari = "<12.0" 19 | ios_saf = "<12.0" 20 | samsung_mob = "<9.0" 21 | -------------------------------------------------------------------------------- /polyfills/DOMTokenList/prototype/replace/detect.js: -------------------------------------------------------------------------------- 1 | "replace" in (document.createElement('div').classList || {}) 2 | -------------------------------------------------------------------------------- /polyfills/DocumentFragment/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ ] 2 | dependencies = [ ] 3 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment" 4 | spec = "https://dom.spec.whatwg.org/#interface-documentfragment" 5 | notes = [ ] 6 | 7 | [browsers] 8 | android = "<4.4" 9 | chrome = "<29" 10 | edge = "<17" 11 | firefox = "<24" 12 | firefox_mob = "<24" 13 | ie = "*" 14 | ie_mob = "*" 15 | opera = "<16" 16 | op_mob = "<16" 17 | op_mini = "*" 18 | safari = "<8.0" 19 | ios_saf = "<8.0" 20 | samsung_mob = "<2.0" 21 | -------------------------------------------------------------------------------- /polyfills/DocumentFragment/detect.js: -------------------------------------------------------------------------------- 1 | 'DocumentFragment' in self && (function () { 2 | try { 3 | new DocumentFragment(); 4 | return true; 5 | } catch (_) { 6 | return false; 7 | } 8 | }()) 9 | -------------------------------------------------------------------------------- /polyfills/DocumentFragment/polyfill.js: -------------------------------------------------------------------------------- 1 | (function (global) { 2 | global.DocumentFragment = function DocumentFragment() { 3 | return document.createDocumentFragment(); 4 | }; 5 | 6 | var fragment = document.createDocumentFragment(); 7 | global.DocumentFragment.prototype = Object.create(fragment.constructor.prototype) 8 | }(self)); 9 | -------------------------------------------------------------------------------- /polyfills/DocumentFragment/prototype/append/detect.js: -------------------------------------------------------------------------------- 1 | 'DocumentFragment' in self && 'append' in DocumentFragment.prototype 2 | -------------------------------------------------------------------------------- /polyfills/DocumentFragment/prototype/append/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global _mutation */ 2 | (function (global) { 3 | var fragmentProto = document.createDocumentFragment().constructor.prototype; 4 | fragmentProto.append = function append() { 5 | this.appendChild(_mutation(arguments)); 6 | }; 7 | 8 | global.DocumentFragment.prototype.append = function append() { 9 | this.appendChild(_mutation(arguments)); 10 | }; 11 | }(self)); 12 | -------------------------------------------------------------------------------- /polyfills/DocumentFragment/prototype/prepend/detect.js: -------------------------------------------------------------------------------- 1 | 'DocumentFragment' in self && 'prepend' in DocumentFragment.prototype 2 | -------------------------------------------------------------------------------- /polyfills/DocumentFragment/prototype/prepend/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global _mutation */ 2 | (function (global) { 3 | var fragmentProto = document.createDocumentFragment().constructor.prototype; 4 | fragmentProto.prepend = function prepend() { 5 | this.insertBefore(_mutation(arguments), this.firstChild); 6 | }; 7 | 8 | global.DocumentFragment.prototype.prepend = function prepend() { 9 | this.insertBefore(_mutation(arguments), this.firstChild); 10 | }; 11 | }(self)); 12 | -------------------------------------------------------------------------------- /polyfills/DocumentFragment/prototype/replaceChildren/detect.js: -------------------------------------------------------------------------------- 1 | 'DocumentFragment' in self && 'replaceChildren' in DocumentFragment.prototype 2 | -------------------------------------------------------------------------------- /polyfills/DocumentFragment/prototype/replaceChildren/polyfill.js: -------------------------------------------------------------------------------- 1 | (function (global) { 2 | function replaceChildren() { 3 | while (this.firstChild) { 4 | this.removeChild(this.firstChild); 5 | } 6 | this.append.apply(this, arguments); 7 | } 8 | 9 | var fragmentProto = document.createDocumentFragment().constructor.prototype; 10 | fragmentProto.replaceChildren = replaceChildren; 11 | 12 | global.DocumentFragment.prototype.replaceChildren = replaceChildren; 13 | }(self)); 14 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/after/detect.js: -------------------------------------------------------------------------------- 1 | 'Element' in self && 'after' in Element.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/append/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "default-3.4", "default-3.5", "default-3.6", "default" ] 2 | dependencies = [ "_mutation" ] 3 | spec = "http://dom.spec.whatwg.org/#dom-parentnode-append" 4 | 5 | [browsers] 6 | android = "<5" 7 | bb = "*" 8 | chrome = "<54" 9 | edge = "<17" 10 | edge_mob = "<17" 11 | firefox = "<49" 12 | firefox_mob = "<49" 13 | ie = ">=6" 14 | ie_mob = ">=10" 15 | opera = "<39" 16 | op_mob = "<41" 17 | op_mini = "*" 18 | safari = "<10.0" 19 | ios_saf = "<10.0" 20 | samsung_mob = "<6.0" 21 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/append/detect.js: -------------------------------------------------------------------------------- 1 | 'Element' in self && 'append' in Element.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/append/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global _mutation */ 2 | Document.prototype.append = Element.prototype.append = function append() { 3 | this.appendChild(_mutation(arguments)); 4 | }; 5 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/before/detect.js: -------------------------------------------------------------------------------- 1 | 'Element' in self && 'before' in Element.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/classList/detect.js: -------------------------------------------------------------------------------- 1 | 'document' in self && "classList" in document.documentElement && 'Element' in self && 'classList' in Element.prototype && (function () { 2 | var e = document.createElement('span'); 3 | e.classList.add('a', 'b'); 4 | return e.classList.contains('b'); 5 | }()) 6 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/closest/detect.js: -------------------------------------------------------------------------------- 1 | 'document' in self && "closest" in document.documentElement 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/closest/polyfill.js: -------------------------------------------------------------------------------- 1 | Element.prototype.closest = function closest(selector) { 2 | var node = this; 3 | 4 | while (node) { 5 | if (node.matches(selector)) return node; 6 | else node = 'SVGElement' in window && node instanceof SVGElement ? node.parentNode : node.parentElement; 7 | } 8 | 9 | return null; 10 | }; 11 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/dataset/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "Object.getOwnPropertyDescriptor", 3 | ] 4 | spec = "https://html.spec.whatwg.org/multipage/dom.html#dom-dataset" 5 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset" 6 | 7 | [browsers] 8 | chrome = "<8" 9 | firefox = "<6" 10 | firefox_mob = "<6" 11 | ie = "9 - 10" 12 | opera = "<11" 13 | op_mob = "<11" 14 | safari = "<6.0" 15 | ios_saf = "<6.0" 16 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/dataset/detect.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | if (!document.documentElement.dataset) { 3 | return false; 4 | } 5 | var el = document.createElement('div'); 6 | el.setAttribute("data-a-b", "c"); 7 | return el.dataset && el.dataset.aB == "c"; 8 | }()) 9 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/getAttributeNames/detect.js: -------------------------------------------------------------------------------- 1 | 'document' in self && "getAttributeNames" in document.documentElement 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/getAttributeNames/polyfill.js: -------------------------------------------------------------------------------- 1 | (function (global) { 2 | global.Element.prototype.getAttributeNames = function getAttributeNames() { 3 | var attributes = this.attributes; 4 | var length = attributes.length; 5 | var result = new Array(length); 6 | for (var i = 0; i < length; i++) { 7 | result[i] = attributes[i].name; 8 | } 9 | return result; 10 | }; 11 | }(self)); 12 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/matches/detect.js: -------------------------------------------------------------------------------- 1 | 'document' in self && "matches" in document.documentElement 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/matches/polyfill.js: -------------------------------------------------------------------------------- 1 | Element.prototype.matches = Element.prototype.webkitMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector || function matches(selector) { 2 | 3 | var element = this; 4 | var elements = (element.document || element.ownerDocument).querySelectorAll(selector); 5 | var index = 0; 6 | 7 | while (elements[index] && elements[index] !== element) { 8 | ++index; 9 | } 10 | 11 | return !!elements[index]; 12 | }; 13 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/placeholder/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:input-placeholder", "modernizr:placeholder" ] 2 | dependencies = [ ] 3 | 4 | [browsers] 5 | ie = "8 - 9" 6 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/placeholder/detect.js: -------------------------------------------------------------------------------- 1 | 'document' in self && "placeholder" in document.createElement("input") 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/prepend/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "default-3.4", "default-3.5", "default-3.6", "default" ] 2 | dependencies = [ "_mutation" ] 3 | spec = "http://dom.spec.whatwg.org/#dom-parentnode-prepend" 4 | 5 | [browsers] 6 | android = "<5" 7 | bb = "*" 8 | chrome = "<54" 9 | edge = "<17" 10 | edge_mob = "<17" 11 | firefox = "<49" 12 | firefox_mob = "<49" 13 | ie = ">=6" 14 | ie_mob = ">=10" 15 | opera = "<39" 16 | op_mob = "<41" 17 | op_mini = "*" 18 | safari = "<10.0" 19 | ios_saf = "<10.0" 20 | samsung_mob = "<6.0" 21 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/prepend/detect.js: -------------------------------------------------------------------------------- 1 | 'Element' in self && 'prepend' in Element.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/prepend/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global _mutation */ 2 | Document.prototype.prepend = Element.prototype.prepend = function prepend() { 3 | this.insertBefore(_mutation(arguments), this.firstChild); 4 | }; 5 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/remove/detect.js: -------------------------------------------------------------------------------- 1 | 'Element' in self && 'remove' in Element.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/replaceChildren/detect.js: -------------------------------------------------------------------------------- 1 | 'Element' in self && 'replaceChildren' in Element.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/replaceChildren/polyfill.js: -------------------------------------------------------------------------------- 1 | Document.prototype.replaceChildren = Element.prototype.replaceChildren = function replaceChildren() { 2 | while (this.firstChild) { 3 | this.removeChild(this.firstChild); 4 | } 5 | this.append.apply(this, arguments); 6 | }; 7 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/replaceWith/detect.js: -------------------------------------------------------------------------------- 1 | 'Element' in self && 'replaceWith' in Element.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/toggleAttribute/detect.js: -------------------------------------------------------------------------------- 1 | 'document' in self && "toggleAttribute" in document.documentElement 2 | -------------------------------------------------------------------------------- /polyfills/Element/prototype/toggleAttribute/polyfill.js: -------------------------------------------------------------------------------- 1 | Element.prototype.toggleAttribute = function toggleAttribute(name, force) { 2 | if (force !== undefined) { 3 | force = !!force; 4 | } 5 | if (this.getAttribute(name) !== null) { 6 | if (force) { 7 | return true; 8 | } 9 | this.removeAttribute(name); 10 | return false; 11 | } else { 12 | if (force === false) { 13 | return false; 14 | } 15 | this.setAttribute(name, ''); 16 | return true; 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /polyfills/Error/cause/detect.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | try { 3 | return new Error('m', { cause: 'c' }).cause === 'c'; 4 | } catch (e) { 5 | return false; 6 | } 7 | })() 8 | -------------------------------------------------------------------------------- /polyfills/Event/detect.js: -------------------------------------------------------------------------------- 1 | (function(global) { 2 | 3 | if (!('Event' in global)) return false; 4 | 5 | try { 6 | 7 | // In IE 9-11 and Android 4.x, the Event object exists but cannot be instantiated 8 | new Event('click'); 9 | return true; 10 | } catch(e) { 11 | return false; 12 | } 13 | }(self)) 14 | -------------------------------------------------------------------------------- /polyfills/Event/focusin/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ 2 | "default-3.3", 3 | "default-3.4", 4 | "default-3.5", 5 | "default-3.6", 6 | "default" 7 | ] 8 | dependencies = [ "Event" ] 9 | docs = "https://developer.mozilla.org/en-US/docs/Web/Events/focusin" 10 | 11 | [browsers] 12 | firefox = "<52" 13 | firefox_mob = "<52" 14 | -------------------------------------------------------------------------------- /polyfills/Event/focusin/detect.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var support = false; 3 | 4 | document.documentElement.addEventListener("focusin", function() { 5 | support = true; 6 | }); 7 | 8 | document.documentElement.dispatchEvent(new Event("focusin")); 9 | 10 | return support; 11 | })() 12 | -------------------------------------------------------------------------------- /polyfills/Event/focusin/polyfill.js: -------------------------------------------------------------------------------- 1 | self.addEventListener('focus', function (event) { 2 | event.target.dispatchEvent(new Event('focusin', { 3 | bubbles: true, 4 | cancelable: true 5 | })); 6 | }, true); 7 | 8 | self.addEventListener('blur', function (event) { 9 | event.target.dispatchEvent(new Event('focusout', { 10 | bubbles: true, 11 | cancelable: true 12 | })); 13 | }, true); 14 | -------------------------------------------------------------------------------- /polyfills/Event/hashchange/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ 2 | "caniuse:hashchange", 3 | "modernizr:hashchange", 4 | "default-3.3", 5 | "default-3.4", 6 | "default-3.5", 7 | "default-3.6", 8 | "default" 9 | ] 10 | dependencies = [ "Event" ] 11 | docs = "https://developer.mozilla.org/en-US/docs/Web/Events/hashchange" 12 | 13 | [browsers] 14 | chrome = "<55" 15 | firefox = "<51" 16 | firefox_mob = "<51" 17 | ie = "6 - 7" 18 | opera = "<42" 19 | op_mob = "<42" 20 | safari = "<5.0" 21 | ios_saf = "<10.0" 22 | samsung_mob = "<5.0" 23 | -------------------------------------------------------------------------------- /polyfills/Event/hashchange/detect.js: -------------------------------------------------------------------------------- 1 | 'onhashchange' in self && (self.onhashchange == null || typeof self.onhashchange === 'function') 2 | -------------------------------------------------------------------------------- /polyfills/Event/hashchange/polyfill.js: -------------------------------------------------------------------------------- 1 | (function (global) { 2 | var hash = global.location.hash; 3 | 4 | function poll() { 5 | if (hash !== global.location.hash) { 6 | hash = global.location.hash; 7 | 8 | global.dispatchEvent(new Event('hashchange')); 9 | } 10 | 11 | setTimeout(poll, 500); 12 | } 13 | 14 | // Make sure a check for 'onhashchange' in window will pass (note: setting to undefined IE<9 causes 'Not implemented' error) 15 | global.onhashchange = function () { }; 16 | 17 | poll(); 18 | }(self)); 19 | -------------------------------------------------------------------------------- /polyfills/Event/hashchange/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | it('Should dispatch the hashchange event', function(done) { 5 | 6 | var listener = function(e) { 7 | proclaim.equal(e.type, 'hashchange'); 8 | window.removeEventListener('hashchange', listener); 9 | done(); 10 | }; 11 | 12 | window.addEventListener('hashchange', listener); 13 | 14 | window.location.hash = 'hashchange-test-'+Math.floor(Math.random()*1000000); 15 | }); 16 | -------------------------------------------------------------------------------- /polyfills/EventSource/detect.js: -------------------------------------------------------------------------------- 1 | 'EventSource' in self && typeof self.EventSource === 'function' 2 | -------------------------------------------------------------------------------- /polyfills/Function/prototype/name/detect.js: -------------------------------------------------------------------------------- 1 | 'name' in Function.prototype 2 | -------------------------------------------------------------------------------- /polyfills/HTMLCanvasElement/prototype/toBlob/detect.js: -------------------------------------------------------------------------------- 1 | 'toBlob' in HTMLCanvasElement.prototype 2 | -------------------------------------------------------------------------------- /polyfills/HTMLCollection/prototype/@@iterator/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ArrayIterator", "Symbol.iterator" ] 2 | 3 | [browsers] 4 | chrome = "<51" 5 | edge = "<18" 6 | edge_mob = "<18" 7 | firefox = "<13" 8 | firefox_mob = "<14" 9 | ie = "*" 10 | opera = "<38" 11 | op_mob = "<41" 12 | safari = "<11.1" 13 | ios_saf = "<11.0" 14 | samsung_mob = "<5.0" 15 | -------------------------------------------------------------------------------- /polyfills/HTMLCollection/prototype/@@iterator/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'iterator' in self.Symbol && self.Symbol.iterator in self.HTMLCollection.prototype && typeof self.HTMLCollection.prototype[self.Symbol.iterator] === "function" 2 | -------------------------------------------------------------------------------- /polyfills/HTMLCollection/prototype/@@iterator/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol, ArrayIterator*/ 2 | HTMLCollection.prototype[Symbol.iterator] = function () { 3 | return new ArrayIterator(this); 4 | }; 5 | -------------------------------------------------------------------------------- /polyfills/HTMLDocument/config.toml: -------------------------------------------------------------------------------- 1 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument" 2 | 3 | [browsers] 4 | ie = "9" 5 | -------------------------------------------------------------------------------- /polyfills/HTMLDocument/detect.js: -------------------------------------------------------------------------------- 1 | "HTMLDocument" in self 2 | -------------------------------------------------------------------------------- /polyfills/HTMLDocument/polyfill.js: -------------------------------------------------------------------------------- 1 | self.HTMLDocument = self.Document; 2 | -------------------------------------------------------------------------------- /polyfills/HTMLElement/prototype/inert/detect.js: -------------------------------------------------------------------------------- 1 | 'HTMLElement' in self && 'inert' in HTMLElement.prototype 2 | -------------------------------------------------------------------------------- /polyfills/HTMLFormElement/prototype/requestSubmit/detect.js: -------------------------------------------------------------------------------- 1 | typeof HTMLFormElement.prototype.requestSubmit == "function" -------------------------------------------------------------------------------- /polyfills/HTMLPictureElement/detect.js: -------------------------------------------------------------------------------- 1 | 'HTMLSourceElement' in self && 'srcset' in self.HTMLSourceElement.prototype 2 | -------------------------------------------------------------------------------- /polyfills/HTMLSelectElement/prototype/selectedOptions/detect.js: -------------------------------------------------------------------------------- 1 | ('HTMLSelectElement' in self) && ('selectedOptions' in self.HTMLSelectElement.prototype) 2 | -------------------------------------------------------------------------------- /polyfills/HTMLTemplateElement/detect.js: -------------------------------------------------------------------------------- 1 | 'HTMLTemplateElement' in self 2 | -------------------------------------------------------------------------------- /polyfills/IntersectionObserver/detect.js: -------------------------------------------------------------------------------- 1 | 'IntersectionObserver' in window && 2 | 'IntersectionObserverEntry' in window && 3 | 'intersectionRatio' in window.IntersectionObserverEntry.prototype 4 | -------------------------------------------------------------------------------- /polyfills/IntersectionObserverEntry/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ ] 2 | dependencies = [ "IntersectionObserver" ] 3 | docs = "https://github.com/w3c/IntersectionObserver/blob/master/explainer.md" 4 | spec = "http://rawgit.com/w3c/IntersectionObserver/master/index.html" 5 | notes = [ ] 6 | repo = "https://github.com/w3c/IntersectionObserver" 7 | 8 | [browsers] 9 | chrome = "51 - 57" 10 | edge = "15" 11 | edge_mob = "15" 12 | opera = "38 - 44" 13 | op_mob = "41 - 42" 14 | samsung_mob = "5.0 - 6.4" 15 | -------------------------------------------------------------------------------- /polyfills/IntersectionObserverEntry/detect.js: -------------------------------------------------------------------------------- 1 | 'IntersectionObserverEntry' in window && 'isIntersecting' in window.IntersectionObserverEntry.prototype 2 | -------------------------------------------------------------------------------- /polyfills/IntersectionObserverEntry/polyfill.js: -------------------------------------------------------------------------------- 1 | // Minimal polyfill for Edge 15's lack of `isIntersecting` 2 | // See: https://github.com/w3c/IntersectionObserver/issues/211 3 | Object.defineProperty(IntersectionObserverEntry.prototype, 4 | 'isIntersecting', { 5 | get: function () { 6 | return this.intersectionRatio > 0; 7 | } 8 | } 9 | ); 10 | -------------------------------------------------------------------------------- /polyfills/Intl/DateTimeFormat/.gitignore: -------------------------------------------------------------------------------- 1 | polyfill.js 2 | ~locale 3 | -------------------------------------------------------------------------------- /polyfills/Intl/DateTimeFormat/detect.js: -------------------------------------------------------------------------------- 1 | 'Intl' in self && 2 | 'DateTimeFormat' in self.Intl && 3 | 'formatToParts' in self.Intl.DateTimeFormat.prototype && 4 | new self.Intl.DateTimeFormat('en', {hourCycle: 'h11', hour: 'numeric'}).formatToParts(0)[2].type === 'dayPeriod' && 5 | 'formatRangeToParts' in self.Intl.DateTimeFormat.prototype && 6 | new self.Intl.DateTimeFormat('en', {hourCycle: 'h11', hour: 'numeric'}).formatRangeToParts(0, 1)[2].type === 'dayPeriod' 7 | -------------------------------------------------------------------------------- /polyfills/Intl/DateTimeFormat/~timeZone/all/detect.js: -------------------------------------------------------------------------------- 1 | (function (global) { 2 | if ('Intl' in global && 'DateTimeFormat' in global.Intl && 'format' in global.Intl.DateTimeFormat.prototype) { 3 | try { 4 | return (new Intl.DateTimeFormat('en', { 5 | timeZone: 'Africa/Dakar', 6 | timeZoneName: 'short' 7 | })).resolvedOptions().timeZone === 'Africa/Dakar'; 8 | } catch(e) { 9 | return false; 10 | } 11 | } 12 | 13 | return false; 14 | }(self)) 15 | -------------------------------------------------------------------------------- /polyfills/Intl/DateTimeFormat/~timeZone/golden/detect.js: -------------------------------------------------------------------------------- 1 | (function (global) { 2 | if ('Intl' in global && 'DateTimeFormat' in global.Intl && 'format' in global.Intl.DateTimeFormat.prototype) { 3 | try { 4 | return (new Intl.DateTimeFormat('en', { 5 | timeZone: 'Australia/Sydney', 6 | timeZoneName: 'short' 7 | })).resolvedOptions().timeZone === 'Australia/Sydney'; 8 | } catch(e) { 9 | return false; 10 | } 11 | } 12 | 13 | return false; 14 | }(self)) 15 | -------------------------------------------------------------------------------- /polyfills/Intl/DisplayNames/.gitignore: -------------------------------------------------------------------------------- 1 | polyfill.js 2 | ~locale 3 | -------------------------------------------------------------------------------- /polyfills/Intl/DisplayNames/detect.js: -------------------------------------------------------------------------------- 1 | 'Intl' in self && 'DisplayNames' in self.Intl 2 | -------------------------------------------------------------------------------- /polyfills/Intl/ListFormat/.gitignore: -------------------------------------------------------------------------------- 1 | polyfill.js 2 | ~locale 3 | -------------------------------------------------------------------------------- /polyfills/Intl/ListFormat/detect.js: -------------------------------------------------------------------------------- 1 | 'Intl' in self && 'ListFormat' in self.Intl 2 | -------------------------------------------------------------------------------- /polyfills/Intl/Locale/.gitignore: -------------------------------------------------------------------------------- 1 | polyfill.js 2 | -------------------------------------------------------------------------------- /polyfills/Intl/Locale/detect.js: -------------------------------------------------------------------------------- 1 | 'Intl' in self && 'Locale' in self.Intl 2 | -------------------------------------------------------------------------------- /polyfills/Intl/Locale/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('Intl.Locale', function () { 5 | it('should be able to resolve locale list', function () { 6 | proclaim.deepEqual(new Intl.Locale('en-US').minimize().toString(), 'en'); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /polyfills/Intl/NumberFormat/.gitignore: -------------------------------------------------------------------------------- 1 | polyfill.js 2 | ~locale 3 | -------------------------------------------------------------------------------- /polyfills/Intl/NumberFormat/detect.js: -------------------------------------------------------------------------------- 1 | 'Intl' in self && 'NumberFormat' in self.Intl && (function () { 2 | try { 3 | new Intl.NumberFormat(undefined, { 4 | style: 'unit', 5 | unit: 'byte' 6 | }); 7 | } catch (e) { 8 | return false; 9 | } 10 | return true; 11 | })() 12 | -------------------------------------------------------------------------------- /polyfills/Intl/PluralRules/.gitignore: -------------------------------------------------------------------------------- 1 | polyfill.js 2 | ~locale 3 | -------------------------------------------------------------------------------- /polyfills/Intl/PluralRules/detect.js: -------------------------------------------------------------------------------- 1 | 'Intl' in self && 'PluralRules' in self.Intl 2 | -------------------------------------------------------------------------------- /polyfills/Intl/RelativeTimeFormat/.gitignore: -------------------------------------------------------------------------------- 1 | polyfill.js 2 | ~locale 3 | -------------------------------------------------------------------------------- /polyfills/Intl/RelativeTimeFormat/detect.js: -------------------------------------------------------------------------------- 1 | 'Intl' in self && 'RelativeTimeFormat' in self.Intl 2 | -------------------------------------------------------------------------------- /polyfills/Intl/getCanonicalLocales/.gitignore: -------------------------------------------------------------------------------- 1 | polyfill.js 2 | -------------------------------------------------------------------------------- /polyfills/Intl/getCanonicalLocales/detect.js: -------------------------------------------------------------------------------- 1 | 'Intl' in self && 'getCanonicalLocales' in self.Intl 2 | -------------------------------------------------------------------------------- /polyfills/Intl/getCanonicalLocales/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('Intl.getCanonicalLocales', function () { 5 | it('should be able to resolve locale list', function () { 6 | proclaim.deepEqual(Intl.getCanonicalLocales('en'), ['en']); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /polyfills/Map/detect.js: -------------------------------------------------------------------------------- 1 | 'Map' in self && (function(self) { 2 | try { 3 | var m = new self.Map([[1, 1], [2, 2]]); 4 | if (self.Map.length === 0) { 5 | if (m.size === 2) { 6 | if ('Symbol' in self && 7 | 'iterator' in self.Symbol && typeof m[self.Symbol.iterator] === 'function' && 8 | 'toStringTag' in self.Symbol && typeof m[self.Symbol.toStringTag] !== 'undefined' 9 | ) { 10 | return true; 11 | } 12 | } 13 | } 14 | return false; 15 | } catch (e) { 16 | return false; 17 | } 18 | }(self)) 19 | -------------------------------------------------------------------------------- /polyfills/Map/groupBy/detect.js: -------------------------------------------------------------------------------- 1 | "groupBy" in self.Map; 2 | -------------------------------------------------------------------------------- /polyfills/Math/acosh/detect.js: -------------------------------------------------------------------------------- 1 | 'acosh' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/asinh/detect.js: -------------------------------------------------------------------------------- 1 | 'asinh' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/atanh/detect.js: -------------------------------------------------------------------------------- 1 | 'atanh' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/cbrt/detect.js: -------------------------------------------------------------------------------- 1 | 'cbrt' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/clz32/detect.js: -------------------------------------------------------------------------------- 1 | 'clz32' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/clz32/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, ToUint32 */ 2 | // 20.2.2.11. Math.clz32 ( x ) 3 | CreateMethodProperty(Math, 'clz32', function clz32(x) { 4 | // 1. Let n be ToUint32(x). 5 | var n = ToUint32(x); 6 | // 2. Let p be the number of leading zero bits in the 32-bit binary representation of n. 7 | var p = n ? 32 - n.toString(2).length : 32; 8 | // 3. Return p. 9 | return p; 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Math/cosh/detect.js: -------------------------------------------------------------------------------- 1 | 'cosh' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/expm1/detect.js: -------------------------------------------------------------------------------- 1 | 'expm1' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/fround/detect.js: -------------------------------------------------------------------------------- 1 | 'fround' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/hypot/detect.js: -------------------------------------------------------------------------------- 1 | 'hypot' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/imul/detect.js: -------------------------------------------------------------------------------- 1 | 'imul' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/log10/detect.js: -------------------------------------------------------------------------------- 1 | 'log10' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/log10/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty */ 2 | // 20.2.2.22. Math.log10 ( x ) 3 | CreateMethodProperty(Math, 'log10', function log10(x) { 4 | return Math.log(x) / Math.LN10; 5 | }); 6 | -------------------------------------------------------------------------------- /polyfills/Math/log1p/detect.js: -------------------------------------------------------------------------------- 1 | 'log1p' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/log2/detect.js: -------------------------------------------------------------------------------- 1 | 'log2' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/log2/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty */ 2 | // 20.2.2.23. Math.log2 ( x ) 3 | CreateMethodProperty(Math, 'log2', function log2(x) { 4 | return Math.log(x) / Math.LN2; 5 | }); 6 | -------------------------------------------------------------------------------- /polyfills/Math/sign/detect.js: -------------------------------------------------------------------------------- 1 | 'sign' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/sinh/detect.js: -------------------------------------------------------------------------------- 1 | 'sinh' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/tanh/detect.js: -------------------------------------------------------------------------------- 1 | 'tanh' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/tanh/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty */ 2 | // 20.2.2.34. Math.tanh ( x ) 3 | CreateMethodProperty(Math, 'tanh', function tanh(x) { 4 | var y; 5 | 6 | return x === Infinity ? 1 : x === -Infinity ? -1 : (y = Math.exp(2 * x), (y - 1) / (y + 1)); 7 | }); 8 | -------------------------------------------------------------------------------- /polyfills/Math/trunc/detect.js: -------------------------------------------------------------------------------- 1 | 'trunc' in Math 2 | -------------------------------------------------------------------------------- /polyfills/Math/trunc/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty */ 2 | CreateMethodProperty(Math, 'trunc', function trunc(x) { 3 | return x < 0 ? Math.ceil(x) : Math.floor(x); 4 | }); 5 | -------------------------------------------------------------------------------- /polyfills/MediaQueryList/prototype/addEventListener/detect.js: -------------------------------------------------------------------------------- 1 | 'matchMedia' in self && 'addEventListener' in (self.matchMedia('all')) 2 | -------------------------------------------------------------------------------- /polyfills/MutationObserver/detect.js: -------------------------------------------------------------------------------- 1 | "MutationObserver" in self 2 | -------------------------------------------------------------------------------- /polyfills/Node/prototype/contains/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ 2 | "dom4", 3 | "default-3.4", 4 | "default-3.5", 5 | "default-3.6", 6 | "default" 7 | ] 8 | dependencies = [ ] 9 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Node/contains" 10 | 11 | [browsers] 12 | edge = "<14" 13 | edge_mob = "<14" 14 | firefox = "<9" 15 | firefox_mob = "<9" 16 | ie = "*" 17 | ie_mob = ">=10" 18 | safari = "<3.0" 19 | -------------------------------------------------------------------------------- /polyfills/Node/prototype/contains/detect.js: -------------------------------------------------------------------------------- 1 | document.contains 2 | -------------------------------------------------------------------------------- /polyfills/Node/prototype/getRootNode/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [] 2 | dependencies = [] 3 | 4 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Node/getRootNode" 5 | spec = "https://dom.spec.whatwg.org/#dom-node-getrootnode" 6 | 7 | [browsers] 8 | android = "<6" 9 | bb = "*" 10 | chrome = "<54" 11 | edge = "*" 12 | edge_mob = "*" 13 | firefox = "<53" 14 | firefox_mob = "<53" 15 | ie = "*" 16 | ie_mob = "*" 17 | opera = "<41" 18 | op_mob = "<41" 19 | op_mini = "*" 20 | safari = "<10.1" 21 | ios_saf = "<10.3" 22 | samsung_mob = "<6.0" 23 | -------------------------------------------------------------------------------- /polyfills/Node/prototype/getRootNode/detect.js: -------------------------------------------------------------------------------- 1 | document.getRootNode 2 | -------------------------------------------------------------------------------- /polyfills/Node/prototype/isConnected/detect.js: -------------------------------------------------------------------------------- 1 | 'isConnected' in document 2 | -------------------------------------------------------------------------------- /polyfills/Node/prototype/isSameNode/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ 2 | "dom4", 3 | "default-3.4", 4 | "default-3.5", 5 | "default-3.6", 6 | "default", 7 | ] 8 | dependencies = [ ] 9 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Node/isSameNode" 10 | 11 | [browsers] 12 | bb = "*" 13 | firefox = "<48" 14 | firefox_mob = "<48" 15 | ie = "<9" 16 | ie_mob = "<9" 17 | opera = "<12.1" 18 | op_mob = "<12.1" 19 | safari = "<3.0" 20 | -------------------------------------------------------------------------------- /polyfills/Node/prototype/isSameNode/detect.js: -------------------------------------------------------------------------------- 1 | document.isSameNode 2 | -------------------------------------------------------------------------------- /polyfills/NodeList/prototype/@@iterator/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ArrayIterator", "Symbol.iterator" ] 2 | license = "MIT" 3 | spec = "https://dom.spec.whatwg.org/#nodelist" 4 | 5 | [browsers] 6 | android = "*" 7 | bb = "10 - *" 8 | chrome = "<51" 9 | edge = "<16" 10 | edge_mob = "<16" 11 | firefox = "<50" 12 | firefox_mob = "<50" 13 | ie = ">=9" 14 | ie_mob = ">=9" 15 | opera = "<38" 16 | op_mob = "<41" 17 | safari = "<10.0" 18 | ios_saf = "<10.0" 19 | samsung_mob = "<5.0" 20 | -------------------------------------------------------------------------------- /polyfills/NodeList/prototype/@@iterator/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'iterator' in self.Symbol && (function () { 2 | var fragment = document.createDocumentFragment(); 3 | fragment.appendChild(document.createElement('div')); 4 | return !!fragment.childNodes[self.Symbol.iterator]; 5 | })() 6 | -------------------------------------------------------------------------------- /polyfills/NodeList/prototype/@@iterator/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol, ArrayIterator*/ 2 | NodeList.prototype[Symbol.iterator] = function () { 3 | return new ArrayIterator(this); 4 | }; 5 | -------------------------------------------------------------------------------- /polyfills/NodeList/prototype/forEach/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ ] 2 | spec = "https://heycam.github.io/webidl/#es-forEach" 3 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach" 4 | 5 | [browsers] 6 | android = "*" 7 | chrome = "<51" 8 | edge = "<16" 9 | edge_mob = "<16" 10 | firefox = "<50" 11 | firefox_mob = "<50" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "<38" 15 | op_mob = "<41" 16 | safari = "<10.0" 17 | ios_saf = "<10.0" 18 | samsung_mob = "<5.0" 19 | -------------------------------------------------------------------------------- /polyfills/NodeList/prototype/forEach/detect.js: -------------------------------------------------------------------------------- 1 | 'forEach' in NodeList.prototype 2 | -------------------------------------------------------------------------------- /polyfills/NodeList/prototype/forEach/polyfill.js: -------------------------------------------------------------------------------- 1 | NodeList.prototype.forEach = Array.prototype.forEach; 2 | -------------------------------------------------------------------------------- /polyfills/Number/Epsilon/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "es6", "es2015", "Number.EPSILON" ] 2 | dependencies = [ ] 3 | license = "MIT" 4 | spec = "https://tc39.github.io/ecma262/#sec-number.epsilon" 5 | docs = "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON" 6 | 7 | [browsers] 8 | chrome = "<34" 9 | firefox = "<25" 10 | firefox_mob = "<25" 11 | ie = "*" 12 | opera = "<21" 13 | op_mob = "<21" 14 | safari = "<9.0" 15 | ios_saf = "<9.0" 16 | samsung_mob = "<2.0" 17 | -------------------------------------------------------------------------------- /polyfills/Number/Epsilon/detect.js: -------------------------------------------------------------------------------- 1 | 'EPSILON' in Number 2 | -------------------------------------------------------------------------------- /polyfills/Number/Epsilon/polyfill.js: -------------------------------------------------------------------------------- 1 | // 20.1.2.1. Number.EPSILON 2 | // The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16. 3 | // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. 4 | Object.defineProperty(Number, 'EPSILON', { 5 | enumerable: false, 6 | configurable: false, 7 | writable: false, 8 | value: Math.pow(2, -52) 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/Number/MAX_SAFE_INTEGER/detect.js: -------------------------------------------------------------------------------- 1 | 'MAX_SAFE_INTEGER' in Number 2 | -------------------------------------------------------------------------------- /polyfills/Number/MAX_SAFE_INTEGER/polyfill.js: -------------------------------------------------------------------------------- 1 | // 20.1.2.6. Number.MAX_SAFE_INTEGER 2 | // The value of Number.MAX_SAFE_INTEGER is 9007199254740991 (2^53-1). 3 | // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. 4 | Object.defineProperty(Number, 'MAX_SAFE_INTEGER', { 5 | enumerable: false, 6 | configurable: false, 7 | writable: false, 8 | value: Math.pow(2, 53) - 1 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/Number/MAX_SAFE_INTEGER/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | it('should have max safe integer defined', function() { 5 | proclaim.isDefined(Number.MAX_SAFE_INTEGER); 6 | }); 7 | 8 | 9 | it('should be correct value', function() { 10 | proclaim.equal(Number.MAX_SAFE_INTEGER, Math.pow(2, 53) - 1); 11 | }); 12 | 13 | it('should not be enumerable', function() { 14 | proclaim.isFalse(Object.prototype.propertyIsEnumerable.call(Number.MAX_SAFE_INTEGER)); 15 | }); 16 | -------------------------------------------------------------------------------- /polyfills/Number/MIN_SAFE_INTEGER/detect.js: -------------------------------------------------------------------------------- 1 | 'MIN_SAFE_INTEGER' in Number 2 | -------------------------------------------------------------------------------- /polyfills/Number/MIN_SAFE_INTEGER/polyfill.js: -------------------------------------------------------------------------------- 1 | // 20.1.2.8. Number.MIN_SAFE_INTEGER 2 | // The value of Number.MIN_SAFE_INTEGER is -9007199254740991 (-(253-1)). 3 | // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. 4 | Object.defineProperty(Number, 'MIN_SAFE_INTEGER', { 5 | enumerable: false, 6 | configurable: false, 7 | writable: false, 8 | value: -(Math.pow(2, 53) - 1) 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/Number/MIN_SAFE_INTEGER/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | it('should have min safe integer defined', function() { 5 | proclaim.isDefined(Number.MIN_SAFE_INTEGER); 6 | }); 7 | 8 | 9 | it('should be correct value', function() { 10 | proclaim.equal(Number.MIN_SAFE_INTEGER, -Math.pow(2, 53) + 1); 11 | }); 12 | 13 | it('should not be enumerable', function() { 14 | proclaim.isFalse(Object.prototype.propertyIsEnumerable.call(Number.MIN_SAFE_INTEGER)); 15 | }); 16 | -------------------------------------------------------------------------------- /polyfills/Number/isFinite/detect.js: -------------------------------------------------------------------------------- 1 | 'isFinite' in Number 2 | -------------------------------------------------------------------------------- /polyfills/Number/isInteger/detect.js: -------------------------------------------------------------------------------- 1 | 'isInteger' in Number 2 | -------------------------------------------------------------------------------- /polyfills/Number/isNaN/detect.js: -------------------------------------------------------------------------------- 1 | 'isNaN' in Number 2 | -------------------------------------------------------------------------------- /polyfills/Number/isNaN/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, Type */ 2 | (function () { 3 | var that = self; 4 | // 20.1.2.4. Number.isNaN ( number ) 5 | CreateMethodProperty(Number, 'isNaN', function isNaN(number) { 6 | // 1. If Type(number) is not Number, return false. 7 | if (Type(number) !== 'number') { 8 | return false; 9 | } 10 | // 2. If number is NaN, return true. 11 | if (that.isNaN(number)) { 12 | return true; 13 | } 14 | // 3. Otherwise, return false. 15 | return false; 16 | }); 17 | }()); 18 | -------------------------------------------------------------------------------- /polyfills/Number/isSafeInteger/detect.js: -------------------------------------------------------------------------------- 1 | 'isSafeInteger' in Number 2 | -------------------------------------------------------------------------------- /polyfills/Number/parseFloat/detect.js: -------------------------------------------------------------------------------- 1 | 'parseFloat' in Number && (1 / parseFloat('\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF' + '-0') === -Infinity) 2 | -------------------------------------------------------------------------------- /polyfills/Number/parseInt/detect.js: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line radix 2 | 'parseInt' in Number && Number.parseInt('08') === 8 3 | -------------------------------------------------------------------------------- /polyfills/Object/assign/detect.js: -------------------------------------------------------------------------------- 1 | 'assign' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/entries/detect.js: -------------------------------------------------------------------------------- 1 | 'entries' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/freeze/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "es5" ] 2 | dependencies = [ "_ESAbstract.CreateMethodProperty" ] 3 | docs = "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze" 4 | 5 | [browsers] 6 | android = "*" 7 | bb = "*" 8 | chrome = "<6" 9 | firefox = "<4" 10 | firefox_mob = "*" 11 | ie = "<9" 12 | ie_mob = "*" 13 | opera = "<12" 14 | op_mob = "<12" 15 | op_mini = "*" 16 | safari = "<5.1" 17 | ios_saf = "<6.0" 18 | samsung_mob = "<6.0" 19 | -------------------------------------------------------------------------------- /polyfills/Object/freeze/detect.js: -------------------------------------------------------------------------------- 1 | 'freeze' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/freeze/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty */ 2 | // 19.1.2.6. Object.freeze ( O ) 3 | CreateMethodProperty(Object, 'freeze', function freeze(O) { 4 | // This feature cannot be implemented fully as a polyfill. 5 | // We choose to silently fail which allows "securable" code 6 | // to "gracefully" degrade to working but insecure code. 7 | return O; 8 | }); 9 | -------------------------------------------------------------------------------- /polyfills/Object/fromEntries/detect.js: -------------------------------------------------------------------------------- 1 | "fromEntries" in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/getOwnPropertyDescriptor/detect.js: -------------------------------------------------------------------------------- 1 | 'getOwnPropertyDescriptor' in Object && typeof Object.getOwnPropertyDescriptor === 'function' && (function() { 2 | try { 3 | return Object.getOwnPropertyDescriptor('13.7', 1).value === '3'; 4 | } catch (exception) { 5 | return false 6 | } 7 | }()) 8 | -------------------------------------------------------------------------------- /polyfills/Object/getOwnPropertyDescriptors/detect.js: -------------------------------------------------------------------------------- 1 | 'getOwnPropertyDescriptor' in Object && typeof Object.getOwnPropertyDescriptor === 'function' && (function() { 2 | try { 3 | var object = {}; 4 | object.test = 0; 5 | return Object.getOwnPropertyDescriptors(object).test.value === 0; 6 | } catch (exception) { 7 | return false 8 | } 9 | }()) 10 | -------------------------------------------------------------------------------- /polyfills/Object/getOwnPropertyNames/detect.js: -------------------------------------------------------------------------------- 1 | 'getOwnPropertyNames' in Object && (function() { 2 | try { 3 | Object.getOwnPropertyNames(1); 4 | return true; 5 | } catch (e) { 6 | return false; 7 | } 8 | })() 9 | -------------------------------------------------------------------------------- /polyfills/Object/groupBy/detect.js: -------------------------------------------------------------------------------- 1 | "groupBy" in Object; 2 | -------------------------------------------------------------------------------- /polyfills/Object/hasOwn/detect.js: -------------------------------------------------------------------------------- 1 | 'hasOwn' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/hasOwn/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, HasOwnProperty, ToObject, ToPropertyKey */ 2 | 3 | // 20.1.2.13 Object.hasOwn ( O, P ) 4 | CreateMethodProperty(Object, 'hasOwn', function hasOwn(O, P) { 5 | // Let obj be ? ToObject(O). 6 | var obj = ToObject(O); 7 | // 2. Let key be ? ToPropertyKey(P). 8 | var key = ToPropertyKey(P); 9 | // 3. Return ? HasOwnProperty(obj, key). 10 | return HasOwnProperty(obj, key); 11 | }); 12 | -------------------------------------------------------------------------------- /polyfills/Object/is/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "es6", "es2015", "modernizr:es6object" ] 2 | dependencies = [ "_ESAbstract.CreateMethodProperty", "_ESAbstract.SameValue" ] 3 | docs = "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is" 4 | 5 | [browsers] 6 | android = "<4.4" 7 | bb = "*" 8 | chrome = "<29" 9 | firefox = "<22" 10 | firefox_mob = "<22" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "<32" 14 | op_mob = "<32" 15 | op_mini = "*" 16 | safari = "<9.0" 17 | ios_saf = "<9.0" 18 | samsung_mob = "<1.6" 19 | -------------------------------------------------------------------------------- /polyfills/Object/is/detect.js: -------------------------------------------------------------------------------- 1 | 'is' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/is/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, SameValue */ 2 | // 19.1.2.12. Object.is ( value1, value2 ) 3 | CreateMethodProperty(Object, 'is', function is(value1, value2) { 4 | // 1. Return SameValue(value1, value2). 5 | return SameValue(value1, value2); 6 | }); 7 | -------------------------------------------------------------------------------- /polyfills/Object/isExtensible/detect.js: -------------------------------------------------------------------------------- 1 | 'isExtensible' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/isExtensible/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, Type */ 2 | 3 | (function (nativeIsExtensible) { 4 | // 19.1.2.13 Object.isExtensible ( O ) 5 | CreateMethodProperty(Object, 'isExtensible', function isExtensible(O) { 6 | // 1. If Type(O) is not Object, return false. 7 | if (Type(O) !== "object") { 8 | return false; 9 | } 10 | // 2. Return ? IsExtensible(O). 11 | return nativeIsExtensible ? nativeIsExtensible(O) : true; 12 | }); 13 | }(Object.isExtensible)); 14 | -------------------------------------------------------------------------------- /polyfills/Object/isFrozen/detect.js: -------------------------------------------------------------------------------- 1 | 'isFrozen' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/isFrozen/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, Type */ 2 | (function (nativeIsFrozen) { 3 | // 19.1.2.14 Object.isFrozen ( O ) 4 | CreateMethodProperty(Object, 'isFrozen', function isFrozen(O) { 5 | // 1. If Type(O) is not Object, return true. 6 | if (Type(O) !== "object") { 7 | return true; 8 | } 9 | // 2. Return ? TestIntegrityLevel(O, "frozen"). 10 | return nativeIsFrozen ? nativeIsFrozen(O) : false; 11 | }); 12 | }(Object.isFrozen)); 13 | -------------------------------------------------------------------------------- /polyfills/Object/isSealed/detect.js: -------------------------------------------------------------------------------- 1 | 'isSealed' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/isSealed/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, Type */ 2 | (function (nativeisSealed) { 3 | // 19.1.2.15 Object.isSealed ( O ) 4 | CreateMethodProperty(Object, 'isSealed', function isSealed(O) { 5 | // 1. If Type(O) is not Object, return true. 6 | if (Type(O) !== "object") { 7 | return true; 8 | } 9 | // 2. Return ? TestIntegrityLevel(O, "sealed"). 10 | return nativeisSealed ? nativeisSealed(O) : false; 11 | }); 12 | }(Object.isSealed)); 13 | -------------------------------------------------------------------------------- /polyfills/Object/keys/detect.js: -------------------------------------------------------------------------------- 1 | 'keys' in Object && (function () { 2 | // Safari 5.0 bug where Object.keys doesn't work with arguments 3 | return (Object.keys(arguments)).length === 2; 4 | }(1, 2)) && (function () { 5 | try { 6 | // In ES6 Object.keys works on all object except `null` and `undefined`. 7 | Object.keys(''); 8 | return true; 9 | } catch (e) { 10 | return false; 11 | } 12 | }()) 13 | -------------------------------------------------------------------------------- /polyfills/Object/preventExtensions/detect.js: -------------------------------------------------------------------------------- 1 | 'preventExtensions' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/prototype/toString/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'toStringTag' in self.Symbol && 'toString' in Object.prototype && 2 | (function () { 3 | var x = {} 4 | x[self.Symbol.toStringTag] = 'x' 5 | return Object.prototype.toString.call(x) === '[object x]' 6 | })() === true 7 | -------------------------------------------------------------------------------- /polyfills/Object/seal/detect.js: -------------------------------------------------------------------------------- 1 | "seal" in Object && (function() { 2 | try { 3 | Object.seal('1'); 4 | return true; 5 | } catch (err) { 6 | return false; 7 | } 8 | }()) 9 | -------------------------------------------------------------------------------- /polyfills/Object/setPrototypeOf/detect.js: -------------------------------------------------------------------------------- 1 | "setPrototypeOf" in Object 2 | -------------------------------------------------------------------------------- /polyfills/Object/values/detect.js: -------------------------------------------------------------------------------- 1 | 'values' in Object 2 | -------------------------------------------------------------------------------- /polyfills/Promise/allSettled/detect.js: -------------------------------------------------------------------------------- 1 | 'Promise' in self && 'allSettled' in self.Promise 2 | -------------------------------------------------------------------------------- /polyfills/Promise/any/detect.js: -------------------------------------------------------------------------------- 1 | 'Promise' in self && 'any' in self.Promise 2 | -------------------------------------------------------------------------------- /polyfills/Promise/detect.js: -------------------------------------------------------------------------------- 1 | 'Promise' in self 2 | -------------------------------------------------------------------------------- /polyfills/Promise/prototype/finally/detect.js: -------------------------------------------------------------------------------- 1 | 'Promise' in self && 'finally' in self.Promise.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/apply/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'apply' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ ] 2 | spec = "https://tc39.github.io/ecma262/#sec-reflect-object" 3 | 4 | [browsers] 5 | android = "<5" 6 | bb = "*" 7 | chrome = "<49" 8 | firefox = "<42" 9 | firefox_mob = "<42" 10 | ie = "*" 11 | ie_mob = "*" 12 | opera = "<36" 13 | op_mob = "<36" 14 | op_mini = "*" 15 | safari = "<10.0" 16 | ios_saf = "<10.0" 17 | samsung_mob = "<5.0" 18 | -------------------------------------------------------------------------------- /polyfills/Reflect/construct/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'construct' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/defineProperty/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'defineProperty' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/deleteProperty/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'deleteProperty' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/detect.js: -------------------------------------------------------------------------------- 1 | "Reflect" in self 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/get/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'get' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/getOwnPropertyDescriptor/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'getOwnPropertyDescriptor' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/getPrototypeOf/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "Reflect", 3 | "_ESAbstract.CreateMethodProperty", 4 | "_ESAbstract.Type", 5 | ] 6 | spec = "https://tc39.github.io/ecma262/#sec-reflect.getprototypeof" 7 | 8 | [browsers] 9 | android = "<5" 10 | bb = "*" 11 | chrome = "<49" 12 | firefox = "<42" 13 | firefox_mob = "<42" 14 | ie = "*" 15 | ie_mob = "*" 16 | opera = "<36" 17 | op_mob = "<36" 18 | op_mini = "*" 19 | safari = "<10.0" 20 | ios_saf = "<10.0" 21 | samsung_mob = "<5.0" 22 | -------------------------------------------------------------------------------- /polyfills/Reflect/getPrototypeOf/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'getPrototypeOf' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/getPrototypeOf/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, Reflect, Type */ 2 | // 26.1.7 Reflect.getPrototypeOf ( target ) 3 | CreateMethodProperty(Reflect, 'getPrototypeOf', function getPrototypeOf(target) { 4 | // 1. If Type(target) is not Object, throw a TypeError exception. 5 | if (Type(target) !== "object") { 6 | throw new TypeError(Object.prototype.toString.call(target) + ' is not an Object'); 7 | } 8 | // 2. Return ? target.[[GetPrototypeOf]](). 9 | return Object.getPrototypeOf(target); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Reflect/has/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "Reflect", 3 | "_ESAbstract.CreateMethodProperty", 4 | "_ESAbstract.Type", 5 | "_ESAbstract.ToPropertyKey", 6 | "_ESAbstract.HasProperty" 7 | ] 8 | spec = "https://tc39.github.io/ecma262/#sec-reflect.has" 9 | 10 | [browsers] 11 | android = "<5" 12 | bb = "*" 13 | chrome = "<49" 14 | firefox = "<42" 15 | firefox_mob = "<42" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "<36" 19 | op_mob = "<36" 20 | op_mini = "*" 21 | safari = "<10.0" 22 | ios_saf = "<10.0" 23 | samsung_mob = "<5.0" 24 | -------------------------------------------------------------------------------- /polyfills/Reflect/has/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'has' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/isExtensible/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "Reflect", 3 | "_ESAbstract.CreateMethodProperty", 4 | "_ESAbstract.Type", 5 | "Object.isExtensible" 6 | ] 7 | spec = "https://tc39.github.io/ecma262/#sec-reflect.isextensible" 8 | 9 | [browsers] 10 | android = "<5" 11 | bb = "*" 12 | chrome = "<49" 13 | firefox = "<42" 14 | firefox_mob = "<42" 15 | ie = "*" 16 | ie_mob = "*" 17 | opera = "<36" 18 | op_mob = "<36" 19 | op_mini = "*" 20 | safari = "<10.0" 21 | ios_saf = "<10.0" 22 | samsung_mob = "<5.0" 23 | -------------------------------------------------------------------------------- /polyfills/Reflect/isExtensible/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'isExtensible' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/isExtensible/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, Reflect, Type */ 2 | // 26.1.9 Reflect.isExtensible ( target ) 3 | CreateMethodProperty(Reflect, 'isExtensible', function isExtensible(target) { 4 | // 1. If Type(target) is not Object, throw a TypeError exception. 5 | if (Type(target) !== "object") { 6 | throw new TypeError(Object.prototype.toString.call(target) + ' is not an Object'); 7 | } 8 | // 2. Return ? target.[[IsExtensible]](). 9 | return Object.isExtensible(target); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Reflect/ownKeys/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "Reflect", 3 | "Symbol", 4 | "Object.getOwnPropertyNames", 5 | "_ESAbstract.Type", 6 | "_ESAbstract.CreateMethodProperty" 7 | ] 8 | spec = "https://tc39.github.io/ecma262/#sec-reflect.ownkeys" 9 | 10 | [browsers] 11 | android = "<5" 12 | bb = "*" 13 | chrome = "<49" 14 | firefox = "<42" 15 | firefox_mob = "<42" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "<36" 19 | op_mob = "<36" 20 | op_mini = "*" 21 | safari = "<10.0" 22 | ios_saf = "<10.0" 23 | samsung_mob = "<5.0" 24 | -------------------------------------------------------------------------------- /polyfills/Reflect/ownKeys/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'ownKeys' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/polyfill.js: -------------------------------------------------------------------------------- 1 | // 26.1 The Reflect Object 2 | try { 3 | Object.defineProperty(self, "Reflect", { 4 | value: self.Reflect || {}, 5 | writable: true, 6 | configurable: true, 7 | enumerable: false 8 | }); 9 | } catch (e) { 10 | self.Reflect = self.Reflect || {}; 11 | } 12 | -------------------------------------------------------------------------------- /polyfills/Reflect/preventExtensions/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "Reflect", 3 | "Object.preventExtensions", 4 | "_ESAbstract.CreateMethodProperty", 5 | "_ESAbstract.Type" 6 | ] 7 | spec = "https://tc39.github.io/ecma262/#sec-reflect.preventextensions" 8 | 9 | [browsers] 10 | android = "<5" 11 | bb = "*" 12 | chrome = "<49" 13 | firefox = "<42" 14 | firefox_mob = "<42" 15 | ie = "*" 16 | ie_mob = "*" 17 | opera = "<36" 18 | op_mob = "<36" 19 | op_mini = "*" 20 | safari = "<10.0" 21 | ios_saf = "<10.0" 22 | samsung_mob = "<5.0" 23 | -------------------------------------------------------------------------------- /polyfills/Reflect/preventExtensions/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'preventExtensions' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/set/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "Reflect", 3 | "_ESAbstract.CreateMethodProperty", 4 | "_ESAbstract.Type", 5 | "_ESAbstract.ToPropertyKey", 6 | "_ESAbstract.Call" 7 | ] 8 | spec = "https://tc39.github.io/ecma262/#sec-reflect.set" 9 | 10 | [browsers] 11 | android = "<5" 12 | bb = "*" 13 | chrome = "<49" 14 | firefox = "<42" 15 | firefox_mob = "<42" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "<36" 19 | op_mob = "<36" 20 | op_mini = "*" 21 | safari = "<10.0" 22 | ios_saf = "<10.0" 23 | samsung_mob = "<5.0" 24 | -------------------------------------------------------------------------------- /polyfills/Reflect/set/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'set' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/Reflect/setPrototypeOf/detect.js: -------------------------------------------------------------------------------- 1 | self.Reflect && 'setPrototypeOf' in self.Reflect 2 | -------------------------------------------------------------------------------- /polyfills/RegExp/prototype/@@matchAll/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'matchAll' in self.Symbol && !!RegExp.prototype[self.Symbol.matchAll] 2 | -------------------------------------------------------------------------------- /polyfills/RegExp/prototype/flags/detect.js: -------------------------------------------------------------------------------- 1 | 'flags' in RegExp.prototype 2 | -------------------------------------------------------------------------------- /polyfills/ResizeObserver/detect.js: -------------------------------------------------------------------------------- 1 | "ResizeObserver" in self 2 | -------------------------------------------------------------------------------- /polyfills/ResizeObserver/update.task.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | 3 | 'use strict'; 4 | 5 | var fs = require('fs'); 6 | var path = require('path'); 7 | var resizeObserverPolyfillOutput = path.resolve('polyfills/ResizeObserver/polyfill.js'); 8 | 9 | var polyfill = fs.readFileSync(resizeObserverPolyfillOutput, 'utf-8'); 10 | polyfill += ';self.ResizeObserverEntry = ResizeObserver.ResizeObserverEntry;self.ResizeObserver=ResizeObserver.ResizeObserver;' 11 | fs.writeFileSync(resizeObserverPolyfillOutput, polyfill, 'utf-8'); 12 | -------------------------------------------------------------------------------- /polyfills/Set/detect.js: -------------------------------------------------------------------------------- 1 | 'Set' in self && (function() { 2 | try { 3 | var s = new self.Set([1, 2]); 4 | if (self.Set.length === 0) { 5 | if (s.size === 2) { 6 | if ('Symbol' in self && 7 | 'iterator' in self.Symbol && typeof s[self.Symbol.iterator] === 'function' && 8 | 'toStringTag' in self.Symbol && typeof s[self.Symbol.toStringTag] !== 'undefined' 9 | ) { 10 | return true; 11 | } 12 | } 13 | } 14 | return false; 15 | } catch (e) { 16 | return false; 17 | } 18 | }()) 19 | -------------------------------------------------------------------------------- /polyfills/String/fromCodePoint/detect.js: -------------------------------------------------------------------------------- 1 | 'fromCodePoint' in String && String.fromCodePoint.length === 1 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/@@iterator/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'iterator' in self.Symbol && !!String.prototype[self.Symbol.iterator] 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/at/detect.js: -------------------------------------------------------------------------------- 1 | 'at' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/codePointAt/detect.js: -------------------------------------------------------------------------------- 1 | 'codePointAt' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/endsWith/detect.js: -------------------------------------------------------------------------------- 1 | 'endsWith' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/includes/detect.js: -------------------------------------------------------------------------------- 1 | 'includes' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/isWellFormed/detect.js: -------------------------------------------------------------------------------- 1 | "isWellFormed" in String.prototype; 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/isWellFormed/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, IsStringWellFormedUnicode, RequireObjectCoercible, ToString */ 2 | 3 | // 22.1.3.10 String.prototype.isWellFormed ( ) 4 | CreateMethodProperty(String.prototype, "isWellFormed", function isWellFormed() { 5 | // 1. Let O be ? RequireObjectCoercible(this value). 6 | var O = RequireObjectCoercible(this); 7 | // 2. Let S be ? ToString(O). 8 | var S = ToString(O); 9 | // 3. Return IsStringWellFormedUnicode(S). 10 | return IsStringWellFormedUnicode(S); 11 | }); 12 | -------------------------------------------------------------------------------- /polyfills/String/prototype/matchAll/detect.js: -------------------------------------------------------------------------------- 1 | 'matchAll' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/normalize/detect.js: -------------------------------------------------------------------------------- 1 | 'normalize' in String.prototype && String.prototype.normalize.length === 0 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/normalize/patch.jsdiff: -------------------------------------------------------------------------------- 1 | Index: polyfill.js 2 | --- polyfill.js 3 | +++ polyfill.js 4 | @@ -419,7 +419,6 @@ 5 | */ 6 | unorm.shimApplied = false; 7 | 8 | - if (!String.prototype.normalize) { 9 | Object.defineProperty(String.prototype, "normalize", { 10 | enumerable: false, 11 | configurable: true, 12 | @@ -448,5 +447,4 @@ 13 | }); 14 | 15 | unorm.shimApplied = true; 16 | - } 17 | }(this)); 18 | -------------------------------------------------------------------------------- /polyfills/String/prototype/padEnd/detect.js: -------------------------------------------------------------------------------- 1 | 'padEnd' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/padStart/detect.js: -------------------------------------------------------------------------------- 1 | 'padStart' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/repeat/detect.js: -------------------------------------------------------------------------------- 1 | 'repeat' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/replaceAll/detect.js: -------------------------------------------------------------------------------- 1 | 'replaceAll' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/startsWith/detect.js: -------------------------------------------------------------------------------- 1 | 'startsWith' in String.prototype 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/toWellFormed/detect.js: -------------------------------------------------------------------------------- 1 | "toWellFormed" in String.prototype; 2 | -------------------------------------------------------------------------------- /polyfills/String/prototype/trim/detect.js: -------------------------------------------------------------------------------- 1 | 'trim' in String.prototype && (function () { 2 | var whitespace = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; 3 | var notWhitespace = '\u200B\u0085\u180E'; 4 | return !whitespace.trim() && 5 | notWhitespace.trim() === notWhitespace; 6 | }()) 7 | -------------------------------------------------------------------------------- /polyfills/String/prototype/trim/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, TrimString */ 2 | // 21.1.3.27. String.prototype.trim ( ) 3 | CreateMethodProperty(String.prototype, 'trim', function trim() { 4 | 'use strict'; 5 | // Let S be this value. 6 | var S = this; 7 | // Return ? TrimString(S, "start+end"). 8 | return TrimString(S, "start+end"); 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/String/prototype/trimEnd/detect.js: -------------------------------------------------------------------------------- 1 | 'trimEnd' in String.prototype && (function () { 2 | var whitespace = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; 3 | var notWhitespace = '\u200B\u0085\u180E'; 4 | return !whitespace.trimEnd() && 5 | notWhitespace.trimEnd() === notWhitespace; 6 | }()) 7 | -------------------------------------------------------------------------------- /polyfills/String/prototype/trimEnd/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, TrimString */ 2 | // 21.1.3.28 String.prototype.trimEnd ( ) 3 | CreateMethodProperty(String.prototype, 'trimEnd', function trimEnd() { 4 | 'use strict'; 5 | // 1. Let S be this value. 6 | var S = this; 7 | // 2. Return ? TrimString(S, "end"). 8 | return TrimString(S, "end"); 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/String/prototype/trimStart/detect.js: -------------------------------------------------------------------------------- 1 | 'trimStart' in String.prototype && (function () { 2 | var whitespace = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; 3 | var notWhitespace = '\u200B\u0085\u180E'; 4 | return !whitespace.trimStart() && 5 | notWhitespace.trimStart() === notWhitespace; 6 | }()) 7 | -------------------------------------------------------------------------------- /polyfills/String/prototype/trimStart/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global CreateMethodProperty, TrimString */ 2 | // 21.1.3.29 String.prototype.trimStart ( ) 3 | CreateMethodProperty(String.prototype, 'trimStart', function trimStart() { 4 | 'use strict'; 5 | // 1. Let S be this value. 6 | var S = this; 7 | // 2. Return ? TrimString(S, "start"). 8 | return TrimString(S, "start"); 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/String/raw/detect.js: -------------------------------------------------------------------------------- 1 | "raw" in String && typeof String.raw === "function" 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/asyncIterator/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'asyncIterator' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/asyncIterator/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'asyncIterator', { value: Symbol('asyncIterator') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/asyncIterator/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol async-iterator as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.asyncIterator, undefined); 6 | 7 | var asyncIterator = Symbol.asyncIterator; 8 | Symbol.asyncIterator = "nope"; 9 | proclaim.equal(Symbol.asyncIterator, asyncIterator); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && self.Symbol.length === 0 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/hasInstance/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'hasInstance' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/hasInstance/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'hasInstance', { value: Symbol('hasInstance') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/hasInstance/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol hasInstance as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.hasInstance, undefined); 6 | 7 | var hasInstance = Symbol.hasInstance; 8 | Symbol.hasInstance = "nope"; 9 | proclaim.equal(Symbol.hasInstance, hasInstance); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/isConcatSpreadable/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'isConcatSpreadable' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/isConcatSpreadable/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'isConcatSpreadable', { value: Symbol('isConcatSpreadable') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/isConcatSpreadable/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol isConcatSpreadable as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.isConcatSpreadable, undefined); 6 | 7 | var isConcatSpreadable = Symbol.isConcatSpreadable; 8 | Symbol.isConcatSpreadable = "nope"; 9 | proclaim.equal(Symbol.isConcatSpreadable, isConcatSpreadable); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/iterator/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'iterator' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/iterator/polyfill.js: -------------------------------------------------------------------------------- 1 | Object.defineProperty(self.Symbol, 'iterator', { value: self.Symbol('iterator') }); 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/match/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'match' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/match/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'match', { value: Symbol('match') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/match/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol match as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.match, undefined); 6 | 7 | var match = Symbol.match; 8 | Symbol.match = "nope"; 9 | proclaim.equal(Symbol.match, match); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/matchAll/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'matchAll' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/matchAll/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | 3 | // 20.4.2.8 Symbol.matchAll 4 | Object.defineProperty(Symbol, 'matchAll', { value: Symbol('matchAll') }); 5 | -------------------------------------------------------------------------------- /polyfills/Symbol/matchAll/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol matchAll as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.matchAll, undefined); 6 | 7 | var matchAll = Symbol.matchAll; 8 | Symbol.matchAll = "nope"; 9 | proclaim.equal(Symbol.matchAll, matchAll); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/prototype/description/detect.js: -------------------------------------------------------------------------------- 1 | 'description' in self.Symbol.prototype 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/replace/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'replace' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/replace/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'replace', { value: Symbol('replace') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/replace/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol replace as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.replace, undefined); 6 | 7 | var replace = Symbol.replace; 8 | Symbol.replace = "nope"; 9 | proclaim.equal(Symbol.replace, replace); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/search/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'search' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/search/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'search', { value: Symbol('search') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/search/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol search as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.search, undefined); 6 | 7 | var search = Symbol.search; 8 | Symbol.search = "nope"; 9 | proclaim.equal(Symbol.search, search); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/species/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'species' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/species/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'species', { value: Symbol('species') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/species/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol species as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.species, undefined); 6 | 7 | var species = Symbol.species; 8 | Symbol.species = "nope"; 9 | proclaim.equal(Symbol.species, species); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/split/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'split' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/split/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'split', { value: Symbol('split') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/split/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol split as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.split, undefined); 6 | 7 | var split = Symbol.split; 8 | Symbol.split = "nope"; 9 | proclaim.equal(Symbol.split, split); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/toPrimitive/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'toPrimitive' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/toPrimitive/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'toPrimitive', { value: Symbol('toPrimitive') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/toPrimitive/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol toPrimitive as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.toPrimitive, undefined); 6 | 7 | var toPrimitive = Symbol.toPrimitive; 8 | Symbol.toPrimitive = "nope"; 9 | proclaim.equal(Symbol.toPrimitive, toPrimitive); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/toStringTag/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'toStringTag' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/toStringTag/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'toStringTag', { 3 | value: Symbol('toStringTag') 4 | }); 5 | -------------------------------------------------------------------------------- /polyfills/Symbol/toStringTag/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol toStringTag as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.toStringTag, undefined); 6 | 7 | var toStringTag = Symbol.toStringTag; 8 | Symbol.toStringTag = "nope"; 9 | proclaim.equal(Symbol.toStringTag, toStringTag); 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/Symbol/unscopables/detect.js: -------------------------------------------------------------------------------- 1 | 'Symbol' in self && 'unscopables' in self.Symbol 2 | -------------------------------------------------------------------------------- /polyfills/Symbol/unscopables/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Symbol */ 2 | Object.defineProperty(Symbol, 'unscopables', { value: Symbol('unscopables') }); 3 | -------------------------------------------------------------------------------- /polyfills/Symbol/unscopables/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim, Symbol */ 3 | 4 | it('has the well known symbol unscopables as static properties on Symbol', function() { 5 | proclaim.notEqual(Symbol.unscopables, undefined); 6 | var unscopables = Symbol.unscopables; 7 | Symbol.unscopables = "nope"; 8 | proclaim.equal(Symbol.unscopables, unscopables); 9 | }); 10 | -------------------------------------------------------------------------------- /polyfills/TextEncoder/detect.js: -------------------------------------------------------------------------------- 1 | "TextEncoder" in self && "TextDecoder" in self 2 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/@@iterator/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Symbol' in self && 'iterator' in self.Symbol && 'Int8Array' in self && self.Symbol.iterator in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/@@toStringTag/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Symbol' in self && 'toStringTag' in self.Symbol && 'Int8Array' in self && Object.getOwnPropertyDescriptor(('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype && self.Int8Array.prototype.__proto__) || self.Int8Array.prototype, self.Symbol.toStringTag) 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/at/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'at' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/entries/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'entries' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/findLast/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'findLast' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/findLastIndex/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'findLastIndex' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/keys/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'keys' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/sort/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'sort' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/toLocaleString/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'toLocaleString' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/toReversed/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'toReversed' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/toSorted/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'toSorted' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/toString/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'toString' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/toString/tests.js: -------------------------------------------------------------------------------- 1 | /* globals proclaim, Int8Array */ 2 | 3 | // use "Int8Array" as a proxy for all "TypedArray" subclasses 4 | 5 | it('is an alias to Array.prototype.toString', function () { 6 | if ('__proto__' in Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { 7 | proclaim.deepEqual(Int8Array.prototype.__proto__.toString, Array.prototype.toString); 8 | } else { 9 | proclaim.deepEqual(Int8Array.prototype.toString, Array.prototype.toString); 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/values/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'values' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/TypedArray/prototype/with/detect.js: -------------------------------------------------------------------------------- 1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses 2 | 'Int8Array' in self && 'with' in self.Int8Array.prototype 3 | -------------------------------------------------------------------------------- /polyfills/URL/prototype/toJSON/detect.js: -------------------------------------------------------------------------------- 1 | 'URL' in self && 'toJSON' in self.URL.prototype 2 | -------------------------------------------------------------------------------- /polyfills/URL/prototype/toJSON/polyfill.js: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line no-unused-vars 2 | (function (global) { 3 | global.URL.prototype.toJSON = function toJSON() { 4 | return this.href; 5 | } 6 | }(self)); 7 | -------------------------------------------------------------------------------- /polyfills/UserTiming/config.toml: -------------------------------------------------------------------------------- 1 | spec = "http://www.w3.org/TR/user-timing/" 2 | license = "MIT" 3 | repo = "https://github.com/nicjansma/usertiming.js" 4 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/User_Timing_API" 5 | 6 | [browsers] 7 | android = "*" 8 | chrome = "<25" 9 | edge = "<18.17134" 10 | firefox = "<38" 11 | firefox_mob = "<38" 12 | ie = "<10" 13 | ie_mob = "<10" 14 | opera = "<15" 15 | op_mob = "*" 16 | safari = "<14.1" 17 | ios_saf = "<14.0" 18 | samsung_mob = "<1.5" 19 | 20 | [install] 21 | module = "usertiming" 22 | -------------------------------------------------------------------------------- /polyfills/UserTiming/detect.js: -------------------------------------------------------------------------------- 1 | 'performance' in self && typeof self.performance.getEntriesByType === 'function' && typeof self.performance.mark === 'function' 2 | -------------------------------------------------------------------------------- /polyfills/WeakMap/detect.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | try { 3 | if ("WeakMap" in self && self.WeakMap.length === 0) { 4 | var o = {}; 5 | var wm = new self.WeakMap([[o, 'test']]); 6 | return ( 7 | wm.get(o) === 'test' && wm.delete(0) === false && 8 | 'toStringTag' in self.Symbol && typeof wm[self.Symbol.toStringTag] !== 'undefined' 9 | ); 10 | } else { 11 | return false; 12 | } 13 | } catch (err) { 14 | return false; 15 | } 16 | }()) 17 | -------------------------------------------------------------------------------- /polyfills/WeakSet/detect.js: -------------------------------------------------------------------------------- 1 | (function(global) { 2 | try { 3 | if (Object.prototype.hasOwnProperty.call(global, "WeakSet") && global.WeakSet.length === 0) { 4 | var o = {}; 5 | var ws = new global.WeakSet([o]); 6 | return ( 7 | ws.has(o) && ws.delete(0) === false && 8 | 'toStringTag' in self.Symbol && typeof ws[self.Symbol.toStringTag] !== 'undefined' 9 | ); 10 | } else { 11 | return false; 12 | } 13 | } catch (err) { 14 | return false; 15 | } 16 | }(self)) 17 | -------------------------------------------------------------------------------- /polyfills/WebAnimations/detect.js: -------------------------------------------------------------------------------- 1 | typeof document.head.animate === "function" && (function () { 2 | try { 3 | return !!(document.createElement('DIV').animate({ 4 | opacity: [0, 1] 5 | }, { 6 | direction: 'alternate', 7 | duration: 1, 8 | iterations: 1 9 | })); 10 | } catch (_) { 11 | return false; 12 | } 13 | }()) 14 | -------------------------------------------------------------------------------- /polyfills/_ArrayIterator/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_Iterator", 3 | "Object.setPrototypeOf", 4 | "String.prototype.includes" 5 | ] 6 | license = "MIT" 7 | repo = "https://github.com/medikoo/es6-iterator" 8 | 9 | [browsers] 10 | android = "*" 11 | bb = "*" 12 | chrome = "*" 13 | edge = "*" 14 | edge_mob = "*" 15 | firefox = "*" 16 | firefox_mob = "*" 17 | ie = "*" 18 | ie_mob = "*" 19 | opera = "*" 20 | op_mob = "*" 21 | op_mini = "*" 22 | safari = "*" 23 | ios_saf = "*" 24 | samsung_mob = "*" 25 | -------------------------------------------------------------------------------- /polyfills/_DOMTokenList/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ ] 2 | license = "ISC" 3 | repo = "https://github.com/Alhadis/DOMTokenList" 4 | 5 | [browsers] 6 | android = "*" 7 | bb = "*" 8 | chrome = "*" 9 | edge = "*" 10 | edge_mob = "*" 11 | firefox = "*" 12 | firefox_mob = "*" 13 | ie = "*" 14 | ie_mob = "*" 15 | opera = "*" 16 | op_mob = "*" 17 | op_mini = "*" 18 | safari = "*" 19 | ios_saf = "*" 20 | samsung_mob = "*" 21 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/AddValueToKeyedGroup/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.SameValue", 3 | ] 4 | spec = "https://tc39.es/ecma262/#sec-add-value-to-keyed-group" 5 | 6 | [browsers] 7 | android = "*" 8 | bb = "*" 9 | chrome = "*" 10 | edge = "*" 11 | edge_mob = "*" 12 | firefox = "*" 13 | firefox_mob = "*" 14 | ie = "*" 15 | ie_mob = "*" 16 | opera = "*" 17 | op_mob = "*" 18 | op_mini = "*" 19 | safari = "*" 20 | ios_saf = "*" 21 | samsung_mob = "*" 22 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/AdvanceStringIndex/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.CodePointAt", 3 | ] 4 | spec = "https://tc39.es/ecma262/#sec-advancestringindex" 5 | 6 | [browsers] 7 | android = "*" 8 | bb = "*" 9 | chrome = "*" 10 | edge = "*" 11 | edge_mob = "*" 12 | firefox = "*" 13 | firefox_mob = "*" 14 | ie = "*" 15 | ie_mob = "*" 16 | opera = "*" 17 | op_mob = "*" 18 | op_mini = "*" 19 | safari = "*" 20 | ios_saf = "*" 21 | samsung_mob = "*" 22 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ArrayCreate/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-arraycreate" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/Call/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-call" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/CanonicalNumericIndexString/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.SameValue", 3 | "_ESAbstract.ToNumber", 4 | "_ESAbstract.ToString" 5 | ] 6 | spec = "https://tc39.github.io/ecma262/#sec-canonicalnumericindexstring" 7 | 8 | [browsers] 9 | android = "*" 10 | bb = "*" 11 | chrome = "*" 12 | edge = "*" 13 | edge_mob = "*" 14 | firefox = "*" 15 | firefox_mob = "*" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "*" 19 | op_mob = "*" 20 | op_mini = "*" 21 | safari = "*" 22 | ios_saf = "*" 23 | samsung_mob = "*" 24 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/CodePointAt/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.UTF16SurrogatePairToCodePoint", 3 | ] 4 | spec = "https://tc39.es/ecma262/#sec-codepointat" 5 | 6 | [browsers] 7 | android = "*" 8 | bb = "*" 9 | chrome = "*" 10 | edge = "*" 11 | edge_mob = "*" 12 | firefox = "*" 13 | firefox_mob = "*" 14 | ie = "*" 15 | ie_mob = "*" 16 | opera = "*" 17 | op_mob = "*" 18 | op_mini = "*" 19 | safari = "*" 20 | ios_saf = "*" 21 | samsung_mob = "*" 22 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/Construct/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.IsConstructor", 3 | "_ESAbstract.OrdinaryCreateFromConstructor", 4 | ] 5 | spec = "https://tc39.github.io/ecma262/#sec-construct" 6 | 7 | [browsers] 8 | android = "*" 9 | bb = "*" 10 | chrome = "*" 11 | edge = "*" 12 | edge_mob = "*" 13 | firefox = "*" 14 | firefox_mob = "*" 15 | ie = "*" 16 | ie_mob = "*" 17 | opera = "*" 18 | op_mob = "*" 19 | op_mini = "*" 20 | safari = "*" 21 | ios_saf = "*" 22 | samsung_mob = "*" 23 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/CreateDataProperty/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ ] 2 | spec = "https://tc39.github.io/ecma262/#sec-createdataproperty" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/CreateDataPropertyOrThrow/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.CreateDataProperty" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-createdatapropertyorthrow" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/CreateHTML/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.RequireObjectCoercible", 3 | "_ESAbstract.ToString", 4 | ] 5 | spec = "https://tc39.es/ecma262/#sec-createhtml" 6 | 7 | [browsers] 8 | android = "*" 9 | bb = "*" 10 | chrome = "*" 11 | edge = "*" 12 | edge_mob = "*" 13 | firefox = "*" 14 | firefox_mob = "*" 15 | ie = "*" 16 | ie_mob = "*" 17 | opera = "*" 18 | op_mob = "*" 19 | op_mini = "*" 20 | safari = "*" 21 | ios_saf = "*" 22 | samsung_mob = "*" 23 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/CreateIterResultObject/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.Type", "_ESAbstract.CreateDataProperty" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-createiterresultobject" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/CreateMethodProperty/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ ] 2 | spec = "https://tc39.github.io/ecma262/#sec-createmethodproperty" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/CreateNonEnumerableDataPropertyOrThrow/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.DefinePropertyOrThrow" ] 2 | spec = "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createnonenumerabledatapropertyorthrow" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/DefinePropertyOrThrow/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [] 2 | spec = "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-definepropertyorthrow" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/Get/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-get-o-p" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/Get/polyfill.js: -------------------------------------------------------------------------------- 1 | // 7.3.1. Get ( O, P ) 2 | function Get(O, P) { // eslint-disable-line no-unused-vars 3 | // 1. Assert: Type(O) is Object. 4 | // 2. Assert: IsPropertyKey(P) is true. 5 | // 3. Return ? O.[[Get]](P, O). 6 | return O[P]; 7 | } 8 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/GetMethod/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.GetV", "_ESAbstract.IsCallable" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-getmethod" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/GetPrototypeFromConstructor/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.Get", "_ESAbstract.Type" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-getprototypefromconstructor" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/GetSubstitution/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.Type" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-getsubstitution" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/GetV/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.ToObject" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-getv" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/GetV/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global ToObject */ 2 | // 7.3.2 GetV (V, P) 3 | function GetV(v, p) { // eslint-disable-line no-unused-vars 4 | // 1. Assert: IsPropertyKey(P) is true. 5 | // 2. Let O be ? ToObject(V). 6 | var o = ToObject(v); 7 | // 3. Return ? O.[[Get]](P, V). 8 | return o[p]; 9 | } 10 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/HasOwnProperty/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-hasownproperty" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/HasProperty/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-hasproperty" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/HasProperty/polyfill.js: -------------------------------------------------------------------------------- 1 | // 7.3.10. HasProperty ( O, P ) 2 | function HasProperty(O, P) { // eslint-disable-line no-unused-vars 3 | // Assert: Type(O) is Object. 4 | // Assert: IsPropertyKey(P) is true. 5 | // Return ? O.[[HasProperty]](P). 6 | return P in O; 7 | } 8 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/Invoke/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.Call", "_ESAbstract.GetV" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-invoke" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsArray/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-isarray" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsCallable/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-iscallable" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsCallable/polyfill.js: -------------------------------------------------------------------------------- 1 | // 7.2.3. IsCallable ( argument ) 2 | function IsCallable(argument) { // eslint-disable-line no-unused-vars 3 | // 1. If Type(argument) is not Object, return false. 4 | // 2. If argument has a [[Call]] internal method, return true. 5 | // 3. Return false. 6 | 7 | // Polyfill.io - Only function objects have a [[Call]] internal method. This means we can simplify this function to check that the argument has a type of function. 8 | return typeof argument === 'function'; 9 | } 10 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsConstructor/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.GetMethod", "_ESAbstract.Type" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-isconstructor" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsInteger/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Type", 3 | ] 4 | spec = "https://tc39.github.io/ecma262/#sec-isinteger" 5 | 6 | [browsers] 7 | android = "*" 8 | bb = "*" 9 | chrome = "*" 10 | edge = "*" 11 | edge_mob = "*" 12 | firefox = "*" 13 | firefox_mob = "*" 14 | ie = "*" 15 | ie_mob = "*" 16 | opera = "*" 17 | op_mob = "*" 18 | op_mini = "*" 19 | safari = "*" 20 | ios_saf = "*" 21 | samsung_mob = "*" 22 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsPropertyKey/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-ispropertykey" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsPropertyKey/polyfill.js: -------------------------------------------------------------------------------- 1 | /* globals Type */ 2 | // 7.2.7 IsPropertyKey ( argument ) 3 | function IsPropertyKey(argument) { // eslint-disable-line no-unused-vars 4 | // 1. If Type(argument) is String, return true. 5 | if (Type(argument) === 'string') { 6 | return true; 7 | } 8 | // 2. If Type(argument) is Symbol, return true. 9 | if (Type(argument) === 'symbol') { 10 | return true; 11 | } 12 | // 3. Return false. 13 | return false; 14 | } 15 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsRegExp/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Type", 3 | "_ESAbstract.ToBoolean", 4 | "_ESAbstract.Get" 5 | ] 6 | spec = "https://tc39.github.io/ecma262/#sec-isregexp" 7 | 8 | [browsers] 9 | android = "*" 10 | bb = "*" 11 | chrome = "*" 12 | edge = "*" 13 | edge_mob = "*" 14 | firefox = "*" 15 | firefox_mob = "*" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "*" 19 | op_mob = "*" 20 | op_mini = "*" 21 | safari = "*" 22 | ios_saf = "*" 23 | samsung_mob = "*" 24 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsStringWellFormedUnicode/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.CodePointAt", 3 | ] 4 | spec = "https://tc39.es/ecma262/#sec-isstringwellformedunicode" 5 | 6 | [browsers] 7 | android = "*" 8 | bb = "*" 9 | chrome = "*" 10 | edge = "*" 11 | edge_mob = "*" 12 | firefox = "*" 13 | firefox_mob = "*" 14 | ie = "*" 15 | ie_mob = "*" 16 | opera = "*" 17 | op_mob = "*" 18 | op_mini = "*" 19 | safari = "*" 20 | ios_saf = "*" 21 | samsung_mob = "*" 22 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IsValidIntegerIndex/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.IsInteger", 3 | ] 4 | 5 | spec = "https://tc39.es/ecma262/#sec-isvalidintegerindex" 6 | 7 | [browsers] 8 | android = "*" 9 | bb = "*" 10 | chrome = "*" 11 | edge = "*" 12 | edge_mob = "*" 13 | firefox = "*" 14 | firefox_mob = "*" 15 | ie = "*" 16 | ie_mob = "*" 17 | opera = "*" 18 | op_mob = "*" 19 | op_mini = "*" 20 | safari = "*" 21 | ios_saf = "*" 22 | samsung_mob = "*" 23 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IterableToList/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.GetIterator", 3 | "_ESAbstract.IteratorStep", 4 | "_ESAbstract.IteratorValue", 5 | ] 6 | spec = "https://tc39.github.io/ecma262/#sec-iterabletolist" 7 | 8 | [browsers] 9 | android = "*" 10 | bb = "*" 11 | chrome = "*" 12 | edge = "*" 13 | edge_mob = "*" 14 | firefox = "*" 15 | firefox_mob = "*" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "*" 19 | op_mob = "*" 20 | op_mini = "*" 21 | safari = "*" 22 | ios_saf = "*" 23 | samsung_mob = "*" 24 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IteratorClose/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Call", 3 | "_ESAbstract.GetMethod", 4 | "_ESAbstract.Type" 5 | ] 6 | spec = "https://tc39.github.io/ecma262/#sec-iteratorclose" 7 | 8 | [browsers] 9 | android = "*" 10 | bb = "*" 11 | chrome = "*" 12 | edge = "*" 13 | edge_mob = "*" 14 | firefox = "*" 15 | firefox_mob = "*" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "*" 19 | op_mob = "*" 20 | op_mini = "*" 21 | safari = "*" 22 | ios_saf = "*" 23 | samsung_mob = "*" 24 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IteratorComplete/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Type", 3 | "_ESAbstract.ToBoolean", 4 | "_ESAbstract.Get" 5 | ] 6 | spec = "https://tc39.github.io/ecma262/#sec-iteratorcomplete" 7 | 8 | [browsers] 9 | android = "*" 10 | bb = "*" 11 | chrome = "*" 12 | edge = "*" 13 | edge_mob = "*" 14 | firefox = "*" 15 | firefox_mob = "*" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "*" 19 | op_mob = "*" 20 | op_mini = "*" 21 | safari = "*" 22 | ios_saf = "*" 23 | samsung_mob = "*" 24 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IteratorComplete/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Type, ToBoolean, Get */ 2 | // 7.4.3 IteratorComplete ( iterResult ) 3 | function IteratorComplete(iterResult) { // eslint-disable-line no-unused-vars 4 | // 1. Assert: Type(iterResult) is Object. 5 | if (Type(iterResult) !== 'object') { 6 | throw new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.'); 7 | } 8 | // 2. Return ToBoolean(? Get(iterResult, "done")). 9 | return ToBoolean(Get(iterResult, "done")); 10 | } 11 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IteratorNext/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.Type", "_ESAbstract.Call" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-iteratornext" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IteratorStep/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.IteratorNext", "_ESAbstract.IteratorComplete" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-iteratorstep" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IteratorValue/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.Get", "_ESAbstract.Type" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-iteratorvalue" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/IteratorValue/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Type, Get */ 2 | // 7.4.4 IteratorValue ( iterResult ) 3 | function IteratorValue(iterResult) { // eslint-disable-line no-unused-vars 4 | // Assert: Type(iterResult) is Object. 5 | if (Type(iterResult) !== 'object') { 6 | throw new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.'); 7 | } 8 | // Return ? Get(iterResult, "value"). 9 | return Get(iterResult, "value"); 10 | } 11 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/LengthOfArrayLike/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Get", 3 | "_ESAbstract.ToLength", 4 | ] 5 | spec = "https://tc39.github.io/ecma262/#sec-lengthofarraylike" 6 | 7 | [browsers] 8 | android = "*" 9 | bb = "*" 10 | chrome = "*" 11 | edge = "*" 12 | edge_mob = "*" 13 | firefox = "*" 14 | firefox_mob = "*" 15 | ie = "*" 16 | ie_mob = "*" 17 | opera = "*" 18 | op_mob = "*" 19 | op_mini = "*" 20 | safari = "*" 21 | ios_saf = "*" 22 | samsung_mob = "*" 23 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/LengthOfArrayLike/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global Get, ToLength */ 2 | // 7.3.19. LengthOfArrayLike ( obj ) 3 | function LengthOfArrayLike(obj) { // eslint-disable-line no-unused-vars 4 | // 1. Return ℝ(? ToLength(? Get(obj, "length"))). 5 | return ToLength(Get(obj, 'length')); 6 | } 7 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/OrdinaryCreateFromConstructor/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.GetPrototypeFromConstructor", 3 | ] 4 | spec = "https://tc39.github.io/ecma262/#sec-ordinarycreatefromconstructor" 5 | 6 | [browsers] 7 | android = "*" 8 | bb = "*" 9 | chrome = "*" 10 | edge = "*" 11 | edge_mob = "*" 12 | firefox = "*" 13 | firefox_mob = "*" 14 | ie = "*" 15 | ie_mob = "*" 16 | opera = "*" 17 | op_mob = "*" 18 | op_mini = "*" 19 | safari = "*" 20 | ios_saf = "*" 21 | samsung_mob = "*" 22 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/OrdinaryToPrimitive/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Call", 3 | "_ESAbstract.Get", 4 | "_ESAbstract.IsCallable", 5 | "_ESAbstract.Type" 6 | ] 7 | spec = "https://tc39.github.io/ecma262/#sec-ordinarytoprimitive" 8 | 9 | [browsers] 10 | android = "*" 11 | bb = "*" 12 | chrome = "*" 13 | edge = "*" 14 | edge_mob = "*" 15 | firefox = "*" 16 | firefox_mob = "*" 17 | ie = "*" 18 | ie_mob = "*" 19 | opera = "*" 20 | op_mob = "*" 21 | op_mini = "*" 22 | safari = "*" 23 | ios_saf = "*" 24 | samsung_mob = "*" 25 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/RegExpExec/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Call", 3 | "_ESAbstract.Get", 4 | "_ESAbstract.IsCallable", 5 | "_ESAbstract.Type", 6 | ] 7 | spec = "https://tc39.es/ecma262/#sec-regexpexec" 8 | 9 | [browsers] 10 | android = "*" 11 | bb = "*" 12 | chrome = "*" 13 | edge = "*" 14 | edge_mob = "*" 15 | firefox = "*" 16 | firefox_mob = "*" 17 | ie = "*" 18 | ie_mob = "*" 19 | opera = "*" 20 | op_mob = "*" 21 | op_mini = "*" 22 | safari = "*" 23 | ios_saf = "*" 24 | samsung_mob = "*" 25 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/RequireObjectCoercible/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-requireobjectcoercible" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/SameValue/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.SameValueNonNumber", "_ESAbstract.Type" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-samevalue" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/SameValueNonNumber/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-samevaluenonnumber" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/SameValueZero/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.SameValueNonNumber", "_ESAbstract.Type" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-samevaluezero" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/SpeciesConstructor/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Get", 3 | "_ESAbstract.IsConstructor", 4 | "_ESAbstract.Type" 5 | ] 6 | spec = "https://tc39.github.io/ecma262/#sec-speciesconstructor" 7 | 8 | [browsers] 9 | android = "*" 10 | bb = "*" 11 | chrome = "*" 12 | edge = "*" 13 | edge_mob = "*" 14 | firefox = "*" 15 | firefox_mob = "*" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "*" 19 | op_mob = "*" 20 | op_mini = "*" 21 | safari = "*" 22 | ios_saf = "*" 23 | samsung_mob = "*" 24 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/StringIndexOf/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.Type" ] 2 | spec = "https://tc39.es/ecma262/#sec-stringindexof" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToBoolean/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-toboolean" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToIndex/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.ToInteger", "_ESAbstract.ToLength" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-toindex" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToInt16/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-toint16" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToInt32/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-toint32" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToInt8/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-toint8" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToInteger/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.Type" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-tointeger" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToIntegerOrInfinity/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.ToNumber", 3 | ] 4 | spec = "https://tc39.github.io/ecma262/#sec-tointegerorinfinity" 5 | 6 | [browsers] 7 | android = "*" 8 | bb = "*" 9 | chrome = "*" 10 | edge = "*" 11 | edge_mob = "*" 12 | firefox = "*" 13 | firefox_mob = "*" 14 | ie = "*" 15 | ie_mob = "*" 16 | opera = "*" 17 | op_mob = "*" 18 | op_mini = "*" 19 | safari = "*" 20 | ios_saf = "*" 21 | samsung_mob = "*" 22 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToLength/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.ToInteger" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-tolength" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToLength/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global ToInteger */ 2 | // 7.1.15. ToLength ( argument ) 3 | function ToLength(argument) { // eslint-disable-line no-unused-vars 4 | // 1. Let len be ? ToInteger(argument). 5 | var len = ToInteger(argument); 6 | // 2. If len ≤ +0, return +0. 7 | if (len <= 0) { 8 | return 0; 9 | } 10 | // 3. Return min(len, 253-1). 11 | return Math.min(len, Math.pow(2, 53) -1); 12 | } 13 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToNumber/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-tonumber" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToNumber/polyfill.js: -------------------------------------------------------------------------------- 1 | // 7.1.3. ToNumber ( argument ) 2 | function ToNumber(argument) { // eslint-disable-line no-unused-vars 3 | return Number(argument); 4 | } 5 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToObject/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-toobject" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToPrimitive/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Call", 3 | "_ESAbstract.GetMethod", 4 | "_ESAbstract.OrdinaryToPrimitive", 5 | "_ESAbstract.Type" 6 | ] 7 | spec = "https://tc39.github.io/ecma262/#sec-toprimitive" 8 | 9 | [browsers] 10 | android = "*" 11 | bb = "*" 12 | chrome = "*" 13 | edge = "*" 14 | edge_mob = "*" 15 | firefox = "*" 16 | firefox_mob = "*" 17 | ie = "*" 18 | ie_mob = "*" 19 | opera = "*" 20 | op_mob = "*" 21 | op_mini = "*" 22 | safari = "*" 23 | ios_saf = "*" 24 | samsung_mob = "*" 25 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToPropertyKey/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.ToPrimitive", 3 | "_ESAbstract.ToString", 4 | "_ESAbstract.Type" 5 | ] 6 | spec = "https://tc39.github.io/ecma262/#sec-topropertykey" 7 | 8 | [browsers] 9 | android = "*" 10 | bb = "*" 11 | chrome = "*" 12 | edge = "*" 13 | edge_mob = "*" 14 | firefox = "*" 15 | firefox_mob = "*" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "*" 19 | op_mob = "*" 20 | op_mini = "*" 21 | safari = "*" 22 | ios_saf = "*" 23 | samsung_mob = "*" 24 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToPropertyKey/polyfill.js: -------------------------------------------------------------------------------- 1 | /* globals ToPrimitive, Type, ToString */ 2 | // 7.1.14. ToPropertyKey ( argument ) 3 | function ToPropertyKey(argument) { // eslint-disable-line no-unused-vars 4 | // 1. Let key be ? ToPrimitive(argument, hint String). 5 | var key = ToPrimitive(argument, String); 6 | // 2. If Type(key) is Symbol, then 7 | if (Type(key) === 'symbol') { 8 | // a. Return key. 9 | return key; 10 | } 11 | // 3. Return ! ToString(key). 12 | return ToString(key); 13 | } 14 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToString/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.ToPrimitive", "_ESAbstract.Type" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-tostring" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToUint16/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-touint16" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToUint32/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-touint32" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToUint8/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-touint8" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/ToUint8Clamp/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-touint8clamp" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/TrimString/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "_ESAbstract.RequireObjectCoercible", "_ESAbstract.ToString" ] 2 | spec = "https://tc39.github.io/ecma262/#sec-trimstring" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | edge = "*" 9 | edge_mob = "*" 10 | firefox = "*" 11 | firefox_mob = "*" 12 | ie = "*" 13 | ie_mob = "*" 14 | opera = "*" 15 | op_mob = "*" 16 | op_mini = "*" 17 | safari = "*" 18 | ios_saf = "*" 19 | samsung_mob = "*" 20 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/Type/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/TypedArrayCreate/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.Construct", 3 | ] 4 | 5 | spec = "https://tc39.es/ecma262/#typedarray-create" 6 | 7 | [browsers] 8 | android = "*" 9 | bb = "*" 10 | chrome = "*" 11 | edge = "*" 12 | edge_mob = "*" 13 | firefox = "*" 14 | firefox_mob = "*" 15 | ie = "*" 16 | ie_mob = "*" 17 | opera = "*" 18 | op_mob = "*" 19 | op_mini = "*" 20 | safari = "*" 21 | ios_saf = "*" 22 | samsung_mob = "*" 23 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/TypedArrayCreateSameType/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_ESAbstract.TypedArrayCreate", 3 | "Function.prototype.name", 4 | ] 5 | 6 | spec = "https://tc39.es/ecma262/#sec-typedarray-create-same-type" 7 | 8 | [browsers] 9 | android = "*" 10 | bb = "*" 11 | chrome = "*" 12 | edge = "*" 13 | edge_mob = "*" 14 | firefox = "*" 15 | firefox_mob = "*" 16 | ie = "*" 17 | ie_mob = "*" 18 | opera = "*" 19 | op_mob = "*" 20 | op_mini = "*" 21 | safari = "*" 22 | ios_saf = "*" 23 | samsung_mob = "*" 24 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/UTF16EncodeCodePoint/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.es/ecma262/#sec-utf16encodecodepoint" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/UTF16SurrogatePairToCodePoint/config.toml: -------------------------------------------------------------------------------- 1 | spec = "https://tc39.es/ecma262/#sec-utf16decodesurrogatepair" 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/_ESAbstract/UTF16SurrogatePairToCodePoint/polyfill.js: -------------------------------------------------------------------------------- 1 | // 11.1.3 Static Semantics: UTF16SurrogatePairToCodePoint ( lead, trail ) 2 | // eslint-disable-next-line no-unused-vars 3 | function UTF16SurrogatePairToCodePoint(lead, trail) { 4 | // 1. Assert: lead is a leading surrogate and trail is a trailing surrogate. 5 | // 2. Let cp be (lead - 0xD800) × 0x400 + (trail - 0xDC00) + 0x10000. 6 | var cp = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000; 7 | // 3. Return the code point cp. 8 | return cp; 9 | } 10 | -------------------------------------------------------------------------------- /polyfills/_Iterator/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "Object.assign", 3 | "Symbol", 4 | "Symbol.iterator", 5 | "Symbol.toStringTag" 6 | ] 7 | license = "MIT" 8 | repo = "https://github.com/medikoo/es6-iterator" 9 | 10 | [browsers] 11 | android = "*" 12 | bb = "*" 13 | chrome = "*" 14 | edge = "*" 15 | edge_mob = "*" 16 | firefox = "*" 17 | firefox_mob = "*" 18 | ie = "*" 19 | ie_mob = "*" 20 | opera = "*" 21 | op_mob = "*" 22 | op_mini = "*" 23 | safari = "*" 24 | ios_saf = "*" 25 | samsung_mob = "*" 26 | -------------------------------------------------------------------------------- /polyfills/_StringIterator/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "_Iterator", 3 | "Object.setPrototypeOf", 4 | "Symbol.toStringTag", 5 | ] 6 | license = "MIT" 7 | repo = "https://github.com/medikoo/es6-iterator" 8 | 9 | [browsers] 10 | android = "*" 11 | bb = "*" 12 | chrome = "*" 13 | edge = "*" 14 | edge_mob = "*" 15 | firefox = "*" 16 | firefox_mob = "*" 17 | ie = "*" 18 | ie_mob = "*" 19 | opera = "*" 20 | op_mob = "*" 21 | op_mini = "*" 22 | safari = "*" 23 | ios_saf = "*" 24 | samsung_mob = "*" 25 | -------------------------------------------------------------------------------- /polyfills/_mutation/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ ] 2 | 3 | [browsers] 4 | android = "*" 5 | bb = "*" 6 | chrome = "*" 7 | edge = "*" 8 | edge_mob = "*" 9 | firefox = "*" 10 | firefox_mob = "*" 11 | ie = "*" 12 | ie_mob = "*" 13 | opera = "*" 14 | op_mob = "*" 15 | op_mini = "*" 16 | safari = "*" 17 | ios_saf = "*" 18 | samsung_mob = "*" 19 | -------------------------------------------------------------------------------- /polyfills/atob/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ 2 | "default-3.3", 3 | "default-3.4", 4 | "default-3.5", 5 | "default-3.6", 6 | "default", 7 | "caniuse:datauri" 8 | ] 9 | license = "MIT" 10 | repo = "http://www.webtoolkit.info/javascript-base64.html" 11 | spec = "https://html.spec.whatwg.org/multipage/webappapis.html#dom-windowbase64-atob" 12 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/atob" 13 | 14 | [browsers] 15 | ie = "<10" 16 | 17 | [install] 18 | module = "Base64" 19 | paths = [ "base64.js" ] 20 | -------------------------------------------------------------------------------- /polyfills/atob/detect.js: -------------------------------------------------------------------------------- 1 | 'atob' in self 2 | -------------------------------------------------------------------------------- /polyfills/console/assert/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/assert/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'assert' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/assert/polyfill.js: -------------------------------------------------------------------------------- 1 | console.assert = function assert() { }; 2 | -------------------------------------------------------------------------------- /polyfills/console/assert/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('assert()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.assert(1,1); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/clear/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<39" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/clear/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'clear' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/clear/polyfill.js: -------------------------------------------------------------------------------- 1 | console.clear = function clear() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/clear/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('clear()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.clear(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/count/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/count/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'count' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/count/polyfill.js: -------------------------------------------------------------------------------- 1 | console.count = function count() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/count/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('count()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.count(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/debug/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console", "console.log" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/debug/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'debug' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/debug/polyfill.js: -------------------------------------------------------------------------------- 1 | console.debug = console.log; 2 | -------------------------------------------------------------------------------- /polyfills/console/debug/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('debug()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.debug(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self 2 | -------------------------------------------------------------------------------- /polyfills/console/dir/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/dir/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'dir' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/dir/polyfill.js: -------------------------------------------------------------------------------- 1 | console.dir = function dir() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/dir/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('dir()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.dir(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/dirxml/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<39" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/dirxml/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'dirxml' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/dirxml/polyfill.js: -------------------------------------------------------------------------------- 1 | console.dirxml = function dirxml() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/dirxml/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('dir()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.dirxml(document.body); // argument requied for IE11 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/error/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console", "console.log" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | ie_mob = "<10" 10 | -------------------------------------------------------------------------------- /polyfills/console/error/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'error' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/error/polyfill.js: -------------------------------------------------------------------------------- 1 | console.error = console.log; 2 | -------------------------------------------------------------------------------- /polyfills/console/error/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('error()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.error(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/exception/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | chrome = "*" 8 | firefox = "<5" 9 | ie = "*" 10 | samsung_mob = "*" 11 | -------------------------------------------------------------------------------- /polyfills/console/exception/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'exception' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/exception/polyfill.js: -------------------------------------------------------------------------------- 1 | console.exception = function exception() { 2 | if ("error" in console) { 3 | Function.prototype.apply.call(console.error, console, arguments); 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /polyfills/console/exception/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('exception()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.exception(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/group/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/group/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'group' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/group/polyfill.js: -------------------------------------------------------------------------------- 1 | console.group = function group() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/group/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('group()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.group(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/groupCollapsed/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/groupCollapsed/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'groupCollapsed' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/groupCollapsed/polyfill.js: -------------------------------------------------------------------------------- 1 | console.groupCollapsed = function groupCollapsed() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/groupCollapsed/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('groupCollapsed()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.groupCollapsed(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/groupEnd/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/groupEnd/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'groupEnd' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/groupEnd/polyfill.js: -------------------------------------------------------------------------------- 1 | console.groupEnd = function groupEnd() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/groupEnd/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('groupEnd()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.groupEnd(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/info/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console", "console.log" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | ie_mob = "<10" 10 | -------------------------------------------------------------------------------- /polyfills/console/info/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'info' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/info/polyfill.js: -------------------------------------------------------------------------------- 1 | console.info = console.log; 2 | -------------------------------------------------------------------------------- /polyfills/console/info/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('info()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.info(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/log/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/log/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'log' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/log/polyfill.js: -------------------------------------------------------------------------------- 1 | console.log = function log() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/log/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('log()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.log(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/markTimeline/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "console" ] 2 | spec = "https://console.spec.whatwg.org" 3 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 4 | notes = [ 5 | "Formerly supported by chrome and safari, but [deprecated after discussion with Firebug](https://bugs.webkit.org/show_bug.cgi?id=63317). Use `timeStamp()` instead." 6 | ] 7 | 8 | [browsers] 9 | chrome = "*" 10 | edge = "<17.17134" 11 | edge_mob = "*" 12 | firefox = "<75" 13 | ie = "*" 14 | -------------------------------------------------------------------------------- /polyfills/console/markTimeline/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'markTimeline' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/markTimeline/polyfill.js: -------------------------------------------------------------------------------- 1 | console.markTimeline = function markTimeline() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/markTimeline/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('markTimeline()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.markTimeline(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/polyfill.js: -------------------------------------------------------------------------------- 1 | self.console = self.console || {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/profile/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | 10 | [test] 11 | ci = false 12 | -------------------------------------------------------------------------------- /polyfills/console/profile/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'profile' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/profile/polyfill.js: -------------------------------------------------------------------------------- 1 | console.profile = function profile() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/profile/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('profile()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.profile(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/profileEnd/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | 10 | [test] 11 | ci = false 12 | -------------------------------------------------------------------------------- /polyfills/console/profileEnd/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'profileEnd' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/profileEnd/polyfill.js: -------------------------------------------------------------------------------- 1 | console.profileEnd = function profileEnd() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/profileEnd/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('profileEnd()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.profileEnd(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/profiles/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ "console" ] 2 | spec = "https://console.spec.whatwg.org" 3 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 4 | notes = [ 5 | "`console.profiles` used to be an array storing profile data. It was removed in Chrome and Safari" 6 | ] 7 | 8 | [browsers] 9 | firefox = "<5" 10 | ie = "*" 11 | 12 | [test] 13 | ci = false 14 | -------------------------------------------------------------------------------- /polyfills/console/profiles/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'profiles' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/profiles/polyfill.js: -------------------------------------------------------------------------------- 1 | console.profiles = function profiles() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/profiles/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('profiles()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.profiles(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/table/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/table/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'table' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/table/polyfill.js: -------------------------------------------------------------------------------- 1 | console.table = function table() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/table/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('table()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.table(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('is an object', function () { 7 | proclaim.isInstanceOf(console, Object); 8 | }); 9 | 10 | }); 11 | -------------------------------------------------------------------------------- /polyfills/console/time/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | chrome = "<31" 8 | firefox = "<5" 9 | ie = "*" 10 | -------------------------------------------------------------------------------- /polyfills/console/time/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'time' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/time/polyfill.js: -------------------------------------------------------------------------------- 1 | console.time = function time() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/time/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('time()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.time(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/timeEnd/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console", "console.time" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/timeEnd/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'timeEnd' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/timeEnd/polyfill.js: -------------------------------------------------------------------------------- 1 | console.timeEnd = function timeEnd() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/timeEnd/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('timeEnd()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.time('testTimeEnd'); 9 | console.timeEnd('testTimeEnd'); 10 | }); 11 | }); 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /polyfills/console/timeStamp/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Console/timeStamp" 5 | 6 | [browsers] 7 | edge = "<16.15063" 8 | firefox = "<39" 9 | firefox_mob = "<10" 10 | ie = "<11" 11 | -------------------------------------------------------------------------------- /polyfills/console/timeStamp/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'timeStamp' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/timeStamp/polyfill.js: -------------------------------------------------------------------------------- 1 | console.timeStamp = function cd() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/timeStamp/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('timeStamp()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.timeStamp(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/timeline/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | chrome = "*" 8 | edge = "<17.17134" 9 | edge_mob = "*" 10 | firefox = "<75" 11 | ie = "*" 12 | -------------------------------------------------------------------------------- /polyfills/console/timeline/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'timeline' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/timeline/polyfill.js: -------------------------------------------------------------------------------- 1 | console.timeline = function timeline() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/timeline/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('timeline()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.timeline(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/timelineEnd/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | chrome = "*" 8 | edge = "<17.17134" 9 | edge_mob = "*" 10 | firefox = "<75" 11 | ie = "*" 12 | -------------------------------------------------------------------------------- /polyfills/console/timelineEnd/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'timelineEnd' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/timelineEnd/polyfill.js: -------------------------------------------------------------------------------- 1 | console.timelineEnd = function timelineEnd() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/timelineEnd/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('timelineEnd()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.timelineEnd(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/trace/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/trace/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'trace' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/trace/polyfill.js: -------------------------------------------------------------------------------- 1 | console.trace = function trace() {}; 2 | -------------------------------------------------------------------------------- /polyfills/console/trace/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('trace()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.trace(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/console/warn/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:console-basic" ] 2 | dependencies = [ "console", "console.log" ] 3 | spec = "https://console.spec.whatwg.org" 4 | docs = "https://developer.mozilla.org/en/docs/Web/API/console" 5 | 6 | [browsers] 7 | firefox = "<5" 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/console/warn/detect.js: -------------------------------------------------------------------------------- 1 | 'console' in self && 'warn' in self.console 2 | -------------------------------------------------------------------------------- /polyfills/console/warn/polyfill.js: -------------------------------------------------------------------------------- 1 | console.warn = console.log; 2 | -------------------------------------------------------------------------------- /polyfills/console/warn/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | /* global proclaim */ 3 | 4 | describe('console', function () { 5 | 6 | it('warn()', function () { 7 | proclaim.doesNotThrow(function () { 8 | console.warn(); 9 | }); 10 | }); 11 | 12 | }); 13 | -------------------------------------------------------------------------------- /polyfills/devicePixelRatio/detect.js: -------------------------------------------------------------------------------- 1 | 'devicePixelRatio' in self 2 | -------------------------------------------------------------------------------- /polyfills/devicePixelRatio/polyfill.js: -------------------------------------------------------------------------------- 1 | // The chances of a device that runs IE < 11 having a DPR of more than 1 are low enough that this is likely to offer the best reliability / performance / accuracy tradeoff 2 | self.devicePixelRatio = 1; 3 | -------------------------------------------------------------------------------- /polyfills/document/currentScript/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ ] 2 | repo = "https://github.com/amiller-gh/currentScript-polyfill" 3 | license = "MIT" 4 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Document/currentScript" 5 | spec = "https://html.spec.whatwg.org/multipage/dom.html#dom-document-currentscript" 6 | 7 | [browsers] 8 | ie = "*" 9 | -------------------------------------------------------------------------------- /polyfills/document/currentScript/detect.js: -------------------------------------------------------------------------------- 1 | 'document' in self && 'currentScript' in self.document 2 | -------------------------------------------------------------------------------- /polyfills/document/elementsFromPoint/detect.js: -------------------------------------------------------------------------------- 1 | 'document' in self && 'elementsFromPoint' in self.document 2 | -------------------------------------------------------------------------------- /polyfills/document/visibilityState/detect.js: -------------------------------------------------------------------------------- 1 | 'document' in self && 'hidden' in document && 'visibilityState' in document 2 | -------------------------------------------------------------------------------- /polyfills/fetch/detect.js: -------------------------------------------------------------------------------- 1 | 'fetch' in self && 'Request' in self && (function () { 2 | try { 3 | return ( 'signal' in ( new Request('') ) ); 4 | } catch (e) { 5 | return false; 6 | } 7 | }()) 8 | -------------------------------------------------------------------------------- /polyfills/globalThis/detect.js: -------------------------------------------------------------------------------- 1 | typeof globalThis === 'object' 2 | -------------------------------------------------------------------------------- /polyfills/location/origin/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "default-3.4", "default-3.5", "default-3.6", "default" ] 2 | dependencies = [ ] 3 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Location/origin" 4 | 5 | [browsers] 6 | chrome = "<29" 7 | firefox = "<21" 8 | firefox_mob = "<21" 9 | ie = "6 - 10" 10 | ie_mob = "10" 11 | opera = "<16" 12 | op_mob = "<16" 13 | safari = "<7.0" 14 | ios_saf = "<7.0" 15 | samsung_mob = "<1.6" 16 | -------------------------------------------------------------------------------- /polyfills/location/origin/detect.js: -------------------------------------------------------------------------------- 1 | 'location' in self && 'origin' in self.location 2 | -------------------------------------------------------------------------------- /polyfills/matchMedia/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ "caniuse:matchmedia", "modernizr:matchmedia" ] 2 | dependencies = [ "Event" ] 3 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia" 4 | spec = "http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface" 5 | 6 | [browsers] 7 | android = "<3" 8 | bb = "7" 9 | chrome = "<37" 10 | ie = "<10" 11 | opera = "11.5 - 12.1" 12 | op_mob = "<14" 13 | op_mini = "*" 14 | safari = "<5.1" 15 | ios_saf = "<5.0" 16 | samsung_mob = "<2.0" 17 | -------------------------------------------------------------------------------- /polyfills/matchMedia/detect.js: -------------------------------------------------------------------------------- 1 | 'matchMedia' in self && 'MediaQueryList' in self 2 | -------------------------------------------------------------------------------- /polyfills/navigator/sendBeacon/detect.js: -------------------------------------------------------------------------------- 1 | 'navigator' in self && 'sendBeacon' in navigator 2 | -------------------------------------------------------------------------------- /polyfills/performance/now/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ ] 2 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Performance/now" 3 | 4 | [browsers] 5 | android = "<4.4" 6 | bb = "<10" 7 | chrome = "<24" 8 | firefox = "<15" 9 | firefox_mob = "<15" 10 | ie = "<10" 11 | opera = "<15" 12 | op_mob = "<24" 13 | op_mini = "*" 14 | safari = "<8.0" 15 | ios_saf = "<9.0" 16 | samsung_mob = "<1.5" 17 | 18 | -------------------------------------------------------------------------------- /polyfills/performance/now/detect.js: -------------------------------------------------------------------------------- 1 | 'performance' in self && 'now' in self.performance 2 | -------------------------------------------------------------------------------- /polyfills/performance/now/polyfill.js: -------------------------------------------------------------------------------- 1 | (function (global) { 2 | 3 | var startTime = Date.now(); 4 | 5 | if (!global.performance) { 6 | global.performance = {}; 7 | } 8 | 9 | global.performance.now = function () { 10 | return Date.now() - startTime; 11 | }; 12 | 13 | }(self)); 14 | -------------------------------------------------------------------------------- /polyfills/queueMicrotask/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ 2 | "Promise", 3 | "Event" 4 | ] 5 | 6 | [browsers] 7 | android = "*" 8 | chrome = "<71" 9 | edge = "*" 10 | firefox = "<69" 11 | firefox_mob = "<79" 12 | ie = "*" 13 | opera = "<58" 14 | op_mob = "<50" 15 | safari = "<12.1" 16 | ios_saf = "<12.2" 17 | samsung_mob = "<10.0" 18 | -------------------------------------------------------------------------------- /polyfills/queueMicrotask/detect.js: -------------------------------------------------------------------------------- 1 | 'queueMicrotask' in self 2 | -------------------------------------------------------------------------------- /polyfills/requestAnimationFrame/detect.js: -------------------------------------------------------------------------------- 1 | 'requestAnimationFrame' in self 2 | -------------------------------------------------------------------------------- /polyfills/requestIdleCallback/detect.js: -------------------------------------------------------------------------------- 1 | 'requestIdleCallback' in self 2 | -------------------------------------------------------------------------------- /polyfills/screen/orientation/config.toml: -------------------------------------------------------------------------------- 1 | dependencies = [ ] 2 | notes = [ ] 3 | spec = "http://www.w3.org/TR/screen-orientation/" 4 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Screen/orientation" 5 | 6 | [browsers] 7 | android = "<5" 8 | bb = "*" 9 | chrome = "<49" 10 | edge = "*" 11 | edge_mob = "*" 12 | firefox = "<30" 13 | firefox_mob = "<30" 14 | ie = ">=9" 15 | ie_mob = "*" 16 | opera = "<25" 17 | op_mob = "<36" 18 | safari = "*" 19 | ios_saf = "*" 20 | samsung_mob = "<5.0" 21 | -------------------------------------------------------------------------------- /polyfills/screen/orientation/detect.js: -------------------------------------------------------------------------------- 1 | 'screen' in self && 'orientation' in self.screen && typeof self.screen.orientation === 'object' 2 | -------------------------------------------------------------------------------- /polyfills/setImmediate/config.toml: -------------------------------------------------------------------------------- 1 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/Window/setImmediate" 2 | repo = "https://github.com/YuzuJS/setImmediate" 3 | 4 | [browsers] 5 | android = "*" 6 | bb = "*" 7 | chrome = "*" 8 | firefox = "*" 9 | firefox_mob = "*" 10 | ie = "<10" 11 | ie_mob = "<10" 12 | opera = "*" 13 | op_mob = "*" 14 | op_mini = "*" 15 | safari = "*" 16 | ios_saf = "*" 17 | samsung_mob = "*" 18 | -------------------------------------------------------------------------------- /polyfills/setImmediate/detect.js: -------------------------------------------------------------------------------- 1 | 'setImmediate' in self 2 | -------------------------------------------------------------------------------- /polyfills/structuredClone/detect.js: -------------------------------------------------------------------------------- 1 | "structuredClone" in self && typeof self.structuredClone === 'function' 2 | -------------------------------------------------------------------------------- /polyfills/~html5-elements/config.toml: -------------------------------------------------------------------------------- 1 | aliases = [ 2 | "default-3.3", 3 | "default-3.4", 4 | "default-3.5", 5 | "default-3.6", 6 | "default", 7 | "html5shiv" 8 | ] 9 | license = "MIT" 10 | repo = "https://github.com/aFarkas/html5shiv" 11 | dependencies = [ ] 12 | 13 | [browsers] 14 | ie = "6 - 9" 15 | safari = "<5.0" 16 | ios_saf = "<5.0" 17 | 18 | [install] 19 | module = "html5shiv" 20 | paths = [ "dist/html5shiv.min.js" ] 21 | -------------------------------------------------------------------------------- /tasks/lint-config/.gitignore: -------------------------------------------------------------------------------- 1 | ./mcd.json 2 | -------------------------------------------------------------------------------- /tasks/polyfill-templates/detect.js: -------------------------------------------------------------------------------- 1 | true /* This needs to be an expression which evaluates to true if the feature exists */ 2 | -------------------------------------------------------------------------------- /tasks/polyfill-templates/polyfill.js: -------------------------------------------------------------------------------- 1 | /* global self */ 2 | // eslint-disable-next-line no-unused-vars 3 | (function (global) { 4 | // Place all polyfill code within this function. 5 | 6 | }(self)); 7 | -------------------------------------------------------------------------------- /tasks/polyfill-templates/tests.js: -------------------------------------------------------------------------------- 1 | /* eslint-env mocha, browser */ 2 | // eslint-disable-next-line no-unused-vars 3 | /* globals proclaim */ 4 | 5 | describe('REPLACE_ME', function () {}); 6 | -------------------------------------------------------------------------------- /test/.eslintrc.js: -------------------------------------------------------------------------------- 1 | "use stirct"; 2 | 3 | module.exports = { 4 | env: { 5 | commonjs: true, 6 | es6: true, 7 | mocha: true, 8 | node: true 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /test/polyfills/empty-document.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Empty Document 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/polyfills/test-iframe.handlebars: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Test Iframe 7 | 8 | 9 | 10 | {{!-- Possibly add fixtures here --}} 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/unit/mock/aliases.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | module.exports = sinon.stub(); 6 | -------------------------------------------------------------------------------- /test/unit/mock/console.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | const console = module.exports = sinon.stub(); 6 | 7 | console.log = sinon.stub(); 8 | -------------------------------------------------------------------------------- /test/unit/mock/denodeify.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | module.exports = sinon.stub(); 6 | -------------------------------------------------------------------------------- /test/unit/mock/from2-string.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | module.exports = sinon.stub(); 6 | -------------------------------------------------------------------------------- /test/unit/mock/graceful-fs.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | const fs = module.exports = sinon.stub(); 6 | 7 | fs.readFile = sinon.stub(); 8 | fs.readdir = sinon.stub(); 9 | fs.createReadStream = sinon.stub(); 10 | fs.stat = sinon.stub(); 11 | -------------------------------------------------------------------------------- /test/unit/mock/handlebars.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | module.exports = { 6 | compile: sinon.stub() 7 | }; 8 | -------------------------------------------------------------------------------- /test/unit/mock/lazystream.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | module.exports = { 6 | Readable: sinon.stub(), 7 | Writable: sinon.stub() 8 | }; 9 | -------------------------------------------------------------------------------- /test/unit/mock/lru-cache.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | const lruCache = module.exports = sinon.stub(); 6 | 7 | lruCache.set = sinon.stub(); 8 | lruCache.get = sinon.stub(); 9 | lruCache.instance = { 10 | set: lruCache.set, 11 | get: lruCache.get 12 | }; 13 | 14 | lruCache.returns(lruCache.instance); 15 | -------------------------------------------------------------------------------- /test/unit/mock/merge2.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | const merge2 = module.exports = sinon.stub(); 6 | 7 | const merge2Instance = sinon.stub(); 8 | 9 | merge2Instance.add = sinon.stub(); 10 | 11 | merge2.merge2Instance = merge2Instance; 12 | 13 | merge2.returns(merge2Instance); 14 | -------------------------------------------------------------------------------- /test/unit/mock/path.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | const path = module.exports = sinon.stub(); 6 | 7 | path.join = sinon.stub(); 8 | -------------------------------------------------------------------------------- /test/unit/mock/process.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | const proc = module.exports = sinon.stub(); 6 | 7 | proc.exit = sinon.stub(); 8 | -------------------------------------------------------------------------------- /test/unit/mock/sources.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | module.exports = { 6 | getPolyfillMeta: sinon.stub().resolves(), 7 | listPolyfills: sinon.stub().resolves(), 8 | getConfigAliases: sinon.stub().resolves(), 9 | streamPolyfillSource: sinon.stub(), 10 | }; 11 | -------------------------------------------------------------------------------- /test/unit/mock/stream-from-promise.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | module.exports = sinon.stub(); 6 | -------------------------------------------------------------------------------- /test/unit/mock/stream-to-string.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | module.exports = sinon.stub(); 6 | -------------------------------------------------------------------------------- /test/unit/mock/toposort.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | const toposort = module.exports = sinon.stub(); 6 | 7 | toposort.array = sinon.stub(); 8 | -------------------------------------------------------------------------------- /test/unit/mock/ua.mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const sinon = require('sinon'); 4 | 5 | const UA = module.exports = sinon.stub(); 6 | 7 | const mockUAInstance = module.exports.mockUAInstance = { 8 | getFamily: sinon.stub(), 9 | getVersion: sinon.stub(), 10 | satisfies: sinon.stub(), 11 | getBaseline: sinon.stub(), 12 | meetsBaseline: sinon.stub(), 13 | isUnknown: sinon.stub() 14 | }; 15 | 16 | UA.normalize = sinon.stub(); 17 | UA.getBaselines = sinon.stub(); 18 | 19 | UA.returns(mockUAInstance); 20 | -------------------------------------------------------------------------------- /test/unit/setup.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const chai = require('chai'); 4 | const mockery = require('mockery'); 5 | const sinon = require('sinon'); 6 | 7 | sinon.assert.expose(chai.assert, { 8 | includeFail: false, 9 | prefix: '' 10 | }); 11 | 12 | beforeEach(() => { 13 | mockery.enable({ 14 | useCleanCache: true, 15 | warnOnUnregistered: false, 16 | warnOnReplace: false 17 | }); 18 | }); 19 | 20 | afterEach(() => { 21 | mockery.deregisterAll(); 22 | mockery.disable(); 23 | }); 24 | --------------------------------------------------------------------------------