diff --git a/Jint.Tests.PublicInterface/AdvancedApiTests.cs b/Jint.Tests.PublicInterface/AdvancedApiTests.cs
new file mode 100644
index 0000000000..fac99adf37
--- /dev/null
+++ b/Jint.Tests.PublicInterface/AdvancedApiTests.cs
@@ -0,0 +1,11 @@
+namespace Jint.Tests.PublicInterface;
+
+public class AdvancedApiTests
+{
+ [Fact]
+ public void CanProcessTasks()
+ {
+ var engine = new Engine();
+ engine.Advanced.ProcessTasks();
+ }
+}
diff --git a/Jint/Engine.Advanced.cs b/Jint/Engine.Advanced.cs
new file mode 100644
index 0000000000..d1469c1b8e
--- /dev/null
+++ b/Jint/Engine.Advanced.cs
@@ -0,0 +1,24 @@
+namespace Jint;
+
+public partial class Engine
+{
+ public AdvancedOperations Advanced { get; }
+}
+
+public class AdvancedOperations
+{
+ private readonly Engine _engine;
+
+ public AdvancedOperations(Engine engine)
+ {
+ _engine = engine;
+ }
+
+ ///
+ /// Forcefully processes the current task queues (micro and regular), this API may break and change behavior!
+ ///
+ public void ProcessTasks()
+ {
+ _engine.RunAvailableContinuations();
+ }
+}
diff --git a/Jint/Engine.cs b/Jint/Engine.cs
index ced8cc3588..b274e81172 100644
--- a/Jint/Engine.cs
+++ b/Jint/Engine.cs
@@ -96,6 +96,8 @@ public Engine(Options options) : this((e, o) => e.Options = options)
/// The provided engine instance in callback is not guaranteed to be fully configured
public Engine(Action options)
{
+ Advanced = new AdvancedOperations(this);
+
_executionContexts = new ExecutionContextStack(2);
Options = new Options();