valid-lazy.rst (1349B)
1 valid-lazy 2 ========== 3 4 Ensures that definitions and uses of properties on the ``lazy`` object are valid. 5 This rule checks for using unknown properties, duplicated symbols, unused 6 symbols, and also lazy getter used at top-level unconditionally. 7 8 Examples of incorrect code for this rule: 9 ----------------------------------------- 10 11 .. code-block:: js 12 13 const lazy = {}; 14 if (x) { 15 // Unknown lazy member property {{name}} 16 lazy.bar.foo(); 17 } 18 19 .. code-block:: js 20 21 const lazy = {}; 22 ChromeUtils.defineESModuleGetters(lazy, { foo: "foo.sys.mjs"}); 23 24 // Duplicate symbol foo being added to lazy. 25 ChromeUtils.defineLazyGetter(lazy, "foo", () => {}); 26 if (x) { 27 lazy.foo3.bar(); 28 } 29 30 .. code-block:: js 31 32 const lazy = {}; 33 // Unused lazy property foo 34 ChromeUtils.defineESModuleGetters(lazy, { foo: "foo.sys.mjs"}); 35 36 .. code-block:: js 37 38 const lazy = {}; 39 ChromeUtils.defineESModuleGetters(lazy, { foo: "foo.sys.mjs"}); 40 // Used at top-level unconditionally. 41 lazy.foo.bar(); 42 43 Examples of correct code for this rule: 44 --------------------------------------- 45 46 .. code-block:: js 47 48 const lazy = {}; 49 ChromeUtils.defineLazyGetter(lazy, "foo1", () => {}); 50 ChromeUtils.defineESModuleGetters(lazy, { foo2: "foo2.sys.mjs"}); 51 52 if (x) { 53 lazy.foo1.bar(); 54 lazy.foo2.bar(); 55 }