├── polyfills
├── atob
│ ├── detect.js
│ └── config.toml
├── Array
│ ├── of
│ │ └── detect.js
│ ├── prototype
│ │ ├── at
│ │ │ └── detect.js
│ │ ├── fill
│ │ │ └── detect.js
│ │ ├── find
│ │ │ └── detect.js
│ │ ├── flat
│ │ │ └── detect.js
│ │ ├── with
│ │ │ └── detect.js
│ │ ├── findLast
│ │ │ └── detect.js
│ │ ├── flatMap
│ │ │ └── detect.js
│ │ ├── includes
│ │ │ └── detect.js
│ │ ├── toSorted
│ │ │ └── detect.js
│ │ ├── values
│ │ │ └── detect.js
│ │ ├── findIndex
│ │ │ └── detect.js
│ │ ├── toReversed
│ │ │ └── detect.js
│ │ ├── toSpliced
│ │ │ └── detect.js
│ │ ├── findLastIndex
│ │ │ └── detect.js
│ │ ├── keys
│ │ │ ├── detect.js
│ │ │ └── polyfill.js
│ │ ├── entries
│ │ │ ├── detect.js
│ │ │ └── polyfill.js
│ │ ├── @@iterator
│ │ │ ├── detect.js
│ │ │ ├── polyfill.js
│ │ │ └── tests.js
│ │ └── sort
│ │ │ └── detect.js
│ └── from
│ │ └── detect.js
├── Intl
│ ├── Locale
│ │ ├── .gitignore
│ │ ├── detect.js
│ │ └── tests.js
│ ├── getCanonicalLocales
│ │ ├── .gitignore
│ │ ├── detect.js
│ │ └── tests.js
│ ├── DateTimeFormat
│ │ ├── .gitignore
│ │ ├── detect.js
│ │ └── ~timeZone
│ │ │ ├── all
│ │ │ └── detect.js
│ │ │ └── golden
│ │ │ └── detect.js
│ ├── DisplayNames
│ │ ├── .gitignore
│ │ └── detect.js
│ ├── ListFormat
│ │ ├── .gitignore
│ │ └── detect.js
│ ├── NumberFormat
│ │ ├── .gitignore
│ │ └── detect.js
│ ├── PluralRules
│ │ ├── .gitignore
│ │ └── detect.js
│ └── RelativeTimeFormat
│ │ ├── .gitignore
│ │ └── detect.js
├── Math
│ ├── cbrt
│ │ └── detect.js
│ ├── cosh
│ │ └── detect.js
│ ├── imul
│ │ └── detect.js
│ ├── log2
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── sign
│ │ └── detect.js
│ ├── sinh
│ │ └── detect.js
│ ├── tanh
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── acosh
│ │ └── detect.js
│ ├── asinh
│ │ └── detect.js
│ ├── atanh
│ │ └── detect.js
│ ├── clz32
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── expm1
│ │ └── detect.js
│ ├── fround
│ │ └── detect.js
│ ├── hypot
│ │ └── detect.js
│ ├── log10
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── log1p
│ │ └── detect.js
│ └── trunc
│ │ ├── detect.js
│ │ └── polyfill.js
├── Object
│ ├── is
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── assign
│ │ └── detect.js
│ ├── entries
│ │ └── detect.js
│ ├── freeze
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── hasOwn
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── values
│ │ └── detect.js
│ ├── groupBy
│ │ └── detect.js
│ ├── isFrozen
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── isSealed
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── fromEntries
│ │ └── detect.js
│ ├── isExtensible
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── setPrototypeOf
│ │ └── detect.js
│ ├── preventExtensions
│ │ └── detect.js
│ ├── seal
│ │ └── detect.js
│ ├── getOwnPropertyNames
│ │ └── detect.js
│ ├── prototype
│ │ └── toString
│ ├── getOwnPropertyDescriptor
│ │ └── detect.js
│ ├── getOwnPropertyDescriptors
│ │ └── detect.js
│ └── keys
│ │ └── detect.js
├── Promise
│ ├── detect.js
│ ├── any
│ │ └── detect.js
│ ├── allSettled
│ │ └── detect.js
│ └── prototype
│ │ └── finally
│ │ └── detect.js
├── Reflect
│ ├── detect.js
│ ├── get
│ │ └── detect.js
│ ├── has
│ │ ├── detect.js
│ │ └── config.toml
│ ├── set
│ │ ├── detect.js
│ │ └── config.toml
│ ├── apply
│ │ └── detect.js
│ ├── ownKeys
│ │ ├── detect.js
│ │ └── config.toml
│ ├── construct
│ │ └── detect.js
│ ├── isExtensible
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── defineProperty
│ │ └── detect.js
│ ├── deleteProperty
│ │ └── detect.js
│ ├── getPrototypeOf
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── polyfill.js
│ ├── setPrototypeOf
│ │ └── detect.js
│ ├── preventExtensions
│ │ ├── detect.js
│ │ └── config.toml
│ ├── getOwnPropertyDescriptor
│ │ └── detect.js
│ ├── polyfill.js
│ └── config.toml
├── console
│ ├── detect.js
│ ├── debug
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── error
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── info
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── polyfill.js
│ ├── warn
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── dir
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── log
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── time
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── clear
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── count
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── group
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── table
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── trace
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── assert
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── dirxml
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── profile
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── timeEnd
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── timeStamp
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── groupEnd
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── profiles
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── timeline
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── exception
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── profileEnd
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── markTimeline
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── timelineEnd
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ ├── tests.js
│ │ └── config.toml
│ ├── groupCollapsed
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ ├── config.toml
│ │ └── tests.js
│ ├── tests.js
│ └── config.toml
├── Map
│ ├── groupBy
│ │ └── detect.js
│ └── detect.js
├── Number
│ ├── Epsilon
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── polyfill.js
│ ├── isNaN
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── isFinite
│ │ └── detect.js
│ ├── isInteger
│ │ └── detect.js
│ ├── isSafeInteger
│ │ └── detect.js
│ ├── MAX_SAFE_INTEGER
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── MIN_SAFE_INTEGER
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── parseInt
│ │ └── detect.js
│ └── parseFloat
│ │ └── detect.js
├── AggregateError
│ └── detect.js
├── HTMLDocument
│ ├── detect.js
│ ├── polyfill.js
│ └── config.toml
├── ResizeObserver
│ ├── detect.js
│ └── update.task.js
├── queueMicrotask
│ ├── detect.js
│ └── config.toml
├── setImmediate
│ ├── detect.js
│ └── config.toml
├── MutationObserver
│ └── detect.js
├── Node
│ └── prototype
│ │ ├── contains
│ │ ├── detect.js
│ │ └── config.toml
│ │ ├── getRootNode
│ │ ├── detect.js
│ │ └── config.toml
│ │ ├── isSameNode
│ │ ├── detect.js
│ │ └── config.toml
│ │ └── isConnected
│ │ └── detect.js
├── String
│ ├── prototype
│ │ ├── at
│ │ │ └── detect.js
│ │ ├── padEnd
│ │ │ └── detect.js
│ │ ├── repeat
│ │ │ └── detect.js
│ │ ├── endsWith
│ │ │ └── detect.js
│ │ ├── includes
│ │ │ └── detect.js
│ │ ├── matchAll
│ │ │ └── detect.js
│ │ ├── padStart
│ │ │ └── detect.js
│ │ ├── codePointAt
│ │ │ └── detect.js
│ │ ├── replaceAll
│ │ │ └── detect.js
│ │ ├── startsWith
│ │ │ └── detect.js
│ │ ├── isWellFormed
│ │ │ ├── detect.js
│ │ │ └── polyfill.js
│ │ ├── toWellFormed
│ │ │ └── detect.js
│ │ ├── normalize
│ │ │ ├── detect.js
│ │ │ └── patch.jsdiff
│ │ ├── @@iterator
│ │ │ └── detect.js
│ │ ├── trim
│ │ │ ├── polyfill.js
│ │ │ └── detect.js
│ │ ├── trimEnd
│ │ │ ├── polyfill.js
│ │ │ └── detect.js
│ │ └── trimStart
│ │ │ ├── polyfill.js
│ │ │ └── detect.js
│ ├── raw
│ │ └── detect.js
│ └── fromCodePoint
│ │ └── detect.js
├── devicePixelRatio
│ ├── detect.js
│ └── polyfill.js
├── globalThis
│ └── detect.js
├── HTMLTemplateElement
│ └── detect.js
├── requestIdleCallback
│ └── detect.js
├── Function
│ └── prototype
│ │ └── name
│ │ └── detect.js
├── RegExp
│ └── prototype
│ │ ├── flags
│ │ └── detect.js
│ │ └── @@matchAll
│ │ └── detect.js
├── Symbol
│ ├── detect.js
│ ├── match
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── replace
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── search
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── species
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── split
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── iterator
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── matchAll
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── hasInstance
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── prototype
│ │ └── description
│ │ │ └── detect.js
│ ├── toPrimitive
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── toStringTag
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── unscopables
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ ├── asyncIterator
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
│ └── isConcatSpreadable
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── tests.js
├── requestAnimationFrame
│ └── detect.js
├── NodeList
│ └── prototype
│ │ ├── forEach
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── config.toml
│ │ └── @@iterator
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ └── config.toml
├── TextEncoder
│ └── detect.js
├── matchMedia
│ ├── detect.js
│ └── config.toml
├── CharacterData
│ └── prototype
│ │ ├── after
│ │ ├── detect.js
│ │ └── polyfill.js
│ │ ├── before
│ │ ├── detect.js
│ │ └── polyfill.js
│ │ ├── remove
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── config.toml
│ │ ├── replaceWith
│ │ ├── detect.js
│ │ └── polyfill.js
│ │ ├── nextElementSibling
│ │ ├── detect.js
│ │ └── polyfill.js
│ │ └── previousElementSibling
│ │ ├── detect.js
│ │ └── polyfill.js
├── DOMRect
│ ├── fromRect
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── detect.js
│ └── config.toml
├── location
│ └── origin
│ │ ├── detect.js
│ │ └── config.toml
├── URL
│ └── prototype
│ │ └── toJSON
│ │ ├── detect.js
│ │ └── polyfill.js
├── navigator
│ └── sendBeacon
│ │ └── detect.js
├── performance
│ └── now
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── config.toml
├── ArrayBuffer
│ ├── isView
│ │ ├── detect.js
│ │ └── polyfill.js
│ ├── prototype
│ │ └── @@toStringTag
│ │ │ └── detect.js
│ └── detect.js
├── AudioContext
│ ├── detect.js
│ └── config.toml
├── Element
│ └── prototype
│ │ ├── after
│ │ └── detect.js
│ │ ├── append
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── config.toml
│ │ ├── before
│ │ └── detect.js
│ │ ├── prepend
│ │ ├── detect.js
│ │ ├── polyfill.js
│ │ └── config.toml
│ │ ├── remove
│ │ └── detect.js
│ │ ├── closest
│ │ ├── detect.js
│ │ └── polyfill.js
│ │ ├── matches
│ │ ├── detect.js
│ │ └── polyfill.js
│ │ ├── replaceWith
│ │ └── detect.js
│ │ ├── replaceChildren
│ │ ├── detect.js
│ │ └── polyfill.js
│ │ ├── placeholder
│ │ ├── detect.js
│ │ └── config.toml
│ │ ├── toggleAttribute
│ │ ├── detect.js
│ │ └── polyfill.js
│ │ ├── getAttributeNames
│ │ ├── detect.js
│ │ └── polyfill.js
│ │ ├── dataset
│ │ ├── detect.js
│ │ └── config.toml
│ │ └── classList
│ │ └── detect.js
├── HTMLCanvasElement
│ └── prototype
│ │ └── toBlob
│ │ └── detect.js
├── EventSource
│ └── detect.js
├── document
│ ├── currentScript
│ │ ├── detect.js
│ │ └── config.toml
│ ├── elementsFromPoint
│ │ └── detect.js
│ └── visibilityState
│ │ └── detect.js
├── AbortController
│ └── detect.js
├── HTMLElement
│ └── prototype
│ │ └── inert
│ │ └── detect.js
├── structuredClone
│ └── detect.js
├── DOMTokenList
│ ├── prototype
│ │ ├── replace
│ │ │ ├── detect.js
│ │ │ └── config.toml
│ │ ├── forEach
│ │ │ ├── detect.js
│ │ │ └── polyfill.js
│ │ └── @@iterator
│ │ │ ├── detect.js
│ │ │ └── config.toml
│ ├── detect.js
│ └── config.toml
├── HTMLPictureElement
│ └── detect.js
├── HTMLFormElement
│ └── prototype
│ │ └── requestSubmit
│ │ └── detect.js
├── DocumentFragment
│ ├── prototype
│ │ ├── append
│ │ │ ├── detect.js
│ │ │ └── polyfill.js
│ │ ├── prepend
│ │ │ ├── detect.js
│ │ │ └── polyfill.js
│ │ └── replaceChildren
│ │ │ ├── detect.js
│ │ │ └── polyfill.js
│ ├── detect.js
│ ├── polyfill.js
│ └── config.toml
├── Event
│ ├── hashchange
│ │ ├── detect.js
│ │ ├── tests.js
│ │ ├── config.toml
│ │ └── polyfill.js
│ ├── focusin
│ │ ├── detect.js
│ │ ├── config.toml
│ │ └── polyfill.js
│ └── detect.js
├── MediaQueryList
│ └── prototype
│ │ └── addEventListener
│ │ └── detect.js
├── screen
│ └── orientation
│ │ ├── detect.js
│ │ └── config.toml
├── CSS
│ └── supports
│ │ ├── detect.js
│ │ └── config.toml
├── IntersectionObserverEntry
│ ├── detect.js
│ ├── polyfill.js
│ └── config.toml
├── HTMLSelectElement
│ └── prototype
│ │ └── selectedOptions
│ │ └── detect.js
├── UserTiming
│ ├── detect.js
│ └── config.toml
├── Error
│ └── cause
│ │ └── detect.js
├── TypedArray
│ └── prototype
│ │ ├── at
│ │ └── detect.js
│ │ ├── keys
│ │ └── detect.js
│ │ ├── sort
│ │ └── detect.js
│ │ ├── with
│ │ └── detect.js
│ │ ├── entries
│ │ └── detect.js
│ │ ├── findLast
│ │ └── detect.js
│ │ ├── toSorted
│ │ └── detect.js
│ │ ├── toString
│ │ ├── values
│ │ └── detect.js
│ │ ├── toReversed
│ │ └── detect.js
│ │ ├── findLastIndex
│ │ └── detect.js
│ │ ├── toLocaleString
│ │ ├── @@iterator
│ │ └── detect.js
│ │ └── @@toStringTag
│ │ └── detect.js
├── _ESAbstract
│ ├── ToNumber
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── Get
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── HasProperty
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── LengthOfArrayLike
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── GetV
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── Call
│ │ └── config.toml
│ ├── IsArray
│ │ └── config.toml
│ ├── ToInt16
│ │ └── config.toml
│ ├── ToInt32
│ │ └── config.toml
│ ├── ToInt8
│ │ └── config.toml
│ ├── ToUint8
│ │ └── config.toml
│ ├── IsCallable
│ │ ├── config.toml
│ │ └── polyfill.js
│ ├── ToBoolean
│ │ └── config.toml
│ ├── ToObject
│ │ └── config.toml
│ ├── ToUint16
│ │ └── config.toml
│ ├── ToUint32
│ │ └── config.toml
│ ├── ArrayCreate
│ │ └── config.toml
│ ├── ToUint8Clamp
│ │ └── config.toml
│ ├── HasOwnProperty
│ │ └── config.toml
│ ├── IsPropertyKey
│ │ ├── config.toml
│ │ └── polyfill.js
│ ├── UTF16EncodeCodePoint
│ │ └── config.toml
│ ├── SameValueNonNumber
│ │ └── config.toml
│ ├── Type
│ │ └── config.toml
│ ├── RequireObjectCoercible
│ │ └── config.toml
│ ├── UTF16SurrogatePairToCodePoint
│ │ ├── config.toml
│ │ └── polyfill.js
│ ├── CreateDataProperty
│ │ └── config.toml
│ ├── ToLength
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── CreateMethodProperty
│ │ └── config.toml
│ ├── StringIndexOf
│ │ └── config.toml
│ ├── ToInteger
│ │ └── config.toml
│ ├── GetSubstitution
│ │ └── config.toml
│ ├── Invoke
│ │ └── config.toml
│ ├── IsInteger
│ │ └── config.toml
│ ├── GetMethod
│ │ └── config.toml
│ ├── IteratorNext
│ │ └── config.toml
│ ├── IteratorValue
│ │ ├── config.toml
│ │ └── polyfill.js
│ ├── ToIndex
│ │ └── config.toml
│ ├── ToString
│ │ └── config.toml
│ ├── TypedArrayCreate
│ │ └── config.toml
│ ├── AdvanceStringIndex
│ │ └── config.toml
│ ├── DefinePropertyOrThrow
│ │ └── config.toml
│ ├── IsConstructor
│ │ └── config.toml
│ ├── SameValue
│ │ └── config.toml
│ ├── AddValueToKeyedGroup
│ │ └── config.toml
│ ├── CodePointAt
│ │ └── config.toml
│ ├── IsValidIntegerIndex
│ │ └── config.toml
│ ├── ToIntegerOrInfinity
│ │ └── config.toml
│ ├── IsStringWellFormedUnicode
│ │ └── config.toml
│ ├── SameValueZero
│ │ └── config.toml
│ ├── TrimString
│ │ └── config.toml
│ ├── CreateDataPropertyOrThrow
│ │ └── config.toml
│ ├── IteratorStep
│ │ └── config.toml
│ ├── CreateHTML
│ │ └── config.toml
│ ├── GetPrototypeFromConstructor
│ │ └── config.toml
│ ├── CreateIterResultObject
│ │ └── config.toml
│ ├── IsRegExp
│ │ └── config.toml
│ ├── Construct
│ │ └── config.toml
│ ├── IteratorClose
│ │ └── config.toml
│ ├── IteratorComplete
│ │ ├── polyfill.js
│ │ └── config.toml
│ ├── OrdinaryCreateFromConstructor
│ │ └── config.toml
│ ├── ToPropertyKey
│ │ ├── config.toml
│ │ └── polyfill.js
│ ├── SpeciesConstructor
│ │ └── config.toml
│ ├── TypedArrayCreateSameType
│ │ └── config.toml
│ ├── RegExpExec
│ │ └── config.toml
│ ├── IterableToList
│ │ └── config.toml
│ ├── CreateNonEnumerableDataPropertyOrThrow
│ │ └── config.toml
│ ├── CanonicalNumericIndexString
│ │ └── config.toml
│ ├── OrdinaryToPrimitive
│ │ └── config.toml
│ └── ToPrimitive
│ │ └── config.toml
├── IntersectionObserver
│ └── detect.js
├── HTMLCollection
│ └── prototype
│ │ └── @@iterator
│ │ ├── polyfill.js
│ │ ├── detect.js
│ │ └── config.toml
├── fetch
│ └── detect.js
├── CustomEvent
│ └── detect.js
├── Blob
│ ├── detect.js
│ └── config.toml
├── WebAnimations
│ └── detect.js
├── _mutation
│ └── config.toml
├── _DOMTokenList
│ └── config.toml
├── ~html5-elements
│ └── config.toml
├── WeakMap
│ └── detect.js
├── WeakSet
│ └── detect.js
├── _StringIterator
│ └── config.toml
├── _ArrayIterator
│ └── config.toml
├── _Iterator
│ └── config.toml
└── Set
│ └── detect.js
├── tasks
├── lint-config
│ └── .gitignore
└── polyfill-templates
│ ├── detect.js
│ ├── tests.js
│ └── polyfill.js
└── test
├── unit
├── mock
│ ├── aliases.mock.js
│ ├── denodeify.mock.js
│ ├── from2-string.mock.js
│ ├── stream-to-string.mock.js
│ ├── stream-from-promise.mock.js
│ ├── handlebars.mock.js
│ ├── path.mock.js
│ ├── process.mock.js
│ ├── console.mock.js
│ ├── lazystream.mock.js
│ ├── toposort.mock.js
│ ├── graceful-fs.mock.js
│ ├── sources.mock.js
│ ├── merge2.mock.js
│ ├── lru-cache.mock.js
│ └── ua.mock.js
└── setup.js
├── .eslintrc.js
└── polyfills
├── empty-document.html
└── test-iframe.handlebars
/polyfills/atob/detect.js:
--------------------------------------------------------------------------------
1 | 'atob' in self
2 |
--------------------------------------------------------------------------------
/tasks/lint-config/.gitignore:
--------------------------------------------------------------------------------
1 | ./mcd.json
2 |
--------------------------------------------------------------------------------
/polyfills/Array/of/detect.js:
--------------------------------------------------------------------------------
1 | 'of' in Array
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/Locale/.gitignore:
--------------------------------------------------------------------------------
1 | polyfill.js
2 |
--------------------------------------------------------------------------------
/polyfills/Math/cbrt/detect.js:
--------------------------------------------------------------------------------
1 | 'cbrt' in Math
2 |
--------------------------------------------------------------------------------
/polyfills/Math/cosh/detect.js:
--------------------------------------------------------------------------------
1 | 'cosh' in Math
2 |
--------------------------------------------------------------------------------
/polyfills/Math/imul/detect.js:
--------------------------------------------------------------------------------
1 | 'imul' in Math
2 |
--------------------------------------------------------------------------------
/polyfills/Math/log2/detect.js:
--------------------------------------------------------------------------------
1 | 'log2' in Math
2 |
--------------------------------------------------------------------------------
/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/Object/is/detect.js:
--------------------------------------------------------------------------------
1 | 'is' in Object
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/clz32/detect.js:
--------------------------------------------------------------------------------
1 | 'clz32' 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/log10/detect.js:
--------------------------------------------------------------------------------
1 | 'log10' in Math
2 |
--------------------------------------------------------------------------------
/polyfills/Math/log1p/detect.js:
--------------------------------------------------------------------------------
1 | 'log1p' in Math
2 |
--------------------------------------------------------------------------------
/polyfills/Math/trunc/detect.js:
--------------------------------------------------------------------------------
1 | 'trunc' in Math
2 |
--------------------------------------------------------------------------------
/polyfills/Promise/detect.js:
--------------------------------------------------------------------------------
1 | 'Promise' in self
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/detect.js:
--------------------------------------------------------------------------------
1 | "Reflect" in self
2 |
--------------------------------------------------------------------------------
/polyfills/console/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self
2 |
--------------------------------------------------------------------------------
/polyfills/Map/groupBy/detect.js:
--------------------------------------------------------------------------------
1 | "groupBy" in self.Map;
2 |
--------------------------------------------------------------------------------
/polyfills/Number/Epsilon/detect.js:
--------------------------------------------------------------------------------
1 | 'EPSILON' in Number
2 |
--------------------------------------------------------------------------------
/polyfills/Number/isNaN/detect.js:
--------------------------------------------------------------------------------
1 | 'isNaN' in Number
2 |
--------------------------------------------------------------------------------
/polyfills/Object/assign/detect.js:
--------------------------------------------------------------------------------
1 | 'assign' in Object
2 |
--------------------------------------------------------------------------------
/polyfills/Object/entries/detect.js:
--------------------------------------------------------------------------------
1 | 'entries' in Object
2 |
--------------------------------------------------------------------------------
/polyfills/Object/freeze/detect.js:
--------------------------------------------------------------------------------
1 | 'freeze' in Object
2 |
--------------------------------------------------------------------------------
/polyfills/Object/hasOwn/detect.js:
--------------------------------------------------------------------------------
1 | 'hasOwn' in Object
2 |
--------------------------------------------------------------------------------
/polyfills/Object/values/detect.js:
--------------------------------------------------------------------------------
1 | 'values' in Object
2 |
--------------------------------------------------------------------------------
/polyfills/AggregateError/detect.js:
--------------------------------------------------------------------------------
1 | 'AggregateError' in self
2 |
--------------------------------------------------------------------------------
/polyfills/HTMLDocument/detect.js:
--------------------------------------------------------------------------------
1 | "HTMLDocument" in self
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/getCanonicalLocales/.gitignore:
--------------------------------------------------------------------------------
1 | polyfill.js
2 |
--------------------------------------------------------------------------------
/polyfills/Number/isFinite/detect.js:
--------------------------------------------------------------------------------
1 | 'isFinite' in Number
2 |
--------------------------------------------------------------------------------
/polyfills/Number/isInteger/detect.js:
--------------------------------------------------------------------------------
1 | 'isInteger' in Number
2 |
--------------------------------------------------------------------------------
/polyfills/Object/groupBy/detect.js:
--------------------------------------------------------------------------------
1 | "groupBy" in Object;
2 |
--------------------------------------------------------------------------------
/polyfills/Object/isFrozen/detect.js:
--------------------------------------------------------------------------------
1 | 'isFrozen' in Object
2 |
--------------------------------------------------------------------------------
/polyfills/Object/isSealed/detect.js:
--------------------------------------------------------------------------------
1 | 'isSealed' in Object
2 |
--------------------------------------------------------------------------------
/polyfills/ResizeObserver/detect.js:
--------------------------------------------------------------------------------
1 | "ResizeObserver" in self
2 |
--------------------------------------------------------------------------------
/polyfills/queueMicrotask/detect.js:
--------------------------------------------------------------------------------
1 | 'queueMicrotask' in self
2 |
--------------------------------------------------------------------------------
/polyfills/setImmediate/detect.js:
--------------------------------------------------------------------------------
1 | 'setImmediate' in self
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/at/detect.js:
--------------------------------------------------------------------------------
1 | 'at' in Array.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/DateTimeFormat/.gitignore:
--------------------------------------------------------------------------------
1 | polyfill.js
2 | ~locale
3 |
--------------------------------------------------------------------------------
/polyfills/Intl/DisplayNames/.gitignore:
--------------------------------------------------------------------------------
1 | polyfill.js
2 | ~locale
3 |
--------------------------------------------------------------------------------
/polyfills/Intl/ListFormat/.gitignore:
--------------------------------------------------------------------------------
1 | polyfill.js
2 | ~locale
3 |
--------------------------------------------------------------------------------
/polyfills/Intl/NumberFormat/.gitignore:
--------------------------------------------------------------------------------
1 | polyfill.js
2 | ~locale
3 |
--------------------------------------------------------------------------------
/polyfills/Intl/PluralRules/.gitignore:
--------------------------------------------------------------------------------
1 | polyfill.js
2 | ~locale
3 |
--------------------------------------------------------------------------------
/polyfills/MutationObserver/detect.js:
--------------------------------------------------------------------------------
1 | "MutationObserver" in self
2 |
--------------------------------------------------------------------------------
/polyfills/Node/prototype/contains/detect.js:
--------------------------------------------------------------------------------
1 | document.contains
2 |
--------------------------------------------------------------------------------
/polyfills/Object/fromEntries/detect.js:
--------------------------------------------------------------------------------
1 | "fromEntries" in Object
2 |
--------------------------------------------------------------------------------
/polyfills/Object/isExtensible/detect.js:
--------------------------------------------------------------------------------
1 | 'isExtensible' in Object
2 |
--------------------------------------------------------------------------------
/polyfills/String/prototype/at/detect.js:
--------------------------------------------------------------------------------
1 | 'at' in String.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/console/debug/polyfill.js:
--------------------------------------------------------------------------------
1 | console.debug = console.log;
2 |
--------------------------------------------------------------------------------
/polyfills/console/error/polyfill.js:
--------------------------------------------------------------------------------
1 | console.error = console.log;
2 |
--------------------------------------------------------------------------------
/polyfills/console/info/polyfill.js:
--------------------------------------------------------------------------------
1 | console.info = console.log;
2 |
--------------------------------------------------------------------------------
/polyfills/console/polyfill.js:
--------------------------------------------------------------------------------
1 | self.console = self.console || {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/warn/polyfill.js:
--------------------------------------------------------------------------------
1 | console.warn = console.log;
2 |
--------------------------------------------------------------------------------
/polyfills/devicePixelRatio/detect.js:
--------------------------------------------------------------------------------
1 | 'devicePixelRatio' in self
2 |
--------------------------------------------------------------------------------
/polyfills/globalThis/detect.js:
--------------------------------------------------------------------------------
1 | typeof globalThis === 'object'
2 |
--------------------------------------------------------------------------------
/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/flat/detect.js:
--------------------------------------------------------------------------------
1 | 'flat' in Array.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/with/detect.js:
--------------------------------------------------------------------------------
1 | 'with' in Array.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/HTMLDocument/polyfill.js:
--------------------------------------------------------------------------------
1 | self.HTMLDocument = self.Document;
2 |
--------------------------------------------------------------------------------
/polyfills/HTMLTemplateElement/detect.js:
--------------------------------------------------------------------------------
1 | 'HTMLTemplateElement' in self
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/RelativeTimeFormat/.gitignore:
--------------------------------------------------------------------------------
1 | polyfill.js
2 | ~locale
3 |
--------------------------------------------------------------------------------
/polyfills/Node/prototype/getRootNode/detect.js:
--------------------------------------------------------------------------------
1 | document.getRootNode
2 |
--------------------------------------------------------------------------------
/polyfills/Node/prototype/isSameNode/detect.js:
--------------------------------------------------------------------------------
1 | document.isSameNode
2 |
--------------------------------------------------------------------------------
/polyfills/Number/isSafeInteger/detect.js:
--------------------------------------------------------------------------------
1 | 'isSafeInteger' in Number
2 |
--------------------------------------------------------------------------------
/polyfills/Object/setPrototypeOf/detect.js:
--------------------------------------------------------------------------------
1 | "setPrototypeOf" in Object
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/get/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'get' in self.Reflect
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/has/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'has' in self.Reflect
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/set/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'set' in self.Reflect
2 |
--------------------------------------------------------------------------------
/polyfills/console/dir/polyfill.js:
--------------------------------------------------------------------------------
1 | console.dir = function dir() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/log/polyfill.js:
--------------------------------------------------------------------------------
1 | console.log = function log() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/time/polyfill.js:
--------------------------------------------------------------------------------
1 | console.time = function time() {};
2 |
--------------------------------------------------------------------------------
/polyfills/requestIdleCallback/detect.js:
--------------------------------------------------------------------------------
1 | 'requestIdleCallback' in self
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/findLast/detect.js:
--------------------------------------------------------------------------------
1 | 'findLast' 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/toSorted/detect.js:
--------------------------------------------------------------------------------
1 | 'toSorted' in Array.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/values/detect.js:
--------------------------------------------------------------------------------
1 | 'values' in Array.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Function/prototype/name/detect.js:
--------------------------------------------------------------------------------
1 | 'name' in Function.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/Locale/detect.js:
--------------------------------------------------------------------------------
1 | 'Intl' in self && 'Locale' in self.Intl
2 |
--------------------------------------------------------------------------------
/polyfills/Node/prototype/isConnected/detect.js:
--------------------------------------------------------------------------------
1 | 'isConnected' in document
2 |
--------------------------------------------------------------------------------
/polyfills/Number/MAX_SAFE_INTEGER/detect.js:
--------------------------------------------------------------------------------
1 | 'MAX_SAFE_INTEGER' in Number
2 |
--------------------------------------------------------------------------------
/polyfills/Number/MIN_SAFE_INTEGER/detect.js:
--------------------------------------------------------------------------------
1 | 'MIN_SAFE_INTEGER' in Number
2 |
--------------------------------------------------------------------------------
/polyfills/Object/preventExtensions/detect.js:
--------------------------------------------------------------------------------
1 | 'preventExtensions' in Object
2 |
--------------------------------------------------------------------------------
/polyfills/Promise/any/detect.js:
--------------------------------------------------------------------------------
1 | 'Promise' in self && 'any' in self.Promise
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/apply/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'apply' in self.Reflect
2 |
--------------------------------------------------------------------------------
/polyfills/RegExp/prototype/flags/detect.js:
--------------------------------------------------------------------------------
1 | 'flags' in RegExp.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/String/prototype/padEnd/detect.js:
--------------------------------------------------------------------------------
1 | 'padEnd' in String.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/String/prototype/repeat/detect.js:
--------------------------------------------------------------------------------
1 | 'repeat' in String.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && self.Symbol.length === 0
2 |
--------------------------------------------------------------------------------
/polyfills/console/clear/polyfill.js:
--------------------------------------------------------------------------------
1 | console.clear = function clear() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/count/polyfill.js:
--------------------------------------------------------------------------------
1 | console.count = function count() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/dir/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'dir' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/group/polyfill.js:
--------------------------------------------------------------------------------
1 | console.group = function group() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/log/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'log' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/table/polyfill.js:
--------------------------------------------------------------------------------
1 | console.table = function table() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/trace/polyfill.js:
--------------------------------------------------------------------------------
1 | console.trace = function trace() {};
2 |
--------------------------------------------------------------------------------
/polyfills/requestAnimationFrame/detect.js:
--------------------------------------------------------------------------------
1 | 'requestAnimationFrame' in self
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/findIndex/detect.js:
--------------------------------------------------------------------------------
1 | 'findIndex' in Array.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/toReversed/detect.js:
--------------------------------------------------------------------------------
1 | 'toReversed' in Array.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/toSpliced/detect.js:
--------------------------------------------------------------------------------
1 | 'toSpliced' in Array.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/ListFormat/detect.js:
--------------------------------------------------------------------------------
1 | 'Intl' in self && 'ListFormat' in self.Intl
2 |
--------------------------------------------------------------------------------
/polyfills/NodeList/prototype/forEach/detect.js:
--------------------------------------------------------------------------------
1 | 'forEach' in NodeList.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/ownKeys/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'ownKeys' in self.Reflect
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/matchAll/detect.js:
--------------------------------------------------------------------------------
1 | 'matchAll' in String.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/String/prototype/padStart/detect.js:
--------------------------------------------------------------------------------
1 | 'padStart' in String.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/match/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'match' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/replace/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'replace' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/search/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'search' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/species/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'species' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/split/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'split' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/TextEncoder/detect.js:
--------------------------------------------------------------------------------
1 | "TextEncoder" in self && "TextDecoder" in self
2 |
--------------------------------------------------------------------------------
/polyfills/console/assert/polyfill.js:
--------------------------------------------------------------------------------
1 | console.assert = function assert() { };
2 |
--------------------------------------------------------------------------------
/polyfills/console/clear/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'clear' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/count/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'count' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/debug/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'debug' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/dirxml/polyfill.js:
--------------------------------------------------------------------------------
1 | console.dirxml = function dirxml() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/error/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'error' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/group/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'group' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/info/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'info' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/profile/polyfill.js:
--------------------------------------------------------------------------------
1 | console.profile = function profile() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/table/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'table' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/time/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'time' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/timeEnd/polyfill.js:
--------------------------------------------------------------------------------
1 | console.timeEnd = function timeEnd() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/timeStamp/polyfill.js:
--------------------------------------------------------------------------------
1 | console.timeStamp = function cd() {};
2 |
--------------------------------------------------------------------------------
/polyfills/console/trace/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'trace' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/warn/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'warn' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/matchMedia/detect.js:
--------------------------------------------------------------------------------
1 | 'matchMedia' in self && 'MediaQueryList' in self
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/findLastIndex/detect.js:
--------------------------------------------------------------------------------
1 | 'findLastIndex' in Array.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/CharacterData/prototype/after/detect.js:
--------------------------------------------------------------------------------
1 | 'after' in CharacterData.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/DOMRect/fromRect/detect.js:
--------------------------------------------------------------------------------
1 | 'DOMRect' in self && 'fromRect' in self.DOMRect
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/DisplayNames/detect.js:
--------------------------------------------------------------------------------
1 | 'Intl' in self && 'DisplayNames' in self.Intl
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/PluralRules/detect.js:
--------------------------------------------------------------------------------
1 | 'Intl' in self && 'PluralRules' in self.Intl
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/construct/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'construct' in self.Reflect
2 |
--------------------------------------------------------------------------------
/polyfills/String/prototype/codePointAt/detect.js:
--------------------------------------------------------------------------------
1 | 'codePointAt' 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/raw/detect.js:
--------------------------------------------------------------------------------
1 | "raw" in String && typeof String.raw === "function"
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/iterator/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'iterator' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/matchAll/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'matchAll' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/console/assert/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'assert' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/dirxml/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'dirxml' in self.console
2 |
--------------------------------------------------------------------------------
/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/profile/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'profile' in self.console
2 |
--------------------------------------------------------------------------------
/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/timeEnd/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'timeEnd' in self.console
2 |
--------------------------------------------------------------------------------
/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/location/origin/detect.js:
--------------------------------------------------------------------------------
1 | 'location' in self && 'origin' in self.location
2 |
--------------------------------------------------------------------------------
/polyfills/CharacterData/prototype/before/detect.js:
--------------------------------------------------------------------------------
1 | 'before' in CharacterData.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/CharacterData/prototype/remove/detect.js:
--------------------------------------------------------------------------------
1 | 'remove' in CharacterData.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Promise/allSettled/detect.js:
--------------------------------------------------------------------------------
1 | 'Promise' in self && 'allSettled' in self.Promise
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/isExtensible/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'isExtensible' in self.Reflect
2 |
--------------------------------------------------------------------------------
/polyfills/String/prototype/isWellFormed/detect.js:
--------------------------------------------------------------------------------
1 | "isWellFormed" in String.prototype;
2 |
--------------------------------------------------------------------------------
/polyfills/String/prototype/toWellFormed/detect.js:
--------------------------------------------------------------------------------
1 | "toWellFormed" in String.prototype;
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/hasInstance/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'hasInstance' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/prototype/description/detect.js:
--------------------------------------------------------------------------------
1 | 'description' in self.Symbol.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/toPrimitive/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'toPrimitive' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/toStringTag/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'toStringTag' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/unscopables/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'unscopables' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/URL/prototype/toJSON/detect.js:
--------------------------------------------------------------------------------
1 | 'URL' in self && 'toJSON' in self.URL.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/console/exception/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'exception' in self.console
2 |
--------------------------------------------------------------------------------
/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/timeStamp/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'timeStamp' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/navigator/sendBeacon/detect.js:
--------------------------------------------------------------------------------
1 | 'navigator' in self && 'sendBeacon' in navigator
2 |
--------------------------------------------------------------------------------
/polyfills/performance/now/detect.js:
--------------------------------------------------------------------------------
1 | 'performance' in self && 'now' in self.performance
2 |
--------------------------------------------------------------------------------
/polyfills/ArrayBuffer/isView/detect.js:
--------------------------------------------------------------------------------
1 | 'ArrayBuffer' in self && 'isView' in self.ArrayBuffer
2 |
--------------------------------------------------------------------------------
/polyfills/AudioContext/detect.js:
--------------------------------------------------------------------------------
1 | 'AudioContext' in self || !('webkitAudioContext' in self)
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/after/detect.js:
--------------------------------------------------------------------------------
1 | 'Element' in self && 'after' in Element.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/HTMLCanvasElement/prototype/toBlob/detect.js:
--------------------------------------------------------------------------------
1 | 'toBlob' in HTMLCanvasElement.prototype
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/getPrototypeOf/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'getPrototypeOf' in self.Reflect
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/setPrototypeOf/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'setPrototypeOf' in self.Reflect
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/asyncIterator/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'asyncIterator' in self.Symbol
2 |
--------------------------------------------------------------------------------
/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/timelineEnd/detect.js:
--------------------------------------------------------------------------------
1 | 'console' in self && 'timelineEnd' in self.console
2 |
--------------------------------------------------------------------------------
/polyfills/console/timelineEnd/polyfill.js:
--------------------------------------------------------------------------------
1 | console.timelineEnd = function timelineEnd() {};
2 |
--------------------------------------------------------------------------------
/polyfills/CharacterData/prototype/replaceWith/detect.js:
--------------------------------------------------------------------------------
1 | 'replaceWith' in CharacterData.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/append/detect.js:
--------------------------------------------------------------------------------
1 | 'Element' in self && 'append' in Element.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/before/detect.js:
--------------------------------------------------------------------------------
1 | 'Element' in self && 'before' in Element.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/prepend/detect.js:
--------------------------------------------------------------------------------
1 | 'Element' in self && 'prepend' in Element.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/remove/detect.js:
--------------------------------------------------------------------------------
1 | 'Element' in self && 'remove' in Element.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/EventSource/detect.js:
--------------------------------------------------------------------------------
1 | 'EventSource' in self && typeof self.EventSource === 'function'
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/RelativeTimeFormat/detect.js:
--------------------------------------------------------------------------------
1 | 'Intl' in self && 'RelativeTimeFormat' in self.Intl
2 |
--------------------------------------------------------------------------------
/polyfills/Intl/getCanonicalLocales/detect.js:
--------------------------------------------------------------------------------
1 | 'Intl' in self && 'getCanonicalLocales' in self.Intl
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/preventExtensions/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'preventExtensions' in self.Reflect
2 |
--------------------------------------------------------------------------------
/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/document/currentScript/detect.js:
--------------------------------------------------------------------------------
1 | 'document' in self && 'currentScript' in self.document
2 |
--------------------------------------------------------------------------------
/polyfills/NodeList/prototype/forEach/polyfill.js:
--------------------------------------------------------------------------------
1 | NodeList.prototype.forEach = Array.prototype.forEach;
2 |
--------------------------------------------------------------------------------
/polyfills/Promise/prototype/finally/detect.js:
--------------------------------------------------------------------------------
1 | 'Promise' in self && 'finally' in self.Promise.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/String/fromCodePoint/detect.js:
--------------------------------------------------------------------------------
1 | 'fromCodePoint' in String && String.fromCodePoint.length === 1
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/isConcatSpreadable/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'isConcatSpreadable' in self.Symbol
2 |
--------------------------------------------------------------------------------
/polyfills/AbortController/detect.js:
--------------------------------------------------------------------------------
1 | "AbortController" in self && typeof self.AbortController === "function"
2 |
--------------------------------------------------------------------------------
/polyfills/CharacterData/prototype/after/polyfill.js:
--------------------------------------------------------------------------------
1 | CharacterData.prototype.after = Element.prototype.after
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/closest/detect.js:
--------------------------------------------------------------------------------
1 | 'document' in self && "closest" in document.documentElement
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/matches/detect.js:
--------------------------------------------------------------------------------
1 | 'document' in self && "matches" in document.documentElement
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/replaceWith/detect.js:
--------------------------------------------------------------------------------
1 | 'Element' in self && 'replaceWith' in Element.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/HTMLElement/prototype/inert/detect.js:
--------------------------------------------------------------------------------
1 | 'HTMLElement' in self && 'inert' in HTMLElement.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/document/elementsFromPoint/detect.js:
--------------------------------------------------------------------------------
1 | 'document' in self && 'elementsFromPoint' in self.document
2 |
--------------------------------------------------------------------------------
/polyfills/structuredClone/detect.js:
--------------------------------------------------------------------------------
1 | "structuredClone" in self && typeof self.structuredClone === 'function'
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/keys/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'iterator' in self.Symbol && !!Array.prototype.keys
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/remove/polyfill.js:
--------------------------------------------------------------------------------
1 | CharacterData.prototype.remove = Element.prototype.remove
2 |
--------------------------------------------------------------------------------
/polyfills/DOMTokenList/prototype/replace/detect.js:
--------------------------------------------------------------------------------
1 | "replace" in (document.createElement('div').classList || {})
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/replaceChildren/detect.js:
--------------------------------------------------------------------------------
1 | 'Element' in self && 'replaceChildren' in Element.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/HTMLPictureElement/detect.js:
--------------------------------------------------------------------------------
1 | 'HTMLSourceElement' in self && 'srcset' in self.HTMLSourceElement.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Reflect/getOwnPropertyDescriptor/detect.js:
--------------------------------------------------------------------------------
1 | self.Reflect && 'getOwnPropertyDescriptor' in self.Reflect
2 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/entries/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'iterator' in self.Symbol && !!Array.prototype.entries
2 |
--------------------------------------------------------------------------------
/polyfills/CharacterData/prototype/previousElementSibling/detect.js:
--------------------------------------------------------------------------------
1 | 'previousElementSibling' in CharacterData.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/DOMTokenList/prototype/forEach/detect.js:
--------------------------------------------------------------------------------
1 | 'DOMTokenList' in self && 'forEach' in self.DOMTokenList.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/HTMLFormElement/prototype/requestSubmit/detect.js:
--------------------------------------------------------------------------------
1 | typeof HTMLFormElement.prototype.requestSubmit == "function"
--------------------------------------------------------------------------------
/polyfills/DocumentFragment/prototype/append/detect.js:
--------------------------------------------------------------------------------
1 | 'DocumentFragment' in self && 'append' in DocumentFragment.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/DocumentFragment/prototype/prepend/detect.js:
--------------------------------------------------------------------------------
1 | 'DocumentFragment' in self && 'prepend' in DocumentFragment.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/placeholder/detect.js:
--------------------------------------------------------------------------------
1 | 'document' in self && "placeholder" in document.createElement("input")
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/toggleAttribute/detect.js:
--------------------------------------------------------------------------------
1 | 'document' in self && "toggleAttribute" in document.documentElement
2 |
--------------------------------------------------------------------------------
/polyfills/String/prototype/normalize/detect.js:
--------------------------------------------------------------------------------
1 | 'normalize' in String.prototype && String.prototype.normalize.length === 0
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/iterator/polyfill.js:
--------------------------------------------------------------------------------
1 | Object.defineProperty(self.Symbol, 'iterator', { value: self.Symbol('iterator') });
2 |
--------------------------------------------------------------------------------
/polyfills/document/visibilityState/detect.js:
--------------------------------------------------------------------------------
1 | 'document' in self && 'hidden' in document && 'visibilityState' in document
2 |
--------------------------------------------------------------------------------
/tasks/polyfill-templates/detect.js:
--------------------------------------------------------------------------------
1 | true /* This needs to be an expression which evaluates to true if the feature exists */
2 |
--------------------------------------------------------------------------------
/polyfills/CharacterData/prototype/replaceWith/polyfill.js:
--------------------------------------------------------------------------------
1 | CharacterData.prototype.replaceWith = Element.prototype.replaceWith
2 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/getAttributeNames/detect.js:
--------------------------------------------------------------------------------
1 | 'document' in self && "getAttributeNames" in document.documentElement
2 |
--------------------------------------------------------------------------------
/polyfills/Number/parseInt/detect.js:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line radix
2 | 'parseInt' in Number && Number.parseInt('08') === 8
3 |
--------------------------------------------------------------------------------
/polyfills/Symbol/match/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'match', { value: Symbol('match') });
3 |
--------------------------------------------------------------------------------
/polyfills/Symbol/search/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'search', { value: Symbol('search') });
3 |
--------------------------------------------------------------------------------
/polyfills/Symbol/split/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'split', { value: Symbol('split') });
3 |
--------------------------------------------------------------------------------
/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/denodeify.mock.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const sinon = require('sinon');
4 |
5 | module.exports = sinon.stub();
6 |
--------------------------------------------------------------------------------
/polyfills/Event/hashchange/detect.js:
--------------------------------------------------------------------------------
1 | 'onhashchange' in self && (self.onhashchange == null || typeof self.onhashchange === 'function')
2 |
--------------------------------------------------------------------------------
/polyfills/MediaQueryList/prototype/addEventListener/detect.js:
--------------------------------------------------------------------------------
1 | 'matchMedia' in self && 'addEventListener' in (self.matchMedia('all'))
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/replace/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'replace', { value: Symbol('replace') });
3 |
--------------------------------------------------------------------------------
/polyfills/Symbol/species/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'species', { value: Symbol('species') });
3 |
--------------------------------------------------------------------------------
/polyfills/screen/orientation/detect.js:
--------------------------------------------------------------------------------
1 | 'screen' in self && 'orientation' in self.screen && typeof self.screen.orientation === 'object'
2 |
--------------------------------------------------------------------------------
/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/stream-to-string.mock.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const sinon = require('sinon');
4 |
5 | module.exports = sinon.stub();
6 |
--------------------------------------------------------------------------------
/polyfills/Array/prototype/@@iterator/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'iterator' in self.Symbol && !!Array.prototype[self.Symbol.iterator]
2 |
--------------------------------------------------------------------------------
/polyfills/HTMLDocument/config.toml:
--------------------------------------------------------------------------------
1 | docs = "https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument"
2 |
3 | [browsers]
4 | ie = "9"
5 |
--------------------------------------------------------------------------------
/polyfills/RegExp/prototype/@@matchAll/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'matchAll' in self.Symbol && !!RegExp.prototype[self.Symbol.matchAll]
2 |
--------------------------------------------------------------------------------
/polyfills/String/prototype/@@iterator/detect.js:
--------------------------------------------------------------------------------
1 | 'Symbol' in self && 'iterator' in self.Symbol && !!String.prototype[self.Symbol.iterator]
2 |
--------------------------------------------------------------------------------
/test/unit/mock/stream-from-promise.mock.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const sinon = require('sinon');
4 |
5 | module.exports = sinon.stub();
6 |
--------------------------------------------------------------------------------
/polyfills/CSS/supports/detect.js:
--------------------------------------------------------------------------------
1 | (typeof self.CSS === "function" || typeof self.CSS === "object") && typeof self.CSS.supports === "function"
2 |
--------------------------------------------------------------------------------
/polyfills/DocumentFragment/prototype/replaceChildren/detect.js:
--------------------------------------------------------------------------------
1 | 'DocumentFragment' in self && 'replaceChildren' in DocumentFragment.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/hasInstance/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'hasInstance', { value: Symbol('hasInstance') });
3 |
--------------------------------------------------------------------------------
/polyfills/Symbol/toPrimitive/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'toPrimitive', { value: Symbol('toPrimitive') });
3 |
--------------------------------------------------------------------------------
/polyfills/Symbol/unscopables/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'unscopables', { value: Symbol('unscopables') });
3 |
--------------------------------------------------------------------------------
/polyfills/IntersectionObserverEntry/detect.js:
--------------------------------------------------------------------------------
1 | 'IntersectionObserverEntry' in window && 'isIntersecting' in window.IntersectionObserverEntry.prototype
2 |
--------------------------------------------------------------------------------
/polyfills/HTMLSelectElement/prototype/selectedOptions/detect.js:
--------------------------------------------------------------------------------
1 | ('HTMLSelectElement' in self) && ('selectedOptions' in self.HTMLSelectElement.prototype)
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/asyncIterator/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'asyncIterator', { value: Symbol('asyncIterator') });
3 |
--------------------------------------------------------------------------------
/polyfills/Symbol/toStringTag/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'toStringTag', {
3 | value: Symbol('toStringTag')
4 | });
5 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/UserTiming/detect.js:
--------------------------------------------------------------------------------
1 | 'performance' in self && typeof self.performance.getEntriesByType === 'function' && typeof self.performance.mark === 'function'
2 |
--------------------------------------------------------------------------------
/polyfills/Symbol/isConcatSpreadable/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol */
2 | Object.defineProperty(Symbol, 'isConcatSpreadable', { value: Symbol('isConcatSpreadable') });
3 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/polyfills/Element/prototype/placeholder/config.toml:
--------------------------------------------------------------------------------
1 | aliases = [ "caniuse:input-placeholder", "modernizr:placeholder" ]
2 | dependencies = [ ]
3 |
4 | [browsers]
5 | ie = "8 - 9"
6 |
--------------------------------------------------------------------------------
/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/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/with/detect.js:
--------------------------------------------------------------------------------
1 | // use "Int8Array" as a proxy for support of "TypedArray" subclasses
2 | 'Int8Array' in self && 'with' in self.Int8Array.prototype
3 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/_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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/polyfills/NodeList/prototype/@@iterator/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol, ArrayIterator*/
2 | NodeList.prototype[Symbol.iterator] = function () {
3 | return new ArrayIterator(this);
4 | };
5 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/polyfills/IntersectionObserver/detect.js:
--------------------------------------------------------------------------------
1 | 'IntersectionObserver' in window &&
2 | 'IntersectionObserverEntry' in window &&
3 | 'intersectionRatio' in window.IntersectionObserverEntry.prototype
4 |
--------------------------------------------------------------------------------
/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/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/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/HTMLCollection/prototype/@@iterator/polyfill.js:
--------------------------------------------------------------------------------
1 | /* global Symbol, ArrayIterator*/
2 | HTMLCollection.prototype[Symbol.iterator] = function () {
3 | return new ArrayIterator(this);
4 | };
5 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/CharacterData/prototype/nextElementSibling/polyfill.js:
--------------------------------------------------------------------------------
1 | Object.defineProperty(CharacterData.prototype, 'nextElementSibling',
2 | Object.getOwnPropertyDescriptor(Element.prototype, 'nextElementSibling')
3 | );
4 |
--------------------------------------------------------------------------------
/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/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/CharacterData/prototype/previousElementSibling/polyfill.js:
--------------------------------------------------------------------------------
1 | Object.defineProperty(CharacterData.prototype, 'previousElementSibling',
2 | Object.getOwnPropertyDescriptor(Element.prototype, 'previousElementSibling')
3 | );
4 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/test/polyfills/empty-document.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Empty Document
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/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/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/_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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/_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/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/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/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/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/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/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/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/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/_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/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/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/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/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/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/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/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/_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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/_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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/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/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/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/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/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/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/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/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/_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/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/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/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/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/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/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/_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/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/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/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/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/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/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/_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/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/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/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/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/_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/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/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/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/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/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/_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/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/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/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/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/_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/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/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/_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/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/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/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/_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/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/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/_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/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/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/_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/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/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/_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/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/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/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/~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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/_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/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/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/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/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/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/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/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/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/_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/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/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/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/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/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/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/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/_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/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/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/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/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/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/_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/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/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/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/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/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/_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/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/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/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/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/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/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/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/_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/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/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/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/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/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/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/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/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/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/_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/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/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/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/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/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/_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/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/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/_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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/_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/_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/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/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/_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/_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/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/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/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/_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/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/_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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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/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/_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/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/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/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/_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/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/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/_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/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/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/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/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/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/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/_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/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/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/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/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/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/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/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/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/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/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/_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/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/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/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/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------