@@ -14,6 +14,11 @@ var LibraryEmbind = {
1414 this . name = name ;
1515 }
1616 } ,
17+ $IntegerType : class IntegerType {
18+ constructor ( typeId ) {
19+ this . typeId = typeId ;
20+ }
21+ } ,
1722 $Argument : class Argument {
1823 constructor ( name , type ) {
1924 this . name = name ;
@@ -193,21 +198,22 @@ var LibraryEmbind = {
193198 const jsString = 'ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|string' ;
194199 this . builtInToJsName = new Map ( [
195200 [ 'bool' , 'boolean' ] ,
196- [ 'char' , 'number' ] ,
197- [ 'unsigned char' , 'number' ] ,
198- [ 'int' , 'number' ] ,
199- [ 'unsigned int' , 'number' ] ,
200- [ 'unsigned long' , 'number' ] ,
201201 [ 'float' , 'number' ] ,
202202 [ 'double' , 'number' ] ,
203203 [ 'void' , 'void' ] ,
204204 [ 'std::string' , jsString ] ,
205205 [ 'std::basic_string<unsigned char>' , jsString ] ,
206+ [ 'std::wstring' , jsString ] ,
207+ [ 'std::u16string' , jsString ] ,
208+ [ 'std::u32string' , jsString ] ,
206209 [ 'emscripten::val' , 'any' ] ,
207210 ] ) ;
208211 }
209212
210213 typeToJsName ( type ) {
214+ if ( type instanceof IntegerType ) {
215+ return 'number' ;
216+ }
211217 if ( type instanceof PrimitiveType ) {
212218 if ( ! this . builtInToJsName . has ( type . name ) ) {
213219 throw new Error ( `Missing primitive type to TS type for '${ type . name } '` ) ;
@@ -247,6 +253,10 @@ var LibraryEmbind = {
247253 name = readLatin1String ( name ) ;
248254 registerType ( id , new PrimitiveType ( id , name ) ) ;
249255 } ,
256+ $registerIntegerType__deps : [ '$registerType' , '$IntegerType' ] ,
257+ $registerIntegerType : ( id ) => {
258+ registerType ( id , new IntegerType ( id ) ) ;
259+ } ,
250260 $createFunctionDefinition__deps : [ '$FunctionDefinition' , '$heap32VectorToArray' , '$readLatin1String' , '$Argument' , '$whenDependentTypesAreResolved' ] ,
251261 $createFunctionDefinition : ( name , argCount , rawArgTypesAddr , hasThis , cb ) => {
252262 const argTypes = heap32VectorToArray ( argCount , rawArgTypesAddr ) ;
@@ -277,9 +287,9 @@ var LibraryEmbind = {
277287 _embind_register_bool : ( rawType , name , trueValue , falseValue ) => {
278288 registerPrimitiveType ( rawType , name ) ;
279289 } ,
280- _embind_register_integer__deps : [ '$registerPrimitiveType ' ] ,
290+ _embind_register_integer__deps : [ '$registerIntegerType ' ] ,
281291 _embind_register_integer : ( primitiveType , name , size , minRange , maxRange ) => {
282- registerPrimitiveType ( primitiveType , name ) ;
292+ registerIntegerType ( primitiveType , name ) ;
283293 } ,
284294 _embind_register_bigint : ( primitiveType , name , size , minRange , maxRange ) => {
285295 registerPrimitiveType ( primitiveType , name ) ;
@@ -333,7 +343,7 @@ var LibraryEmbind = {
333343 ) ;
334344
335345 } ,
336- _embind_register_class_constructor__deps : [ '$whenDependentTypesAreResolved' ] ,
346+ _embind_register_class_constructor__deps : [ '$whenDependentTypesAreResolved' , '$createFunctionDefinition' ] ,
337347 _embind_register_class_constructor : function (
338348 rawClassType ,
339349 argCount ,
@@ -428,6 +438,8 @@ var LibraryEmbind = {
428438 return [ ] ;
429439 } ) ;
430440 } ,
441+ // Stub function. This is called a when extending an object and not needed for TS generation.
442+ _embind_create_inheriting_constructor : ( constructorName , wrapperType , properties ) => { } ,
431443 _embind_register_enum__deps : [ '$readLatin1String' , '$EnumDefinition' , '$moduleDefinitions' ] ,
432444 _embind_register_enum : function ( rawType , name , size , isSigned ) {
433445 name = readLatin1String ( name ) ;
@@ -559,7 +571,7 @@ var LibraryEmbind = {
559571 $embindEmitTypes__postset : 'addOnInit(embindEmitTypes);' ,
560572 $embindEmitTypes : ( ) => {
561573 for ( const typeId in awaitingDependencies ) {
562- throwBindingError ( `Missing type definition for '${ getTypeName ( typeId ) } '` ) ;
574+ throwBindingError ( `Missing binding for type: '${ getTypeName ( typeId ) } ' typeId: ${ typeId } ` ) ;
563575 }
564576 const printer = new TsPrinter ( moduleDefinitions ) ;
565577 printer . print ( ) ;
0 commit comments