55 lines
1.3 KiB
ReStructuredText
55 lines
1.3 KiB
ReStructuredText
valid-lazy
|
|
==========
|
|
|
|
Ensures that definitions and uses of properties on the ``lazy`` object are valid.
|
|
This rule checks for using unknown properties, duplicated symbols, unused
|
|
symbols, and also lazy getter used at top-level unconditionally.
|
|
|
|
Examples of incorrect code for this rule:
|
|
-----------------------------------------
|
|
|
|
.. code-block:: js
|
|
|
|
const lazy = {};
|
|
if (x) {
|
|
// Unknown lazy member property {{name}}
|
|
lazy.bar.foo();
|
|
}
|
|
|
|
.. code-block:: js
|
|
|
|
const lazy = {};
|
|
ChromeUtils.defineESModuleGetters(lazy, { foo: "foo.sys.mjs"});
|
|
|
|
// Duplicate symbol foo being added to lazy.
|
|
ChromeUtils.defineLazyGetter(lazy, "foo", () => {});
|
|
if (x) {
|
|
lazy.foo3.bar();
|
|
}
|
|
|
|
.. code-block:: js
|
|
|
|
const lazy = {};
|
|
// Unused lazy property foo
|
|
ChromeUtils.defineESModuleGetters(lazy, { foo: "foo.sys.mjs"});
|
|
|
|
.. code-block:: js
|
|
|
|
const lazy = {};
|
|
ChromeUtils.defineESModuleGetters(lazy, { foo: "foo.sys.mjs"});
|
|
// Used at top-level unconditionally.
|
|
lazy.foo.bar();
|
|
|
|
Examples of correct code for this rule:
|
|
---------------------------------------
|
|
|
|
.. code-block:: js
|
|
|
|
const lazy = {};
|
|
ChromeUtils.defineLazyGetter(lazy, "foo1", () => {});
|
|
ChromeUtils.defineESModuleGetters(lazy, { foo2: "foo2.sys.mjs"});
|
|
|
|
if (x) {
|
|
lazy.foo1.bar();
|
|
lazy.foo2.bar();
|
|
}
|