1
0
Fork 0
firefox/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/valid-lazy.rst
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

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();
}