MCPcopy Index your code
hub / github.com/angular/angular / patchMicroTask

Function patchMicroTask

packages/zone.js/lib/common/utils.ts:510–540  ·  view source on GitHub ↗
(
  obj: any,
  funcName: string,
  metaCreator: (self: any, args: any[]) => MicroTaskMeta,
)

Source from the content-addressed store, hash-verified

508}
509
510export function patchMicroTask(
511 obj: any,
512 funcName: string,
513 metaCreator: (self: any, args: any[]) => MicroTaskMeta,
514) {
515 let setNative: Function | null = null;
516
517 function scheduleTask(task: Task) {
518 const data = <MacroTaskMeta>task.data;
519 data.args[data.cbIdx] = function () {
520 task.invoke.apply(this, arguments);
521 };
522 setNative!.apply(data.target, data.args);
523 return task;
524 }
525
526 setNative = patchMethod(
527 obj,
528 funcName,
529 (delegate: Function) =>
530 function (self: any, args: any[]) {
531 const meta = metaCreator(self, args);
532 if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {
533 return Zone.current.scheduleMicroTask(meta.name, args[meta.cbIdx], meta, scheduleTask);
534 } else {
535 // cause an error by calling it directly.
536 return delegate.apply(self, args);
537 }
538 },
539 );
540}
541
542export function attachOriginToPatched(patched: Function, original: any) {
543 (patched as any)[zoneSymbol('OriginalDelegate')] = original;

Callers 1

patchNodeFunction · 0.90

Calls 3

patchMethodFunction · 0.85
scheduleMicroTaskMethod · 0.65
applyMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…