Skip to content
Open
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
63 changes: 31 additions & 32 deletions H5/Compiler/Compiler/Properties/launchSettings.json
Original file line number Diff line number Diff line change
@@ -1,33 +1,32 @@
{
"profiles": {
"build H5.Core": {
"commandName": "Project",
"commandLineArgs": "--rebuild -p \"C:\\h5\\H5\\H5.Core\\H5.Core.csproj\" -c \"$(Configuration)\"",
"workingDirectory": "C:\\h5\\H5\\H5.Core\\"
},
"Test": {
"commandName": "Project",
"commandLineArgs": "--rebuild -p \"C:\\work\\curiosity\\mosaik\\FrontEnd\\Mosaik.FrontEnd.Desktop\\Mosaik.FrontEnd.Desktop.csproj\" -c \"Debug\" --no-server",
"workingDirectory": "C:\\work\\curiosity\\mosaik\\FrontEnd\\Mosaik.FrontEnd.Desktop"
},
"Placeholder": {
"commandName": "Project",
"commandLineArgs": "--rebuild -p \"C:\\work\\h5\\Tests\\Placeholder\\Placeholder.csproj\" -c \"$(Configuration)\" --no-server",
"workingDirectory": "C:\\work\\h5\\Tests\\Placeholder\\",
"hotReloadEnabled": false
},
"build h5": {
"commandName": "Project",
"commandLineArgs": "--rebuild -p \"C:\\h5\\H5\\H5\\H5.csproj\" -c \"$(Configuration)\""
},
"Server": {
"commandName": "Project",
"commandLineArgs": "server"
},
"H5.Compiler": {
"commandName": "Project",
"commandLineArgs": "-p \"C:\\h5\\Tesserae\\Tesserae.Tests\\Tesserae.Tests.csproj\" -c \"$(Configuration)\" --no-server",
"workingDirectory": "C:\\h5\\Tesserae\\Tesserae.Tests\\"
}
}
{
"profiles": {
"build H5.Core": {
"commandName": "Project",
"commandLineArgs": "--rebuild -p \"C:\\h5\\H5\\H5.Core\\H5.Core.csproj\" -c \"$(Configuration)\"",
"workingDirectory": "C:\\h5\\H5\\H5.Core\\"
},
"Test": {
"commandName": "Project",
"commandLineArgs": "--rebuild -p \"C:\\work\\curiosity\\mosaik\\FrontEnd\\Mosaik.FrontEnd.Desktop\\Mosaik.FrontEnd.Desktop.csproj\" -c \"Debug\" --no-server",
"workingDirectory": "C:\\work\\curiosity\\mosaik\\FrontEnd\\Mosaik.FrontEnd.Desktop"
},
"Placeholder": {
"commandName": "Project",
"commandLineArgs": "--rebuild -p \"C:\\work\\h5\\Tests\\Placeholder\\Placeholder.csproj\" -c \"$(Configuration)\" --no-server",
"workingDirectory": "C:\\work\\h5\\Tests\\Placeholder\\",
"hotReloadEnabled": false
},
"build h5": {
"commandName": "Project",
"commandLineArgs": "--rebuild -p \"C:\\h5\\H5\\H5\\H5.csproj\" -c \"$(Configuration)\""
},
"Server": {
"commandName": "Project",
"commandLineArgs": "server"
},
"H5.Compiler": {
"commandName": "Project",
"commandLineArgs": "server"
}
}
}
40 changes: 24 additions & 16 deletions H5/Compiler/Translator/Translator/Translator.InspectAssembly.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ namespace H5.Translator
{
public partial class Translator
{
private static readonly Dictionary<string, (AssemblyDefinition assembly, DateTime timestamp, long size)> _loadedAssemblies = new Dictionary<string, (AssemblyDefinition assembly, DateTime timestamp, long size)>();
private static readonly Dictionary<string, Stream> _loadedAssemblieStreams = new Dictionary<string, Stream>();
private static readonly object _loadedAssembliesLock = new object();
private static readonly Dictionary<string, (AssemblyDefinition assembly, DateTime timestamp, long size)> _loadedAssemblies = new Dictionary<string, (AssemblyDefinition assembly, DateTime timestamp, long size)>();
private static readonly Dictionary<string, Stream> _loadedAssemblieStreams = new Dictionary<string, Stream>();
private static readonly object _loadedAssembliesLock = new object();

private static ILogger Logger = ApplicationLogging.CreateLogger<Translator>();

Expand Down Expand Up @@ -81,7 +81,7 @@ protected virtual void LoadReferenceAssemblies(List<AssemblyDefinition> referenc
private AssemblyDefinition LoadOrGetFromCache(string path)
{
AssemblyDefinition assemblyDefinition;
var fileInfo = new FileInfo(path);
var fileInfo = new FileInfo(path);

if (!fileInfo.Exists)
{
Expand All @@ -101,7 +101,7 @@ private AssemblyDefinition LoadOrGetFromCache(string path)
assemblyDefinition = AssemblyDefinition.ReadAssembly(LoadAssemblyAsFileStream(path),
new ReaderParameters()
{
ReadingMode = ReadingMode.Deferred,
ReadingMode = ReadingMode.Deferred,
AssemblyResolver = new CecilAssemblyResolver(AssemblyLocation)
}
);
Expand Down Expand Up @@ -235,6 +235,14 @@ protected virtual void AddNestedTypes(IEnumerable<TypeDefinition> types)
{
continue;
}
if (type.FullName.Equals("Microsoft.CodeAnalysis.EmbeddedAttribute"))
{
continue;
}
if (type.FullName.StartsWith("System.Runtime.CompilerServices.") && (type.FullName.EndsWith("Attribute")))
{
continue;
}

Validator.CheckType(type, this);

Expand Down Expand Up @@ -324,10 +332,10 @@ protected virtual List<AssemblyDefinition> InspectReferences(Dictionary<string,
TypeInfoDefinitions = new Dictionary<string, ITypeInfo>();

var references = new List<AssemblyDefinition>();
var assembly = LoadAssembly(AssemblyLocation, references, discoveredAssemblyPaths);
var assembly = LoadAssembly(AssemblyLocation, references, discoveredAssemblyPaths);
LoadReferenceAssemblies(references);
TypeDefinitions = new Dictionary<string, TypeDefinition>();
H5Types = new H5Types();
TypeDefinitions = new Dictionary<string, TypeDefinition>();
H5Types = new H5Types();
AssemblyDefinition = assembly;

if (assembly.Name.Name != H5_ASSEMBLY || AssemblyInfo.Assembly != null && AssemblyInfo.Assembly.EnableReservedNamespaces)
Expand Down Expand Up @@ -358,7 +366,7 @@ protected virtual void InspectTypes(MemberResolver resolver, IH5DotJson_Assembly
{
var inspector = CreateInspector(config);
inspector.AssemblyInfo = config;
inspector.Resolver = resolver;
inspector.Resolver = resolver;

for (int i = 0; i < ParsedSourceFiles.Length; i++)
{
Expand All @@ -369,7 +377,7 @@ protected virtual void InspectTypes(MemberResolver resolver, IH5DotJson_Assembly
}

AssemblyInfo = inspector.AssemblyInfo;
Types = inspector.Types;
Types = inspector.Types;
}
}

Expand All @@ -383,9 +391,9 @@ private string[] Rewrite()
using (var m = new Measure(Logger, $"Rewritting code for {SourceFiles.Count} files"))
{
var rewriter = new SharpSixRewriter(this);
var result = new string[SourceFiles.Count];
var result = new string[SourceFiles.Count];

var queue = new ConcurrentQueue<int>(Enumerable.Range(0, SourceFiles.Count));
var queue = new ConcurrentQueue<int>(Enumerable.Range(0, SourceFiles.Count));
var exceptions = new ConcurrentStack<Exception>();

var threads = Enumerable.Range(0, Environment.ProcessorCount).Select(i =>
Expand Down Expand Up @@ -477,7 +485,7 @@ private void BuildSyntaxTreeForFile(int index, ref string[] rewriten)
var fileName = SourceFiles[index];

var swAll = ValueStopwatch.StartNew();
var sw = ValueStopwatch.StartNew();
var sw = ValueStopwatch.StartNew();

Logger.ZLogTrace("Building syntax tree for file '{0}' ...", (fileName ?? ""));

Expand Down Expand Up @@ -533,11 +541,11 @@ private void BuildSyntaxTreeForFile(int index, ref string[] rewriten)

if (emptyLambdaDetecter.Found)
{
var fixer = new EmptyLambdaFixer();
var fixer = new EmptyLambdaFixer();
var astNode = syntaxTree.AcceptVisitor(fixer);
Logger.ZLogTrace("Empty lambda fixer on file '{0}' finished in {1:n1} ms", (fileName ?? ""), sw.GetElapsedTime().TotalMilliseconds);
sw = ValueStopwatch.StartNew(); //Reset the stopwatch
syntaxTree = (astNode != null ? (SyntaxTree)astNode : syntaxTree);
sw = ValueStopwatch.StartNew(); //Reset the stopwatch
syntaxTree = (astNode != null ? (SyntaxTree)astNode : syntaxTree);
syntaxTree.FileName = fileName;
}

Expand Down
2 changes: 1 addition & 1 deletion H5/H5.Build.Target/H5.Build.Target.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<Description>Provides targets for H5-based projects that compile C# to Javascript</Description>
<PackageTags>MSBuild MSBuildSdk h5 javascript compiler</PackageTags>
<ArtifactsPath>$(BaseArtifactsPath)$(MSBuildProjectName)\</ArtifactsPath>
<!--<ArtifactsPath>$(BaseArtifactsPath)$(MSBuildProjectName)\</ArtifactsPath>-->
<PackageType>MSBuildSdk</PackageType>
<PackageId>h5.Target</PackageId>
<Company>Curiosity GmbH</Company>
Expand Down
2 changes: 1 addition & 1 deletion H5/H5.Core/H5.Core.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="h5.Target/22.11.34319">
<Project Sdk="h5.Target/23.2.35852">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<AssemblyName>H5.Core</AssemblyName>
Expand Down
4 changes: 2 additions & 2 deletions H5/H5.Core/dom/dom.Literals.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1864,9 +1864,9 @@ public class internal_error : LiteralType<string>
}

[Name("System.String")]
public class required : LiteralType<string>
public class @required : LiteralType<string>
{
private extern required();
private extern @required();
}

[Name("System.String")]
Expand Down
2 changes: 1 addition & 1 deletion H5/H5.Packages/H5.webgl2/H5.webgl2.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="h5.Target/22.11.34319">
<Project Sdk="h5.Target/23.2.35852">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<AssemblyName>H5.webgl2</AssemblyName>
Expand Down
8 changes: 7 additions & 1 deletion H5/H5/H5.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="h5.Target/22.11.34319">
<Project Sdk="h5.Target/23.2.35852">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<AssemblyName>H5</AssemblyName>
Expand Down Expand Up @@ -26,6 +26,12 @@
<PackageProjectUrl>http://h5.rocks/</PackageProjectUrl>
</PropertyGroup>

<ItemGroup>
<Compile Remove="System\ComponentModel\DataAnnotations\**" />
<EmbeddedResource Remove="System\ComponentModel\DataAnnotations\**" />
<None Remove="System\ComponentModel\DataAnnotations\**" />
</ItemGroup>

<ItemGroup>
<None Include="..\..\logo\h5.png" Link="h5.png" Pack="true" PackagePath="\" />
</ItemGroup>
Expand Down
4 changes: 4 additions & 0 deletions H5/H5/Resources/Interfaces.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,7 @@
H5.define("System.IAsyncResult", {
$kind: "interface"
});

H5.define("System.IServiceProvider", {
$kind: "interface"
});
5 changes: 3 additions & 2 deletions H5/H5/System/IServiceProvider.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
namespace System
{
[H5.Convention(Member = H5.ConventionMember.Field | H5.ConventionMember.Method, Notation = H5.Notation.CamelCase)]
[H5.External]
[H5.NonScriptable]
//[H5.External]
//[H5.NonScriptable]
public interface IServiceProvider
{
object GetService(Type serviceType);
object GetKeyedService(Type serviceType, object key);
}
}
2 changes: 1 addition & 1 deletion H5/H5/shared/System/FlagsAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace System
// should be treated as a bitfield (or set of flags).
// An IDE may use this information to provide a richer
// development experience.
[H5.NonScriptable]
//[H5.NonScriptable]
[AttributeUsage(AttributeTargets.Enum, Inherited = false)]
public class FlagsAttribute : Attribute
{
Expand Down