Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
wip
  • Loading branch information
pavelsavara committed Jan 3, 2023
commit f54d2a35ea379cb214e5e577c4bab54b2b10fc99
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
<TargetFrameworks>$(NetCoreAppCurrent)-browser;$(NetCoreAppCurrent)</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<FeatureWasmThreads Condition="'$(TargetOS)' == 'Browser' and ('$(WasmEnableThreads)' == 'true' or '$(MonoWasmBuildVariant)' == 'multithread')">true</FeatureWasmThreads>
<FeatureWasmLegacyJsInterop Condition="'$(TargetOS)' == 'Browser' and '$(MonoWasmLegacyJsInterop)' == 'true'">true</FeatureWasmLegacyJsInterop>
<FeatureWasmLegacyJsInterop Condition="'$(FeatureWasmLegacyJsInterop)' == '' and '$(FeatureWasmThreads)' == 'true'">false</FeatureWasmLegacyJsInterop>
<FeatureWasmLegacyJsInterop Condition="'$(FeatureWasmLegacyJsInterop)' == '' and '$(FeatureWasmThreads)' != 'true'">true</FeatureWasmLegacyJsInterop>
<DefineConstants Condition="'$(FeatureWasmThreads)' == 'true'" >$(DefineConstants);FEATURE_WASM_THREADS</DefineConstants>
<DefineConstants Condition="'$(FeatureWasmLegacyJsInterop)' == 'true'" >$(DefineConstants);FEATURE_LEGACY_JS_INTEROP</DefineConstants>
</PropertyGroup>
Expand Down Expand Up @@ -60,7 +61,7 @@

<Compile Include="System\Runtime\InteropServices\JavaScript\JSSynchronizationContext.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'Browser' and '$(MonoWasmLegacyJsInterop)' == 'true'">
<ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'Browser' and '$(FeatureWasmLegacyJsInterop)' == 'true'">
<Compile Include="System\Runtime\InteropServices\JavaScript\Interop\LegacyExports.cs" />
<Compile Include="System\Runtime\InteropServices\JavaScript\Legacy\Runtime.cs" />
<Compile Include="System\Runtime\InteropServices\JavaScript\Legacy\Array.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ public static void MarshalPromise(Span<JSMarshalerArgument> arguments)
}

#region legacy
#if FEATURE_LEGACY_JS_INTEROP

public static object GetGlobalObject(string? str = null)
{
Expand All @@ -30,7 +31,7 @@ public static object GetGlobalObject(string? str = null)
if (exception != 0)
throw new JSException(SR.Format(SR.ErrorResolvingFromGlobalThis, str));

JSHostImplementation.ReleaseInFlight(jsObj);
LegacyHostImplementation.ReleaseInFlight(jsObj);
return jsObj;
}

Expand All @@ -43,6 +44,7 @@ public static IntPtr CreateCSOwnedObject(string typeName, object[] parms)
return (IntPtr)(int)res;
}

#endif
#endregion
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,6 @@ public static void ReleaseCSOwnedObject(nint jsHandle)
throw new InvalidOperationException();
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void ReleaseInFlight(object obj)
{
JSObject? jsObj = obj as JSObject;
jsObj?.ReleaseInFlight();
}

// A JSOwnedObject is a managed object with its lifetime controlled by javascript.
// The managed side maintains a strong reference to the object, while the JS side
// maintains a weak reference and notifies the managed side if the JS wrapper object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,22 @@ public partial class JSObject
{
internal nint JSHandle;

#if FEATURE_LEGACY_JS_INTEROP
internal GCHandle? InFlight;
internal int InFlightCounter;
#endif
private bool _isDisposed;

internal JSObject(IntPtr jsHandle)
{
JSHandle = jsHandle;
#if FEATURE_LEGACY_JS_INTEROP
InFlight = null;
InFlightCounter = 0;
#endif
}

#if FEATURE_LEGACY_JS_INTEROP
internal void AddInFlight()
{
ObjectDisposedException.ThrowIf(IsDisposed, this);
Expand Down Expand Up @@ -53,6 +58,7 @@ internal void ReleaseInFlight()
}
}
}
#endif

/// <inheritdoc />
public override bool Equals([NotNullWhen(true)] object? obj) => obj is JSObject other && JSHandle == other.JSHandle;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public object this[int i]

if (exception != 0)
throw new JSException((string)indexValue);
JSHostImplementation.ReleaseInFlight(indexValue);
LegacyHostImplementation.ReleaseInFlight(indexValue);
return indexValue;
}
set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ namespace System.Runtime.InteropServices.JavaScript
[SupportedOSPlatform("browser")]
internal static class LegacyHostImplementation
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void ReleaseInFlight(object obj)
{
JSObject? jsObj = obj as JSObject;
jsObj?.ReleaseInFlight();
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void RegisterCSOwnedObject(JSObject proxy)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public static object Invoke(this JSObject self, string method, params object?[]
Interop.Runtime.InvokeJSWithArgsRef(self.JSHandle, method, args, out int exception, out object res);
if (exception != 0)
throw new JSException((string)res);
JSHostImplementation.ReleaseInFlight(res);
LegacyHostImplementation.ReleaseInFlight(res);
return res;
}

Expand Down Expand Up @@ -74,7 +74,7 @@ public static object GetObjectProperty(this JSObject self, string name)
Interop.Runtime.GetObjectPropertyRef(self.JSHandle, name, out int exception, out object propertyValue);
if (exception != 0)
throw new JSException((string)propertyValue);
JSHostImplementation.ReleaseInFlight(propertyValue);
LegacyHostImplementation.ReleaseInFlight(propertyValue);
return propertyValue;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,18 @@
<TestRuntime>true</TestRuntime>
<WasmXHarnessArgs>$(WasmXHarnessArgs) --engine-arg=--expose-gc --web-server-use-cop</WasmXHarnessArgs>
<NoWarn>0612</NoWarn>
<FeatureWasmThreads Condition="'$(TargetOS)' == 'Browser' and ('$(WasmEnableThreads)' == 'true' or '$(MonoWasmBuildVariant)' == 'multithread')">true</FeatureWasmThreads>
<FeatureWasmLegacyJsInterop Condition="'$(FeatureWasmLegacyJsInterop)' == '' and '$(FeatureWasmThreads)' == 'true'">false</FeatureWasmLegacyJsInterop>
<FeatureWasmLegacyJsInterop Condition="'$(FeatureWasmLegacyJsInterop)' == '' and '$(FeatureWasmThreads)' != 'true'">true</FeatureWasmLegacyJsInterop>
<DefineConstants Condition="'$(FeatureWasmThreads)' == 'true'" >$(DefineConstants);FEATURE_WASM_THREADS</DefineConstants>
<DefineConstants Condition="'$(FeatureWasmLegacyJsInterop)' == 'true'" >$(DefineConstants);FEATURE_LEGACY_JS_INTEROP</DefineConstants>
<DefineConstants Condition="'$(FeatureWasmLegacyJsInterop)' == 'true'" >$(DefineConstants);FEATURE_LEGACY_JS_INTEROP</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="System\Runtime\InteropServices\JavaScript\ParallelTests.cs" />
<Compile Include="System\Runtime\InteropServices\JavaScript\TimerTests.cs" />
</ItemGroup>
<ItemGroup Condition="'$(MonoWasmLegacyJsInterop)' == 'true'">
<ItemGroup Condition="'$(FeatureWasmLegacyJsInterop)' == 'true'">
<Compile Include="System\Runtime\InteropServices\JavaScript\Http\HttpRequestMessageTest.cs" />
<Compile Include="System\Runtime\InteropServices\JavaScript\JavaScriptTests.cs" />
<Compile Include="System\Runtime\InteropServices\JavaScript\DataViewTests.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
<WasmXHarnessArgs>$(WasmXHarnessArgs) --engine-arg=--expose-gc --web-server-use-cop</WasmXHarnessArgs>
<!-- Use following lines to write the generated files to disk. -->
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<FeatureWasmThreads Condition="'$(TargetOS)' == 'Browser' and ('$(WasmEnableThreads)' == 'true' or '$(MonoWasmBuildVariant)' == 'multithread')">true</FeatureWasmThreads>
<FeatureWasmLegacyJsInterop Condition="'$(FeatureWasmLegacyJsInterop)' == '' and '$(FeatureWasmThreads)' == 'true'">false</FeatureWasmLegacyJsInterop>
<FeatureWasmLegacyJsInterop Condition="'$(FeatureWasmLegacyJsInterop)' == '' and '$(FeatureWasmThreads)' != 'true'">true</FeatureWasmLegacyJsInterop>
<DefineConstants Condition="'$(FeatureWasmThreads)' == 'true'" >$(DefineConstants);FEATURE_WASM_THREADS</DefineConstants>
<DefineConstants Condition="'$(FeatureWasmLegacyJsInterop)' == 'true'" >$(DefineConstants);FEATURE_LEGACY_JS_INTEROP</DefineConstants>
<DefineConstants Condition="'$(FeatureWasmLegacyJsInterop)' == 'true'" >$(DefineConstants);FEATURE_LEGACY_JS_INTEROP</DefineConstants>
</PropertyGroup>
<ItemGroup>
Expand Down
2 changes: 2 additions & 0 deletions src/mono/mono.proj
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@
<MonoWasmThreads Condition="'$(MonoWasmBuildVariant)' == 'singlethread'">false</MonoWasmThreads>
<MonoWasmThreads Condition="'$(WasmEnableThreads)' == 'true' or '$(WasmEnablePerfTracing)' == 'true' or '$(MonoWasmBuildVariant)' == 'multithread' or '$(MonoWasmBuildVariant)' == 'perftrace'">true</MonoWasmThreads>
<MonoWasmThreadsNoUser Condition="('$(WasmEnableThreads)' != 'true' and '$(WasmEnablePerfTracing)' == 'true') or '$(MonoWasmBuildVariant)' == 'perftrace'">true</MonoWasmThreadsNoUser>
<FeatureWasmLegacyJsInterop Condition="'$(FeatureWasmLegacyJsInterop)' == '' and '$(MonoWasmThreads)' == 'true'">false</FeatureWasmLegacyJsInterop>
<FeatureWasmLegacyJsInterop Condition="'$(FeatureWasmLegacyJsInterop)' == '' and '$(MonoWasmThreads)' != 'true'">true</FeatureWasmLegacyJsInterop>
</PropertyGroup>

<!-- default thread suspend for specific platforms -->
Expand Down
2 changes: 1 addition & 1 deletion src/mono/wasm/build/WasmApp.Native.targets
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@
<EmscriptenEnvVars Include="PYTHONPATH=$(EmscriptenPythonToolsPath)" Condition="'$(OS)' == 'Windows_NT'" />
<EmscriptenEnvVars Include="PYTHONHOME=" Condition="'$(OS)' == 'Windows_NT'" />
<EmscriptenEnvVars Include="EM_CACHE=$(WasmCachePath)" Condition="'$(WasmCachePath)' != ''" />
<EmscriptenEnvVars Include="MonoWasmLegacyJsInterop=$(MonoWasmLegacyJsInterop)"/>
<EmscriptenEnvVars Include="FeatureWasmLegacyJsInterop=$(FeatureWasmLegacyJsInterop)"/>
<EmscriptenEnvVars Include="MonoWasmThreads=$(MonoWasmThreads)"/>
</ItemGroup>

Expand Down
1 change: 1 addition & 0 deletions src/mono/wasm/runtime/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ project(mono-wasm-runtime C)

option(DISABLE_THREADS "defined if the build does NOT support multithreading" ON)
option(DISABLE_WASM_USER_THREADS "defined if the build does not allow user threads to be created in a multithreaded build" OFF)
option(FEATURE_LEGACY_JS_INTEROP "defined if the build supports legacy JavaScript interop" ON)

set(CMAKE_EXECUTABLE_SUFFIX ".js")
add_executable(dotnet corebindings.c driver.c pinvoke.c)
Expand Down
25 changes: 15 additions & 10 deletions src/mono/wasm/runtime/corebindings.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,27 +17,32 @@
#include "gc-common.h"

//JS funcs
extern void mono_wasm_invoke_js_with_args_ref (int js_handle, MonoString **method, MonoArray **args, int *is_exception, MonoObject **result);
extern void mono_wasm_get_object_property_ref (int js_handle, MonoString **propertyName, int *is_exception, MonoObject **result);
extern void mono_wasm_get_by_index_ref (int js_handle, int property_index, int *is_exception, MonoObject **result);
extern void mono_wasm_set_object_property_ref (int js_handle, MonoString **propertyName, MonoObject **value, int createIfNotExist, int hasOwnProperty, int *is_exception, MonoObject **result);
extern void mono_wasm_set_by_index_ref (int js_handle, int property_index, MonoObject **value, int *is_exception, MonoObject **result);
extern void mono_wasm_get_global_object_ref (MonoString **global_name, int *is_exception, MonoObject **result);
extern void mono_wasm_release_cs_owned_object (int js_handle);
extern void mono_wasm_create_cs_owned_object_ref (MonoString **core_name, MonoArray **args, int *is_exception, MonoObject** result);
extern void mono_wasm_typed_array_to_array_ref (int js_handle, int *is_exception, MonoObject **result);
extern void mono_wasm_typed_array_from_ref (int ptr, int begin, int end, int bytes_per_element, int type, int *is_exception, MonoObject** result);

extern void mono_wasm_bind_js_function(MonoString **function_name, MonoString **module_name, void *signature, int* function_js_handle, int *is_exception, MonoObject **result);
extern void mono_wasm_invoke_bound_function(int function_js_handle, void *data);
extern void mono_wasm_invoke_import(int fn_handle, void *data);
extern void mono_wasm_bind_cs_function(MonoString **fully_qualified_name, int signature_hash, void* signatures, int *is_exception, MonoObject **result);
extern void mono_wasm_marshal_promise(void *data);

// Blazor specific custom routines - see dotnet_support.js for backing code
extern void* mono_wasm_invoke_js_blazor (MonoString **exceptionMessage, void *callInfo, void* arg0, void* arg1, void* arg2);

typedef void (*background_job_cb)(void);
void mono_threads_schedule_background_job (background_job_cb cb);


#ifdef FEATURE_LEGACY_JS_INTEROP
extern void mono_wasm_invoke_js_with_args_ref (int js_handle, MonoString **method, MonoArray **args, int *is_exception, MonoObject **result);
extern void mono_wasm_get_object_property_ref (int js_handle, MonoString **propertyName, int *is_exception, MonoObject **result);
extern void mono_wasm_set_object_property_ref (int js_handle, MonoString **propertyName, MonoObject **value, int createIfNotExist, int hasOwnProperty, int *is_exception, MonoObject **result);
extern void mono_wasm_get_by_index_ref (int js_handle, int property_index, int *is_exception, MonoObject **result);
extern void mono_wasm_set_by_index_ref (int js_handle, int property_index, MonoObject **value, int *is_exception, MonoObject **result);
extern void mono_wasm_get_global_object_ref (MonoString **global_name, int *is_exception, MonoObject **result);
extern void mono_wasm_typed_array_to_array_ref (int js_handle, int *is_exception, MonoObject **result);
extern void mono_wasm_create_cs_owned_object_ref (MonoString **core_name, MonoArray **args, int *is_exception, MonoObject** result);
extern void mono_wasm_typed_array_from_ref (int ptr, int begin, int end, int bytes_per_element, int type, int *is_exception, MonoObject** result);
#endif /* FEATURE_LEGACY_JS_INTEROP */

void core_initialize_internals (void)
{
mono_add_internal_call ("System.Runtime.InteropServices.JavaScript.JSSynchronizationContext::ScheduleBackgroundJob", mono_threads_schedule_background_job);
Expand Down
4 changes: 2 additions & 2 deletions src/mono/wasm/runtime/cwraps.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

import MonoWasmLegacyJsInterop from "consts:monoWasmLegacyJsInterop";
import FeatureWasmLegacyJsInterop from "consts:FeatureWasmLegacyJsInterop";
import {
MonoArray, MonoAssembly, MonoClass,
MonoMethod, MonoObject, MonoString,
Expand All @@ -12,7 +12,7 @@ import { VoidPtr, CharPtrPtr, Int32Ptr, CharPtr, ManagedPointer } from "./types/

type SigLine = [lazy: boolean, name: string, returnType: string | null, argTypes?: string[], opts?: any];

const legacy_interop_cwraps: SigLine[] = !MonoWasmLegacyJsInterop ? [] : [
const legacy_interop_cwraps: SigLine[] = !FeatureWasmLegacyJsInterop ? [] : [
[true, "mono_wasm_array_get_ref", "void", ["number", "number", "number"]],
[true, "mono_wasm_obj_array_new_ref", "void", ["number", "number"]],
[true, "mono_wasm_obj_array_set_ref", "void", ["number", "number", "number"]],
Expand Down
3 changes: 0 additions & 3 deletions src/mono/wasm/runtime/driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,6 @@ void core_initialize_internals ();

extern void mono_wasm_set_entrypoint_breakpoint (const char* assembly_name, int method_token);

// Blazor specific custom routines - see dotnet_support.js for backing code
extern void* mono_wasm_invoke_js_blazor (MonoString **exceptionMessage, void *callInfo, void* arg0, void* arg1, void* arg2);

void mono_wasm_enable_debugging (int);

static int _marshal_type_from_mono_type (int mono_type, MonoClass *klass, MonoType *type);
Expand Down
2 changes: 1 addition & 1 deletion src/mono/wasm/runtime/es6/dotnet.es6.lib.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ if (process.env.MonoWasmThreads) {
"mono_wasm_diagnostic_server_stream_signal_work_available",
]
}
if (process.env.MonoWasmLegacyJsInterop) {
if (process.env.FeatureWasmLegacyJsInterop) {
linked_functions = [...linked_functions,
"mono_wasm_invoke_js_with_args_ref",
"mono_wasm_get_object_property_ref",
Expand Down
4 changes: 2 additions & 2 deletions src/mono/wasm/runtime/exports-linker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.

import MonoWasmThreads from "consts:monoWasmThreads";
import MonoWasmLegacyJsInterop from "consts:monoWasmLegacyJsInterop";
import FeatureWasmLegacyJsInterop from "consts:FeatureWasmLegacyJsInterop";
import { mono_wasm_fire_debugger_agent_message, mono_wasm_debugger_log, mono_wasm_add_dbg_command_received, mono_wasm_set_entrypoint_breakpoint } from "./debug";
import { mono_wasm_release_cs_owned_object } from "./gc-handles";
import { mono_wasm_load_icu_data } from "./icu";
Expand Down Expand Up @@ -39,7 +39,7 @@ const mono_wasm_threads_exports = !MonoWasmThreads ? undefined : {
mono_wasm_diagnostic_server_stream_signal_work_available,
};

const mono_wasm_legacy_interop_exports = !MonoWasmLegacyJsInterop ? undefined : {
const mono_wasm_legacy_interop_exports = !FeatureWasmLegacyJsInterop ? undefined : {
// corebindings.c
mono_wasm_invoke_js_with_args_ref,
mono_wasm_get_object_property_ref,
Expand Down
10 changes: 5 additions & 5 deletions src/mono/wasm/runtime/exports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import ProductVersion from "consts:productVersion";
import GitHash from "consts:gitHash";
import MonoWasmThreads from "consts:monoWasmThreads";
import BuildConfiguration from "consts:configuration";
import MonoWasmLegacyJsInterop from "consts:monoWasmLegacyJsInterop";
import FeatureWasmLegacyJsInterop from "consts:FeatureWasmLegacyJsInterop";

import { ENVIRONMENT_IS_PTHREAD, exportedRuntimeAPI, moduleExports, set_emscripten_entrypoint, set_imports_exports } from "./imports";
import { DotnetModule, is_nullish, EarlyImports, EarlyExports, EarlyReplacements, RuntimeAPI, CreateDotnetRuntimeType } from "./types";
Expand Down Expand Up @@ -42,13 +42,13 @@ function initializeImportsAndExports(

// we want to have same instance of MONO, BINDING and Module in dotnet iffe
set_imports_exports(imports, exports);
if (MonoWasmLegacyJsInterop) {
if (FeatureWasmLegacyJsInterop) {
set_legacy_exports(exports);
}
init_polyfills(replacements);

// here we merge methods from the local objects into exported objects
if (MonoWasmLegacyJsInterop) {
if (FeatureWasmLegacyJsInterop) {
Object.assign(exports.mono, export_mono_api());
Object.assign(exports.binding, export_binding_api());
Object.assign(exports.internal, export_internal_api());
Expand All @@ -67,7 +67,7 @@ function initializeImportsAndExports(
},
...API,
});
if (MonoWasmLegacyJsInterop) {
if (FeatureWasmLegacyJsInterop) {
Object.assign(exportedRuntimeAPI, {
MONO: exports.mono,
BINDING: exports.binding,
Expand All @@ -94,7 +94,7 @@ function initializeImportsAndExports(
if (imports.isGlobal || !module.disableDotnet6Compatibility) {
Object.assign(module, exportedRuntimeAPI);

if (MonoWasmLegacyJsInterop) {
if (FeatureWasmLegacyJsInterop) {
// backward compatibility
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
Expand Down
4 changes: 2 additions & 2 deletions src/mono/wasm/runtime/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const isDebug = configuration !== "Release";
const productVersion = process.env.ProductVersion || "8.0.0-dev";
const nativeBinDir = process.env.NativeBinDir ? process.env.NativeBinDir.replace(/"/g, "") : "bin";
const monoWasmThreads = process.env.MonoWasmThreads === "true" ? true : false;
const monoWasmLegacyJsInterop = process.env.MonoWasmLegacyJsInterop === "true" ? true : false;
const FeatureWasmLegacyJsInterop = process.env.FeatureWasmLegacyJsInterop === "true" ? true : false;
const monoDiagnosticsMock = process.env.MonoDiagnosticsMock === "true" ? true : false;
const terserConfig = {
compress: {
Expand Down Expand Up @@ -85,7 +85,7 @@ const typescriptConfigOptions = {
include: ["**/*.ts", "../../../../artifacts/bin/native/generated/**/*.ts"]
};

const outputCodePlugins = [regexReplace(inlineAssert), consts({ productVersion, configuration, monoWasmThreads, monoDiagnosticsMock, gitHash, monoWasmLegacyJsInterop }), typescript(typescriptConfigOptions)];
const outputCodePlugins = [regexReplace(inlineAssert), consts({ productVersion, configuration, monoWasmThreads, monoDiagnosticsMock, gitHash, FeatureWasmLegacyJsInterop }), typescript(typescriptConfigOptions)];

const externalDependencies = [
];
Expand Down
Loading