using System.Diagnostics.CodeAnalysis;
using Jint.Native.Object;
using Jint.Native.Promise;
using Jint.Runtime;
using Jint.Runtime.Descriptors;
using Jint.Runtime.Environments;
using Jint.Runtime.Interop;
using Jint.Runtime.Interpreter;
using Jint.Runtime.Interpreter.Statements;
using Jint.Runtime.Modules;
using Environment = Jint.Runtime.Environments.Environment;
namespace Jint.Native.ShadowRealm;
///
/// https://tc39.es/proposal-shadowrealm/#sec-properties-of-shadowrealm-instances
///
#pragma warning disable MA0049
public sealed class ShadowRealm : ObjectInstance
#pragma warning restore MA0049
{
internal readonly Realm _shadowRealm;
private readonly ExecutionContext _executionContext;
internal ShadowRealm(Engine engine, in ExecutionContext executionContext, Realm shadowRealm) : base(engine)
{
_executionContext = executionContext;
_shadowRealm = shadowRealm;
}
public JsValue Evaluate(string sourceText, ScriptParsingOptions? parsingOptions = null)
{
var callerRealm = _engine.Realm;
var parserOptions = parsingOptions?.GetParserOptions() ?? _engine.GetActiveParserOptions();
var parser = _engine.GetParserFor(parserOptions);
return PerformShadowRealmEval(sourceText, parserOptions, parser, callerRealm);
}
public JsValue Evaluate(in Prepared