Skip to content

Commit 2b8655b

Browse files
authored
Merge pull request #1466 from mortend/promise-context2
Fuse.Scripting: use compiler to generate closures
2 parents 47e6efd + a61b015 commit 2b8655b

File tree

1 file changed

+2
-32
lines changed

1 file changed

+2
-32
lines changed

Source/Fuse.Scripting/NativePromise.uno

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ namespace Fuse.Scripting
4848

4949
public NativePromise(string name, ResultFactory<T> func, ResultConverter<T, TJSResult> resultConverter = null): base(name)
5050
{
51-
_func = new ResultFactoryClosure<T>(func).Run;
51+
_func = (context, args) => func(args);
5252
_futureFactory = (FutureFactory2<T>)Factory;
5353
_resultConverter = resultConverter;
5454
}
@@ -69,7 +69,7 @@ namespace Fuse.Scripting
6969

7070
public NativePromise(string name, FutureFactory<T> futureFactory, ResultConverter<T, TJSResult> resultConverter = null): base(name)
7171
{
72-
_futureFactory = new FutureFactoryClosure<T>(futureFactory).Run;
72+
_futureFactory = (context, args) => futureFactory(args);
7373
_resultConverter = resultConverter;
7474
}
7575

@@ -160,35 +160,5 @@ namespace Fuse.Scripting
160160
_reject.Call(context, _reason.Message);
161161
}
162162
}
163-
164-
class ResultFactoryClosure<T>
165-
{
166-
readonly ResultFactory<T> _func;
167-
168-
public ResultFactoryClosure(ResultFactory<T> func)
169-
{
170-
_func = func;
171-
}
172-
173-
public T Run(Context context, object[] args)
174-
{
175-
return _func(args);
176-
}
177-
}
178-
179-
class FutureFactoryClosure<T>
180-
{
181-
readonly FutureFactory<T> _func;
182-
183-
public FutureFactoryClosure(FutureFactory<T> func)
184-
{
185-
_func = func;
186-
}
187-
188-
public Future<T> Run(Context context, object[] args)
189-
{
190-
return _func(args);
191-
}
192-
}
193163
}
194164
}

0 commit comments

Comments
 (0)