MCPcopy Index your code
hub / github.com/nodejs/node / defineReplaceableLazyAttribute

Function defineReplaceableLazyAttribute

lib/internal/util.js:631–672  ·  view source on GitHub ↗
(target, id, keys, writable = true, check)

Source from the content-addressed store, hash-verified

629}
630
631function defineReplaceableLazyAttribute(target, id, keys, writable = true, check) {
632 let mod;
633 for (let i = 0; i < keys.length; i++) {
634 const key = keys[i];
635 let value;
636 let setterCalled = false;
637
638 function get() {
639 if (check !== undefined) {
640 FunctionPrototypeCall(check, this);
641 }
642 if (setterCalled) {
643 return value;
644 }
645 mod ??= require(id);
646 value ??= mod[key];
647 return value;
648 }
649
650 ObjectDefineProperty(get, 'name', {
651 __proto__: null,
652 value: `get ${key}`,
653 });
654
655 function set(val) {
656 setterCalled = true;
657 value = val;
658 }
659 ObjectDefineProperty(set, 'name', {
660 __proto__: null,
661 value: `set ${key}`,
662 });
663
664 ObjectDefineProperty(target, key, {
665 __proto__: null,
666 enumerable: true,
667 configurable: true,
668 get,
669 set: writable ? set : undefined,
670 });
671 }
672}
673
674function exposeLazyInterfaces(target, id, keys) {
675 defineLazyProperties(target, id, keys, false);

Callers 3

setupNavigatorFunction · 0.85
setupWebStorageFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…