Skip to content

Possible invalid js for undefined functions? #7361

Closed
@yowl

Description

@yowl

Given the llvm:

define i1 @"S_P_CoreLib_System_Collections_Generic_EqualityComparer_1<S_P_CoreLib_System_Threading_WaitSubsystem_ThreadWaitInfo_WaitedListNode>__System_Collections_IEqualityComparer_Equals"(i8*) {

and

@"__EEType_<PInvokeDelegateWrapper>S_P_CoreLib_Interop_Globalization_EnumCalendarInfoCallback___SYMBOL" = internal constant i32* bitcast ([6 x i32*]* @"__EEType_<PInvokeDelegateWrapper>S_P_CoreLib_Interop_Globalization_EnumCalendarInfoCallback" to i32*)

and the command

D:\GitHub\emsdk\emscripten\1.38.11\emcc.bat "D:\GitHub\corert\corert\tests\src\Simple\HelloWasm\obj\Debug\wasm\native\HelloWasm.bc" -o "D:\GitHub\corert\corert\tests\src\Simple\HelloWasm\bin\Debug\wasm\native\HelloWasm.html" -s WASM=0 -s ALLOW_MEMORY_GROWTH=1 --emrun  "D:\GitHub\corert\corert\tests\\..\bin\WebAssembly.wasm.Debug/sdk/libPortableRuntime.bc" "D:\GitHub\corert\corert\tests\\..\bin\WebAssembly.wasm.Debug/sdk/libbootstrappercpp.bc" "D:\GitHub\corert\corert\tests\\..\bin\WebAssembly.wasm.Debug/sdk/libSystem.Private.CoreLib.Native.bc"  -g3

Both the llvm functions have angle brackets in the names, but the first has the brackets converted to _s, e.g.:

function _S_P_CoreLib_System_Collections_Generic_EqualityComparer_1_S_P_CoreLib_System_Threading_WaitSubsystem_ThreadWaitInfo_WaitedListNode___System_Collections_IEqualityComparer_Equals($0) {

But the second is actually undefined so is written out

// {{PRE_LIBRARY}}


  function _<PInvokeDelegateWrapper>S_P_CoreLib_Interop_Globalization_EnumCalendarInfoCallback__<ForwardNativeFunctionWrapper>S_P_CoreLib_Interop_Globalization_EnumCalendarInfoCallback() {
  err('missing function: <PInvokeDelegateWrapper>S_P_CoreLib_Interop_Globalization_EnumCalendarInfoCallback__<ForwardNativeFunctionWrapper>S_P_CoreLib_Interop_Globalization_EnumCalendarInfoCallback'); abort(-1);
  }

And as you can see still contains the <>s which are invalid JS AFAIK. Is this a bug or have I misunderstood something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions