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