diff --git a/tests/tools/internal-rules/no-invalid-meta.js b/tests/tools/internal-rules/no-invalid-meta.js index 1661ecfe0fa..b0168f409b1 100644 --- a/tests/tools/internal-rules/no-invalid-meta.js +++ b/tests/tools/internal-rules/no-invalid-meta.js @@ -126,6 +126,24 @@ ruleTester.run("no-invalid-meta", rule, { column: 18 }] }, + { + code: [ + "module.exports = {", + " meta: [],", + + " create: function(context) {", + " return {", + " Program: function(node) {}", + " };", + " }", + "};" + ].join("\n"), + errors: [{ + message: "Rule is missing a meta.docs property.", + line: 2, + column: 5 + }] + }, { code: [ "module.exports = {", diff --git a/tools/internal-rules/consistent-docs-description.js b/tools/internal-rules/consistent-docs-description.js index 55e2a6c7645..b56c641a31e 100644 --- a/tools/internal-rules/consistent-docs-description.js +++ b/tools/internal-rules/consistent-docs-description.js @@ -25,6 +25,12 @@ const ALLOWED_FIRST_WORDS = [ function getPropertyFromObject(property, node) { const properties = node.properties; + if (!Array.isArray(properties)) { + + // if properties is not an array, "internal-no-invalid-meta" will already report this. + return null; + } + for (let i = 0; i < properties.length; i++) { if (properties[i].key.name === property) { return properties[i]; diff --git a/tools/internal-rules/consistent-docs-url.js b/tools/internal-rules/consistent-docs-url.js index 0082ecf7629..8e6652fc4bf 100644 --- a/tools/internal-rules/consistent-docs-url.js +++ b/tools/internal-rules/consistent-docs-url.js @@ -21,6 +21,12 @@ const path = require("path"); function getPropertyFromObject(property, node) { const properties = node.properties; + if (!Array.isArray(properties)) { + + // if properties is not an array, "internal-no-invalid-meta" will already report this. + return null; + } + for (let i = 0; i < properties.length; i++) { if (properties[i].key.name === property) { return properties[i]; diff --git a/tools/internal-rules/no-invalid-meta.js b/tools/internal-rules/no-invalid-meta.js index 8082d1000ae..c0a9bc9076a 100644 --- a/tools/internal-rules/no-invalid-meta.js +++ b/tools/internal-rules/no-invalid-meta.js @@ -19,6 +19,11 @@ function getPropertyFromObject(property, node) { const properties = node.properties; + if (!Array.isArray(properties)) { + + return null; + } + for (let i = 0; i < properties.length; i++) { if (properties[i].key.name === property) { return properties[i];