]> git.proxmox.com Git - pve-eslint.git/blobdiff - eslint/lib/rules/getter-return.js
import 8.41.0 source
[pve-eslint.git] / eslint / lib / rules / getter-return.js
index 5209ab1504bd48bcccf34e5a95159fecb46ecc83..622b6a7541cda52d69ccd0176b289ffed104eef2 100644 (file)
@@ -37,7 +37,7 @@ module.exports = {
         docs: {
             description: "Enforce `return` statements in getters",
             recommended: true,
-            url: "https://eslint.org/docs/rules/getter-return"
+            url: "https://eslint.org/docs/latest/rules/getter-return"
         },
 
         fixable: null,
@@ -64,7 +64,7 @@ module.exports = {
     create(context) {
 
         const options = context.options[0] || { allowImplicit: false };
-        const sourceCode = context.getSourceCode();
+        const sourceCode = context.sourceCode;
 
         let funcInfo = {
             upper: null,
@@ -112,18 +112,24 @@ module.exports = {
                 }
                 if (parent.type === "Property" && astUtils.getStaticPropertyName(parent) === "get" && parent.parent.type === "ObjectExpression") {
 
-                    // Object.defineProperty()
-                    if (parent.parent.parent.type === "CallExpression" &&
-                        astUtils.getStaticPropertyName(parent.parent.parent.callee) === "defineProperty") {
-                        return true;
+                    // Object.defineProperty() or Reflect.defineProperty()
+                    if (parent.parent.parent.type === "CallExpression") {
+                        const callNode = parent.parent.parent.callee;
+
+                        if (astUtils.isSpecificMemberAccess(callNode, "Object", "defineProperty") ||
+                            astUtils.isSpecificMemberAccess(callNode, "Reflect", "defineProperty")) {
+                            return true;
+                        }
                     }
 
-                    // Object.defineProperties()
+                    // Object.defineProperties() or Object.create()
                     if (parent.parent.parent.type === "Property" &&
                         parent.parent.parent.parent.type === "ObjectExpression" &&
-                        parent.parent.parent.parent.parent.type === "CallExpression" &&
-                        astUtils.getStaticPropertyName(parent.parent.parent.parent.parent.callee) === "defineProperties") {
-                        return true;
+                        parent.parent.parent.parent.parent.type === "CallExpression") {
+                        const callNode = parent.parent.parent.parent.parent.callee;
+
+                        return astUtils.isSpecificMemberAccess(callNode, "Object", "defineProperties") ||
+                               astUtils.isSpecificMemberAccess(callNode, "Object", "create");
                     }
                 }
             }