(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual)
| 822 | |
| 823 | return invokerFunction; |
| 824 | } function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) |
| 825 | { |
| 826 | const rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); |
| 827 | |
| 828 | methodName = readLatin1String(methodName); rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); whenDependentTypesAreResolved([], [rawClassType], function (classType) |
| 829 | { |
| 830 | classType = classType[0]; const humanName = `${classType.name}.${methodName}`; |
| 831 | |
| 832 | if (isPureVirtual) { classType.registeredClass.pureVirtualFunctions.push(methodName); } function unboundTypesHandler() { throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes); } const proto = classType.registeredClass.instancePrototype; const method = proto[methodName]; |
| 833 | |
| 834 | if (undefined === method || undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2) { unboundTypesHandler.argCount = argCount - 2; unboundTypesHandler.className = classType.name; proto[methodName] = unboundTypesHandler; } |
| 835 | else { ensureOverloadTable(proto, methodName, humanName); proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; }whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) |
| 836 | { |
| 837 | const memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); |
| 838 | |
| 839 | if (undefined === proto[methodName].overloadTable) { memberFunction.argCount = argCount - 2; proto[methodName] = memberFunction; } |
| 840 | else { proto[methodName].overloadTable[argCount - 2] = memberFunction; } |
| 841 | |
| 842 | return []; |
| 843 | }); |
| 844 | |
| 845 | return []; |
| 846 | }); |
| 847 | } const emval_free_list = []; const emval_handle_array = [{}, { value: undefined }, { value: null }, { value: true }, { value: false }]; |
| 848 | |
| 849 | function __emval_decref(handle) { if (handle > 4 && --emval_handle_array[handle].refcount === 0) { emval_handle_array[handle] = undefined; emval_free_list.push(handle); } } function count_emval_handles() |
| 850 | { |
nothing calls this directly
no test coverage detected