1234567891011121314151617181920212223242526272829303132333435 |
- using Jint.Native;
- using Jint.Native.Function;
- namespace Jint.Runtime.Interpreter.Expressions;
- internal sealed class JintArrowFunctionExpression : JintExpression
- {
- private readonly JintFunctionDefinition _function;
- public JintArrowFunctionExpression(ArrowFunctionExpression function) : base(function)
- {
- _function = new JintFunctionDefinition(function);
- }
- protected override object EvaluateInternal(EvaluationContext context)
- {
- var engine = context.Engine;
- var env = engine.ExecutionContext.LexicalEnvironment;
- var privateEnv = engine.ExecutionContext.PrivateEnvironment;
- var closure = engine.Realm.Intrinsics.Function.OrdinaryFunctionCreate(
- engine.Realm.Intrinsics.Function.PrototypeObject,
- _function,
- FunctionThisMode.Lexical,
- env,
- privateEnv);
- if (_function.Name is null)
- {
- closure.SetFunctionName(JsString.Empty);
- }
- return closure;
- }
- }
|