Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ public static IEnumerable<object[]> MarshalObjectArrayCases()
yield return new object[] { new object[] { 1.1d, new DateTime(2022, 5, 8, 14, 55, 01, DateTimeKind.Utc), false, true } };
yield return new object[] { new object[] { new double?(1.1d), new DateTime?(new DateTime(2022, 5, 8, 14, 55, 01, DateTimeKind.Utc)), new bool?(false), new bool?(true) } };
yield return new object[] { new object[] { null, new object(), new SomethingRef(), new SomethingStruct(), new Exception("test") } };
yield return new object[] { new object[] { JavaScriptTestHelper.createData("test"), JavaScriptTestHelper.createException("test") } };
yield return new object[] { new object[] { "JSData" } }; // special cased, so we call createData in the test itself
yield return new object[] { new object[] { new byte[] { }, new int[] { }, new double[] { }, new string[] { }, new object[] { } } };
yield return new object[] { new object[] { new byte[] { 1, 2, 3 }, new int[] { 1, 2, 3 }, new double[] { 1, 2, 3 }, new string[] { "a", "b", "c" }, new object[] { } } };
yield return new object[] { new object[] { new object[] { new byte[] { 1, 2, 3 }, new int[] { 1, 2, 3 }, new double[] { 1, 2, 3 }, new string[] { "a", "b", "c" } , new object(), new SomethingRef(), new SomethingStruct(), new Exception("test") } } };
Expand All @@ -265,15 +265,18 @@ public static IEnumerable<object[]> MarshalObjectArrayCases()
[MemberData(nameof(MarshalObjectArrayCases))]
public unsafe void JsImportObjectArray(object[]? expected)
{
if (expected?.Length == 1 && expected[0] is string s && s == "JSData")
{
expected = new object[] { new object[] { JavaScriptTestHelper.createData("test"), JavaScriptTestHelper.createException("test") } };
}
var actual = JavaScriptTestHelper.echo1_ObjectArray(expected);
Assert.Equal(expected, actual);


if (expected != null) for (int i = 0; i < expected.Length; i++)
{
var actualI = JavaScriptTestHelper.store_ObjectArray(expected, i);
Assert.Equal(expected[i], actualI);
}
{
var actualI = JavaScriptTestHelper.store_ObjectArray(expected, i);
Assert.Equal(expected[i], actualI);
}
}

public static IEnumerable<object[]> MarshalObjectArrayCasesToDouble()
Expand Down
2 changes: 1 addition & 1 deletion src/mono/wasm/runtime/dotnet.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ declare class ManagedError extends Error implements IDisposable {
get isDisposed(): boolean;
toString(): string;
}
declare enum MemoryViewType {
declare const enum MemoryViewType {
Byte = 0,
Int32 = 1,
Double = 2
Expand Down
8 changes: 4 additions & 4 deletions src/mono/wasm/runtime/marshal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -364,10 +364,10 @@ export function array_element_size(element_type: MarshalerType): number {
: -1;
}

export enum MemoryViewType {
Byte,
Int32,
Double,
export const enum MemoryViewType {
Byte = 0,
Int32 = 1,
Double = 2,
}

abstract class MemoryView implements IMemoryView, IDisposable {
Expand Down
1 change: 1 addition & 0 deletions src/mono/wasm/runtime/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ const terserConfig = {
// because of stack walk at src/mono/wasm/debugger/BrowserDebugProxy/MonoProxy.cs
// and unit test at src\libraries\System.Private.Runtime.InteropServices.JavaScript\tests\timers.js
keep_fnames: /(mono_wasm_runtime_ready|mono_wasm_fire_debugger_agent_message|mono_wasm_set_timeout_exec)/,
keep_classnames: /(ManagedObject|ManagedError|Span|ArraySegment|WasmRootBuffer|SessionOptionsBuilder)/,
Comment thread
pavelsavara marked this conversation as resolved.
},
};
const plugins = isDebug ? [writeOnChangePlugin()] : [terser(terserConfig), writeOnChangePlugin()];
Expand Down