mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 13:55:43 +00:00
Bug 1441460 - ESLint's no-define-cc-etc looks at the wrong property item when checking for Cc/Ci/Cu/Cr usage. r=florian
MozReview-Commit-ID: IkSkCWqBHOn --HG-- extra : rebase_source : 6b3a2977d4b157aea54c6e3f6960d3673e751a34
This commit is contained in:
parent
bce1a3def1
commit
294979dc32
@ -6,7 +6,6 @@ const TEST_MSG = "ContentSearchTest";
|
||||
const CONTENT_SEARCH_MSG = "ContentSearch";
|
||||
const TEST_CONTENT_SCRIPT_BASENAME = "contentSearch.js";
|
||||
|
||||
const { utils: Cu } = Components;
|
||||
Cu.importGlobalProperties(["XMLHttpRequest"]);
|
||||
|
||||
var gMsgMan;
|
||||
|
@ -4,13 +4,6 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
const {
|
||||
classes: Cc,
|
||||
interfaces: Ci,
|
||||
utils: Cu,
|
||||
results: Cr
|
||||
} = Components;
|
||||
|
||||
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
@ -24,12 +24,10 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
var {classes: Cc, interfaces: Ci, utils: Cu} = Components; /* global Components */
|
||||
|
||||
ChromeUtils.import("resource://gre/modules/Accounts.jsm"); /* global Accounts */
|
||||
ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm"); /* global PromiseUtils */
|
||||
ChromeUtils.import("resource://gre/modules/Services.jsm"); /* global Services */
|
||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm"); /* global XPCOMUtils */
|
||||
ChromeUtils.import("resource://gre/modules/Accounts.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
const ACTION_URL_PARAM = "action";
|
||||
|
||||
|
@ -13,14 +13,12 @@ Migrated from Robocop: https://bugzilla.mozilla.org/show_bug.cgi?id=1184186
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
||||
<script type="application/javascript">
|
||||
|
||||
const { classes: Cc, interfaces: Ci, utils: Cu } = Components; /* global Components */
|
||||
|
||||
ChromeUtils.import("resource://gre/modules/Promise.jsm"); /* global Promise */
|
||||
ChromeUtils.import("resource://gre/modules/Services.jsm"); /* global Services */
|
||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm"); /* global XPCOMUtils */
|
||||
ChromeUtils.import("resource://gre/modules/Task.jsm"); /* global Task */
|
||||
ChromeUtils.import("resource://gre/modules/Promise.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/Task.jsm");
|
||||
ChromeUtils.defineModuleGetter(this, "WebChannel",
|
||||
"resource://gre/modules/WebChannel.jsm"); /* global WebChannel */
|
||||
"resource://gre/modules/WebChannel.jsm");
|
||||
|
||||
const HTTP_PATH = "http://mochi.test:8888";
|
||||
const HTTP_ENDPOINT = "/chrome/mobile/android/tests/browser/chrome/web_channel.html";
|
||||
|
@ -4,12 +4,7 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
const {
|
||||
Constructor: CC,
|
||||
classes: Cc,
|
||||
interfaces: Ci,
|
||||
results: Cr,
|
||||
} = Components;
|
||||
const CC = Components.Constructor;
|
||||
|
||||
ChromeUtils.import("resource://gre/modules/EventEmitter.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
|
@ -7,8 +7,7 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
const { classes: Cc, interfaces: Ci, manager: Cm, results: Cr,
|
||||
utils: Cu } = Components;
|
||||
const Cm = Components.manager;
|
||||
|
||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
|
@ -4,8 +4,6 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
const {classes: Cc, interfaces: Ci, results: Cr, utils: Cu, manager: Cm} =
|
||||
Components;
|
||||
// 1 day default
|
||||
const DEFAULT_SECONDS_BETWEEN_CHECKS = 60 * 60 * 24;
|
||||
|
||||
|
@ -4,9 +4,6 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
const {classes: Cc, interfaces: Ci, results: Cr, utils: Cu, manager: Cm} =
|
||||
Components;
|
||||
|
||||
var EXPORTED_SYMBOLS = [ "GMP_PLUGIN_IDS",
|
||||
"GMPPrefs",
|
||||
"GMPUtils",
|
||||
|
@ -29,9 +29,9 @@ module.exports = function(context) {
|
||||
|
||||
if (node.id.type == "ObjectPattern") {
|
||||
for (let property of node.id.properties) {
|
||||
if (componentsBlacklist.includes(property.key.name)) {
|
||||
if (componentsBlacklist.includes(property.value.name)) {
|
||||
context.report(node,
|
||||
`${property.key.name} is now defined in global scope, a separate definition is no longer necessary.`);
|
||||
`${property.value.name} is now defined in global scope, a separate definition is no longer necessary.`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "eslint-plugin-mozilla",
|
||||
"version": "0.9.1",
|
||||
"version": "0.9.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "eslint-plugin-mozilla",
|
||||
"version": "0.9.1",
|
||||
"version": "0.9.2",
|
||||
"description": "A collection of rules that help enforce JavaScript coding standard in the Mozilla project.",
|
||||
"keywords": [
|
||||
"eslint",
|
||||
|
@ -16,19 +16,24 @@ const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
|
||||
// Tests
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
function invalidCode(code, varName) {
|
||||
return {code, errors: [{
|
||||
message: `${varName} is now defined in global scope, a separate definition is no longer necessary.`,
|
||||
type: "VariableDeclarator"
|
||||
}]};
|
||||
function invalidCode(code, varNames) {
|
||||
if (!Array.isArray(varNames)) {
|
||||
varNames = [varNames];
|
||||
}
|
||||
return {
|
||||
code, errors: varNames.map(name => [{
|
||||
message: `${name} is now defined in global scope, a separate definition is no longer necessary.`,
|
||||
type: "VariableDeclarator"
|
||||
}])
|
||||
};
|
||||
}
|
||||
|
||||
ruleTester.run("no-define-cc-etc", rule, {
|
||||
valid: [
|
||||
"var Cm = Components.manager;",
|
||||
"const CC = Components.Constructor;",
|
||||
"var {CC: Constructor, Cm: manager} = Components;",
|
||||
"const {CC: Constructor, Cm: manager} = Components;",
|
||||
"var {Constructor: CC, manager: Cm} = Components;",
|
||||
"const {Constructor: CC, manager: Cm} = Components;",
|
||||
"foo.Cc.test();"
|
||||
],
|
||||
invalid: [
|
||||
@ -38,17 +43,10 @@ ruleTester.run("no-define-cc-etc", rule, {
|
||||
invalidCode("let Cr;", "Cr"),
|
||||
invalidCode("let Cu;", "Cu"),
|
||||
invalidCode("var Cc = Components.classes;", "Cc"),
|
||||
invalidCode("const {Cc} = Components;", "Cc"),
|
||||
invalidCode("let {Cc, Cm} = Components", "Cc"),
|
||||
invalidCode("const Cu = Components.utils;", "Cu"), {
|
||||
code: "var {Ci: interfaces, Cc: classes} = Components;",
|
||||
errors: [{
|
||||
message: `Ci is now defined in global scope, a separate definition is no longer necessary.`,
|
||||
type: "VariableDeclarator"
|
||||
}, {
|
||||
message: `Cc is now defined in global scope, a separate definition is no longer necessary.`,
|
||||
type: "VariableDeclarator"
|
||||
}]
|
||||
}
|
||||
invalidCode("const {classes: Cc} = Components;", "Cc"),
|
||||
invalidCode("let {classes: Cc, manager: Cm} = Components", "Cc"),
|
||||
invalidCode("const Cu = Components.utils;", "Cu"),
|
||||
invalidCode("var Ci = Components.interfaces, Cc = Components.classes;", ["Ci", "Cc"]),
|
||||
invalidCode("var {'interfaces': Ci, 'classes': Cc} = Components;", ["Ci", "Cc"])
|
||||
]
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user