(myTypes, dependentTypes, getTypeConverters)
| 1771 | throw new InternalError(message); |
| 1772 | } |
| 1773 | function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { |
| 1774 | myTypes.forEach(function(type) { |
| 1775 | typeDependencies[type] = dependentTypes; |
| 1776 | }); |
| 1777 | |
| 1778 | function onComplete(typeConverters) { |
| 1779 | var myTypeConverters = getTypeConverters(typeConverters); |
| 1780 | if (myTypeConverters.length !== myTypes.length) { |
| 1781 | throwInternalError('Mismatched type converter count'); |
| 1782 | } |
| 1783 | for (var i = 0; i < myTypes.length; ++i) { |
| 1784 | registerType(myTypes[i], myTypeConverters[i]); |
| 1785 | } |
| 1786 | } |
| 1787 | |
| 1788 | var typeConverters = new Array(dependentTypes.length); |
| 1789 | var unregisteredTypes = []; |
| 1790 | var registered = 0; |
| 1791 | dependentTypes.forEach(function(dt, i) { |
| 1792 | if (registeredTypes.hasOwnProperty(dt)) { |
| 1793 | typeConverters[i] = registeredTypes[dt]; |
| 1794 | } else { |
| 1795 | unregisteredTypes.push(dt); |
| 1796 | if (!awaitingDependencies.hasOwnProperty(dt)) { |
| 1797 | awaitingDependencies[dt] = []; |
| 1798 | } |
| 1799 | awaitingDependencies[dt].push(function() { |
| 1800 | typeConverters[i] = registeredTypes[dt]; |
| 1801 | ++registered; |
| 1802 | if (registered === unregisteredTypes.length) { |
| 1803 | onComplete(typeConverters); |
| 1804 | } |
| 1805 | }); |
| 1806 | } |
| 1807 | }); |
| 1808 | if (0 === unregisteredTypes.length) { |
| 1809 | onComplete(typeConverters); |
| 1810 | } |
| 1811 | } |
| 1812 | function __embind_finalize_value_object(structType) { |
| 1813 | var reg = structRegistrations[structType]; |
| 1814 | delete structRegistrations[structType]; |
no test coverage detected