20 lines
488 B
JavaScript
20 lines
488 B
JavaScript
'use strict';
|
|
|
|
const functionTypes = new Set([
|
|
'FunctionDeclaration',
|
|
'FunctionExpression',
|
|
'ArrowFunctionExpression',
|
|
]);
|
|
|
|
module.exports = (context, badBrowser) => ({
|
|
AwaitExpression(node) {
|
|
let currentNode = node;
|
|
while (currentNode.parent) {
|
|
currentNode = currentNode.parent;
|
|
if (functionTypes.has(currentNode.type) && currentNode.async) {
|
|
return;
|
|
}
|
|
}
|
|
context.report(node, `Top-level await is not supported in ${badBrowser}`)
|
|
},
|
|
})
|