// Internet Explorer Mobile, Blackberry browser and Opera Mini are very old browsers, they do not support new features
constes6DynamicImport=rawChecker({
chrome:63,
and_chr:63,
edge:79,
firefox:67,
and_ff:67,
// ie: Not supported
opera:50,
op_mob:46,
safari:[11,1],
ios_saf:[11,3],
samsung:[8,2],
android:63,
and_qq:[10,4],
// baidu: Not supported
// and_uc: Not supported
kaios:[3,0],
node:[12,17]
});
return{
const:rawChecker({
chrome:49,
and_chr:49,
edge:12,
// Prior to Firefox 13, <code>const</code> is implemented, but re-assignment is not failing.
// Prior to Firefox 46, a <code>TypeError</code> was thrown on redeclaration instead of a <code>SyntaxError</code>.
firefox:36,
and_ff:36,
// Not supported in for-in and for-of loops
// ie: Not supported
opera:36,
op_mob:36,
safari:[10,0],
ios_saf:[10,0],
// Before 5.0 supported correctly in strict mode, otherwise supported without block scope
samsung:[5,0],
android:37,
and_qq:[10,4],
// Supported correctly in strict mode, otherwise supported without block scope
// baidu: Not supported
and_uc:[12,12],
kaios:[2,5],
node:[6,0]
}),
arrowFunction:rawChecker({
chrome:45,
and_chr:45,
edge:12,
// The initial implementation of arrow functions in Firefox made them automatically strict. This has been changed as of Firefox 24. The use of <code>'use strict';</code> is now required.
// Prior to Firefox 39, a line terminator (<code>\\n</code>) was incorrectly allowed after arrow function arguments. This has been fixed to conform to the ES2015 specification and code like <code>() \\n => {}</code> will now throw a <code>SyntaxError</code> in this and later versions.
firefox:39,
and_ff:39,
// ie: Not supported,
opera:32,
op_mob:32,
safari:10,
ios_saf:10,
samsung:[5,0],
android:45,
and_qq:[10,4],
baidu:[7,12],
and_uc:[12,12],
kaios:[2,5],
node:[6,0]
}),
forOf:rawChecker({
chrome:38,
and_chr:38,
edge:12,
// Prior to Firefox 51, using the for...of loop construct with the const keyword threw a SyntaxError ("missing = in const declaration").
firefox:51,
and_ff:51,
// ie: Not supported,
opera:25,
op_mob:25,
safari:7,
ios_saf:7,
samsung:[3,0],
android:38,
// and_qq: Unknown support
// baidu: Unknown support
// and_uc: Unknown support
kaios:[3,0],
node:[0,12]
}),
destructuring:rawChecker({
chrome:49,
and_chr:49,
edge:14,
firefox:41,
and_ff:41,
// ie: Not supported,
opera:36,
op_mob:36,
safari:8,
ios_saf:8,
samsung:[5,0],
android:49,
// and_qq: Unknown support
// baidu: Unknown support
// and_uc: Unknown support
kaios:[2,5],
node:[6,0]
}),
bigIntLiteral:rawChecker({
chrome:67,
and_chr:67,
edge:79,
firefox:68,
and_ff:68,
// ie: Not supported,
opera:54,
op_mob:48,
safari:14,
ios_saf:14,
samsung:[9,2],
android:67,
// and_qq: Not supported
// baidu: Not supported
// and_uc: Not supported
kaios:[3,0],
node:[10,4]
}),
// Support syntax `import` and `export` and no limitations and bugs on Node.js
// Not include `export * as namespace`
module:rawChecker({
chrome:61,
and_chr:61,
edge:16,
firefox:60,
and_ff:60,
// ie: Not supported,
opera:48,
op_mob:45,
safari:[10,1],
ios_saf:[10,3],
samsung:[8,0],
android:61,
and_qq:[10,4],
// baidu: Not supported
// and_uc: Not supported
kaios:[3,0],
node:[12,17]
}),
dynamicImport:es6DynamicImport,
dynamicImportInWorker:es6DynamicImport&&!anyNode,
// browserslist does not have info about globalThis