MCPcopy
hub / github.com/rrweb-io/rrweb / getUntaintedAccessor

Function getUntaintedAccessor

packages/utils/src/index.ts:138–164  ·  view source on GitHub ↗
(
  key: K,
  instance: BasePrototypeCache[K],
  accessor: T,
)

Source from the content-addressed store, hash-verified

136> = {};
137
138export function getUntaintedAccessor<
139 K extends keyof BasePrototypeCache,
140 T extends keyof BasePrototypeCache[K],
141>(
142 key: K,
143 instance: BasePrototypeCache[K],
144 accessor: T,
145): BasePrototypeCache[K][T] {
146 const cacheKey = `${key}.${String(accessor)}`;
147 if (untaintedAccessorCache[cacheKey])
148 return untaintedAccessorCache[cacheKey].call(
149 instance,
150 ) as BasePrototypeCache[K][T];
151
152 const untaintedPrototype = getUntaintedPrototype(key);
153 // eslint-disable-next-line @typescript-eslint/unbound-method
154 const untaintedAccessor = Object.getOwnPropertyDescriptor(
155 untaintedPrototype,
156 accessor,
157 )?.get;
158
159 if (!untaintedAccessor) return instance[accessor];
160
161 untaintedAccessorCache[cacheKey] = untaintedAccessor;
162
163 return untaintedAccessor.call(instance) as BasePrototypeCache[K][T];
164}
165
166type BaseMethod<K extends keyof BasePrototypeCache> = (
167 this: BasePrototypeCache[K],

Callers 9

ownerDocumentFunction · 0.85
childNodesFunction · 0.85
parentNodeFunction · 0.85
parentElementFunction · 0.85
textContentFunction · 0.85
hostFunction · 0.85
shadowRootFunction · 0.85
querySelectorFunction · 0.85
querySelectorAllFunction · 0.85

Calls 1

getUntaintedPrototypeFunction · 0.85

Tested by

no test coverage detected