basant307/AI_Governance_Project
048
1"use strict";2var protobuf = require("../..");3 4/**5 * Debugging utility functions. Only present in debug builds.6 * @namespace7 */8var debug = protobuf.debug = module.exports = {};9 10var codegen = protobuf.util.codegen;11 12var debugFnRe = /function ([^(]+)\(([^)]*)\) {/g;13 14// Counts number of calls to any generated function15function codegen_debug() {16 codegen_debug.supported = codegen.supported;17 codegen_debug.verbose = codegen.verbose;18 var gen = codegen.apply(null, Array.prototype.slice.call(arguments));19 gen.str = (function(str) { return function str_debug() {20 return str.apply(null, Array.prototype.slice.call(arguments)).replace(debugFnRe, "function $1($2) {\n\t$1.calls=($1.calls|0)+1");21 };})(gen.str);22 return gen;23}24 25/**26 * Returns a list of unused types within the specified root.27 * @param {NamespaceBase} ns Namespace to search28 * @returns {Type[]} Unused types29 */30debug.unusedTypes = function unusedTypes(ns) {31 32 /* istanbul ignore if */33 if (!(ns instanceof protobuf.Namespace))34 throw TypeError("ns must be a Namespace");35 36 /* istanbul ignore if */37 if (!ns.nested)38 return [];39 40 var unused = [];41 for (var names = Object.keys(ns.nested), i = 0; i < names.length; ++i) {42 var nested = ns.nested[names[i]];43 if (nested instanceof protobuf.Type) {44 var calls = (nested.encode.calls|0)45 + (nested.decode.calls|0)46 + (nested.verify.calls|0)47 + (nested.toObject.calls|0)48 + (nested.fromObject.calls|0);49 if (!calls)50 unused.push(nested);51 } else if (nested instanceof protobuf.Namespace)52 Array.prototype.push.apply(unused, unusedTypes(nested));53 }54 return unused;55};56 57/**58 * Enables debugging extensions.59 * @returns {undefined}60 */61debug.enable = function enable() {62 protobuf.util.codegen = codegen_debug;63};64 65/**66 * Disables debugging extensions.67 * @returns {undefined}68 */69debug.disable = function disable() {70 protobuf.util.codegen = codegen;71};72 