From 32a50204e5b21db607a0f2ab76ef9028a6020e75 Mon Sep 17 00:00:00 2001 From: Roman Polunin Date: Wed, 5 Oct 2016 23:23:40 -0700 Subject: [PATCH] Added stubs for Dictionary`2.get_Values, Stack`1.Enumerator, System.EventHandler`1. Thanks to @iskiselev for guidance. --- .../System.Collections.Generic.Dictionary.js | 4 ++++ .../Classes/System.Collections.Generic.Stack.js | 15 +++++++++++++++ JSIL.Libraries/Includes/Bootstrap/Core/Main.js | 1 + 3 files changed, 20 insertions(+) diff --git a/JSIL.Libraries/Includes/Bootstrap/Core/Classes/System.Collections.Generic.Dictionary.js b/JSIL.Libraries/Includes/Bootstrap/Core/Classes/System.Collections.Generic.Dictionary.js index f34c4d22c..9248f8d74 100644 --- a/JSIL.Libraries/Includes/Bootstrap/Core/Classes/System.Collections.Generic.Dictionary.js +++ b/JSIL.Libraries/Includes/Bootstrap/Core/Classes/System.Collections.Generic.Dictionary.js @@ -515,6 +515,10 @@ JSIL.MakeClass("System.Object", "System.Collections.Generic.Dictionary`2", true, $.Property({ Public: true, Static: false }, "Keys"); $.Property({ Public: true, Static: false }, "Values"); + $.ExternalMethod({ Static: false, Public: true }, "get_Values", + (new JSIL.MethodSignature($jsilcore.TypeRef("System.Collections.Generic.Dictionary`2+ValueCollection", [new JSIL.GenericParameter("TKey", "System.Collections.Generic.Dictionary`2"), new JSIL.GenericParameter("TValue", "System.Collections.Generic.Dictionary`2")]), [], [])) + ); + $.ImplementInterfaces( $jsilcore.TypeRef("System.Collections.Generic.IEnumerable`1", [$jsilcore.TypeRef("System.Collections.Generic.KeyValuePair`2", [new JSIL.GenericParameter("TKey", "System.Collections.Generic.Dictionary`2"), new JSIL.GenericParameter("TValue", "System.Collections.Generic.Dictionary`2")])]), $jsilcore.TypeRef("System.Collections.IEnumerable"), diff --git a/JSIL.Libraries/Includes/Bootstrap/Core/Classes/System.Collections.Generic.Stack.js b/JSIL.Libraries/Includes/Bootstrap/Core/Classes/System.Collections.Generic.Stack.js index e9cb0c493..ff4483f58 100644 --- a/JSIL.Libraries/Includes/Bootstrap/Core/Classes/System.Collections.Generic.Stack.js +++ b/JSIL.Libraries/Includes/Bootstrap/Core/Classes/System.Collections.Generic.Stack.js @@ -78,4 +78,19 @@ JSIL.MakeClass("System.Object", "System.Collections.Generic.Stack`1", true, ["T" "System.Collections.IEnumerable" ); }); + +JSIL.MakeType({ + BaseType: $jsilcore.TypeRef("System.ValueType"), + Name: "System.Collections.Generic.Stack`1+Enumerator", + IsPublic: true, + IsReferenceType: false, + GenericParameters: ["T"], + MaximumConstructorArguments: 1, +}, function ($) { + $.ImplementInterfaces( + $jsilcore.TypeRef("System.Collections.Generic.IEnumerator`1", [new JSIL.GenericParameter("T", "System.Collections.Generic.Stack`1+Enumerator")]), + $jsilcore.TypeRef("System.IDisposable"), + $jsilcore.TypeRef("System.Collections.IEnumerator") + ); +}); //? } \ No newline at end of file diff --git a/JSIL.Libraries/Includes/Bootstrap/Core/Main.js b/JSIL.Libraries/Includes/Bootstrap/Core/Main.js index 93cb6a8f9..825de81d6 100644 --- a/JSIL.Libraries/Includes/Bootstrap/Core/Main.js +++ b/JSIL.Libraries/Includes/Bootstrap/Core/Main.js @@ -120,6 +120,7 @@ JSIL.MakeClass("System.ComponentModel.TypeConverter", "System.ComponentModel.Exp JSIL.MakeDelegate("System.Action", true, [], JSIL.MethodSignature.Void); JSIL.MakeDelegate("System.Action`1", true, ["T"], new JSIL.MethodSignature(null, [new JSIL.GenericParameter("T", "System.Action`1").in()])); +JSIL.MakeDelegate("System.EventHandler`1", true, ["T"], new JSIL.MethodSignature(null, [new JSIL.GenericParameter("T", "System.EventHandler`1").in()])); JSIL.MakeDelegate("System.Func`1", true, ["TResult"], new JSIL.MethodSignature(new JSIL.GenericParameter("TResult", "System.Func`1").out(), null)); JSIL.MakeDelegate("System.Func`2", true, ["T", "TResult"], new JSIL.MethodSignature(new JSIL.GenericParameter("TResult", "System.Func`2").out(), [new JSIL.GenericParameter("T", "System.Func`2").in()]));