diff --git a/src/providers/caniuse-provider.ts b/src/providers/caniuse-provider.ts index eaa381ba..bc4360a9 100644 --- a/src/providers/caniuse-provider.ts +++ b/src/providers/caniuse-provider.ts @@ -179,6 +179,18 @@ const CanIUseProvider: Array = [ object: "performance", property: "now", }, + // requestIdleCallback() + { + caniuseId: "requestidlecallback", + astNodeType: AstNodeTypes.CallExpression, + object: "requestIdleCallback", + }, + // requestAnimationFrame() + { + caniuseId: "requestanimationframe", + astNodeType: AstNodeTypes.CallExpression, + object: "requestAnimationFrame", + }, { caniuseId: "typedarrays", astNodeType: AstNodeTypes.NewExpression, diff --git a/test/e2e.spec.ts b/test/e2e.spec.ts index 14dd069e..05450290 100644 --- a/test/e2e.spec.ts +++ b/test/e2e.spec.ts @@ -667,5 +667,27 @@ ruleTester.run("compat", rule, { }, ], }, + { + code: "window.requestIdleCallback(() => {})", + settings: { + browsers: ["safari 12"], + }, + errors: [ + { + message: "requestIdleCallback is not supported in Safari 12", + }, + ], + }, + { + code: "window.requestAnimationFrame(() => {})", + settings: { + browsers: ["OperaMini all"], + }, + errors: [ + { + message: "requestAnimationFrame is not supported in op_mini all", + }, + ], + }, ], });