MCPcopy Create free account
hub / github.com/TruthHun/BookStack / mergeVNodeHook

Function mergeVNodeHook

static/vuejs/vue.runtime.js:1704–1732  ·  view source on GitHub ↗
(def, hookKey, hook)

Source from the content-addressed store, hash-verified

1702/* */
1703
1704function mergeVNodeHook (def, hookKey, hook) {
1705 var invoker;
1706 var oldHook = def[hookKey];
1707
1708 function wrappedHook () {
1709 hook.apply(this, arguments);
1710 // important: remove merged hook to ensure it's called only once
1711 // and prevent memory leak
1712 remove(invoker.fns, wrappedHook);
1713 }
1714
1715 if (!oldHook) {
1716 // no existing hook
1717 invoker = createFnInvoker([wrappedHook]);
1718 } else {
1719 /* istanbul ignore if */
1720 if (oldHook.fns && oldHook.merged) {
1721 // already a merged invoker
1722 invoker = oldHook;
1723 invoker.fns.push(wrappedHook);
1724 } else {
1725 // existing plain hook
1726 invoker = createFnInvoker([oldHook, wrappedHook]);
1727 }
1728 }
1729
1730 invoker.merged = true;
1731 def[hookKey] = invoker;
1732}
1733
1734/* */
1735

Callers 3

_updateFunction · 0.70
enterFunction · 0.70
vue.runtime.jsFile · 0.70

Calls 1

createFnInvokerFunction · 0.70

Tested by

no test coverage detected