diff --git a/src/lib/libemval.js b/src/lib/libemval.js index aed8122e78038..08a803cdec3a4 100644 --- a/src/lib/libemval.js +++ b/src/lib/libemval.js @@ -331,7 +331,7 @@ var LibraryEmVal = { var offset = 0; var argsList = []; // 'obj?, arg0, arg1, arg2, ... , argN' - if (kind === /* FUNCTION */ 0) { + if (kind === {{{ cDefs['internal::EM_METHOD_CALLER_KIND::FUNCTION'] }}}) { argsList.push('obj'); } var params = ['retType']; @@ -344,7 +344,7 @@ var LibraryEmVal = { ` var arg${i} = argType${i}.readValueFromPointer(args${offset ? '+' + offset : ''});\n`; offset += types[i].argPackAdvance; } - var invoker = kind === /* CONSTRUCTOR */ 1 ? 'new func' : 'func.call'; + var invoker = kind === {{{ cDefs['internal::EM_METHOD_CALLER_KIND::CONSTRUCTOR'] }}} ? 'new func' : 'func.call'; functionBody += ` var rv = ${invoker}(${argsList.join(', ')});\n`; if (!retType.isVoid) { diff --git a/src/struct_info_cxx.json b/src/struct_info_cxx.json index 2a8ffb5e571e2..70a898454382c 100644 --- a/src/struct_info_cxx.json +++ b/src/struct_info_cxx.json @@ -23,5 +23,13 @@ "wasmfs::File::DirectoryKind", "wasmfs::File::SymlinkKind" ] + }, + // Embind + { + "file": "emscripten/val.h", + "defines": [ + "emscripten::internal::EM_METHOD_CALLER_KIND::FUNCTION", + "emscripten::internal::EM_METHOD_CALLER_KIND::CONSTRUCTOR" + ] } ] diff --git a/src/struct_info_generated.json b/src/struct_info_generated.json index a8a0510a44429..9df32182481ab 100644 --- a/src/struct_info_generated.json +++ b/src/struct_info_generated.json @@ -515,7 +515,9 @@ "__WASI_RIGHTS_PATH_SYMLINK": 16777216, "__WASI_RIGHTS_PATH_UNLINK_FILE": 67108864, "__WASI_RIGHTS_POLL_FD_READWRITE": 134217728, - "__WASI_RIGHTS_SOCK_SHUTDOWN": 268435456 + "__WASI_RIGHTS_SOCK_SHUTDOWN": 268435456, + "internal::EM_METHOD_CALLER_KIND::CONSTRUCTOR": 1, + "internal::EM_METHOD_CALLER_KIND::FUNCTION": 0 }, "structs": { "AudioParamFrame": { diff --git a/src/struct_info_generated_wasm64.json b/src/struct_info_generated_wasm64.json index 1854bde9c4180..c9fb1215b6e56 100644 --- a/src/struct_info_generated_wasm64.json +++ b/src/struct_info_generated_wasm64.json @@ -515,7 +515,9 @@ "__WASI_RIGHTS_PATH_SYMLINK": 16777216, "__WASI_RIGHTS_PATH_UNLINK_FILE": 67108864, "__WASI_RIGHTS_POLL_FD_READWRITE": 134217728, - "__WASI_RIGHTS_SOCK_SHUTDOWN": 268435456 + "__WASI_RIGHTS_SOCK_SHUTDOWN": 268435456, + "internal::EM_METHOD_CALLER_KIND::CONSTRUCTOR": 1, + "internal::EM_METHOD_CALLER_KIND::FUNCTION": 0 }, "structs": { "AudioParamFrame": {