We test browser support with a test suite for each feature. A browser is considered compliant only if it passes all the tests, so this is a reasonably comprehensive test rather than a naive feature-detect. To view the test suite for a feature in the browser you're using right now, click the Tests link in the feature list. The results below are generated using browsers hosted by BrowserStack.
IE & Edge | Firefox | Chrome | Safari | Your browser | ||
---|---|---|---|---|---|---|
Array.from¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.isArray¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.of¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.@@iterator¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.contains¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
Array.prototype.copyWithin¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.entries¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.every¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.fill¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.filter¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.find¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.findIndex¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.forEach¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.includes¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.indexOf¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.keys¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.lastIndexOf¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.map¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.reduce¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.reduceRight¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.some¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Array.prototype.values¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
AudioContext¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
CustomEvent¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
DOMTokenList¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
DOMTokenList.prototype.@@iterator¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Date.now¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Date.prototype.toISOString¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Document¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
DocumentFragment¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
DocumentFragment.prototype.append¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
DocumentFragment.prototype.prepend¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.after¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.append¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.before¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.classList¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.cloneNode¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.closest¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.dataset¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.matches¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.placeholder¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.prepend¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.remove¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Element.prototype.replaceWith¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Event¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
Event.focusin¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Event.hashchange¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
EventSource¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Function.name¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
Function.prototype.bind¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
HTMLCanvasElement.prototype.toBlob¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
HTMLDocument¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
HTMLPictureElement¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
IntersectionObserver¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
IntersectionObserverEntry¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Intl¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
JSON¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Map¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
Math.acosh¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.asinh¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.atanh¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.cbrt¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.clz32¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.cosh¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.expm1¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.hypot¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.imul¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.log10¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.log1p¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.log2¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.sign¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.sinh¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.tanh¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Math.trunc¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
MutationObserver¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Node.prototype.contains¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
NodeList.prototype.@@iterator¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Number.Epsilon¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Number.MAX_SAFE_INTEGER¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Number.MIN_SAFE_INTEGER¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Number.isFinite¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Number.isInteger¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Number.isNaN¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Number.isSafeInteger¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Number.parseFloat¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Number.parseInt¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.assign¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.create¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.defineProperties¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.defineProperty¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
Object.entries¶ |
91011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.freeze¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.getOwnPropertyDescriptor¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.getOwnPropertyNames¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.getPrototypeOf¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.is¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.keys¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.setPrototypeOf¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Object.values¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Promise¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
Promise.prototype.finally¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
RegExp.prototype.flags¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Set¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
String.fromCodePoint¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
String.prototype.@@iterator¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
String.prototype.codePointAt¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
String.prototype.contains¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
String.prototype.endsWith¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
String.prototype.includes¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
String.prototype.padEnd¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
String.prototype.padStart¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
String.prototype.repeat¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
String.prototype.startsWith¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
String.prototype.trim¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.hasInstance¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.isConcatSpreadable¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.iterator¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.match¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.replace¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.search¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.species¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.split¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.toPrimitive¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.toStringTag¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Symbol.unscopables¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
URL¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
UserTiming¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
WeakMap¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
WeakSet¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
WebAnimations¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
Window¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
XMLHttpRequest¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
atob¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.assert¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.clear¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.count¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.debug¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.dir¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.dirxml¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.error¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.exception¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.group¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.groupCollapsed¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.groupEnd¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.info¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.log¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.markTimeline¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
console.table¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.time¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.timeEnd¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.timeStamp¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.timeline¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.timelineEnd¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.trace¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
console.warn¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
devicePixelRatio¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
document.currentScript¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
document.getElementsByClassName¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
document.head¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
document.querySelector¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
document.visibilityState¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
fetch¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
getComputedStyle¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
localStorage¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
location.origin¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
matchMedia¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
navigator.geolocation¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
navigator.sendBeacon¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
performance.now¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
requestAnimationFrame¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
screen.orientation¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
| ||||||
setImmediate¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
~html5-elements¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 | ||
~viewport¶ |
7891011131415 | 30334142444953 | 354042464858 | 5.1678910 |
The table above lists a data size for each polyfill, which is the size of the polyfill including a feature detect, after minification, and before gzip. Two very important things to remember about these sizes are:
The following table shows the total size of the polyfill bundle for the default set, in all our test browsers:
Browser | Version | Size (raw) | Size (min) | Size (gzip) |
---|---|---|---|---|
chrome | 35 | 81.5KB | 32.8KB | 8.5KB |
chrome | 40 | 49.9KB | 22.2KB | 6.6KB |
chrome | 42 | 48.6KB | 21.6KB | 6.4KB |
chrome | 46 | 24.2KB | 11.1KB | 3.3KB |
chrome | 48 | 20.9KB | 9.4KB | 2.8KB |
chrome | 58 | 0.4KB | 0.2KB | 0.2KB |
firefox | 30 | 36.8KB | 15.4KB | 4.8KB |
firefox | 33 | 13.1KB | 5.4KB | 1.8KB |
firefox | 41 | 6.1KB | 2.5KB | 0.8KB |
firefox | 42 | 6.1KB | 2.5KB | 0.8KB |
firefox | 44 | 6.1KB | 2.5KB | 0.8KB |
firefox | 49 | 1.3KB | 0.6KB | 0.3KB |
firefox | 53 | 0.5KB | 0.2KB | 0.2KB |
ie | 7 | 165.8KB | 56.4KB | 16.6KB |
ie | 8 | 131.8KB | 54.0KB | 15.6KB |
ie | 9 | 115.8KB | 50.3KB | 14.6KB |
ie | 10 | 109.2KB | 46.2KB | 13.0KB |
ie | 11 | 105.2KB | 44.1KB | 12.4KB |
ie | 13 | 33.1KB | 14.4KB | 4.3KB |
ie | 14 | 21.3KB | 9.7KB | 2.8KB |
ie | 15 | 21.3KB | 9.7KB | 2.8KB |
safari | 6 | 106.8KB | 45.7KB | 12.8KB |
safari | 7 | 97.4KB | 42.0KB | 11.8KB |
safari | 8 | 84.1KB | 33.0KB | 8.6KB |
safari | 9 | 22.5KB | 10.0KB | 2.9KB |
safari | 10 | 16.1KB | 7.6KB | 2.3KB |
safari | 5.1 | 114.8KB | 46.9KB | 13.2KB |
android | 5 | 82.9KB | 32.4KB | 8.4KB |
android | 6 | 44.5KB | 19.3KB | 5.6KB |
android | 7 | 44.5KB | 19.3KB | 5.6KB |
android | 7.1 | 44.5KB | 19.3KB | 5.6KB |
android | 5.1 | 44.5KB | 19.3KB | 5.6KB |
ios_saf | 4 | 100.6KB | 40.4KB | 11.2KB |
ios_saf | 5 | 100.6KB | 40.4KB | 11.2KB |
ios_saf | 6 | 93.0KB | 39.4KB | 10.9KB |
ios_saf | 7 | 91.0KB | 38.4KB | 10.7KB |
ios_saf | 8 | 84.7KB | 33.1KB | 8.6KB |
ios_saf | 10.3 | 16.1KB | 7.6KB | 2.3KB |
The alias default
includes a set of polyfills that comprise features with high demands, small polyfill sizes, good performance and at least one good native implementation in a stable browser. The set evolves over time to include new features as they become a more stable part of the web platform.
Although you cannot request an immutable version of a polyfill, you can reduce the risk of future releases of the polyfill service breaking compatibility with your code by using an immutable default set. Each time we make a release, if we have changed the features included in the default set we will issue a new immutable alias for the set, which won't change when the default set changes again. The components of these sets are shown below:
Alias | Constituents |
---|---|
default-3.3 | Array.isArray, Array.prototype.every, Array.prototype.filter, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.lastIndexOf, Array.prototype.map, Array.prototype.reduce, Array.prototype.reduceRight, Array.prototype.some, atob, CustomEvent, Date.now, Date.prototype.toISOString, Document, document.querySelector, document.visibilityState, DOMTokenList, Element, Element.prototype.classList, Element.prototype.cloneNode, Element.prototype.closest, Element.prototype.matches, Event, Event.DOMContentLoaded, Event.focusin, Event.hashchange, Function.prototype.bind, JSON, Object.assign, Object.create, Object.defineProperties, Object.defineProperty, Object.getOwnPropertyNames, Object.getPrototypeOf, Object.keys, requestAnimationFrame, String.prototype.includes, String.prototype.trim, Window, XMLHttpRequest, ~html5-elements |
default-3.4 | Added Array.from, Array.of, Array.prototype.fill, Element.prototype.after, Element.prototype.append, Element.prototype.before, Element.prototype.prepend, Element.prototype.remove, Element.prototype.replaceWith, Node.prototype.contains, Number.isNaN, Promise, String.prototype.endsWith, String.prototype.startsWith, URL, location.origin |
default-3.5 | Added Object.getOwnPropertyDescriptor |
default-3.6 | Added Map, Set |